Анализ потерь рабочего времени сорудников предприятия

Обзор существующих систем учета рабочего времени. Разработка базы данных типовых проектов по монтажу охранной сигнализации. Разработка базы данных фактического исполнения работ по проектам и причин простоев. Выбор программно-технических средств.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 31.10.2016
Размер файла 718,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

1

Размещено на http://www.allbest.ru/

2

Размещено на http://www.allbest.ru/

Министерство образования Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

"Ижевский государственный технический университет"

Кафедра "Автоматизированные системы обработки информации и управления"

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

по дисциплине «Модели и методы анализа проектных решений»

на тему «Анализ потерь рабочего времени сотрудников предприятия»

Студент группы 7-15-3 И. С. Кадочникова
Руководитель от предприятия А. С. Аристархова
Руководитель курсового проектирования Т. Л. Кучина
Ижевск 2007
СОДЕРЖАНИЕ
рабочий простой программный
Введение
1. Обоснование целесообразности разработки
2. Постановка задачи «анализ потерь рабочего времени сотрудников предприятия»
3. Обзор существующих систем учета рабочего времени
4. Математическа постановка задачи
5. Математическая модель
6. Описание структуры базы данных
6.1 Разработка базы данных типовых проектов по монтажу охранной сигнализации
6.2 Разработка базы данных фактического исполнения работ по проектам и причин простоев
7. Оценка возможностей субд microsoft access в качестве базы данных проекта
8. Выбор программно-технических средств
Заключение
Список литературы
Приложения
ВВЕДЕНИЕ
Развитие рыночных отношений повышает ответственность и самостоятельность предприятий в выработке и принятии управленческих решений по обеспечению эффективности их работы. Это требует экономически грамотного управления их деятельностью, которое во многом определяется умением ее анализировать. С помощью анализа изучаются тенденции развития, глубоко и системно исследуются факторы изменения результатов деятельности, обосновываются планы и управленческие решения, осуществляется контроль над их выполнением, выявляются резервы повышения эффективности производства, оцениваются результаты деятельности предприятия, вырабатывается стратегия его развития.
Эффективность предприятия во многом зависит от эффективного использования имеющихся ресурсов. Одним из таких ресурсов является рабочее время. Работодатель, как собственник производственных средств, стремится извлечь максимальные прибыли. Создание благоприятных условий труда оказывают влияние на уровень производительности труда и, через показатель эффективности труда на увеличение объемов оказанных услуг, на сроки выполнения, на эффективность использования мощностей, а также на себестоимость оказываемых услуг, т.е. на технико-экономические показателя работы предприятия. Поэтому на сегодняшний день очень важно для предприятия обеспечить эффективное использование фонда рабочего времени, а для этого нужно установить величину потерь рабочего времени и выявить причины, вызывающие у работника эти потери.
Автоматизация задачи эффективно использования рабочего времени позволит реализовать следующие возможности:
· Определение целодневных потерь рабочего времени;
· Определение внутрисменных потерь рабочего времени;
· Анализ организации и обслуживания рабочего места;
· Разработка мероприятий по сокращению потерь рабочего времени,
· Расчет эффективности предлагаемых мероприятий.
1. ОБОСНОВАНИЕ ЦЕЛЕСООБРАЗНОСТИ РАЗРАБОТКИ
Разработка данного программного продукта проводилась для предприятия ООО «Антарис», которое занимается установкой и продажей охранной сигнализации.
Основными контролируемыми Заказчиком показателями работ были объем работ и текущая стоимость, оцениваемая на основе упрощенного сметно-финансового расчета. График работ по установке охранной сигнализации, как правило, либо вообще отсутствовал, либо составлялся в примитивном виде. Система контроля работы сотрудников предприятия практически отсутствовала. Упрощенная система взаимоотношений между Заказчиком и Предприятием и недобросовестным отношением персонала, явились основными причинами превышения сроков работ, стоимости работ (на 20-30%) и низкого качества выполняемых работ.
Факторный анализ простоев позволил сделать вывод о том, что порядка 30% времени простоев связаны с нарушениями трудовой дисциплины и порядка 38% простоев вызваны некачественным менеджментом (простои в ожидании МТР и т.п.).
Чтобы выяснить возможность реализации проекта в заданные сроки необходимо привлечение в качестве инструмента специализированный программный продукт, разработкой которого занимался автор проекта, позволяющий моделировать ситуацию и оптимизировать принимаемые решения. Он должен был обеспечить:
· оперативное, но качественное планирование людских ресурсов;
· оценка эффективности распределения рабочего времени сотрудников предприятия, путем внедрения автоматизированной системы для обработки данных по учету потерь рабочего времени сотрудниками предприятия;
· выявления резервов повышения эффективности труда и нерациональных затрат рабочего времени;
· корректно разработанной системы отчетности с возможностью динамического обновления вновь поступающей информации;
· "проигрывание" различных вариантов Расписания проекта с целью нахождения наиболее удачного компромисса в дилемме "быстрее - дешевле" и нахождения наиболее экономного варианта реализации проекта за счет оптимизации стоимостных характеристик проекта при реализации проекта в различные сроки, в том числе, за счет привлечения сторонних ресурсов;
· интеграцию с другими программными приложениями.
2. ПОСТАНОВКА ЗАДАЧИ «ЭФФЕКТИВНОГО ИСПОЛЬЗОВАНИЯ РАБОЧЕГО ВРЕМЕНИ»
Выполнения проекта монтажа охранной сигнализации состоит из множества операций, которые складываются в этапы работ проекта.
Схематично структура этапов работ представлена на рис.2.1.

1

Размещено на http://www.allbest.ru/

2

