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

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

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

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

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

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

Дипломный проект

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

Содержание

Введение

1. Постановка задачи

2. Формализация

3. Описание среды программирования

3.1 Требования к техническому обеспечению

3.2 Требования к программному обеспечению

4. Методика разработки программы

4.1 Алгоритмизация задачи

4.1.1 Описание алгоритма

4.1.2 Структурная схема

4.2 Программирование

5. Экономическая часть

Заключение

Литература

Приложение

Введение

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

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

1. Постановка задачи

программирование алгоритмизация пользователь

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

К входной информации относится:

данные о клиентах;

данные;

справочник категорий услуг;

справочник услуг;

данные о услугах;

наличие и процент НДС;

параметры скидок по дисконтным картам.

К выходной информации относятся:

документ «Накладная»;

документ «Счет»;

остатки на складе;

история операций;

статистика БД;

отчет по продажам за месяц;

отчет по продажам клиенту.

Программа должна обеспечить выполнение следующих функций:

- Создание файла клиенты.

- Корректировка базы клиентов.

- Удаление элементов базы.

- Добавление новых элементов.

- Замена данных (название, валюта, количество).

- Возможность формирования и обработки нескольких баз.

- Вывод на печать информации о клиентах.

К программе предъявляются следующие требования к надежности:

- Предусмотреть контроль вводимой информации.

- Запретить некорректные действия пользователя.

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

2. Формализация

Выделим сущности.

Администраторы

Кабинеты

Карты

Карты клиентов

Клиенты

Дата

Товары

Наименование услуг

Дисконтные карты

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

Администраторы (Код, Название, Пароль)

Кабинеты (Код, Номер кабинета, размерность, цена, Код категории(FK))

Карты (Код карты, Номер карты Цена за единицу, количество)

Остатки на складе (Код, Код товара (FK), количество)

Заказ (Номер заказа, Дата заказа, Код операции(FK), Сумма, Расчет в валюте, Процент НДС, Итого сумма, Примечание, Код поставщика(FK), Код клиента(FK))

Клиенты/Поставщики (Код, Фио или название, ИНН, Номер диск карты, Адрес, телефон, Флаг клиент/поставщик)

Типы операций(Код, Название, Знак операции)

Скидки по дисконту (Сумма, Скидка)

Дисконтные карты (Номер, Сумма на счету)

На рисунке 1 представлена логическая схема БД.

Рисунок 1. Логическая схема БД

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

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

В следующих разделах пояснительной записки все объекты задачи рассматриваются более подробно.

3. Описание среды программирования

В качестве среды для разработки нашего приложения была выбрана среда Borland Delphi 7.0, реализующая современные подходы к программированию: объектно-ориентированный подход и визуальные средства быстрой разработки приложений (RAD-Rapid Application Development).

Среда Delphi 7.0 позволяет создавать приложения для работы в Windows 95, 98, 2000, МЕ, ХР. Версия Delphi 7.0 - превосходный инструмент, с помощью которого и начинающий пользователь, и программист-профессионал могут создавать одинаково профессионально выглядящий интерфейс пользователя к прикладным программам самых различных классов.

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

Delphi 7.0 поддерживает связь с различными базами данных: dBASE, Paradox, Oracle, InterBase, Access, FoxPro.

Благодаря средствам управления проектами, двусторонней интеграции приложения и синхронизации между средствами визуального и текстового редактирования, а также встроенному отладчику (с ассемблерным окном прокрутки, пошаговым исполнением, точками останова, трассировкой) Delphi 7.0 корпорации Borland предоставляет собой впечатляющую среду разработки, которая, видимо, выдержит конкурентную борьбу с такими мощными продуктами как Developer Studio фирмы Microsoft.

3.1 Требования к техническому обеспечению

Минимальные системные требования для MS Access 2000:

Intel Pentium 300

Windows 95/98/2000/XP/NT

128 Мб оперативной памяти

100 Мб дискового пространства

Ввод информации предусмотрен с помощью:

Клавиатуры;

Мыши.

3.2 Требования к программному обеспечению

Для работы программы необходимо, чтобы на компьютере были установлены:

операционная система Microsoft Windows 98/2000/XP;

установлен microsoft access 2000;

Borland Delphi 7.0

4. Методика разработки программы

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

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

Данная программа проста в освоении и рассчитана не только на профессионалов, но и на рядовых пользователей, работающих под Windows. Удобный интуитивно понятный интерфейс в сочетании с мощной системой вспомогательных рисунков и всплывающих подсказок позволят работать с программой без предварительной подготовки.

В отличие от дорогих и сложных программ складского учета типа "1С-Склад" и ей подобных, программа " АСУ СКЛАД" хорошо подходит для представителей малого и среднего бизнеса, так как будет включать все, что им необходимо, но не перегружена избыточными возможностями. Использование технологии создания программы в визуальных средах программирования сделает ее интерфейс универсальным и совместимым с операционными системами Windows 95/98/2000/XP.

4.1 Алгоритмизация задачи

4.1.1 Описание алгоритма

После запуска программы открывается главное окно, представленное на рисунке 2.

Рисунок 2. Главное окно программы

Главное окно состоит из следующих составных частей:

- главное меню программы содержит пункты, выполняющие все функции системы;

- панель инструментов содержит кнопки, дублирующие основные пункты главного меню;

- таблица клиентов - содержит список клиентов;

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

- строка состояния содержит контекстную помощь по выбранному пользователем органу управления.

В таблице 1 находится описание пунктов главного меню.

Таблица 1

Пункт меню

Описание

Система / Выход

Выход из программы

Безопасность / Регистрация

Регистрирует пользователя в программе

Безопасность / Администраторы

Выводит на экран пользователей программы

Безопасность / Настройки пользователя

Позволяет изменить логин и пароль пользователя

Карты / Справочник «типы карт»

Классификация дисконтных карт

Карты / услуги по типу карт

Предоставляемые услуги по картам

Карты / Карты

Позволяет просмотреть у какого клиента какая карта

Данные / Клиенты

Список зарегистрированных клиентов

Данные / Справочник «кабинеты»

Окно просмотра тренажеров

Данные / Справочник «услуги»

Окно просмотра услуг

Данные / справочник «сотрудники»

Просмотр персоонала

Данные / специальности сотрудников

Список услуг и работающих там сотрудников

Данные / Сотрудники по кабинетам

«расписание сотрудников»

Данные / справочник «материалы»

Список предлогаемого товара

Данные/справочник «специальности»