Размещено на http://www.allbest.ru/
Рис.2.1. Состав Этапа работы
Процесс выполнения этапа включает в себя следующее:
1. Определение объема работ и затрат рабочего времени по реализации типового проекта.
2. Оценка возможности исполнения реалного проекта в заданные сроки.
3. Хронометраж рабочего времени по монтажу охранной сигнализации при min и max загрузке сотрудников.
4. Учет времени реального присутствия на рабочем месте в рамках индивидуаль-ного графика работ.
5. Определение обоснованных и необоснованных потерь рабочего времени.
Необходимо автоматизировать процесс «Анализа потерь рабочего времени сотрудников предприятия».
3. ОБЗОР СУЩЕСТВУЮЩИХ СИСТЕМ ЭФФЕКТИВНОГО ИСПОЛЬЗОВАНИЯ РАБОЧЕГО ВРЕМЕНИ
Реализация программного продукта проводилась в системе программирования Delphi 7.0, располагающей широкими возможностями по созданию приложений баз данных. В поставку продукта входит большое количество коллекций визуальных компонент для построения отображаемых на экране окон, что необходимо для создания удобного интерфейса между пользователем и исполняемым кодом.
Программа предназначена для малого предприятия с небольшой численностью персонала и с невысокими финансовыми активами. Поэтому ознакомившись с системами контроля рабочего времени, представленных на рыке программного обеспечения, можно сделать вывод, что все системы такие как: продукт "1С:Автоматизация. Управление рабочим временем 8.0, системы автоматизации учета рабочего времени "Инспектор трудовой дисциплины" и подобные, имеют ряд недостатков:
· Высокая стоимость программы, что не рентабельно для небольшого предприятия;
· Учет рабочего времени осуществляется только при условии, что все устройства в системе контроля доступа (двери, турникеты, шлагбаумы и т.д.) оснащены считывателями, иными словами вход и выход (въезд и выезд) осуществляется при помощи кодоносителей (карты, ключи, брелки).
Проведем анализ эффективного использования рабочего времени на примере бригады монтажников охранной сигнализации. Характеристика внутренних и зависимых между собой функциональных действий (бизнес-процесса), конечной целью которых является возможность реализации проекта в заданные сроки, приведена в таблице 1. Система контроля эффективного использования рабочего времени монтажниками представлена в виде алгоритма, приведенного в таблице 2.
Таблица 3.1. Характеристика бизнес-процесса

Назначение бизнес-процесса:

Оценка возможности реализации проекта, путем эффективного распределения рабочего времени и учет потерь рабочего времени сотрудников предприятия.

Вход в бизнес-процесс:

Смета на проект.
Нормирование рабочего времени каждого рабочего на производство работ по типовому проекту.

Подбор специалистов по личным делам сотрудников с учетом образования и навыков работ.

Условие и периодичность бизнес-процесса:

1 месяц

Таблица 3.2. Алгоритм оценки потерь рабочего времени сотрудников предприятия.

№п/п

Действия

Подразделения

Начальник проектного отдела

Экономист по планированию проектов

Начальник отдела кадров

1.

Определение объема работ и затрат рабочего времени по реализации проекта за период.

2.

Расчет времени по реализации проекта по монтажу охранной сигнализации.

3.

Анализ возможности выполнения проекта по монтажу охранной сигнализации.

4.

Хронометраж рабочего времени по монтажу охранной сигнализации при min и max загрузке сотрудников.

5.

Учет времени реального присутствия на рабочем месте в рамках индивидуаль-ного графика работ.

6.

Определение обоснованных и необоснованных потерь рабочего времени.

7.

Анализ наиболее частых причин и виновников простоев.
4. МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ
Постановка задачи
Имеется смета на выполнение проекта монтажа охранной сигнализации, в которой расписаны этапы выполнения работ, подбор специалистов на производство работ, хронометражем определено время, реально затраченное каждым рабочим на выполнение операции по смете.
Необходимо определить время, реально потраченное на выполнение одно операции проекта, общие потери рабочего времени по каждому этапу работ, возможность исполнения проекта монтажа охранной сигнализации в заданные сроки.
Дано
- количество времени реально затраченного одним монтажником на выполнение одной операции;
- рабочие, участвующие в выполнении одной операций;
- время выполнения одного этапа типового проекта.
Требуется получить
Сможет ли бригада монтажников выполнить проект в заданный срок.
Время, реально потраченное на выполнение одно операции проекта можно рассчитать по формуле:
, (1)
где - реальное время выполнения одной операции работы;
- количество времени реально затраченного одним монтажником на выполнение одной операции;
- рабочие, участвующие в выполнении одной операций.
Одна и та же операцию может быть включена в разные этапы проекта, поэтому общее количество времени, потраченное всеми рабочими на выполнение проекта, будет вычисляться по следующей формуле:

(2)

где - количество реального времени, затраченное на выполнение одного этапа работ,

(3)

Используя следующую формулу можно получить величину (Х), характеризующую потери времени на выполнения на одного этапа проекта монтажа охранной сигнализации:

, (4)

Где - время выполнения одного этапа типового проекта.

Если Х=0, то проект выполняется строго по смете и будет закончен в заданное время.

Если Х > 0, то проект выполняется с опережением графика и есть возможность запуска нового проекта.

Если Х 0, то проект выполняется с простоями и в отведенные по смете сроки не будет выполнен.

Тогда время простоя при выполнении одного этапа можно вычислить по следующей формуле:

(5)

где - время простоев при выполнении одного этапа монтажа охранной сигнализации;

- реальное время выполнения одного этапа работ;

- время выполнения одного этапа типового проекта.

Однако, учитывая, что одна и та же операция может входить в разные этапы проекта, при подсчете общего простоя выполнения реального проекта необходимо учитывать простои по каждому этапу. Более того, чтобы проект был выполнен в срок, необходимо учитывать все значения простоев уже выполненных этапов.

Тогда формула общего просто при выполнении реального проекта будет:

(6)

5. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ

Пусть в сборку входит n монтажников,

Тогда - множество монтажников, участвующих в одном этапе

- рабочие, участвующие в выполнении одной операций

- количество времени реально затраченного одним монтажником на выполнение одной операции

- время выполнения одного этапа типового проекта.

- остаток времени, с учетом всех проведенных этапов работ

Допустим, что этапы работы уже сделаны, тогда реальный остаток времени будет:

Таким образом, величина - это количество времени, которое можно использовать для выполнения дополнительных этапов работ.

Зная эту величину, можно определить, сколько еще этапов работ могут выполнить монтажники.

Произведём расчёт этапов работ, которые могут выполнить монтажники

- количество этапов , которое можно выполнить.

[] - целая часть числа

. Минимальное значение из этих величин и будет определять, какое количество этапов возможно выполнить полностью. Т.е.

6. ОПИСАНИЕ СТРУКТУРЫ БАЗЫ ДАННЫХ

6.1 Разработка базы данных типовых проектов по монтажу охранной сигнализации

Информационная база задачи «Типовой проект по монтажу охранной сигнализации» содержит следующие массивы данных:

1. Типовой проект

- Код этапа (ключевое поле)

- Стоимость этапа

- Типовое время исполнения

2. Этап

- Код Этапа (связь с таблицей «Типовой проект»)

- Название

- Код операции

- Типовое время исполнения

- Реальное время исполнения

3. Операция

- Код операции (Связь с таблицей «Этап»)

- Название

- Код монтажника

4. Монтажник

- Код монтажника (Связь с таблицей «Операция»)

- ФИО

- Паспортные данные

- Уровень образования

- Специальность

- Оклад

5. Время

- Код монтажника (Связь с таблицей «Операция»)

- Реальное время исполнения операции

Структура базы данных приведена на рис.6.1.

Рис. 6.1. Структура БД задачи «Типовой проект по монтажу охранной сигнализации»

6.2 Разработка базы данных фактического исполнения работ по проектам и причин простоев

Информационная база задачи «Фактического исполнения работ и причин простоев» содержит следующие массивы данных:

1. Фактическое исполнение работы

- Код этапа

- Название

- Время исполнения

- Код причины простоя (связь с таблицей «Причины простоя»)

2. Причины простоя

- Код причины (ключевое поле)

- Название причины

- По чьей вине (Р - по вине рабочего; П - по вине предприятия)

3. По вине рабочего

- Код причины (Связь с таблицей «Причины простоя»)

- Название

- Вид наказания

4. Монтажник

- Код причины (Связь с таблицей «Причины простоя»)

- Название причины

- Меры решения возникшей проблемы

Структура базы данных приведена на рис.6.2.

Рис. 6.2. Структура БД задачи «Фактического исполнения работ и причин простоев»

7. ОЦЕНКА ВОЗМОЖНОСТЕЙ СУБД MICROSOFT ACCESS В КАЧЕСТВЕ БАЗЫ ДАННЫХ ПРОЕКТА

Для разработки БД автоматизированной системы «Эффективного использования рабочего времени», я выбрала СУБД Microsoft Access 2003. Основное назначение БД - хранение информации. БД не является серверным типом БД, чем также обосновывается выбор данной СУБД. Microsoft Access 2003 предоставляет удобство в плане ввода, модификации и удалении данных, позволяет выполнять запросы среднего уровня сложности, а в совместимости с Visual Basic и SQL - сложные запросы, предоставляет удобные средства просмотра отчетов и их конструирование.

На сегодняшний день СУБД Microsoft Access 2003 является одной из популярных настольных СУБД, так как, помимо своей относительной простоты, она входит в состав пакета приложений Microsoft Office 2003, широко распространенного среди современных пользователей PC. Средства Access высокопродуктивны, чем обеспечивают высокую скорость разработки приложения. Access обладает рядом уникальных возможностей:

§ Объединение информации из самых разных источников (электронных таблиц, текстовых файлов, других баз данных, чем могут похвастаться только сложные профессиональные СУБД, или СУБД собственных разработок);

§ Представление данных в удобном для пользователя виде с помощью таблиц, диаграмм, отчетов.

К тому же СУБД Access обладает рядом преимуществ, удобных для простых пользователей PC и начинающих разработчиков БД:

§ Простота овладения и использования, т.к. интерфейс СУБД выполнен в стандартном для Windows стиле приложений. Большинство действий в СУБД можно выполнить либо с помощью команд основного меню, либо комбинаций «горячих» клавиш;

§ При полной установке Access 2003 требуется около 16 МБ оперативной памяти и около 65 МБ свободного места на жестком диске (сведения взяты из установочного пакета Microsoft Office 2003). В то время как другие СУБД, например, Visual FoxPro 8.0 требуется оперативная память объемом 64 МБ и 165 МБ свободного места на жестком диске, конечно, это связано с некоторыми преимуществами других СУБД над Access, но для начинающего пользователя, не имеющего особо мощного PC, эти показатели могут играть решающую роль при выборе системы разработки;

§ Все поставленные в курсовой задачи решаются стандартными способами с применением SQL-запросов в Access, не нарушая каких-либо ее ограничений.

1. Размер файла БД (с расширением mbd) - 2Гб за вычетом места необходимого системным объектом;

2. Число объектов в БД - 32768;

3. Количество одновременно работающих пользователей - 255;

4. Максимальный размер таблицы - 2Гб;

5. Максимальное количество полей в таблице - 255;

6. Максимальное количество индексов в таблице - 32;

7. Максимальное число символов в записи-2000(не считая поля Memo и поля объектов OLE);

8. Максимальный размер объекта OLE - 1Гб;

9. Максимальное количество в запросе - 32.

Для работы с БД в Microsoft Access имеется стандартное окно. Из которого, можно вызвать любой ее объект для просмотра, выполнения, разработки или модификации.

Архитектура локальная.

Достоинства архитектуры «локальная» - повышенная защищенность от воздействий сторонних источников-разрушителей информации (сетевые компьютерные вирусы, недоброжелательные пользователи PC (хакеры и т.п.) и т.п.), независимость от сервера, предоставляющего услуги доступа к данным и, возможно, печати, все необходимые операции выполняет один компьютер, чем снижаются расходные затраты на содержание рабочего места.

Microsoft Access позволяет одновременно работать с одной базой до 255 пользователей, не нарушая при этом целостности базы данных. А применение среды разработки программного обеспечения Delphi 7 позволило расширить функциональность системы и упростить интерфейс пользователя, оставляя только необходимые пользователю (работнику предприятия) функции.

Также данная СУБД обладает немаловажным свойством своей себестоимости, т.к. намного дешевле своих аналогов и распространяется для крупных предприятий в качестве корпоративных версий, более простых в установке и обслуживании.

Исходя из всего выше перечисленного, считаю, что выбор СУБД Microsoft Access является обоснованным для применения в данном проекте.

8. ВЫБОР ПРОГРАММНО-ТЕХНИЧЕСКИХ СРЕДСТВ

Платформа

СУБД Microsoft Access 2003 функционирует на платформе IBM PC, т.к. создана для операционной системы Windows. В настоящее время данная платформа является одной из самых дешевых и обладающих достаточным быстродействием, поэтому выбор платформы достаточно обоснован.

Выбор операционной системы

Выбор ОС решается в основном исходя из следующих задач:

§ Возможность решения задачи в данной ОС;

§ Совместимость ОС и платформы, на которой решается задача;

§ Возможность обмена информации (если решается задача сетевая).

Так как Microsoft Access разработана для операционной системы Windows в других ОС она просто не будет функционировать. Для того чтобы ОС как можно дольше удовлетворяла решению других задач, выбираем Windows XP, также немаловажен тот факт, что последняя версия Access функционирует тоже только в данной ОС, в предыдущих версия ее установка невозможна, ввиду ограничений, наложенных политикой компании Microsoft.

Выбор центрального процессора

Центральный процессор выбираем по трем характеристикам:

§ Быстродействие (тактовая частота);

§ Набор команд необходимой для решения задачи;

§ Моральное качество: устаревший или нет.

Выбираем такое быстродействие процессора, чтобы время ожидания решения расчетных задач не превышало полутора секунд, и таким образом была обеспечена комфортная для пользователя работа с программой. Для выполнения данного условия достаточно процессора Pentium II 400MHz, но, т.к. данный процессор можно считать морально устаревшим, выбираем Intel Celeron-D 326 (2.53/256/533/EM64Т) (Socket775), который удовлетворяет и требованиям быстродействия, и экономическим показателям, являясь самым дешевым из всех современных процессоров и процессоров, находящихся в продаже, т.е. доступные для приобретения.