Просмотр специальностей

Действие / Новое посещение

Открывает диалог выбора клиента и время посещения

Действие / Регистрация посещения

Открывает форму, в которой можно выбрать клиента, добавить нового, и задать время прихода

Анализ / Статистика доходов по месяцам

Открывает окно доходов

Анализ / Диаграмма привлеченных

Открывает диаграмма о привлеченных клиентах

Анализ/ Диаграмма по инструкторам

Открывает диаграмму инструкторов

Анализ/ Статистика клиентов

Появляется диаграмма по статистике

Анализ/дни рождения

Показывает дни рождения

Анализ/давно не приходившие

Открывается окно о клиентах которые давно не приходили

Помощь/ О программе

О программе

4.1.2 Структурная схема

4.2 Программирование

В соответствии со схемой, приведенной выше в пункте 4.1.2. «Структурная схема», в представленной программе разработаны программные модули на встроенном языке «Borland Delphi 7.0». Тексты программных модулей и запросов приведены в пункте V. «Приложение».

На рисунке 3 представлено окно "Клиенты"

Рисунок 3. Клиенты системы

На рисунке 4 представлено окно со списком услуг. Здесь находятся все зарегистрированные в системе услуги.

Нажатие кнопки "Word" выведет отчет о услугах. Также информацию можно послать по почте и экспортировать в файл.

Рисунок 4. Список услуг

На рисунке 5 показан справочник "сотрудники". Здесь указана вся необходимая информация о сотрудниках.

Рисунок 5. Остатки на складе

На рисунке 6 показан вид окна с отчетом материалов. Здесь в левой части экрана находится таблица, содержащая список товаров. Так же можно вывести отчет в документ Word, отправить по почте и экспортировать в файл.

Рисунок 6. Справочник «Материалы»

Программа позволяет формировать следующие отчеты:

Администраторы.

Типы карт.

Услуги по типц карты.

Карты.

Данные о клиентах.

Кабинеты.

Услуги.

Сотрудники.

5. Экономическая часть

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

составление записей в журнале посещения;

поиск и составление информации о предъявителях заявок и их исполнителях;

составление отчетных документов;

редактирование данных.

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

Расчет затрат на разработку.

Распределение трудоемкости по стадиям разработки:

Таблица 2

Этап разработки

Содержание работ

Трудоёмкость, час.

Постановка задачи

Предпроектное обследование.

Разработка, согласование и утверждение технико-экономического обоснования.

10

Технический проект

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

Разработка алгоритма решения задачи. Разработка структуры программы.

Разработка плана мероприятий по разработке и внедрению ПП.

Разработка пояснительной записки. Согласование и утверждение технического проекта.

55

Рабочий проект

Написание программы на языке программирования.

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

Тестирование.

Разработка, согласование и утверждение порядка и методики испытаний. Корректировка программы.

85

Документооборот

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

30

ИТОГО:

180часов

Расчет затрат разработчика программного продукта:

Коэффициент сложности задачи с - характеризует относительную сложность программы по отношению к так называемой типовой задаче, сложность которой принята равной единице (величина с лежит в пределах от 0,5 до 1,5). Для моего программного продукта сложность задачи берем 1,1; т.к. данный программный продукт не является сложным.

c = 1,1 - (коэффициент сложности программы)

Коэффициент коррекции программы p - увеличение объема работ за счет внесения изменений в алгоритм или программу по результатам уточнения постановок (величина р лежит в пределах от 0,1 до 0,5). Оптимальным в данном проекте является среднее значение коэффициента коррекции, соответствующие p =0,4, что объясняется неоднократными доработками и корректировками программы, связанные с неточным описанием программы со стороны заказчика.

p = 0,4 - коэффициент коррекции программы в ходе разработки.

Коэффициент увеличения затрат труда b, вследствие недостаточного описания задачи, в зависимости от сложности задачи принимается от 1 до 1,5. В связи с тем, что данная задача, потребовала уточнения и больших доработок, примем b = 1,4.

Коэффициент квалификации разработчика k определяется в зависимости от стажа работы и составляет:

для работающих до двух лет - 0,8;

от трех лет до пяти лет - 1,0;

от пяти до восьми - 1,2;

более восьми лет -1,5.

Поскольку стажа работы по специальности у меня нет, возьмем k= 0,8.

Оклад программиста фирмы равен 15000 рублей (З/П). С учётом использования коэффициентов заработной платы основная заработная плата разработчика программного продукта составит:

З/П осн. = оклад *c*(p+1)*b*k = 15000 руб. * 1,1 * (1 + 0,4)*1,4*0,8 =25872 руб. в месяц.

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

Страховые взносы берутся в размере 34% от основной и дополнительной заработной платы:

ФО=З/п осн *34%=25872*34%=8796,48р. в месяц.

Итоговая заработная плата за весь период разработки программного продукта (180-10 = 170 ч.) составит:

З/П общ = З/П осн + страховые взносы*170 / 176ч = 25872 + 8796,48 * 170 / 176 = 34265,35 за весь период разработки программного продукта.

Величина Оплаты труда сотрудника составит:

ЗП сум. = З/П осн+ Страховые взносы = 25872 + 8796,48 = 34734,78 руб.

Содержание и эксплуатация вычислительной техники

Свт = См-ч * Число часов отладки

где См-ч - стоимость машино-часа.

Для расчета часов отладки суммируем время 3 последних глав таблицы 1: технический проект + рабочий проект + документация и внедрение.

Число часов отладки = 55час. + 85 час. + 30 час. = 170 час.

Стоимость машино-часа рассчитывается, как сумма составляющих:

(Ст-ть_эл_эн_в_год+Аморт в_год+Затраты_на_ремонт_за_год)/Фвт

где Фвт - действительный фонд времени работы вычислительного комплекса.

Стоимость 1 КВТ/час электроэнергии составляет: 5 руб.

Один компьютер потребляет в среднем 300 Вт в час.

За год оплата за электроэнергию, потребляемую одной ЭВМ, составляет:

8 ч. * 22 дня * 12 мес. * 0,3 КВт/ч. *5,5руб. = 3484,8 руб.

Программный продукт разрабатывался на компьютере, который является собственностью ОФ ГОУ “Математический колледж”. Т.к. до этого он уже использовался по назначению в течение более 4-х лет, мы не будем производить расчет амортизации, т.к. срок полезного использования компьютера составляет 4 года.

ПК был приобретен в декабре месяце 2007 года. Стоимость компьютера составляет 21500 руб.