Выбор характеристики оперативной памяти

Объем (V) ОП вычисляется по следующим данным:

1. V памяти под ОС;

2. V памяти под необходимые утилиты;

3. V памяти под решаемую задачу.

Для нормальной работы Windows XP необходимо 128МБ; для нормальной работы СУБД Microsoft Access (2003) необходимо 16МБ. Необходимые утилиты в состав иметь необязательно. Таким образом, общий объем:

V=128МБ+16МБ=144МБ

Для устойчивой работы Microsoft Access выбираем оперативную память на 256 МБ.

Выбор материнской платы

Материнская плата выбирается из соотношений цена/качество, удовлетворяющая характеристикам процессора.

Выбор винчестера

Выбираем исходя из показателей:

1. V памяти под ОС, в том числе файлов подкачки;

2. V памяти под программный продукт;

Исходя из этих характеристик, подсчитаем для нашей задачи:

1. V под Windows XP=3 ГБ;

2. V под Microsoft Access=2 ГБ;

Таким образом, выбираем современный винчестер на 40 ГБ, т.к. винчестеров с меньшим объемом в настоящее время уже нет в продаже.

Выбор монитора

Т.к. сотрудник компании постоянно будет находиться за работой на компьютере, то выбираем эргономичный, безопасный монитор типа ЖК (жидкокристаллический), с диагональю 15”, большой экран при работе с БД не требуется, а цена данного монитора примерно равна цене аналога монитора на CRT-трубке.

Выбор принтера

На производстве возможен большой объем вывода информации на печать, целесообразнее и экономичнее приобрести лазерный принтер распространенных марок Hewlett-Packard или Samsung. Т.к. в эксплуатации более прост и экономичен принтер от компании HP, то выбираем именно его, конкретная модель уточняется с учетом производительности и себестоимости принтера.

Выбор сетевой карты

К сетевой карте нет никаких специфических требований, так то выбираем стандартную сетевую карту 10/100Mbit.

ЗАКЛЮЧЕНИЕ

Создание системы анализа эффективного использования рабочего времени, а также постоянное присутствие Контролеров Заказчика на стройплощадках позволили получать достоверные данные с различной степенью детализации для использования на различных уровнях управления. Руководитель проекта осуществлял контроль укрупненных параметров проекта (людских, материальных и финансовых).

Программа «Анализа потерь рабочего времени сотрудников предприятия» разработана с целью автоматизации процесса оценки эффективного распределения рабочего времени сотрудников предприятия. В задаче реализованы следующие возможности:

· оперативное, но качественное планирование людских ресурсов;

· оценка эффективности распределения рабочего времени сотрудников предприятия, путем внедрения автоматизированной системы для обработки данных по учету потерь рабочего времени сотрудниками предприятия;

· выявления резервов повышения эффективности труда и нерациональных затрат рабочего времени;

· корректно разработанной системы отчетности с возможностью динамического обновления вновь поступающей информации;

· "проигрывание" различных вариантов Расписания проекта с целью нахождения наиболее удачного компромисса в дилемме "быстрее - дешевле" и нахождения наиболее экономного варианта реализации проекта за счет оптимизации стоимостных характеристик проекта при реализации проекта в различные сроки, в том числе, за счет привлечения сторонних ресурсов;

· интеграцию с другими программными приложениями.

Автоматизация данной задачи позволила:

§ Повысить достоверность и обеспечить оперативность данных, на основании которых, производится анализ возможности выполнения проекта монтажа охранной сигнализации в заданные сроки;

§ Обе6спечить оперативность формирования печатной формы «учет рабочего времени»

§ Повысить надёжность хранения данных;

§ Обеспечить многопользовательский и безопасный доступ к данным;

§ Снизить трудоёмкость работ, связанных с уменьшением внеплановых простоев.

§ Возможность внесения эффективных изменений в задачи и этапы проекта, в случае несоблюдения сроков реального выполнения работ.

Задача «Анализа потерь рабочего времени сотрудников предприятия» имеет тесную связь с задачей «Оценки эффективного распределения рабочего времени». Благодаря тому, что и руководитель предприятия, и Заказчик получили инструмент контроля собственных действий и механизмы обратной связи, процесс установки охранной сигнализации стал намного прозрачнее. Внедрение системы анализа эффективного использования рабочего времени позволило сократить непроизводительные простои и увеличить среднюю скорость реализации проектов при соблюдении заданного бюджета. Была также разработана и внедрена система документооборота, позволяющая с достаточно высокой частотой получать прозрачную и динамичную модель ситуации при выполнении взаимных обязательств контрагентов, предусмотренных договорными отношениями.

Задача «Анализа потерь рабочего времени сотрудников предприятия» разработана в среде программирования Delphi 7.

Информационная база задачи «Анализа потерь рабочего времени сотрудников предприятия» является частью базы данных задачи «Табельного учета» и реализована в СУБД Microsoft Access, что обеспечивает:

§ многопользовательский доступ

§ надёжность хранения данных

§ наличие новейших технологий по управлению базами данных

§ высокая скорость обработки запросов;

§ оптимизированное использование ресурсов системы.

На данном этапе разработки задача «Анализа потерь рабочего времени сотрудников предприятия» прошла опытную эксплуатацию.

Однако существуют трудности, возникшие в ходе эксплуатации:

§ Необходимость хронометража рабочего дня сотрудников с целью устранения ошибочной и устаревшей информации;

§ Для устранения данного недостатков предлагаю выпустить распоряжение по установке видеонаблюдения на рабочем объекте;

Кроме того, в рамках разрабатываемой задачи и с использованием общей базы данных возможно реализовать:

§ Возможность отмечать больничный, командировки, административный отпуск, и т.д.

§ Наглядную структуру предприятия и список сотрудников.

§ Сведения о местонахождении сотрудников в данный момент.

§ Гибкая настройка списка нарушений и автоматическое начисление штрафов за них.

§ Кроме реализации основных требований к программе, можно реализовать возможность вести «он-лайн» переговоры по сети между несколькими запущенными программами (на разных компьютерах). И Возможность вести переговоры, отсылая и принимая сообщения с одного терминала на другой полезна при расположении отдела кадров в различных помещениях. Если помещения находятся на большом расстоянии друг от друга, то выяснения каких-либо производственных вопросов можно вести с помощью этого средства сообщения. При этом экономится рабочее время.

§ Ведение журнала отзывов и предложений по улучшению программы. Так как данная программа достаточно большая разработка, то неминуемо возникновение отзывов и пожеланий относительно ее работы. Те сотрудники, которым права доступа позволяют работать с журналом могут просмотреть журнал, добавить в него свой вопрос либо ответить на заданный.

Предлагаю рассмотреть возможность реализации вышеперечисленных усовершенствований к задаче «Анализа потерь рабочего времени сотрудников предприятия» на дальнейших этапах разработки программы.

СПИСОК ЛИТЕРАТУРЫ

1. Матвеев А.В. Кадровая документация. 3-е изд., перер. и доп. Х.: Фактор, 2002. - 302 с.

2. Печникова А.В. Документация отдела кадров предприятия: учеб. пособие М.: Тандем, 2000. - 256 с.

3. Шумаков. Базы данных в Delphi. Книги Delphi. http://www.programmersclub.ru/book

4. С.И. Бобровский. Делфи 7. Учебный курс. СПб.: Питер, 2004. -736 с.

5. Д.М. Иванов. Опыт использования ADO для доступа к базам данных форматов MS Access, xBase и Paradox. CodeNet - Программирование для всех! http://www.codenet.ru/progr/delphi/ado

6. А. Хомоненко, В. Гофман. Работа с базами данных в Delphi, 3 изд. Профессиональное программирование. СПб.: БХВ-Петербург, 2004. - 640 с.

7. Леонтьев В.П. Новейшая энциклопедия персонального компьютера. - М.: ОЛМА-ПРЕСС Образование, 2004. - 734с.

ПРИЛОЖЕНИЕ 1

ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ

Ввод пароля

При работе с программой “Анализ рабочего времени сотрудников предприятия” первым шагом является авторизация пользователя. Авторизация определяет уровень доступа пользователя к хранящейся информации и возможность ее редактирования (как ввод новой, так и удаление существующей). Максимальный уровень доступа по установившейся тенденции принадлежит системному администратору. Он наделен правами регистрации новых пользователей в системе, изменения их паролей, полным доступом к хранящейся информации.

Данный подход диктовался максимальным приближением программного продукта к реальным условиям работы. Только начальник отдела кадров может удалить личную карточку сотрудника или изменить, введенную информацию после того, как она занесена в архив и считается проверенной на точность. При неэлектронной организации работ, например, факт изменения возраста сотрудника или его стажа, не может расцениваться как нормальный.

Конфиденциальность информации обеспечивается фактически на двух уровнях - защита со стороны SQL сервера и описанное выше разграничение доступа. Защита от несанкционированного доступа со стороны сервера означает, что клиентская программа

“Анализ рабочего времени сотрудников предприятия” при соединении с базой данных является пользователем с точки зрения сервера. Поэтому, чтобы подключение произошло, он передает серверу авторизующую информацию (password и login). Системный администратор должен завести соответствующую учетную запись в настройках SQL сервера. Как это сделать - описано в приложении.

При старте программа выводит окно ввода пароля. У пользователя есть только 2 варианта продолжения работы - ввести корректный пароль и войти в систему или выйти из программы. Ввод некорректного пароля вызывает соответствующее информационное сообщение и естественно не приводит к входу в систему.

Внешний вид окна ввода пароля:

Рис. П.1.1Окно ввода пароля для входа в программу учета времени

Учет рабочего времени

Программа позволяет вам создавать и изменять рабочие графики различных категорий или смен сотрудников. В соответствии с рабочими графиками и проведенными кадровыми операциями программа автоматически выводит главное окно программы по учету рабочего времени сотрудников любого подразделения или всей компании. Главное окно программы отображает информацию об операциях, касающихся рабочего времени, наложенную на сведения о рабочих графиках сотрудников. Таким образом, для вывода отчета нам не нужно использовать какие-либо сложные специализированные системы учета прихода/ухода сотрудников. Активные задачи выделяются зеленым фоном. Задачи с превышением дедлайна - красным. Задачи, к выполнению которых еще не приступали - желтым. Все цвета можно настроить в пункте меню "Настройки - Настройки пользователя".

Рис. П.1.2 Главное окно программы по учету рабочего времени

Редактирование информации о выполняемой задаче.

Редактирование информации о выполняемой задаче с кнопкой для быстрого доступа к справочнику типовых задач.

Рис. П.1.3. Редактирование информации о выполняемой задаче.

Рис. П.1.4. Редактирование информации о выполняемой задаче. Ввод плановых данных.

Просмотр списка задач

С помощью этой программы можно посмотеть список задач, которые выполняются в настоящий момент времени всеми сотрудниками организации.

Рис. П.1.5. Просмотр списка задач

Вывод информации о проекте, сотрудниках, типовых задачах.

Эта программа позволяет редактировать задачи и этапы проекта, а так же задавать новые. Все это делается по мере исполнения проекта, когда время реальных работ не совподает с временем работ типового проекта, заданного сметой.

Рис. П.1.6.Редактирование информации о проекте.

Рис.П.1.7.Редактирование информации о сотруднике, включая редактирование логина и пароля.

Рис.П.1.8.Редактирование справочника типовых задач.

Отчет.

Благодаря использованию программы по учету рабочего времени можно быстро формировать различные отчеты. Например, штатное расписание, табель учета рабочего времени, адресная книга, дни рождения сотрудников, журналы учета различных кадровых операций (приемы на работу, отпуска, больничные, командировки и т.д.), присутствие сотрудников на рабочем месте, распределениt сотрудников по различным классификаторам (образование, иностранный язык и т.п.), и многое многое двугое. Отчеты выводятся в такие привычные пакеты, как HTML, Word и Excel, поэтому можно их редактировать и оформлять по своему вкусу.

Рис.П.1.9.Окно для формирования различных отчетов.

Настройка программы.

Первая задача, с которой пришлось столкнуться, состояла в разработке удобного интерфейса. Поскольку программа рассчитана на длительную работу оператора с ней, то этому вопросу было уделено немало внимания. Ключевым аспектом стал выбор цветовой палитры всей программы, поскольку как показала практика, слишком контрастная цветовая палитра ведет к сильному утомлению оператора и недовольству программой в целом.

В результате была выбрана наиболее оптимальная для считывания с экрана цветовая палитра, а именно стандартная бело-серая форма и темно-серый шрифт.

Следующей задачей стало хорошее структурирование обрабатываемой информации с целью ее разнесения по различным формам и диалогам. В программе “Анализ рабочего времени сотрудников предприятия”, представление информации более наглядно и структурировано в целом.

Для повышения удобства работы были реализованы словари, назначение и принцип работы с которыми описаны выше.

С точки зрения программной реализации был решен ряд вопросов. В Delphi, как это не печально, набор стандартных функций для работы со строками и датами не покрывает все встречающиеся задачи. Поэтому при работе индивидуальным заданием были написаны различные функции и процедуры для проверки и обработки даты и строк. Они вынесены в отдельный модуль и могут быть применены при решении новых задач.