Стоимость ремонта ЭВМ= 21500 * 5% = 1075 руб.

В год компьютер работает 2112 часов, на его ремонт уходит 5% времени, значит, окончательное время работы компьютера 2006 часов в год.

Стоимость машинного часа равна:

(3168 + 1075) / 2006 = 2,12руб.

Содержание и эксплуатация вычислительного комплекса на время разработки программного продукта составляет:

170 час. * 2,12 руб. = 3604руб.

Легальная версия MS Office уже была установлена на компьютере, следовательно, дополнительные затраты на программное обеспечение не требуются.

Затраты на разработку программного продукта приведены в таблице 3.

Таблица 3

Наименование расходов

Затраты, руб.

1

Общая заработная плата

34265,35 руб.

2

Страховые взносы

8796,48 руб.

3

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

3604 руб.

4

Программное обеспечение

0 руб.

ИТОГО:

49665,83 руб.

Экономический эффект

Задача: узнать годовую экономию затрат; период окупаемости продукта.

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

Для ведения расчетов введем следующие обозначения:

Т1- время, затрачиваемое сотрудниками на поиск и составление информации до внедрения программного продукта;

Т2- время, затрачиваемое на поиск и составление после внедрения программного продукта.

До внедрения программы на то чтобы найти нужную информацию о предъявителе заявки, составить запись на прием, в день сотрудник в среднем тратил около 30 мин:

Т1 = 30 мин.

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

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

Т2 = 20мин.

Нас интересует, сколько времени выигрывает отдел информационных технологий, используя данное приложение.

Т=Т12=10 минут =0,166

Теперь рассчитаем стоимость работы сотрудника автоматизируемого рабочего места. В месяц сотрудник работает (8 часов*22 рабочих дня) 176 часов.

Размер оклада сотрудника составляет 15000 рублей.

Стоимость 1 часа (Р), рассчитывается следующим образом:

Р=15000 / 176 = 85,27 руб.

Учтем страховые взносы, которые берем в размере 34% = 0,34

Рфо = (15000*0,34 )/ 176=28,97

Рсумм = Р + Рфо = 85,27 + 28,97 = 114,24руб./час

Эту сумму сотрудник зарабатывает в 1 час работы.

Расчет годового экономического эффекта.

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

год = (0,166*10)*22*12 = 438,24 часа.

Рассчитаем, сколько составит годовая экономия при внедрении программного продукта:

Годовая экономия средств =?Тгод* Рсумм = 438,24*114,24=50064,5 руб/год

Экономический эффект составляет величину, равную годовой экономии средств за вычетом затрат.

Экономический эффект = 50064,5 - 49665,9 = 1501,7руб/год

Теперь посчитаем, через какой промежуток времени окупится программный продукт:

Т= затраты/годовая экономия средств =49665,9 /50064,5 = 0,992 года

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

Заключение

В данной дипломной работе была разработана конфигурация на платформе «Borland Delphi 7.0» и «MS Access», которая автоматизирует процесс учета клиентов и позволяет сэкономить рабочее время сотрудника организации. Написанная программа полностью соответствует поставленной задаче.

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

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

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

Литература

1. Лэнгсам Й., Огенстайн М., Тененбаум А. Структуры данных для персональных ЭВМ. - М.: Мир, 2010.

2. Дайитбегов Д.М., Черноусов Е.А. Основы алгоритмизации и алгоритмические языки (второе издание). - М.: Финансы и статистика, 2012.

3. В.Гофман, А.Хомоненко Delphi 5. Наиболее полное руководство. СПб, БХВ, 2009.

4. В.В.Фаронов Delphi 5. Руководство программиста. - М., «Нолидж», 2011.

5. Йодан Э. Структурное проектирование и конструирование программ. - Мир, 1979.

6. А.Я. Архангельский Delphi 5. - М., ЗАО «Издательство «Бином», 2001.

7. А.Я. Архангельский Delphi 5. Справочное пособие. - М., ЗАО «Издательство «Бином», 2001.

8. С. Бобровский Delphi 5. Учебный курс. - СПб, Изд. «Питер», 2000.

9. Роб Баас, Марк Фервай, Хайдемария Гюнтер Delphi 5. Киев, БХВ-«Ирина» 2010.

10. Фаронов В.В. Turbo Pascal 7.0. Учебное пособие. М., Нолидж, 1998.

11. Фаронов В.В.Delphi 5. Учебный курс. М., Нолидж, 2000.

12. WWW.READUS.RU.

13. WWW.Delphikingdom.ru.

Приложение

Листинг

Параметр

Значение

Имя файла

client.pas

Имя модуля

client

Количество строк

156

Количество символов

3803

Размер файла

4,02 Кб

Количество комментариев

14

Процент закоментированности

10,02 %

Модуль: client.pas

Всего строк: 156

unit client;

interface

uses

Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms,

Dialogs, DBCtrls, DB, DBGrids, DBTables, Grids, ExtCtrls, ADODB, Mask,

Buttons, ExtDlgs,jpeg;

type

TFrmClient = class(TForm)

DBGrid1: TDBGrid;

DBNavigator: TDBNavigator;

Panel1: TPanel;

DataSource1: TDataSource;

Panel2: TPanel;

Panel3: TPanel;

Label1: TLabel;

DBEdit1: TDBEdit;

Label2: TLabel;

DBEdit2: TDBEdit;

Label3: TLabel;

DBEdit3: TDBEdit;

Label4: TLabel;

DBEdit4: TDBEdit;

Label5: TLabel;

DBEdit5: TDBEdit;

Label6: TLabel;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

Label7: TLabel;

BtnOpenPicture: TSpeedButton;

SpeedButton1: TSpeedButton;

Image1: TImage;

Label8: TLabel;

BtnSel: TBitBtn;

OpenPictureDialog: TOpenDialog;

Label9: TLabel;

LabelNo: TLabel;

Label10: TLabel;

DBEdit8: TDBEdit;

Label11: TLabel;

DBEdit9: TDBEdit;

Label12: TLabel;

DBEdit10: TDBEdit;

DBCheckBox1: TDBCheckBox;

DBEdit11: TDBEdit;

BtnRep: TSpeedButton;

BtnSendToMail: TSpeedButton;

BtnExport: TSpeedButton;

Label13: TLabel;

Edit1: TEdit;

procedure FormCreate(Sender: TObject);

procedure DataSource1DataChange(Sender: TObject; Field: TField);