Также были закодированы алгоритмы для специфичной работы с периодами времени при работе с месяцами, кварталами и т.п.

Многие операторы привыкли работать с программой, минимально используя манипулятор "мышь", используя для повышения скорости набора текста и перемещения по полям ввода. Для этого были написаны специальные визуальные компоненты на основе простых полей ввода на которые по нажатию клавиш "вверх", "вниз" передают фокус ввода на другое поле или компонент. Эти поля ввода также можно применить при решении других задач.

При реализации самой базы данных основной трудностью являлось продумывание структур таблиц. По-сколько требовалось создание программы, создающей минимальную нагрузку на сеть, то это требовало достаточно ответственного подхода. Выяснилась необходимость создать ряд хранимых процедур, чтобы программа минимально нагружала сеть и соответствовала технологии клиент-сервер.

Рис.П.1.10.Окно с общими настройками пользователя

Рис.П.1.11.Окно с настройками пользователя (настройка столбцов в главной таблице)

Рис.П.1.12Окно с настройками пользователя (настройка фоновых цветов в главной таблице)

Рис.П.1.13.Окно с настройками базы данных

ПРИЛОЖЕНИЕ 2

ТЕКСТ ПРОГРАММЫ

__fastcall TFrmKolAssm::TFrmKolAssm(TComponent* Owner)

: TForm(Owner)

void __fastcall TFrmKolAssm::Button1Click(TObject *Sender)

{

if (!(MaskEdit1->Text.IsEmpty()))

{

FrmKomplAssm->gKolAssm=StrToInt(MaskEdit1->Text);

DM->SysQuery->Close();

DM->SysQuery->CommandText.printf("Select assm.CodeAssm, assm.CodeCeh from WHOUS.Assembler assm where assm.DecNum='%s' and assm.CodeCeh=%d", Edit1->Text, FrmKomplAssm->Skl);

DM->SysQuery->Open();

int AssmCod=DM->SysQuery->FieldByName("CodeAssm")->AsInteger;

DM->SysQuery->Close();

DM->SysQuery->CommandText.printf("INSERT INTO WHOUS.NomenklAssm (CodeAssm, KolNeed, KolKompl, CodeCeh, KolDef, FlagVid, DateInsert) "

" values (%ld, %ld, 0, %d, 0, 0, TO_DATE('%s','dd.mm.yyyy'))",

AssmCod ,StrToInt(MaskEdit1->Text), FrmKomplAssm->Skl, DateToStr(Date()) );

DM->SysQuery->Execute();

DM->SysQuery->Close();

DM->NomAssm->Close();

DM->NomAssm->Open();

DM->Assembler->Close();

}

else

{

// FrmKolAssm->ShowModal();

// Application->MessageBox("Введите Логин и Пароль", MB_OK);

// FrmKomplAssm->gKolAssm=-1;

}

}

void __fastcall TFrmKolAssm::FormCreate(TObject *Sender)

{

//FrmKomplAssm->gKolAssm=0;

Edit1->Text=FrmKomplAssm->ComboBox1->Text;

}

void __fastcall TFrmKolAssm::Button2Click(TObject *Sender)

{

Close();

}

void __fastcall TFrmKolAssm::FormCloseQuery(TObject *Sender,

bool &CanClose)

{

if ((MaskEdit1->Text.IsEmpty())&(FrmKolAssm->ModalResult==mrOk))

{

Application->MessageBox("Введите Логин и Пароль ", MB_OK);

CanClose=false;

}

}

__fastcall TFrmAssmPKI::TFrmAssmPKI(TComponent* Owner)

: TForm(Owner)

{

DM->Prim->Close();

}

void __fastcall TFrmAssmPKI::DBGridEh1Columns6UpdateData(TObject *Sender,

AnsiString &Text, Variant &Value, bool &UseText, bool &Handled)

{

if (Value>DM->Prim->FieldByName("Ostat")->AsInteger)

{

Application->MessageBox( "Введите время выполнения этапов работ типового проекта", MB_OK);

}

}

void __fastcall TFrmAssmPKI::FormCreate(TObject *Sender)

{

DM->Prim->Open();

}

void __fastcall TFrmAssmPKI::FormClose(TObject *Sender,

TCloseAction &Action)

{

DM->Prim->Close();

}

void __fastcall TFrmAssmPKI::Button1Click(TObject *Sender)

{

if (Application->MessageBox( " Введите реальное время выполнения этапов работ проекта ", "", MB_YESNO)==IDYES)

{

// Проверка на превышение сроков выполнения проекта

DM->Prim->First();

int flag=0;

while (!DM->Prim->Eof)

{ bool a= DM->Prim->FieldByName("Rash")->AsFloat > DM->Prim->FieldByName("Ost")->AsFloat;

float c=DM->Prim->FieldByName("Rash")->AsFloat-int(DM->Prim->FieldByName("Rash")->AsFloat);

bool b= c > 0.0001 ;

if (a || b) {flag++;}

DM->Prim->Next();

}

if (!flag)

{

//Запись о графике работ в таб. "Учёт рабочего времени"

if (FrmKomplAssm->MaxKol)

{DM->SysQuery->CommandText.printf("INSERT INTO WHOUS.UchAssm (SELECT t.CodeAssm,"

"'plan' as NDoc, TO_DATE('%s','dd.mm.yyyy') as DateDoc, %d as kol, %d as cehuch, 1 as tipoper"

" from WHOUS.NomenklAssm t WHERE t.codeceh=%d and t.codeassm=%d)",

DateToStr(Date()), FrmKomplAssm->MaxKol, FrmKomplAssm->Skl, FrmKomplAssm->Skl, DM->NomAssm->FieldByName("CodeAssm")->AsInteger);

DM->SysQuery->Execute();

DM->SysQuery->Close();}

//Запись о выполнении этапов работ с дефицитом времени

int koldef=DM->NomAssm->FieldByName("KolNeed")->AsInteger-FrmKomplAssm->MaxKol;

int tip = FlagK==1? 5 : 2;

if (koldef)

{DM->SysQuery->CommandText.printf("INSERT INTO WHOUS.UchAssm (SELECT t.CodeAssm,"

"'plan' as NDoc, TO_DATE('%s','dd.mm.yyyy') as DateDoc, %d as kol, %d as cehuch, %d as tipoper"

" from WHOUS.NomenklAssm t WHERE t.codeceh=%d and t.codeassm=%d)",

DateToStr(Date()), koldef, FrmKomplAssm->Skl,tip, FrmKomplAssm->Skl, DM->NomAssm->FieldByName("CodeAssm")->AsInteger);

DM->SysQuery->Execute();

DM->SysQuery->Close();

}

//Внесение изменений в задачах

DM->Prim->First();

while (!DM->Prim->Eof)

{

DM->SysQuery->CommandText.printf("UPDATE WHOUS.PrimPKIAssm p SET p.RashKompl=p.RashKompl + %d "

" where p.AssmCode=%d and p.CodeCard=%d ",

DM->Prim->FieldByName("Rash")->AsInteger,

DM->NomAssm->FieldByName("CodeAssm")->AsInteger, DM->Prim->FieldByName("codecard")->AsInteger);

DM->SysQuery->Execute();

DM->SysQuery->Close();

DM->Prim->Next();

}

//Изменение данных

int kolkompl=FrmKomplAssm->MaxKol;

if (FlagK==1)

{

DM->SysQuery->CommandText.printf("select min(m) as min, max(m) as max from "

"(select codecard as c, prim, ost-rash1 as ostat, potrebn, def, rash , "

"floor((rash+rashkompl)/prim) as m, rashkompl from "

"(select codecard, it.nomnum, it.namem, a.decnum, a.nameassm, t.prim, t.proizv, ost, rash1, t.rashkompl, "

" t.prim*n.kolneed as potrebn, decode(sign(t.prim*n.kolneed-t.rashkompl),1,t.prim*n.kolneed-t.rashkompl, 0) as def, "

" decode(sign((ost-rash1)-t.prim*n.kolneed),1, t.prim*n.kolneed, ost-rash1) as rash "

" from WHOUS.primpkiassm t, WHOUS.item it, WHOUS.assembler a, WHOUS.nomenklassm n, "

" (select p.codecard as c1, sum(p.rashkompl) as rash1 from WHOUS.primpkiassm p group by p.codecard), "

" (select ost.codecard as c2, sum(ost.kol) as ost from WHOUS.ostatki ost where ost.sklad=%d group by ost.codecard) "

" where t.assmcode=a.codeassm and it.codrec=t.codecard and t.assmcode=n.codeassm and t.assmcode=%d and c1=t.codecard "

" and c2=t.codecard order by it.codrec) where def>0)", FrmKomplAssm->Skl, DM->NomAssm->FieldByName("CodeAssm")->AsInteger);

DM->SysQuery->Open();

int max= DM->SysQuery->FieldByName("max")->AsInteger;

int min= DM->SysQuery->FieldByName("min")->AsInteger;

DM->SysQuery->Close();

if (min>0) {kolkompl=min;}

if (max-min>0) {koldef=(DM->NomAssm->FieldByName("KolDef")->AsInteger<max)? (max-2*min):((-1)*min);}

}

DM->SysQuery->CommandText.printf("UPDATE WHOUS.NomenklAssm na SET na.KolKompl=na.KolKompl + %d, na.KolDef=na.KolDef + %d, "

" na.DateKompl=TO_DATE('%s','dd.mm.yyyy') where na.CodeAssm=%d ", kolkompl, koldef,

DateToStr(Date()), DM->NomAssm->FieldByName("CodeAssm")->AsInteger);

DM->SysQuery->Execute();

DM->SysQuery->Close();

// DM->NomAssm->Close();

// DM->NomAssm->Open();

AnsiString str= koldef>0 ? "Сотрудник " +IntToStr(FrmKomplAssm->MaxKol)+" Проект" +IntToStr(koldef)+" Категория":

"Задача " +IntToStr(FrmKomplAssm->MaxKol)+" Время";

Application->MessageBox(str.c_str(), "Сообщение", MB_OK);

}

else Application->MessageBox("Кто сейчас работает", MB_OK);

}

// DM->Prim->Close();

AnsiString Dstr=DM->Assembler->CommandText;

// DM->Assembler->Close();

// DM->Assembler->Open();

DM->NomAssm->Close();

DM->NomAssm->Open();

Button1->Enabled=false;

}

void __fastcall TFrmAssmPKI::FormShow(TObject *Sender)

{

float rash=0;

while (!DM->Prim->Eof)

{

rash=rash+ DM->Prim->FieldByName("rash")->AsFloat;

DM->Prim->Next();

}

if (rash) {Button1->Enabled=true;}

else Button1->Enabled=false;

if (FlagK==1)

{ Button1->Caption="Внести дополнительный эта";

FrmAssmPKI->Caption="Внести дополнительную задачу " + DM->NomAssm->FieldByName("decnum")->AsString;;

}

else

{ Button1->Caption="Изменить срок выполнения";

FrmAssmPKI->Caption="Изменить срок выполнения " + DM->NomAssm->FieldByName("decnum")->AsString;;

}

}

//#include "PrOrderfrm.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TDM *DM;

bool LuxContChanged, ScrollCont;

AnsiString GlUser, GlPassword;

extern AnsiString UserID;

AnsiString Passw;bool gleof=0;

//int TovarPos=-1; // позиция товара в документе.

int dividic=0, StringNum;

extern int glRefresh, RValue;

static int gAction;

static AnsiString glUser_;

static int glCodeDoc, glTipDoc;

static int isWebRefresh[pMAXPRINTS+1];

/*WideString RUS2US7(AnsiString pString)

{

const AnsiString US7 = "@ABCDE(FGHIJKLMNOPQRSTUVWXYZ[\\]^_",

RUS = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";

AnsiString res=AnsiUpperCase(pString);

for (int i=1;i<=RUS.Length();i++)

res=StringReplace(res, RUS[i], US7[i], TReplaceFlags() << rfReplaceAll);

return (WideString)res;

}

*/

void Export(void)

{

Screen->Cursor=crHourGlass;

try {

DM->Conn->AppServer.Exec(Procedure("MakeF1"));

}

catch (Exception &e) {

Application->MessageBox(e.Message.c_str(), "Error", 0);

}

Screen->Cursor=crArrow;

Application->MessageBox("Увеличить количество сотрудников", "OK", 0);

}

__fastcall TDM::TDM(TComponent* Owner)

: TDataModule(Owner)

{ DM->m_SkladSet=NULL;glRefresh=0;

for(int i=0;i<=pMAXPRINTS;i++) isWebRefresh[i]=0;

}

int __fastcall TDM::SaveMessage(BOOL vis)

// true - все записи

{ TQuestion *QForm;int err;

QForm=new TQuestion(Application);

QForm->btnAll->Checked=vis;

err=QForm->ShowModal();

return err;

}

void TDM::Export2File(TClientDataSet *pDGrid, AnsiString pFName)