procedure BtnOpenPictureClick(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure BtnRepClick(Sender: TObject);

procedure BtnSendToMailClick(Sender: TObject);

procedure BtnExportClick(Sender: TObject);

procedure Edit1Change(Sender: TObject);

private

{private declarations }

public

{public declarations}

end;

var

FrmClient: TFrmClient;

implementation

uses SqlAdoTools,main,dat,msword,rusdlg,sg2word,sg2mail,sg2csv;

{$R *.DFM}

procedure TFrmClient.FormCreate(Sender: TObject);

var i:integer;

begin

DataSource1.DataSet.Open;

dbgrid1.ReadOnly:=not admin;

for i:=0 to ComponentCount-1 do

if components[i] is tDBEdit then

tDBEdit(components[i]).ReadOnly:=not admin;

end;

procedure TFrmClient.DataSource1DataChange(Sender: TObject; Field: TField);

begin

if fileexists(dm.QryClientphotoFile.Value) then //если есть файл с фоткой

begin

image1.Picture.LoadFromFile(dm.QryClientphotoFile.Value); //загрузить ее

image1.Show;

LabelNo.Hide;

end

else

begin

image1.Hide;

LabelNo.Show;

// image1.Canvas.FillRect(rect(0,0,100,100)); //иначе стереть

// image1.Canvas.TextOut(10,45,'Отстутствует'); //и вывести это

end;

end;

procedure TFrmClient.BtnOpenPictureClick(Sender: TObject);

begin

if not OpenPictureDialog.Execute then exit;

dm.QryClient.Edit;

dm.QryClientphotoFile.Value:=OpenPictureDialog.FileName;

DataSource1DataChange(nil,nil);

end;

procedure TFrmClient.SpeedButton1Click(Sender: TObject);

begin

dm.QryClient.Edit;

dm.QryClientphotoFile.Clear;

DataSource1DataChange(nil,nil);

end;

procedure TFrmClient.BtnRepClick(Sender: TObject);

var word:TMSWord;

begin

word:=TMSWord.Create; //создать класс TMSWord

if not word.Open then //открыть связь с Ole объектом

begin

Error('Не могу открыть msWord');

exit;

end;

word.New; //новый документ

word.InsertCenterText(caption+#13); //вставить заголовок документа

DataSetToWordTable(dbGrid1,DataSource1.DataSet,word,true); //вставить таблицу

word.Show; //показать Word

word.Free; //Освободить память

end;

procedure TFrmClient.BtnSendToMailClick(Sender: TObject);

begin

DataSetToMail(caption,dbGrid1,DataSource1.DataSet,true);

end;

procedure TFrmClient.BtnExportClick(Sender: TObject);

begin

DataSetToCSV(caption,dbGrid1,DataSource1.DataSet,true);

end;

procedure TFrmClient.Edit1Change(Sender: TObject);

begin

if dm.QryClient.Locate('SurName',Edit1.Text,[loCaseInsensitive, loPartialKey]) then

Edit1.Font.Color := clWindowText

else

Edit1.Font.Color := clRed;

end;

end.

Параметр

Значение

Имя файла

sg2mail.pas

Имя модуля

sg2mail

Количество строк

98

Количество символов

1934

Размер файла

2,08 Кб

Количество комментариев

3

Процент закоментированности

2,28 %

Модуль: sg2mail.pas

Всего строк: 98

unit sg2mail;

interface

uses grids,db,classes,sysutils,dbgrids,mapi,rusdlg;

procedure DataSetToMail(topic:string;grid:tDBGrid;ds:tDataSet;HasNumb:boolean=false);

implementation

procedure sendtomail(topic,text:string);

var

MapiMessage: TMapiMessage;

MError: Cardinal;

rec{,r}:TMapiRecipDesc;

begin

with rec do

begin

lpszName:='';

lpszAddress:='';//1@1.ru';

ulRecipClass := MAPI_TO;

ulEIDSize:=0;

lpEntryID:=nil;

end;

with MapiMessage do

begin

ulReserved := 0;

lpszSubject := pchar(topic);

lpszNoteText := pchar(text);

lpszMessageType := nil;

lpszDateReceived := nil;

lpszConversationID := nil;

flFlags := 0;

lpOriginator := nil;

nRecipCount := 1;

lpRecips := @rec;

nFileCount := 0;

lpFiles := nil;

end; // MAPI_E_AMBIGUOUS_RECIPIENT

MError := MapiSendMail(0, 0, MapiMessage,

MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);

if MError <> 0 then Error('Не вышло');

end;

procedure DataSetToMail(topic:string;grid:tDBGrid;ds:tDataSet;HasNumb:boolean=false);

var wrd:array of string;

i,j,cnt,add,counter:integer;

l,res:tStringList;

str:string;

procedure ArrToStr(a:array of string);

var i:integer;

begin

str:=a[0];

for i:=1 to length(a)-1 do

str:=str+#9+a[i];

res.Add(str);

end;

begin

l:=tStringList.create;

res:=tStringList.create;

cnt:=grid.Columns.Count;

add:=0;

if HasNumb then add:=1;

SetLength(wrd,cnt+add);

if HasNumb then

begin

wrd[0]:='№ п.п.';

l.Add('#');

end;

for i:=0 to cnt-1 do

begin

wrd[i+add]:=grid.Columns[i].Title.Caption;

l.Add(grid.Columns[i].FieldName);

end;

ArrToStr(wrd);

with ds do

begin

first;

counter:=1;

while not eof do

begin

wrd[0]:=IntToStr(counter);

for i:=add to l.Count-1 do

begin

wrd[i]:=fieldbyname(l[i]).AsString;

end;

inc(counter);

ArrToStr(wrd);

next;

end;

end;

sendtomail(topic,res.text);

res.Free;

l.Free;

end;

end.

Параметр

Значение

Имя файла

stat2.pas

Имя модуля

stat2

Количество строк

41

Количество символов

749

Размер файла

831 б

Количество комментариев

3

Процент закоментированности

7,21 %

Модуль: stat2.pas

Всего строк: 41

unit stat2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type

TFrmStat2 = class(TForm)

ch: TChart;

Series1: TPieSeries;

procedure FormCreate(Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

FrmStat2: TFrmStat2;

implementation

uses dat,sqladotools;

{$R *.dfm}

procedure TFrmStat2.FormCreate(Sender: TObject);

begin

ch.Series[0].Clear;

with MakeCursor('select a.name, count(b.client_id) from admins a, client b where a.id=b.admin_id group by a.name') do

begin

while not eof do

begin

ch.Series[0].Add(Fields[1].AsInteger,Fields[0].AsString);

Next;

end;

Free;

end;

end;

end.

Параметр

Значение

Имя файла

login.pas

Имя модуля

login

Количество строк

76

Количество символов

1345

Размер файла

1,46 Кб

Количество комментариев

3

Процент закоментированности

4,01 %

Модуль: login.pas

Всего строк: 76

unit login;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TFrmLogin = class(TForm)

GroupBox1: TGroupBox;

Combo: TComboBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel;

ep: TEdit;

private

{Private declarations}

public

{Public declarations}

end;

var

FrmLogin: TFrmLogin;

function DoLogin:boolean;

implementation

uses dat,sqladotools, DB;

{$R *.dfm}

function DoLogin:boolean;

var i:integer;

begin

adminid:=-1;

Application.CreateForm(TFrmLogin, FrmLogin);

with MakeCursor('select * from admins order by 2') do

begin

while not eof do

begin

FrmLogin.combo.Items.AddObject(Fields[1].AsString,pointer(Fields[0].AsInteger));

next;

end;

free;

end;

if FrmLogin.combo.Items.Count>0 then FrmLogin.combo.ItemIndex:=0;

repeat

if FrmLogin.ShowModal<>mrOk then

begin

result:=false;

FrmLogin.free;

exit;

end;

adminid:=integer(FrmLogin.Combo.Items.Objects[FrmLogin.Combo.itemIndex]);

with MakeCursor(format('select * from admins where id=%d and Password="%s"',

[adminid,FrmLogin.ep.text])) do

begin

if not IsEmpty then

begin

user := fields[1].AsString;

passw :=FrmLogin.ep.text;

FrmLogin.free;

result:=true;

exit;

end;

adminid:=-1;

free;

end;

until adminid<>-1;

end;

end.

Параметр

Значение

Имя файла

about.pas

Имя модуля

about

Количество строк

28

Количество символов

391

Размер файла

447 б

Количество комментариев

3

Процент закоментированности

13,81 %

Модуль: about.pas

Всего строк: 28

unit about;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls;

type

TOKBottomDlg = class(TForm)

OKBtn: TButton;

CancelBtn: TButton;

Bevel1: TBevel;

Label1: TLabel;

Label2: TLabel;

private

{Private declarations}

public

{Public declarations}

end;

var

OKBottomDlg: TOKBottomDlg;

implementation

{$R *.dfm}

end.

Параметр

Значение

Имя файла

klAdmins.pas

Имя модуля

klAdmins

Количество строк

124

Количество символов

3415

Размер файла

3,58 Кб

Количество комментариев

33

Процент закоментированности

22,31 %

Модуль: klAdmins.pas

Всего строк: 124

unit klAdmins;

{Форма работы со справочником "Admins"}

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls;

type

TFrmKlAdmins = class(TForm)

StatusBar: TStatusBar;

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

PanelOk: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BtnRep: TSpeedButton;

BtnClose: TSpeedButton;

DBNavigator1: TDBNavigator;

BtnSendToMail: TSpeedButton;

BtnExport: TSpeedButton;

procedure FormCreate(Sender: TObject);

procedure DsLocDataChange(Sender: TObject; Field: TField);

procedure BtnCloseClick(Sender: TObject);

procedure BtnRepClick(Sender: TObject);

procedure BtnSendToMailClick(Sender: TObject);

procedure BtnExportClick(Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

FrmKlAdmins: TFrmKlAdmins;

procedure RunFrmKlAdmins; // процедура запуска справочника

function SelectFrmKlAdmins(var id:integer; title : string=''):boolean; // запуск выбора записи

implementation

uses dat,msword,sg2word,rusdlg,sg2mail,sg2csv;

{$R *.dfm}

procedure RunFrmKlAdmins; // процедура запуска справочника

begin

Application.CreateForm(TFrmKlAdmins, FrmKlAdmins); // создать форму справочника

FrmKlAdmins.ShowModal; // показать модально

FrmKlAdmins.Free; // освободить память

end;

function SelectFrmKlAdmins(var id:integer; title : string):boolean;

begin

Application.CreateForm(TFrmKlAdmins, FrmKlAdmins); // создать форму справочника

dm.TblADMINS .Locate('id',id,[]); //поиск старого значение

if title<>'' then FrmKlAdmins.Caption := FrmKlAdmins.Caption +' : '+title; //установить заголовок

result:=FrmKlAdmins.ShowModal=mrOk; // результат = результат модального запуска

if result then // если Ок

id :=dm.TblADMINS . FieldByName('id').AsInteger; // сохранить новое значение

FrmKlAdmins.Free; // освободить память

end;

// По созданию формы

procedure TFrmKlAdmins.FormCreate(Sender: TObject);

begin

DsLoc.DataSet.Open; // открыть источник данных

end;

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

procedure TFrmKlAdmins.DsLocDataChange(Sender: TObject; Field: TField);

begin

// надпись внизу формы

StatusBar.SimpleText := format('Всего %d запись(сей)',[DsLoc.DataSet.RecordCount]);

end;

// нажатие кнопки "закрыть"

procedure TFrmKlAdmins.BtnCloseClick(Sender: TObject);

begin

close; // закрыть форму

end;

// вывод в Word

procedure TFrmKlAdmins.BtnRepClick(Sender: TObject);

var word:TMSWord;

begin

word:=TMSWord.Create; //создать класс TMSWord

if not word.Open then //открыть связь с Ole объектом

begin

Error('Не могу открыть msWord');

exit;

end;

word.New; //новый документ

word.InsertCenterText(caption+#13); //вставить заголовок документа

DataSetToWordTable(Grid,DsLoc.DataSet,word,true); //вставить таблицу

word.Show; //показать Word

word.Free; //Освободить память

end;

// отправить по почте

procedure TFrmKlAdmins.BtnSendToMailClick(Sender: TObject);

begin

DataSetToMail(caption,grid,dsloc.DataSet,true);

end;

// вывод в Excel

procedure TFrmKlAdmins.BtnExportClick(Sender: TObject);

begin

DataSetToCSV(caption,grid,dsloc.DataSet,true);

end;

end.

Параметр

Значение

Имя файла

dat.pas

Имя модуля

dat

Количество строк

470

Количество символов

14274

Размер файла

14,86 Кб

Количество комментариев

16

Процент закоментированности

3,14 %

Модуль: dat.pas

Всего строк: 470

unit dat;

interface

uses

SysUtils, Classes, DB, ADODB,inifiles, Dialogs;

type

Tdm = class(TDataModule)

QryClient: TADOQuery;

QryClientClient_ID: TSmallintField;

QryClientSurname: TWideStringField;

QryClientName: TWideStringField;

QryClientPatronymic: TWideStringField;

QryClientSity: TWideStringField;

TblSpecName: TStringField;

TblSpecid: TAutoIncField;

TblSpec: TADOtable;

TblUsedMatcnt: TFloatField;

TblUsedMatmat_idName: TStringField;

TblUsedMatmat_id: TIntegerField;

TblUsedMatdata_id: TIntegerField;

TblUsedMat: TADOtable;

TbldataData_end: TDateTimeField;

TbldataData_start: TDateTimeField;

TbldataService_IDName: TStringField;

TbldataService_ID: TIntegerField;

TbldataClient_IDName: TStringField;

TbldataClient_ID: TIntegerField;

Tbldataid: TAutoIncField;

Tbldata: TADOtable;

TblMaterialsName: TStringField;

TblMaterialsid: TAutoIncField;

TblMaterials: TADOtable;

TblWorkTimeTime_end: TIntegerField;

TblWorkTimeTime_begin: TIntegerField;

TblWorkTimedayName: TStringField;

TblWorkTimeday: TIntegerField;

TblWorkTimeid: TAutoIncField;

TblWorkTimeCabinet_IDName: TStringField;

TblWorkTimeCabinet_ID: TIntegerField;

TblWorkTimeSpeciality_IDName: TStringField;

TblWorkTimeSpeciality_ID: TIntegerField;

TblWorkTime: TADOtable;

TblServiseOnCardCnt: TIntegerField;

TblServiseOnCardServiceName: TStringField;

TblServiseOnCardService: TIntegerField;

TblServiseOnCardfortypeName: TStringField;

TblServiseOnCardfortype: TIntegerField;

TblServiseOnCardid: TAutoIncField;

TblServiseOnCard: TADOtable;

TblService_SpecialitySpeciality_IDName: TStringField;

TblService_SpecialityService_IDName: TStringField;

TblService_SpecialityService_ID: TIntegerField;

TblService_Speciality : TADOtable;

TblViewSotrFioFIO: TStringField;

TblViewSotrFioSpeciality_ID: TAutoIncField;

TblViewSotrFio: TADOtable;

TblSpecialityStreet: TStringField;

TblSpecialityKvartira: TIntegerField;

TblSpecialityKorpus: TStringField;

TblSpecialitytelethon: TStringField;

TblSpecialitySpeciality: TStringField;

TblSpecialityPensNum: TStringField;

TblSpecialityPatronymic: TStringField;

TblSpecialityName: TStringField;

TblSpecialitySurname: TStringField;

TblSpecialitySpeciality_ID: TAutoIncField;

TblSpeciality: TADOtable;

TblServiceLengthMin: TIntegerField;

TblServiceOneTimePeople: TIntegerField;

TblServiceName_service: TStringField;

TblServiceID: TAutoIncField;

TblService: TADOtable;

TblAdminspassword: TStringField;

TblAdminsName: TStringField;

TblAdminsid: TAutoIncField;

TblAdmins : TADOtable;

TblCabinetSpecification: TStringField;

TblCabinetFloor: TIntegerField;

TblCabinetBilding: TStringField;

TblCabinetNumber: TIntegerField;

TblCabinetCabinet_ID: TAutoIncField;

TblCabinet: TADOtable;

TblViewTypesName: TStringField;

TblViewTypesid: TAutoIncField;

TblViewTypes : TADOtable;

Tblcardsdtend: TDateTimeField;

Tblcardsdtstart: TDateTimeField;

TblcardstypeName: TStringField;

Tblcardstype: TIntegerField;

TblcardsclientName: TStringField;

Tblcardsnum: TIntegerField;

Tblcardscard_id: TAutoIncField;

Tblcards: TADOtable;

TblCardTypesdiscount: TFloatField;

TblCardTypesName: TStringField;

TblCardTypesid: TAutoIncField;

TblCardTypes: TADOtable;

TblWeekDaysName: TStringField;

TblWeekDaysid: TIntegerField;

TblWeekDays: TADOtable;

TblTimeForCardstohour: TIntegerField;

TblTimeForCardsfromhour: TIntegerField;

TblTimeForCardsday: TIntegerField;

TblTimeForCardsfortype: TIntegerField;

TblTimeForCardsid: TAutoIncField;

TblTimeForCards : TADOtable;

QryClientStreet: TWideStringField;

QryClientDom: TSmallintField;

QryClientKorpus: TWideStringField;

QryClientKvartira: TSmallintField;

QryClientHistory: TWideStringField;

ADOSpec: TADOQuery;

ADOSpecSpeciality_ID: TSmallintField;

ADOSpecSurname: TWideStringField;

ADOSpecName: TWideStringField;

ADOSpecPatronymic: TWideStringField;

ADOSpecSpeciality: TWideStringField;

ADOSpecNumber_year: TSmallintField;

ADOSpectelethon: TWideStringField;

ADOSpecDom: TSmallintField;

ADOSpecKorpus: TWideStringField;

ADOSpecKvartira: TSmallintField;

ADOSpecStreet: TWideStringField;

Database: TADOConnection;

OpenDialog: TOpenDialog;

QryClientphotoFile: TWideStringField;

TblTimeForCardsField: TStringField;

TblCardTypescost: TBCDField;

TblCardTypesDayLimited: TBooleanField;

TblCardTypesDayLimit: TIntegerField;

TblClientsFio: TADOTable;

TblViewTypesDayLimit: TIntegerField;

TblcardsDayLimit: TIntegerField;

TblViewTypesDayLimited: TBooleanField;

TblcardsDayLimited: TBooleanField;

Tblcardsclient: TSmallintField;

Tblcardslocked: TBooleanField;

QryClientPaspSer: TSmallintField;

QryClientPaspNum: TIntegerField;

ADOSpecPaspSer: TSmallintField;

ADOSpecPaspNum: TIntegerField;

QryClientPensNum: TWideStringField;

QryClientOgr: TBooleanField;

QryClientOgrText: TWideStringField;

ADOSpecPensNum: TWideStringField;

TblCardTypesAbonType: TBooleanField;

Tblcardsadmin: TIntegerField;

QryClientadmin_id: TIntegerField;

TblService_SpecialitySpeciality_ID: TIntegerField;

Tblcardsend: TBooleanField;

TbldataServiceCost: TFloatField;

Tbldatasost: TWordField;

TblUsedMatCost: TCurrencyField;

TblMaterialsCost: TBCDField;

TblServiceCost: TBCDField;

TbldataMatCost: TBCDField;

TbldataCost: TBCDField;

TblSpecialityPaspSer: TSmallintField;

TblSpecialityPaspNum: TIntegerField;

TblSpecialityDom: TSmallintField;

TblSpecialityNumber_year: TSmallintField;

TblSpecialitySpecId: TIntegerField;

TblSpecialityNameSpec: TStringField;

TblClientsFioClient_ID: TAutoIncField;

TblClientsFioFIO: TWideStringField;

procedure QryClientNewRecord(DataSet: TDataSet);

procedure ADOSpecNewRecord(DataSet: TDataSet);

procedure DataModuleCreate(Sender: TObject);

procedure TblTimeForCardsNewRecord(DataSet: TDataSet);

procedure TblCardTypesNewRecord(DataSet: TDataSet);

procedure TblCardTypesdiscountGetText(Sender: TField; var Text: String;

DisplayText: Boolean);

procedure TblCardTypesdiscountSetText(Sender: TField;

const Text: String);

procedure TblCardTypesDayLimitedGetText(Sender: TField;

var Text: String; DisplayText: Boolean);

procedure TblCardTypesDayLimitedSetText(Sender: TField;

const Text: String);

procedure TblCardTypesDayLimitGetText(Sender: TField; var Text: String;

DisplayText: Boolean);

procedure TblCardTypesDayLimitSetText(Sender: TField;

const Text: String);

procedure TblcardslockedGetText(Sender: TField; var Text: String;

DisplayText: Boolean);

procedure TblcardslockedSetText(Sender: TField; const Text: String);

procedure TblcardsNewRecord(DataSet: TDataSet);

procedure TblAdminspasswordGetText(Sender: TField; var Text: String;

DisplayText: Boolean);

procedure TblUsedMatNewRecord(DataSet: TDataSet);

private

{Private declarations}

public

function Skidka(clientid,servid:integer; var tp,inf:string;var card:integer):double;

procedure ClearCardHistory(id:integer);

procedure FixedPos(cardid,servid:Integer);

procedure ProcessEndTimeCards;

{Public declarations}

end;

var

dm: Tdm;

Admin:boolean=true;

adminid:integer=1;

user,passw:string;

implementation

uses sqlAdoTools,rusdlg;

{$R *.dfm}

procedure Tdm.ProcessEndTimeCards;

begin

// with MakeCursor('select * from cards a, cardtypes b where a.type=b.id') do

with MakeCursor('select * from cards ') do

begin

while not eof do

begin

if not FieldByName('dtend').IsNull and (FieldByName('dtend').AsDateTime<Date) then

begin

RunSql('UPDATE cards SET cards.[end] = 1 WHERE cards.card_id= %d',[FieldByName('card_id').AsInteger]);

end;

Next;

end;

Free;

end;

end;

procedure Tdm.ClearCardHistory(id:integer);

begin

RunSQL('Delete from UsedService where card_id=%d',[id]);

end;

procedure Tdm.FixedPos(cardid,servid:Integer);

begin

if calculateint('select count(*) from UsedService where card_id=%d and Service=%d',[cardid,servid]) =0 then

RunSql('insert into UsedService (Card_id,Service,cnt) values (%d,%d,1)',[cardid,servid])

else

RunSql('update UsedService set cnt=cnt+1 where Card_id=%d and Service=%d',[cardid,servid]);

end;

function Tdm.Skidka(clientid,servid:integer; var tp,inf:string;var card:integer):double;

var i,j,day,db,de,allcnt,ucnt:integer;

dend:tDateTime;

disc:double;

loc,abon:boolean;

begin

result:=0;

inf:=''; tp:='Нет карты';

card:=-1;

i:=CalculateInt('select card_id from cards where client = %d',[clientid]);

if i=0 then exit;

card:=i;

with MakeCursor('select a.dtend,b.discount,b.id, a.locked, b.name as tp , b.AbonType from cards a, cardtypes b where b.id=a.type and card_id='+IntToStr(i)) do

begin

dend:=FieldByName('dtend').AsDateTime;

disc:=FieldByName('discount').AsFloat;

j:=FieldByName('id').AsInteger;

loc:=FieldByName('locked').AsBoolean;

abon:=FieldByName('abontype').AsBoolean;

tp:='№'+IntToStr(i)+' '+FieldByName('tp').AsString;

free;

end;

if loc then begin inf:='Карта блокирована'; exit; end;

if abon then

begin

allcnt := calculateInt('select cnt from ServiseOnCard where fortype=%d and Service=%d',[j,servid]);

if allcnt=0 then

begin

inf:='Скидка на эту услугу не предусмотрена';

Exit;

end;

ucnt := calculateInt('select cnt from UsedService where card_id=%d and Service=%d',[i,servid]);

if ucnt>=allcnt then begin inf:='Все оплаченные разы уже использованы'; exit; end;

inf := Format('По карте использовано %d из %d',[ucnt,allcnt]);

Result:=1;

Exit;

end;

if (dend<date) and (dend>0) then begin inf:='У карты истек срок действия'; exit; end;

day:=DayOfWeek(Date);

if day = 1 then day:=7 else dec(day);

db:=-1;

with MakeCursor(format('select fromhour,tohour from TimeForCards where fortype=%d and day=%d',[j,day])) do

begin

if not IsEmpty then

begin

db:=FieldByName('fromhour').AsInteger;

de:=FieldByName('tohour').AsInteger;

end;

free;

end;

if db=-1 then begin inf:='Для типа карт не определено время действия'; exit; end;;

if (time<EncodeTime(db,0,0,0)) or (time>EncodeTime(de,0,0,0)) then begin

inf:='Данный тип карты в это время не работает'; exit; end;

result:=disc;

inf:='Карта активна';

end;

procedure Tdm.QryClientNewRecord(DataSet: TDataSet);

begin

QryClientadmin_id.Value := adminid;

end;

procedure Tdm.ADOSpecNewRecord(DataSet: TDataSet);

begin

ADOSpecSpeciality_ID.Value := GetId('Speciality_ID','Speciality');

end;

procedure Tdm.DataModuleCreate(Sender: TObject);

var ini:tIniFile; //объект INI-файл

s:string;

begin

Database.Close;

ini:=tIniFile.Create(ChangeFileExt(paramstr(0),'.ini')); //создаем

s:=ini.ReadString('main','db','db2.mdb'); //чтение строки пути к данным

// while true do

if not FileExists(s) then //если файла данных нет

begin

if not OpenDialog.Execute then //показать диалог открытия файла

begin

rusdlg.Error('Программа заканчивает свою работу'); //если отмена, то выход

halt;

end;

//Затем сохраняем строку в ini-файл

s:=OpenDialog.FileName;

ini.WriteString('main','db',OpenDialog.FileName);

end;

//строим строку подключения

Database.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+s+';Persist Security Info=False';

ini.Free; //освобождение памяти.

randomize;// инициализация генератора случайных чисел

//открывается база из текущей директории

Database.Open;

dbCon:=Database;

ProcessEndTimeCards;

end;

procedure Tdm.TblTimeForCardsNewRecord(DataSet: TDataSet);

begin

TblTimeForCardsday.Value:=1;

TblTimeForCardsfromhour.Value:=0;

TblTimeForCardstohour.Value:=23;

TblTimeForCardsfortype.Value := TblTimeForCards.Tag;

end;

procedure Tdm.TblCardTypesNewRecord(DataSet: TDataSet);

begin

TblCardTypesdiscount.Value:=0.05;

TblCardTypescost.Value:=0;

TblCardTypesDayLimited.Value:=true;

TblCardTypesDayLimit.Value:=31;

TblCardTypesAbonType.Value:=true;

end;

procedure Tdm.TblCardTypesdiscountGetText(Sender: TField; var Text: String;

DisplayText: Boolean);

begin

If sender.IsNull then exit;

if TblCardTypesAbonType.Value then text:='-' else

Text:=format('%1.2f%%',[sender.asfloat*100]);

end;

procedure Tdm.TblCardTypesdiscountSetText(Sender: TField;

const Text: String);

var f:double;

s:string;

begin

if text='' then begin sender.cl...


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

  • Разработка конфигурации программы в среде "1С:Предприятие 7.7" для учета клиентов. Автоматизация процедуры учета заработной платы. Описание среды программирования, требования к техническому и программному обеспечению. Методика разработки проекта.

    дипломная работа [349,2 K], добавлен 17.07.2014

  • Задачи автоматизированного учета компьютерной техники на предприятии ГУ НПО Тайфун. Описание среды программирования, требования к техническому и программному обеспечению. Описание алгоритма, структурная схема. Аномалии и защитное программирование.

    дипломная работа [1,1 M], добавлен 30.06.2014

  • Формализация и стандартизация данных, необходимых для разработки веб-сайта. Описание среды программирования. Требования к техническому обеспечению. Алгоритмизация данных и защитное программирование. Анализ результатов решения и инструкция пользователю.

    дипломная работа [3,7 M], добавлен 30.06.2014

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

    курсовая работа [3,0 M], добавлен 18.07.2014

  • Требования к программному продукту: базе данных и интерфейсу. Анализ входной, выходной и постоянной информации. Выбор и обоснование выбора среды разработки, программной реализации, описание внутренней среды. Логическая и физическая модель данных.

    курсовая работа [2,1 M], добавлен 04.05.2014

  • Создание автоматизированного учета клиентов в туристическом агентстве "Отпуск". Вывод данных о клиентах и заключенных с ними договорах. Требования к программному и техническому обеспечению. Описание алгоритма и структурная схема. Тестирование и отладка.

    курсовая работа [2,2 M], добавлен 25.06.2014

  • Комплексная автоматизация хозяйственной, организационной и финансовой деятельности предприятия. Требования к программному средству. Обоснование выбранной среды программирования. Информационное обеспечение системы. Описание алгоритма решения задачи.

    дипломная работа [1,2 M], добавлен 18.06.2012

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

    дипломная работа [926,6 K], добавлен 09.07.2012

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

    дипломная работа [1,5 M], добавлен 19.07.2014

  • Разработка программного приложения по автоматизированному учету поступающего довольствия. Описание среды программирования. Тестирование и отладка приложения. Анализ результатов решения. Инструкция пользователю. Требования к техническому обеспечению.

    дипломная работа [946,0 K], добавлен 18.07.2014

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

    курсовая работа [236,7 K], добавлен 09.03.2009

  • Основные требования к разработке интернет-сайта фирмы ООО "Экаунт-Бизнес" с целью привлечения новых потенциальных клиентов. Описание среды программирования. Требования к техническому и программному обеспечению. Аномалии и защитное программирование.

    курсовая работа [2,0 M], добавлен 30.06.2014

  • Информационная модель системы. Требования к техническому, программному обеспечению и интерфейсам информационной системы. Инсталляция и запуск программного продукта. Руководство пользователя системы с правами дознавателя. Макеты входных документов.

    дипломная работа [1,1 M], добавлен 18.01.2013

  • Описание платформы NET Framework. База данных Microsoft Access. Разработка Windows приложения. Модель программирования Windows Forms. Функциональное назначение программы. Входные и выходные данные. Требования к техническому и программному обеспечению.

    курсовая работа [2,2 M], добавлен 15.03.2015

  • Минимальные системные требования к техническому и программному обеспечению для применения базы данных. Структура базы данных, создание таблиц (сотрудники, контакты, контракты, клиенты), запросов и форм. Описание действий при работе с базой данных.

    практическая работа [1,0 M], добавлен 13.02.2011

  • Программы системы "1С: Предприятие". Разработка, издание и поддержка компьютерных программ делового и домашнего назначения. Требования к техническому и программному обеспечению и к интерфейсам операционной системы. Средства разработки презентации.

    курсовая работа [2,6 M], добавлен 08.03.2015

  • Разработка программы для вычисления производительности труда рабочих цеха. Описание среды и языка программирования. Требования к программному и аппаратному обеспечению. Математическая модель решения задачи. Методы тестирования. Техника безопасности.

    курсовая работа [2,6 M], добавлен 29.03.2013

  • Реализация программ для работы с большим объемом информации, записанной в файлах. Набор инструментальных и алгоритмических средств для разработки программы. Структура данных, описание основных модулей. Требования к программному и аппаратному обеспечению.

    курсовая работа [712,0 K], добавлен 13.08.2012

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

    контрольная работа [5,2 M], добавлен 02.12.2014

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

    курсовая работа [2,7 M], добавлен 25.04.2012

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