{

int i, stat;char *s;static ofstream fOutput;

if (!DirectoryExists("c:\\INV")) CreateDir("C:\\INV");

SetCurrentDir("c:\\INV");

fOutput.open(pFName.c_str(), ios_base::out|ios_base::trunc);

for (i=0;i<pDGrid->FieldCount;i++) // заголовки строк

{ if (!pDGrid->FieldByName(pDGrid->Fields->Fields[i]->FieldName)->Visible) continue;

fOutput << setw(pDGrid->Fields->Fields[i]->DisplayWidth+3) << left <<pDGrid->Fields->Fields[i]->DisplayLabel.c_str();

}

fOutput<<"\n";// записали заголовок.

AnsiString temp = "Файл "+pFName+" успешно создан в папке C:\\INV";

Application->MessageBox(temp.c_str(), "Внимание!", MB_OK);

double err=(double)(pDGrid->FieldByName("dateprod")->AsDateTime);//==((int)0);

while (!pDGrid->Eof)

{

for(i=0;i<pDGrid->FieldCount;i++)

{ if (!pDGrid->FieldByName(pDGrid->Fields->Fields[i]->FieldName)->Visible) continue;

if ((pDGrid->FieldByName(pDGrid->Fields->Fields[i]->FieldName))->DataType==ftTimeStamp)

if ((double)(pDGrid->FieldByName(pDGrid->Fields->Fields[i]->FieldName)->AsDateTime)==0.0)

fOutput<< setw(pDGrid->Fields->Fields[i]->DisplayWidth+3) <<left << " ";

else fOutput<< setw(pDGrid->Fields->Fields[i]->DisplayWidth+3) <<left << FormatDateTime("dd.mm.yyyy", pDGrid->FieldValues[pDGrid->Fields->Fields[i]->FieldName]).c_str();

else

if ((pDGrid->FieldByName(pDGrid->Fields->Fields[i]->FieldName))->DataType==ftFMTBcd)

fOutput<< setw(pDGrid->Fields->Fields[i]->DisplayWidth+3) << setprecision(3) << fixed << left << pDGrid->FieldByName(pDGrid->Fields->Fields[i]->FieldName)->AsFloat;

else

fOutput<<setw(pDGrid->Fields->Fields[i]->DisplayWidth+3) << left << pDGrid->FieldByName(pDGrid->Fields->Fields[i]->FieldName)->AsString.c_str();

}

fOutput<<"\n";

pDGrid->Next();

}

fOutput.close();

temp = "Файл "+pFName+" успешно сохранен в папке C:\\INV";

Application->MessageBox(temp.c_str(), "Внимание!", MB_OK);

}

void __fastcall TDM::DocsACCAfterScroll(TDataSet *DataSet)

{ if ((DocsForm==NULL) || (DM->Docs->Eof) || (DocsBugForm==NULL) ) return;

if (Docs->FieldByName("TipOper")->AsInteger && (Docs->FieldByName("TipDoc")->AsInteger==3))

{

DocsForm->PriGrid->Visible=true;

DocsForm->RasGrid->Visible=false;

DocsBugForm->PriGrid->Visible=true;

DocsBugForm->RasGrid->Visible=false;

DocsForm->DocSum->DataSource=DM->DocSrc;

DocsBugForm->DocSum->DataSource=DM->DocSrc;

}

else

{

DocsForm->PriGrid->Visible=false;

DocsForm->RasGrid->Visible=true;

DocsBugForm->PriGrid->Visible=false;

DocsBugForm->RasGrid->Visible=true;

DocsForm->DocSum->DataSource=DM->DocSumSrc;

DocsBugForm->DocSum->DataSource=DM->DocSumSrc;

}

/* DM->DocCont->CommandText="select tmcname, summa, nomnom, edizm, unitname, user_, codedoc, codecard, tipcard, kolpodoc, kol, cena, cenadoc from whous.docscontent where user_='"+

DM->Docs->FieldByName("USER_")->AsString+"' AND CODEDOC="+

DM->Docs->FieldByName("CODEDOC")->AsString+" ORDER BY tipcard";

Screen->Cursor=crHourGlass;

DM->DocCont->Active=false;

DM->DocCont->Active=true;

Screen->Cursor=crArrow;*/

}

void __fastcall TDM::tblDocPostError(TDataSet *DataSet, EDatabaseError *E,

TDataAction &Action)

{

AnsiString qq=E->Message;

}

void __fastcall TDM::tblDocEditError(TDataSet *DataSet, EDatabaseError *E,

TDataAction &Action)

{

AnsiString qq=E->Message;

}

void __fastcall TDM::UpdateUnits(int pCodeMat, TEdit *Name, TEdit *SName )

{ TLocateOptions Opts;

// DM->Units->FetchParams();

DM->Units->Params->ParamByName("pMatCode")->Value=pCodeMat;

DM->Units->Execute();

if (Name) Name->Text=DM->Units->Params->ParamByName("pName")->AsString;

if (SName) SName->Text=DM->Units->Params->ParamByName("pSName")->AsString;

}

/*

double __fastcall TDM::CountSum()

{ double summa=0, sumnds, sumdoc;AnsiString temp;

tblDoc->First();

for(;!tblDoc->Eof;tblDoc->Next())

{

summa+=DM->tblDoc->FieldByName("KOL")->AsFloat*DM->tblDoc->FieldByName("CENA")->AsFloat*(1+DM->tblDoc->FieldByName("DISCOUNT")->AsFloat/100);

sumnds=summa*(1+DM->NDS->FieldByName("Percent")->AsFloat/100);

temp=Format("%.3f", ARRAYOFCONST(((double)sumnds)));

PrOrder->SumNoNds->Text=summa;PrOrder->SumWNds->Text=DM->tblDoc->FieldByName("Roundup")->AsInteger==1?atof(temp.c_str()):floor(sumnds*1000)/1000;

}

} */

// функции интерфейса с основной программой

int Register(char* Uname, char* Upass, bool IsBug)

// Uname - имя пользователя, Upass - пароль, IsBug - вход в программу

/* возвращает

Р - рабочие

П - предприятие

*/

{ AnsiString UserID;int State=0;BYTE counter=4;int err=mrOk;

TIniFile *ini;

ini = new TIniFile( ExtractFileDir( Application->ExeName )+"\\SKLAD.INI" );

DM->Conn->Address = ini->ReadString("Connect", "Address", "");

DM->Conn->Host = ini->ReadString("Connect", "Host", "");

//DM->PConn->Address = DM->Conn->Address;

//DM->PConn->Host = DM->Conn->Host;

DM->Conn->Port = StrToInt(ini->ReadString("Connect", "Port", "211"));

//DM->PConn->Port = DM->Conn->Port;

delete ini;

Application->CreateForm(__classid(TLoginForm), &LoginForm);

LoginForm->Login->Text=Uname;LoginForm->Password->Text=Upass;GlUser=Uname;GlPassword=Upass;


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.