Разработка программного обеспечения 'Телефонный справочник'

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    3,8 Мб
  • Опубликовано:
    2012-06-06
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программного обеспечения 'Телефонный справочник'

Введение

автоматизация телефонный справочник программный

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

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

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

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

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

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

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

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

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

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

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

1. Характеристика предприятия

Алейский центр телекоммуникаций (ЦТ) впервые был образован 25 марта в 1951 году. В задачи тогдашнего управления, согласно «Положения об областном управлении наркомсвязи» от 31 декабря 1939г входило руководство всеми видами связи общего пользования (почта, телеграф, телефон, радио), радиофикация, распространение и экспедирование печати, технического состояния и эксплуатации всех видов связи и радиовещания.

На данный момент Алейский центр телекоммуникаций является структурным подразделением регионального филиала «Алтайтелеком» ОАО «Сибирьтелеком».

В состав центра телекоммуникаций входят цеха обслуживающие средства связи на территории г.Алейска и Алейского района.

В своей деятельности Алейский центр телекоммуникаций руководствуется действующим законодательством РФ, Уставом ОАО «Сибирьтелеком». Его место нахождения г.Алейск, ул. Комсомольская 120.

Основными задачами Алейского центра телекоммуникаций являются:

Ø  предоставление услуг местной и внутризоновой телефонной связи;

Ø  предоставление услуг местной, междугородной и международной связи с использованием таксофонов и пунктов коллективного пользования;

·   предоставление услуг междугородной и международной связи;

·   предоставление услуг подвижной радиотелефонной связи;

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

·   предоставление услуг персонального радиодоступа;

·   предоставление услуг аренды каналов связи;

·   предоставление услуг телематических служб;

·   предоставление услуг передачи данных;

·   предоставление услуг телеграфной связи;

·   предоставление услуг проводного вещания;

·   предоставление услуг радиовещания с использованием передающего оборудования;

·   предоставление услуг местной телефонной связи с использованием средств радиодоступа;

·   строительство, капитальный ремонт, реконструкция, расширение, техническое перевооружение сооружений связи;

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

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

·   техническое обслуживание, ремонт и продажа контрольно-кассовых машин;

·   техническое обслуживание, ремонт и продажа средств связи;

·   монтаж, ремонт и техническое обслуживание систем охранной сигнализации;

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

·   приоритетное предоставление услуг и средств связи в интересах обороны, государственного управления, безопасности и правопорядка;

·   выполнение мероприятий по обеспечению услугами связи в чрезвычайных ситуациях;

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

·   оказание консультационных, научно-технических, рекламных услуг;

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

·   производство работ по монтажу, ремонту и обслуживанию средств обеспечения пожарной безопасности зданий и сооружений, деятельность по предупреждению и тушению пожаров;

·   транспортное обслуживание (в том числе перевозка пассажиров, грузов автотранспортом), ремонт и техническое обслуживание автотранспортных средств;

·   осуществление деятельности по эксплуатации опасных производственных объектов;

·   осуществление операций с ценными бумагами;

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

·   производство, передача и распределение электрической и тепловой энергии;

·   оказание коммунально-бытовых, социально-культурных, жилищно-коммунальных и гостиничных услуг.

2. Экономическая сущность задачи

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

2.1 Первичные документы

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

Ø  При обращении в центр телекоммуникаций частное лицо пишет заявление о заключении договора об оказании услуг телефонной связи.

Который содержит следующие пункты (ФИО, адрес, жилое место подлежащее телефонизации, документы подтверждающие право заявителя на данную жилую площадь, наличие бонусов(льгот), дата договора. (Рисунок приложения А-2)

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

Ø  При обращении в центр телекоммуникаций организации пишут заявление о заключении договора об оказании услуг телефонной связи. Который должен содержать следующие пункты (наименование организации, адрес, паспорт ,помещение подлежащее телефонизации, документы, подтверждающие право заявителя на данную площадь, дата договора.(Рисунок приложения А-1)

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

.2 Сводные документы

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

а) Расчетный счет и счет (Отражаются оплаты за выполнение различных операций и подводятся итоги за отчетный период(Рисунок приложения Г-3, Г4)

б) Список частных лиц, организаций, тарифов (выводит все данные об организациях и частных лицах и тарифах на печать(Русунок приложения Г-5, Г-6, Г-7)

в) Заявление частных лиц и организаций (выводятся на печать заявление(Рисунок приложения Г-1, Г-2)

2.3 Процесс ручной обработки исходных данных и формирование результатов

Процесс обработки первичных документов и получение выходных документов выглядит следующим образом (рисунок 1):

Рисунок 1-процесс обработки первичных документов

З-заявление клиента

О- оплата клиента

СЗ- список заявлений оператора

Т- тарифы отдела продаж

РО- реестр оплат отдела продаж

С-счета клиенту

Данная схема отражает потоки информации при ручной обработке данных:

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

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

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

2.4 Выводы и предложения

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

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

Ø  Вывод отчетов на печать

Ø  Производит расчет по тарифу каждого абонента (частных лиц и организаций)

3. Предлагаемое программное обеспечение и изменение технологии обработки данных

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

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

3.1 Характеристика вычислительной техники и общего программного обеспечения

Минимальные системные требования программного продукта «телефонный справочник»

Ø  Процессор Pentium с тактовой частотой не ниже 166 МГц (рекомендуется Pentium III 1.6 МГц или выше);

Ø  Оперативая память - 64 Мбайт (рекомендуется 128 Мбайт или выше);

Ø  Графическая память - 32Мбайт (рекомендуется 64 Мбайт или выше)

Ø  Свободного места на диске - 12Мбайт (для полной установки программы)

Ø  Операционная система - WINDOWS XP SP-1

Ø  Программное обеспечение - Microsoft Office 2003, (Полная Word, Excel, Access)

Характеристика ОС

Операционная система Microsoft Windows XP, создана на основе технологии NT и является прямой наследницей системы Windows 2000. Вместе с тем, все лучшие нововведения, включенные в Windows Me, можно обнаружить и в Windows XP. При сохранении высоких показателей надежности, безопасности и быстродействия, система стала более простой в освоении, в ней появилось множество средств, предназначенных для индивидуальных домашних пользователей. Система поставляется в нескольких вариантах, ориентированных на разные особенности применения. Версия Microsoft Windows XP Home Edition предназначена для индивидуальных пользователей, чаще всего работающих на домашнем компьютере. В этой версии особый упор сделан на работу с рисунками, аудио и видео. Версия Microsoft Windows XP Professional предназначена, как ясно из названия, для профессионалов. Эта версия наиболее часто используется в организациях. Если же вы дома выполняете сложные работы по созданию и редактированию изображений, моделированию и конструированию, или любые другие сложные работы, то эта версия подойдет и для вашего домашнего компьютера.

Следует отметить, что для эффективной работы с операционной системой Windows XP требуется достаточно мощный современный компьютер. В версии Windows XP сильно изменился внешний вид системы. Кнопки, значки, панели теперь выглядят немного иначе. Даже главное меню Windows изменилось. Изменения интерфейса самые значительные после перехода с Windows 3.1 на Windows 95. Вместе с тем имеется возможность использовать и старый интерфейс, если вы к нему привыкли. Вы можете работать с программой, которая написана для Windows 95, и не работает в2000. Все версии Windows XP имеют множество нововведений.

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

Универсальный проигрыватель аудио и видео теперь поддерживает больше форматов и позволяет сменить свой внешний вид. Вы можете сами создавать звуковые файлы в популярном формате МРЗ. Универсальный проигрыватель поддерживает также воспроизведение цифровых видеодисков (DVD-дисков). Для развлечений в Windows XP включено несколько новых игр, часть из которых позволяют вам играть в Интернете. Существенно

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

Улучшенная поддержка технологии Plug & Play позволяет подключить к компьютеру многие современные бытовые приборы. Дальнейшее развитие

получили и средства для работы с Интернетом. Существенно переработана справочная система, улучшена система безопасности. Многочисленные изменения коснулись средств администрирования и управления работой множества пользователей в локальной вычислительной сети. В системе имеется и множество других нововведений.

Характеристика среды программирования

В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать. Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах. Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом. Бурное развитие вычислительной техники, потребность в

эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development - среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании RAD-систем -фантастическая!- это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal. В настоящее время программистам стала доступна очередная версия пакета Delphi - Borland Delphi 7 Studio. Как и предыдущие версии, Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы, решение других задач. Отличительной особенностью седьмой версии является поддержка технологии .NET. Borland Delphi 7 Studio может работать в среде операционных систем от Windows 98 до Windows 7. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron с тактовой частотой не ниже 166 МГц, оперативной памяти - 128 Мбайт, свободного места на диске (для полной установки версии Enterprise необходимо приблизительно 475 Мбайт).

3.2 Программы и их описание

.2.1 Структуры данных

Структура баз данных разработанной информационной системы (рисунок 2) (таблица 3.2.1.1-3.2.1.4)

Рисунок 2- структура баз данных

Таблица 3.2.1.1 - Частные лица (Sprav_f)

Наименование поля

Описание

Тип

Длина

kod

Номер записи

Счетчик

-

fio

Фамилия Имя Отчество

Текстовый

50

nom

Номер телефона

Текстовый

7

nas_punkt

Название населенного пункта

Текстовый

20

adres

Адрес проживания

Текстовый

35

bonus

Бонусы, предоставляемые абонентам (льготы)

Текстовый

100

tarif

Тарифный план (номер)

Числовой

1


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

Таблица 3.2.1.2 - База организаций(Sprav_u)

Наименование поля

Описание

Тип

Длина

kod

Номер записи

Счетчик

-

naimen

Наименование организации

Текстовый

50

nom

Номер телефона


7

nas_punkt

Населенный пункт

Текстовый

20

adres

Адрес организации

Текстовый

35

tarif

Тарифный план (номер)

Числовой

1


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

Таблица3.2.1. 3 - База журнала оплат(Gurnal)

Наименование поля

Описание

Тип

Длина

kod

Номер записи

Счетчик

-

data_opl

Дата оплаты

Дата/время

-

sum

Сумма оплаты

Числовой

-

kod_ab

Код абонента

Числовой

-


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

Таблица 3.2.1.4 - База тарифов(Tarif)

Наименование поля

Описание

Тип

Длина

kod

Номер записи

Счетчик

-

naimen

Тарифный план

Текстовый

20

ab_f

Абонентская плата частных лиц

Текстовый

5

ab_u

Абонентская плата организаций

Текстовый

5

min_f

Стоимость минуты разговора частным лицам

Текстовый

5

min_u

Стоимость минуты разговора организациям

Текстовый

5


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

3.2.2 Описание полей, переменных и процедур

procedure TF_Glavn.BitBtn1Click(Sender: TObject);- выход из программы;

procedure TF_Glavn.Button1Click(Sender: TObject);-открытие формы База данных справочника;

procedure TF_Glavn.Button3Click(Sender: TObject);-открытие справки руководство пользователю;

procedure TF_Glavn.Button2Click(Sender: TObject);-открытие формы сведения;TF_Glavn.Button4Click(Sender: TObject);-открытие формы о разработчике; TF_Glavn.N3Click(Sender: TObject);- открывает форму организации через меню база данных справочника;

procedure TF_Glavn.N8Click(Sender: TObject);-открывает справку руководство пользователю из меню справка;

procedure TF_Glavn.N9Click(Sender: TObject);-открывает форму о разработчике из меню справка;

procedure TF_Glavn.N2Click(Sender: TObject);- открывает форму частные лица из меню база данных справочника;TF_Glavn.N5Click(Sender: TObject);- открывает форму тарифы из меню сведения;TF_Glavn.N6Click(Sender: TObject);- открывает форму расчетный журнал из меню сведения;

procedure TF_baza.Button1Click(Sender: TObject);-открывает форму частные лица;TF_baza.Button2Click(Sender: TObject);-открывает форму организации;TF_baza.Button3Click(Sender: TObject);-закрывает форму сведения; filtr;-процедура фильтрации частных лиц;

procedure TF_Chastnie.Button1Click(Sender: TObject);-отккрытие формы добавление частных лиц;

procedure TF_Chastnie.Button2Click(Sender: TObject);-открытие формы редактирование частных лиц;

procedure TF_Chastnie.Button3Click(Sender: TObject);- открытие формы удалить для частных лиц;

procedure TF_Chastnie.FormShow(Sender: TObject);- открытие формы частные;TF_Chastnie.Edit1Change(Sender: TObject);-фильтрация по ФИО для частных лиц;TF_Chastnie.Edit2Change(Sender: TObject);-фильтрация по номеру абонента для частных лиц;TF_Chastnie.Edit3Change(Sender: TObject);-фильтрация по населенному пункту для частных лиц;TF_Chastnie.Edit4Change(Sender: TObject);-фильтрация по адресу для частных лиц;TF_Chastnie.Button6Click(Sender: TObject);-процедура открытия всех абонентов; TF_Chastnie.FormCreate(Sender: TObject);- процедура вывода на печать телефонного справочника;

procedure TF_Chastnie.Button5Click(Sender: TObject);-выводит на печать частные лица;

procedure TF_Chastnie.Button7Click(Sender: TObject);-закрытие формы частные лица;

procedure filtr;-процедура фильтрации организаций;

procedure TF_Organiz.FormShow(Sender: TObject);-открытие формы организации;TF_Organiz.Button1Click(Sender: TObject);-открытия формы добавление организаций;TF_Organiz.Button2Click(Sender: TObject);- открытие формы редактирование организаций;TF_Organiz.Button3Click(Sender: TObject);-открытие формы удаление организации;TF_Organiz.Button6Click(Sender: TObject);-выводит список всех обонентов;TF_Organiz.Button5Click(Sender: TObject);- выводит на печать список организаций;TF_Organiz.FormCreate(Sender: TObject);- формирование телефонного справочника для организаций;TF_Organiz.Edit1Change(Sender: TObject);-поиск по полю организация;TF_Organiz.Edit2Change(Sender: TObject);-поиск по полю номер телефона;TF_Organiz.Edit3Change(Sender: TObject);-поиск по полю населенный пункт;TF_Organiz.Edit4Change(Sender: TObject);-поиск по полю адрес;TF_Organiz.Button4Click(Sender: TObject);-закрытие формы организации;TF_del_chastnie.BitBtn2Click(Sender: TObject);-закрытие формы удалить для частных лиц;tF_del_chastnie.BitBtn1Click(Sender: TObject);-удаление частных лиц;TF_del_organiz.BitBtn2Click(Sender: TObject);-закрытие формы удалить для организаций;TF_del_organiz.BitBtn1Click(Sender: TObject);-удаление организаций;TF_del_tarif.BitBtn2Click(Sender: TObject);-закрытие формы удалить для тарифа;TF_del_tarif.BitBtn1Click(Sender: TObject);-удаление тарифа;TF_dob_chastnie.FormShow(Sender: TObject);-очистка полей в форме добавить для частных лиц;TF_dob_chastnie.Button2Click(Sender: TObject);- закрытие формы добавить для частных лиц;TF_dob_chastnie.Button1Click(Sender: TObject);- добавляет данные в частные лица;TF_dob_chastnie.FormCreate(Sender: TObject);- процедура формирования заявления для частных лиц;TF_dob_chastnie.Edit_fioChange(Sender: TObject);- ограничение ввода в поле ФИО для частных лиц;TF_dob_chastnie.Edit_nomChange(Sender: TObject);- ограничение ввода в поле номер для частных лиц;TF_dob_chastnie.Button3Click(Sender: TObject);- процедура формирования заявления для частны лиц;TF_dob_organiz.Button2Click(Sender: TObject);-закрытие формы добавление организаций;TF_dob_organiz.FormShow(Sender: TObject);-очистка полей в форме добавить организации;TF_dob_organiz.Button1Click(Sender: TObject);-добавляет данные в организации;TF_dob_organiz.Edit_nomChange(Sender: TObject);- ограничение ввода в поле номер для организаций;TF_dob_organiz.FormCreate(Sender: TObject);- процедура формирования заявления для организаций;TF_dob_organiz.Button3Click(Sender: TObject);- процедура формирования заявления для организаций;TF_dob_tarif.FormShow(Sender: TObject);- открытие формы добавить для тарифов;TF_dob_tarif.Edit_ab_fChange(Sender: TObject);- ограничение ввода в поле абонентская плата для частных лиц;TF_dob_tarif.Edit_ab_uChange(Sender: TObject);- ограничение ввода в поле абонентская плата для организаций; TF_dob_tarif.Edit_min_fChange(Sender: TObject);- ограничение ввода в поле стоимость минуты разговора для частных лиц;

procedure TF_dob_tarif.Edit_min_uChange(Sender: TObject);- ограничение ввода в поле стоимость минуты разговора для организаций ;

procedure TF_dob_tarif.Button2Click(Sender: TObject);-закрытие формы добавление тарифа;TF_dob_tarif.Button1Click(Sender: TObject);- добавление данных в таблицу тарифов; filtr;- процедура фильтрации расчетного журнала;buton;- процедура активации кнопки оплатить;

procedure TF_Gurnal.FormShow(Sender: TObject);- процедура присоединения к выбору списка ФИО/Организация;

procedure TF_Gurnal.ComboBox1Change(Sender: TObject);- ограничение ввода в списке выбора ФИО/Организация;

procedure TF_Gurnal.Edit1Change(Sender: TObject);- ограничение ввода в поле количество минут;

procedure TF_Gurnal.Button1Click(Sender: TObject)- добавление записи в расчетный журнал;

procedure TF_Gurnal.Edit2Change(Sender: TObject);- ограничение ввода в поле сумма;TF_Gurnal.Edit3Change(Sender: TObject);- поиск по

ФИО/Организация;TF_Gurnal.Edit4Change(Sender: TObject);- поиск по дате оплаты;TF_Gurnal.RadioGroup2Click(Sender: TObject);- процедура сортировки по ФИО/Организация;TF_Gurnal.RadioGroup1Click(Sender: TObject);- процедура поиска, сортировки в расчетном журнале;TF_Gurnal.FormCreate(Sender: TObject);-формирует отчет;TF_Gurnal.Button2Click(Sender: TObject);-закрытие формы расчетный журнал;TF_Gurnal.Button3Click(Sender: TObject);-очистка журнала;TF_Ochist_Gurn.BitBtn2Click(Sender: TObject);- закрытие формы очистка журнала;TF_Ochist_Gurn.BitBtn1Click(Sender: TObject);- процедура очистки расчетного журнала;TF_Razrab.BitBtn1Click(Sender: TObject);-закрытие формы о разработчике;TF_red_chastnie.FormShow(Sender: TObject);- процедура отображения полей при редактирование для частных лиц;TF_red_chastnie.Button2Click(Sender: TObject);- закрытие окна редактирования для частных лиц;TF_red_chastnie.Button1Click(Sender: TObject);- процедура редактирования полей;TF_red_organiz.Button1Click(Sender: TObject);- редактирование тарифов;TF_red_organiz.FormShow(Sender: TObject);- процедура отображения полей при редактирование организаций;TF_red_organiz.Button2Click(Sender: TObject);-закрытие формы редактирование организаций;TF_red_tarif.FormShow(Sender: TObject);- процедура отображения полей при редактирование для тарифов;TF_red_tarif.Edit_ab_fChange(Sender: TObject); ограничение ввода в поле минут для тарифов;TF_red_tarif.Edit_ab_uChange(Sender: TObject);- ограничение ввода в поле минут для организаций;TF_red_tarif.Edit_min_fChange(Sender: TObject);- ограничение ввода в поле минут для частных лиц;TF_red_tarif.Button2Click(Sender: TObject);- закрытие окна редактирования для тарифов;TF_red_tarif.Button1Click(Sender: TObject);- редактирование тарифов;TF_svedenia.Button1Click(Sender: TObject);-открытие формы сведения;TF_svedenia.Button2Click(Sender: TObject);-открытие формы расчетный журнал;TF_svedenia.Button3Click(Sender: TObject);-закрытие формы сведения;TF_Tarif.Button1Click(Sender: TObject);- открытие формы добавить для тарифов;TF_Tarif.Button2Click(Sender: TObject);- открытие формы редактировать для тарифов;TF_Tarif.Button3Click(Sender: TObject);- открытие формы удалить для тарифов;TF_Tarif.FormCreate(Sender: TObject);- вывод на печать таблицы тарифов;TF_Tarif.Button4Click(Sender: TObject);- формирование таблицы тарифов для вывода печати;TF_Tarif.Button5Click(Sender: TObject);-закрытие формы тарифы;

3.2.3 Результат работы программы

Результатом работы является быстрый и удобный поиск абонентов в базе, расчет тарифов и начисление абонентской платы за оказанные услуги телефонной связи, расчетный журнал формирует счет (рисунок Г4, Г3) из полученных данных. Автоматически формирует заявление на предоставление услуг телефонной связи. Осуществляет хранение, обработку, большого объема данных.

3.2.4 Руководство работы с программой

Из папки Телефонный справочник запустить файл «Телефонный справочник.exe» (рисунок 3).

Рисунок 3 - Телефонный справочник.exe

Появится главное меню программы (рисунок 4)

Рисунок 4-Главное меню «Телефонного справочника»

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

Ø  Всплывающее меню «База данных справочника»- отображает информацию о частных лицах и организациях

Ø  Всплывающее меню «Сведения»- отображает информацию о тарифах и расчетного журнала

Ø  Всплывающее меню «Справка»- отображает справочные сведенья данного программного продукта

Также на главном меню имеется аналогичное меню в виде кнопок:

Ø  Кнопка главного меню «База данных справочника» - данная кнопка осуществляет переход к в меню база данных где можно выбрать «частные лица» и «организации» телефонного справочника(рисунок-5)

Рисунок 5- меню «база данных справочника»

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

Рисунок-6 «Частные лица»

Для добавления частных лиц нажимаем на кнопку «Добавить данные», и откроется окно «добавить частные лица» (рисунок 7)

Рисунок-7 «Добавить частные лица»

Вводим данные об абонентах частных лиц и при завершении нажать кнопку «Добавить» и данное частное лицо добавится в список , если хотим чтобы открылось заявление которое выводится на печать то нажимаем на кнопку «заявление». Если не предпринимаются не какие действия, то необходимо нажать на кнопку «Закрыть» и данное меню закроется.

Для редактирования абонентов частных лиц нажимаем на кнопку «редактирование данных» откроется следующее окно «редактирование частных лиц» (рисунок 8)

Рисунок 8 «редактирование частных лиц»

После изменения всех данных нажимаем изменить и запись изменится. Если все же передумали изменять, нажимаем на кнопку «закрыть форма закроется»

При удалении абонента нажимаем на кнопку «удалить данные» откроется окно «удаление частных лиц» на подтверждения удалить запись «да» или «нет» (рисунок 9)

Рисунок-9 «удаление частных лиц»

Так же на форме «частные лица» можно осуществить поиск абонентов

С помощью панели «фильтрация» поиск осуществляется по ФИО абонента, номер телефона, населенный пункт, адрес. (рисунок-10)

Рисунок 10 «Фильтрация данных»

Также имеются кнопки, позволяющие быстро перемещаться по записям табличной части вперед, назад, к началу списка и в конец списка (рисунок 11), также имеется кнопка выбор всех абонентов она позволяет обновить данные справочника чтобы в дальнейшем все записи которые сформируются выводились на печать(рисунок 12). Имеется кнопка «печать» она выводит всех абонентов частных лиц на печать(рисунок 13).

Рисунок 11-» кнопка навигатор»

Рисунок 12- «все абоненты»

Рисунок 13- «выводит частные лица на печать»

Закрываем форму «частные лица» и нажимаем на кнопку «Организации» появится окно абонентов справочника Организаций (рисунок-14). «

Рисунок-14 «Организации»

Для добавления организаций нажимаем на кнопку «Добавить данные», и откроется окно «добавление организаций» (рисунок 15)

Рисунок-15 «добавление организаций»

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

Для редактирования абонентов организации нажимаем на кнопку «редактирование данных» откроется следующее окно «редактирование организаций» (рисунок 16)

Рисунок 16 «редактирование организаций»

После изменения всех данных нажимаем изменить запись изменится. Если все же передумали изменять нажимаем на кнопку «закрыть форма закроется»

При удалении абонента нажимаем на кнопку «удалить данные» откроется окно «удаление организаций» на подтверждения удалить запись «да» или «нет» (рисунок 17)

Рисунок-17 «удаление организаций»

Так же на форме «организации» можно осуществить поиск абонентов

С помощью панели «фильтрация» поиск осуществляется по полям организация, номер телефона, населенный пункт, адрес. (рисунок-18)

Рисунок -18 «Фильтрация данных»

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

Рисунок 19- «кнопка навигатор»

Рисунок 20- «все абоненты»

Рисунок 21-» выводит организации на печать»

Вернемся в главное меню:

Ø  Кнопка «Сведения»- данная кнопка осуществляет переход в меню «сведения» где можно выбрать «тарифы» и «расчетный журнал» телефонного справочника (рисунок22)

Рисунок 22- меню «Сведения»

Нажимаем на кнопку ««тарифы» откроется форма тарифов(рисунок 23)

Рисунок 23- «Тарифы»

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

Рисунок 24- «Добавление тарифа»

Для редактирования выбрать из формы тариф и нажать кнопку «Редактировать». В появившемся окне будут исходные данные тарифа, которые необходимо отредактировать (рисунок 25), при завершении редактирования нажать кнопку «Изменить» запись изменится, а для отмены действий и закрытия окна нажать кнопку «Отмена» форма закроется.

Рисунок 25- «Редактирование тарифа»

При удалении тарифа нажимаем на кнопку «удалить» откроется окно «удаление тарифа» на подтверждения удалить запись «да» или «нет» (рисунок 26)

Рисунок 26- «Удаление тарифа»

Также на форме тарифы существует кнопка навигация и вывод на печать.

Вернемся в меню «сведения» нажимаем на кнопку «Расчетный журнал» откроется форма расчетного журнала (рисунок 27)

Рисунок 27- расчетный журнал

Для произведения оплаты выбрать необходимый параметр лица или организации: частные лица или организации, в ФИО/Организация выбираем абонента или организацию, указываем количество минут, тариф показывает задолженность или переплату, сумма начисления это сумма денег, уплаченная частными лицами или организацией. Кнопка «Оплатить» осуществляет начисление по выбранному абоненту, так же выполняет нужные расчеты для начисления и формирует счет для частных лиц, а для организаций расчетный счет. Также есть кнопки, позволяющие быстро перемещаться по записям табличной части вперед, назад, к началу списка и в конец списка . При вводе данных в поля группы «Поиск, сортировка данных» производится быстрый поиск данных в базе, и результат отражается в табличной части.

Также на форме «расчетный журнал» имеется кнопка «очистка журнала» При нажатии на кнопку «Очистка журнала». При этом появится предупреждение: «очистить журнал?», если да нажать кнопку «Очистить», для отмены действия нажать кнопку «Отмена» (рисунок 28)

Рисунок 28 - «Очистка журнала»

Ø  Кнопка «руководство пользователю» - содержит инструкцию пользования данного программного продукта «телефонный справочник»

Ø  Кнопка «о разработчике» содержит информацию о создателе программного продукта «телефонный справочник»(рисунок 29)

Рисунок 29- «О разработчике»

3.3 Изменения технологии обработки данных

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

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



4. Оценка затрат на разработку ПО

.1 Методика расчета

Для расчётов используются «Функционально ориентированные метрики».

Функционально ориентированные метрики - косвенно измеряют программный продукт и процесс его разработки. Рассматриваются функциональность и полезность продукта. Используются 5 информационных характеристик:

1)      Количество внешних входов, т.е., подсчитываются все вводы пользователя по которым, поступают все прикладные данные. Вводы должны быть отделены от запросов.

2)      Количество внешних выводов (отчёты, экраны, сообщения об ошибках, распечатки) внутри каждого элемента.

3)      Количество внешних запросов. Запрос - это диалоговый ввод, который приводит к немедленному программному ответу в форме диалогового вывода, при этом диалоговый ввод в приложении не сохраняется, а диалоговый вывод не требует выполнения вычислений.

4)      количество внутренних логических файлов, т.е., логические группы данных, которые могут быть частью базы данных или отдельным файлом.

5)      Количество внешних интерфейсных файлов. Подсчитываются все логические файлы из других приложений, на которые ссылается данное приложение.

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

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

2)      Внешний вывод - это элементарный процесс, перемещающий данные, вычисленные в приложении во внешнюю среду. В этом процессе могут обновляться внутренние логические файлы. Данные создают отчёты или выходные файлы, посылаемые другим приложением. Отчёты и файлы создаются на основе внутренних логических файлов и внешних интерфейсных файлов. Дополнительно этот процесс может использовать вводимые данные. Их образуют критерии поиска и параметры, не поддерживаемые внутренними логическими файлами. Вводимые данные поступают из вне, но носят временный характер и не сохраняются во внутреннем логическом файле (ВЛФ).

3)      Внешний запрос - это элементарный процесс, работающий как с вводимыми, так и выводимыми данными. Его результат это данные, возвращаемые из внутренних логических файлов и внешних интерфейсных файлов. Входная часть процесса не модифицирует данных ВЛФ, а выходная часть не несёт данных вычисляемых приложением.

4)      ВЛФ - это распознаваемая пользователем группа логически связанных данных, которая размещается внутри приложения и обслуживается через внешние вводы.

5)      Внешний интерфейсный файл - это распознаваемая пользователем группа логически связанных данных, которая размещена внутри другого приложения и поддерживается им. Внешний файл данного приложения является внутренним логическим файлом в другом приложении.

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

Таблица. Примеры элементов данных

Внешние вводы

Входной элемент приложения (входной элемент или экранная форма): поля ввода данных, сообщения об ошибках, вычисляемые значения, кнопки.

Внешние выводы

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

Внешние запросы

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


Таблица.Ранг и Оценка сложности внешних вводов:

Ссылки на файлы

Элементы данных


1-4

5-15

>15

0-1

Низкий=3

Низкий=3

Средний=4

2

Низкий=3

Средний=4

Высокий=6

>2

Средний=4

Высокий=6

Высокий=6


Таблица.Ранг и Оценка сложности внешних выводов:

Ссылки на файлы

Элементы данных


1-4

5-19

>19

0-1

Низкий=4

Низкий=4

Средний=6

2-3

Низкий=4

Средний=5

Высокий=7

>3

Средний=5

Высокий=7

Высокий=7


Ранг и Оценка сложности внешних запросов:

Ссылки на файлы

Элементы данных


1-4

5-19

>19

0-1

Низкий=3

Низкий=3

Средний=4

2-3

Низкий=3

Средний=4

Высокий=6

>3

Средний=4

Высокий=6

Высокий=6

Таблица.Ранг и Оценка сложности внутренних логических файлов:

Количество полей

Количество записей


1-19

20-50

>50

1

Низкий=7

Низкий=7

Средний=10

2-5

Низкий=7

Средний=10

Высокий=15

>5

Средний=10

Высокий=15

Высокий=15


По данным таблицам анализируется созданная программа и каждый её элемент.

Таблица. Данные для расчета сводятся в таблицу:

Имя характеристики

Ранг, сложность, количество.


Низкий

Средний

Высокий

Итого

Внешние вводы

i*3=___

i*4 =____

i*6 =____

= i

Внешние выводы

i*4=___

i*5 =____

i*7 =____

= i

Внешние запросы

i*3=___

i*4 =____

i*6 =____

= i

Внутренние логические файлы

i*7=___

i*10=____

i*15 =____

= i

Общее количество =i


Количество функциональных указателей вычисляется по формуле:


где - Fi - коэффициенты регулировки сложности.- может иметь значения: 0-нет влияния; 1-случайное; 2-небольшое; 3-среднее; 4-важное; 5-основное.- сколько средств связи требуется для передачи или обмена информации с приложением.- как обрабатываются распределённые данные.- нуждается ли пользователь в фиксации времени ответа или производительности.- насколько распространена текущая аппаратная система на которой будет выполнятся приложение.- как часто выполняются транзакции.- какой % информации вводится в оперативном режиме.- приложение проектировалось для обеспечения эффективной работы конечного пользователя.- как много внутренних файлов обновляется в транзакции.- выполняет ли приложение интенсивную логическую или математическую обработку.- приложение разрабатывалась для удовлетворения требований одного или многих пользователей.- насколько трудны инсталляция и преобразование приложения.- насколько эффективно и/или автоматизированы процедуры запуска, резервирования и восстановления.- была ли спроектирована, разработана и поддержана возможность инсталляции в разных местах для различных организаций.- была ли спроектирована, разработана и поддержана в приложении простота изменений.

После вычисления FP на его основе формируются метрики трудоемкости, стоимости и т.д.:

Используем для расчетов метрическое значение производительности из базиса некоторой фирмы:


Произведем расчет следующих характеристик:


4.2 Оценка размера программного продукта

Ранг и оценка сложности внешних вводов (таблица 4.2.1 - 4.2.19).

Таблица 4.2.1 - Форма:» F_dob_chastnie «

Ссылка на файлы

Элементы данных



14

1


Низкий=3


Таблица 4.2.2 - Форма:» F_dob_tarif «

Ссылка на файлы

Элементы данных



12

1


Низкий=3


Таблица 4.2.3 - Форма:» F_dob_organiz «

Ссылка на файлы

Элементы данных



12

1


Низкий=3


Ранг и оценка сложности внешних выводов

Таблица 4.2.4 - Форма:»F_red_chastnie «

Ссылка на файлы

Элементы данных



14

1


Низкий=4


Таблица 4.2.5 - Форма:»F_red_organiz»

Ссылка на файлы

Элементы данных



12

1


Низкий=4


Таблица 4.2.6 - Форма:»F_red_tarif»

Ссылка на файлы

Элементы данных



12

1


Низкий=4


Таблица 4.2.7 - Форма:»F_Glavn»

Ссылка на файлы

Элементы данных



6

4


Высокий=7


Ранг и оценка сложности внешних запросов

Таблица 4.2.8 - Форма:»F_Razrab»

Ссылка на файлы

Элементы данных



6

1


Низкий=3


Таблица 4.2.9 - Форма:»F_chastnie»

Ссылка на файлы

Элементы данных



18

2


Средний=4


Таблица 4.2.10 Форма:»F_organiz»

Ссылка на файлы

Элементы данных



18

2


Средний=4


Таблица 4.2.11 - Форма:»F_Tarif»

Ссылка на файлы

Элементы данных



7

2


Средний=4


Таблица 4.2.12 - Форма:»F_Gurnal»

Ссылка на файлы

Элементы данных



26

6


Высокий=6


Таблица 4.2.13 - Форма:»F_ochist_gurn»

Ссылка на файлы

Элементы данных



5

1


Низкий=3


Таблица 4.2.14 - Форма:»F_del_chastnie»

Ссылка на файлы

Элементы данных



5

1


Низкий=3


Таблица 4.2.15 - Форма:»F_del_organiz»

Ссылка на файлы

Элементы данных



5

1


Низкий=3


Таблица 4.2.16 - Форма:»F_del_tarif»

Ссылка на файлы

Элементы данных



5

1


Низкий=3


Таблица 4.2.17 - Форма:»F_baza»

Ссылка на файлы

Элементы данных



5

1


Низкий=3


Таблица 4.2.17 - Форма:»F_svedenia»

Ссылка на файлы

Элементы данных



5

1


Низкий=3


Ранг и оценка сложности внутренних логических файлов

Таблица 4.2.18 - db1.mdb

Количество полей

Количество записей



>50

>5


Высокий=15


Анализ программы

Таблица 4.2.19 - Расчет

Имя характеристики

Ранг, сложность, количество.


Низкий

Средний

Высокий

Итого

Внешние вводы

3*3=9

0*4 =0

0*6 =0

= 9

Внешние выводы

3*4=12

0*5 =0

1*7 =7

=19

Внешние запросы

7*3=21

3*4 =12

1*6 =6

=39

Внутренние логические файлы

0*7=0

0*10 =0

1*15 =15

= 15

Общее количество:

82


Расчет FP

Таблица 4.2.20

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

F11

F12

F13

F14

2

4

5

3

3

4

5

3

5

5

4

4

5

5

= 82 * (0.65 + 0.01 * 57)=100.04

4.3 Оценка трудоемкости программного продукта

Трудоемкость = 100,04/25.5=3.93 (чел-мес)

4.4 Оценка стоимости

Стоимость = 3.93* 2000 = 7860 (руб)

Документированность = 58 / 100.04 = 5.81 (FP)

Заключение

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

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

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

Список литературы

.«Delphi 7. Учебный курс» Бобровский С. И издательство «Питер» г. Санкт-Петербург 2004 год. Иллюстрированный самоучитель по Delphi для профессионалов

.«Программирование баз данных в Delphi 7» Фаронов В.В. издательство «Питер» г. Санкт-Петербург 2005 год.

.Справочное руководство по Delphi.

.Электронный учебник «Delphi 7 для начинающих».

.Автоматизированные информационные технологии в экономике: Учебник/ Под ред. проф Г.А. Титоренко. - М.: Компьютер, ЮНИТИ, 1999 г.

.Ананьев П.И. Технология разработки программного обеспечения: Учебное пособие/ Алт. ГТУ им. Ползунова. - Барнаул: 2000 г.

.Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. - Харьков: Фолио; Ростов н/Д: Феникс, 1997г.

.Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие. - М.:Гелиос АРВ, 2002 г.

.Информатика. Учеб.пособие для студентов пед.вузов/ Могилев А.В., Н.И. Пак, Е.К. Хённер; Под рд. Е.К. Хённера. - М., 1999 г.

.Фаронов В. Программирование баз данных в Delphi7. Учебный курс. - Питер, 2003 г.

.Лекции по дисциплине «РиЭАИС»

Приложение

Приложение А (документы)

Рисунок А-1

Рисунок А-2

Рисунок А-3

Рисунок А-4

Приложение Б (текст программы)

program Tel_Spravochnik;,_Glavn in 'U_Glavn.pas' {F_Glavn},_Chastnie in 'U_Chastnie.pas' {F_Chastnie},_dob_chastnie in 'U_dob_Chastnie.pas' {F_dob_chastnie},_red_chastnie in 'U_red_chastnie.pas' {F_red_chastnie},_del_Chastnie in 'U_del_Chastnie.pas' {F_del_Chastnie},_Gurnal in 'U_Gurnal.pas' {F_Gurnal},_Ochist_Gurn in 'U_Ochist_Gurn.pas' {F_Ochist_Gurn},_Organiz in 'U_Organiz.pas' {F_Organiz},_dob_organiz in 'U_dob_organiz.pas' {F_dob_organiz},_red_organiz in 'U_red_organiz.pas' {F_red_organiz},_del_organiz in 'U_del_organiz.pas' {F_del_organiz},_Tarif in 'U_Tarif.pas' {F_Tarif},_dob_tarif in 'U_dob_tarif.pas' {F_dob_tarif},_red_tarif in 'U_red_tarif.pas' {F_red_tarif},_del_tarif in 'U_del_tarif.pas' {F_del_tarif},_Razrab in 'U_Razrab.pas' {F_Razrab},_baza in 'U_baza.pas' {F_baza},_svedenia in 'U_svedenia.pas' {F_svedenia};

{$R *.res}.Initialize;.CreateForm(TF_Glavn, F_Glavn);.CreateForm(TF_Chastnie, F_Chastnie);.CreateForm(TF_dob_chastnie, F_dob_chastnie);.CreateForm(TF_red_chastnie, F_red_chastnie);.CreateForm(TF_del_Chastnie, F_del_Chastnie);.CreateForm(TF_Gurnal, F_Gurnal);.CreateForm(TF_Ochist_Gurn, F_Ochist_Gurn);.CreateForm(TF_Organiz, F_Organiz);.CreateForm(TF_dob_organiz, F_dob_organiz);.CreateForm(TF_red_organiz, F_red_organiz);.CreateForm(TF_del_organiz, F_del_organiz);.CreateForm(TF_Tarif, F_Tarif);.CreateForm(TF_dob_tarif, F_dob_tarif);.CreateForm(TF_red_tarif, F_red_tarif);.CreateForm(TF_del_tarif, F_del_tarif);.CreateForm(TF_Razrab, F_Razrab);.CreateForm(TF_baza, F_baza);.CreateForm(TF_svedenia, F_svedenia);.Run;.U_Glavn;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Menus, Buttons, StdCtrls, jpeg, ExtCtrls, DB, ADODB, ComObj;_Glavn = class(TForm): TADOConnection;: TBitBtn;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TButton;: TButton;: TImage;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TButton;: TButton;BitBtn1Click(Sender: TObject);Button1Click(Sender: TObject);Button3Click(Sender: TObject);Button2Click(Sender: TObject);Button4Click(Sender: TObject);FormCreate(Sender: TObject);N3Click(Sender: TObject);N8Click(Sender: TObject);N9Click(Sender: TObject);N2Click(Sender: TObject);N5Click(Sender: TObject);N6Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_Glavn: TF_Glavn;:string;: variant;U_Chastnie, U_Gurnal, U_Organiz, U_Tarif, U_Razrab, U_baza, U_svedenia;

U_baza;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, jpeg, ExtCtrls;_baza = class(TForm): TButton;: TButton;: TButton;: TImage;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_baza: TF_baza;U_Chastnie, U_Organiz;

{$R *.dfm}TF_baza.Button1Click(Sender: TObject);_Chastnie.Show;TF_baza.Button2Click(Sender: TObject);_Organiz.Show;TF_baza.Button3Click(Sender: TObject);;.U_Chastnie;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, ComObj,;_Chastnie = class(TForm): TADOQuery;: TDataSource;: TDBGrid;: TDBNavigator;: TGroupBox;: TButton;: TButton;: TButton;: TGroupBox;: TEdit;: TLabel;: TEdit;: TLabel;: TLabel;: TEdit;: TLabel;: TEdit;: TButton;: TButton;: TButton;: TImage;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);FormShow(Sender: TObject);Edit1Change(Sender: TObject);Edit2Change(Sender: TObject);Edit3Change(Sender: TObject);Edit4Change(Sender: TObject);Button6Click(Sender: TObject);FormCreate(Sender: TObject);Button5Click(Sender: TObject);Button7Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_Chastnie: TF_Chastnie;:variant;:string;U_Glavn, U_dob_Chastnie, U_red_Chastnie, U_del_Chastnie;

{$R *.dfm}filtr;_Chastnie.ADOQuery1.Active:=false;_Chastnie.ADOQuery1.SQL.Clear;_Chastnie.ADOQuery1.SQL.Add('select * from sprav_f where (fio like '+#39+F_Chastnie.Edit1.Text+'%'+#39+')and('

+'nom like '+#39+F_Chastnie.Edit2.Text+'%'+#39+')and(nas_punkt like '+#39+_Chastnie.Edit3.Text+'%'+#39+')and(adres like '+#39+F_Chastnie.Edit4.Text+'%'+#39+') order by fio');_Chastnie.ADOQuery1.Active:=true;;

TF_Chastnie.Button1Click(Sender: TObject);_dob_chastnie.Show;TF_Chastnie.Button2Click(Sender: TObject);_red_chastnie.Show;TF_Chastnie.Button3Click(Sender: TObject);_del_Chastnie.Show;TF_Chastnie.Button4Click(Sender: TObject);.Active:=false;.SQL.Clear;.SQL.Add('select * from [sprav_f] where [sal_nach] like '+#39+'-%'+#39);.Active:=true;.Text:='';.Text:='';.Text:='';.Text:='';;TF_Chastnie.FormShow(Sender: TObject);.Text:='';.Text:='';.Text:='';.Text:='';;TF_Chastnie.Edit1Change(Sender: TObject);;;TF_Chastnie.Edit2Change(Sender: TObject);;;TF_Chastnie.Edit3Change(Sender: TObject);;;TF_Chastnie.Edit4Change(Sender: TObject);;;TF_Chastnie.Button6Click(Sender: TObject);.Active:=false;.SQL.Clear;.SQL.Add('select * from sprav_f');.Active:=true;.Text:='';.Text:='';.Text:='';.Text:='';;TF_Chastnie.FormCreate(Sender: TObject);(0,MyDir);;TF_Chastnie.Button5Click(Sender: TObject);i:integer;:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\частные лица лица.xls');.First;:=4;not ADOQuery1.Eof do.WorkBooks[1].WorkSheets[1].Cells[i,1]:=i-3;.WorkBooks[1].WorkSheets[1].Cells[i,2]:=ADOQuery1.FieldByName('fio').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,3]:=ADOQuery1.FieldByName('nom').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,4]:=ADOQuery1.FieldByName('nas_punkt').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,5]:=ADOQuery1.FieldByName('adres').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,6]:=ADOQuery1.FieldByName('tarif').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,7]:=ADOQuery1.FieldByName('bonus').AsString;:=i+1;.Next;;.Visible:=true;;TF_Chastnie.Button7Click(Sender: TObject);;.U_del_chastnie;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, Buttons, jpeg, ExtCtrls;_del_chastnie= class(TForm): TBitBtn;: TBitBtn;: TADOQuery;: TImage;: TStaticText;BitBtn2Click(Sender: TObject);BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_del_chastnie: tF_del_chastnie;U_Glavn, U_chastnie;

{$R *.dfm}tF_del_chastnie.BitBtn2Click(Sender: TObject);;tF_del_chastnie.BitBtn1Click(Sender: TObject);.SQL.Clear;.SQL.Add('delete from sprav_f where kod='+F_chastnie.ADOQuery1.FieldByName('kod').AsString);.ExecSQL;_chastnie.ADOQuery1.Active:=false;_chastnie.ADOQuery1.Active:=true;_chastnie.Edit1.Text:='';_chastnie.Edit2.Text:='';_chastnie.Edit3.Text:='';_chastnie.Edit4.Text:='';;.U_Del_organiz;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, DB, ADODB, jpeg, ExtCtrls;_del_organiz = class(TForm): TADOQuery;: TBitBtn;: TBitBtn;: TImage;: TLabel;BitBtn2Click(Sender: TObject);BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_del_organiz: TF_del_organiz;U_Glavn, U_organiz;

{$R *.dfm}TF_del_organiz.BitBtn2Click(Sender: TObject);;TF_del_organiz.BitBtn1Click(Sender: TObject);.SQL.Clear;.SQL.Add('delete from sprav_u where kod='+F_Organiz.ADOQuery1.FieldByName('kod').AsString);.ExecSQL;_Organiz.ADOQuery1.Active:=false;_Organiz.ADOQuery1.Active:=true;;;.U_del_tarif;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, Buttons, jpeg, ExtCtrls;_del_tarif = class(TForm): TBitBtn;: TBitBtn;: TADOQuery;: TImage;: TLabel;BitBtn2Click(Sender: TObject);BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_del_tarif: TF_del_tarif;U_Glavn, U_Tarif, U_dob_Chastnie, U_red_chastnie, U_dob_organiz, U_red_organiz;

{$R *.dfm}TF_del_tarif.BitBtn2Click(Sender: TObject);;TF_del_tarif.BitBtn1Click(Sender: TObject);.SQL.Clear;.SQL.Add('delete from tarif where kod='+F_Tarif.ADOQuery1.FieldByName('kod').AsString);.ExecSQL;_Tarif.ADOQuery1.Active:=false;_Tarif.ADOQuery1.Active:=true;_red_organiz.ADOQuery2.Active:=false;_red_organiz.ADOQuery2.Active:=true;_red_chastnie.ADOQuery2.Active:=false;_red_chastnie.ADOQuery2.Active:=true;_dob_organiz.ADOQuery2.Active:=false;_dob_organiz.ADOQuery2.Active:=true;_dob_chastnie.ADOQuery2.Active:=false;_dob_chastnie.ADOQuery2.Active:=true;;;.U_dob_Chastnie;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DB, ADODB, DBCtrls, ComObj, jpeg, ExtCtrls;_dob_chastnie = class(TForm)_fio: TEdit;_nom: TEdit;_adr: TEdit;_lg: TEdit;: TDBLookupComboBox;: TADOQuery;: TDataSource;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TButton;: TADOQuery;: TComboBox;: TButton;FormShow(Sender: TObject);Button2Click(Sender: TObject);Button1Click(Sender: TObject);FormCreate(Sender: TObject);Edit_fioChange(Sender: TObject);Edit_nomChange(Sender: TObject);Button3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_dob_chastnie: TF_dob_chastnie;:variant;:string;U_Glavn, U_chastnie;

{$R *.dfm}TF_dob_chastnie.FormShow(Sender: TObject);.Active:=false;.Active:=true;_fio.Text:='';_nom.Text:='';_adr.Text:='';_lg.Text:='';.Text:='';;TF_dob_chastnie.Button2Click(Sender: TObject);;TF_dob_chastnie.Button1Click(Sender: TObject);(Edit_fio.Text<>'')and(Edit_nom.Text<>'')and(length(Edit_nom.Text)=5)and(Edit_adr.Text<>'')and(ComboBox1.Text<>'')and(DBLookupComboBox2.Text<>'')then:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\Заявление.xls');.WorkBooks[1].WorkSheets[1].Cells[12,5]:=Edit_fio.Text;.WorkBooks[1].WorkSheets[1].Cells[14,2]:=Edit_adr.Text;.WorkBooks[1].WorkSheets[1].Cells[26,5]:=Edit_lg.Text;.WorkBooks[1].WorkSheets[1].Cells[34,8]:=datetostr(date);.SQL.Clear;.SQL.Add('insert into sprav_f (fio,nom,nas_punkt,adres,bonus,tarif) values ('

+#39+Edit_fio.Text+#39+','+#39+Edit_nom.Text[1]+Edit_nom.Text[2]

+'-'+Edit_nom.Text[3]+'-'+Edit_nom.Text[4]+Edit_nom.Text[5]+#39+','

+#39+ComboBox1.Text+#39+','+#39+Edit_adr.Text+#39+','

+#39+Edit_lg.Text+#39+','+ADOQuery2.FieldByName('kod').AsString+')');.ExecSQL;_Chastnie.ADOQuery1.Active:=false;_Chastnie.ADOQuery1.Active:=true;_Chastnie.Edit1.Text:='';_Chastnie.Edit2.Text:='';_Chastnie.Edit3.Text:='';_Chastnie.Edit4.Text:='';.Visible:=FALSE;;ShowMessage('Данные не соответствуют.');;TF_dob_chastnie.FormCreate(Sender: TObject);(0,MyDir);;TF_dob_chastnie.Edit_fioChange(Sender: TObject);n:string;length(Edit_fio.Text)<>0 then(Edit_fio.Text[Length(Edit_fio.Text)]='1')or(Edit_fio.Text[Length(Edit_fio.Text)]='2')or

(Edit_fio.Text[Length(Edit_fio.Text)]='3')or(Edit_fio.Text[Length(Edit_fio.Text)]='4')or

(Edit_fio.Text[Length(Edit_fio.Text)]='5')or(Edit_fio.Text[Length(Edit_fio.Text)]='6')or

(Edit_fio.Text[Length(Edit_fio.Text)]='7')or(Edit_fio.Text[Length(Edit_fio.Text)]='8')or

(Edit_fio.Text[Length(Edit_fio.Text)]='9')or(Edit_fio.Text[Length(Edit_fio.Text)]='0')then

begin('Вы не можете использовать цифры при вводе ФИО!');

n:=Edit_fio.Text;(n,length(n),1);_fio.Text:=n;;;TF_dob_chastnie.Edit_nomChange(Sender: TObject);n:string;Length(Edit_nom.Text)<>0 then(Edit_nom.Text[Length(Edit_nom.Text)]='1')or(Edit_nom.Text[Length(Edit_nom.Text)]='2')or

(Edit_nom.Text[Length(Edit_nom.Text)]='3')or(Edit_nom.Text[Length(Edit_nom.Text)]='4')or

(Edit_nom.Text[Length(Edit_nom.Text)]='5')or(Edit_nom.Text[Length(Edit_nom.Text)]='6')or

(Edit_nom.Text[Length(Edit_nom.Text)]='7')or(Edit_nom.Text[Length(Edit_nom.Text)]='8')or

(Edit_nom.Text[Length(Edit_nom.Text)]='9')or(Edit_nom.Text[Length(Edit_nom.Text)]='0')then

else('Вы не можете использовать буквы при вводе номера!');

n:=Edit_nom.Text;(n,length(n),1);_nom.Text:=n;;;TF_dob_chastnie.Button3Click(Sender: TObject);(Edit_fio.Text<>'')and(Edit_nom.Text<>'')and(length(Edit_nom.Text)=5)and(Edit_adr.Text<>'')and(ComboBox1.Text<>'')and(DBLookupComboBox2.Text<>'')then:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\Заявление.xls');.WorkBooks[1].WorkSheets[1].Cells[12,5]:=Edit_fio.Text;.WorkBooks[1].WorkSheets[1].Cells[14,2]:=Edit_adr.Text;.WorkBooks[1].WorkSheets[1].Cells[26,5]:=Edit_lg.Text;.WorkBooks[1].WorkSheets[1].Cells[34,8]:=datetostr(date);.SQL.Clear;.SQL.Add('insert into sprav_f (fio,nom,nas_punkt,adres,bonus,tarif) values ('

+#39+Edit_fio.Text+#39+','+#39+Edit_nom.Text[1]+Edit_nom.Text[2]

+'-'+Edit_nom.Text[3]+'-'+Edit_nom.Text[4]+Edit_nom.Text[5]+#39+','

+#39+ComboBox1.Text+#39+','+#39+Edit_adr.Text+#39+','

+#39+Edit_lg.Text+#39+','+ADOQuery2.FieldByName('kod').AsString+')');.ExecSQL;_Chastnie.ADOQuery1.Active:=false;_Chastnie.ADOQuery1.Active:=true;_Chastnie.Edit1.Text:='';_Chastnie.Edit2.Text:='';_Chastnie.Edit3.Text:='';_Chastnie.Edit4.Text:='';.Visible:=true;;ShowMessage('Данные не соответствуют.');;.U_dob_organiz;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, DBCtrls, ComObj, jpeg, ExtCtrls;_dob_organiz = class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;_fio: TEdit;_nom: TEdit;_adr: TEdit;: TDBLookupComboBox;: TButton;: TButton;: TADOQuery;: TDataSource;: TADOQuery;: TComboBox;: TButton;Button2Click(Sender: TObject);FormShow(Sender: TObject);Button1Click(Sender: TObject);Edit_nomChange(Sender: TObject);FormCreate(Sender: TObject);Button3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_dob_organiz: TF_dob_organiz;:variant;:string;U_Glavn, U_chastnie, U_Organiz;

{$R *.dfm}TF_dob_organiz.Button2Click(Sender: TObject);;TF_dob_organiz.FormShow(Sender: TObject);_fio.Text:='';_nom.Text:='';_adr.Text:='';.Text:='';;TF_dob_organiz.Button1Click(Sender: TObject);(Edit_fio.Text<>'')and(Edit_nom.Text<>'')and(Edit_adr.Text<>'')and

(ComboBox1.Text<>'')and(DBLookupComboBox2.Text<>'')then:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\Заявление2.xls');.WorkBooks[1].WorkSheets[1].Cells[12,5]:=Edit_fio.Text;.WorkBooks[1].WorkSheets[1].Cells[14,2]:=Edit_adr.Text;.WorkBooks[1].WorkSheets[1].Cells[34,8]:=datetostr(date);.SQL.Clear;.SQL.Add('insert into sprav_u (naimen,nom,adres,[nas_punkt],tarif) values ('

+#39+Edit_fio.Text+#39+','+#39+Edit_nom.Text[1]+Edit_nom.Text[2]+'-'

+Edit_nom.Text[3]+'-'+Edit_nom.Text[4]+Edit_nom.Text[5]+#39+','+#39+Edit_adr.Text+#39

+','+#39+ComboBox1.Text+#39+','+ADOQuery2.FieldByName('kod').AsString+')');.ExecSQL;_Organiz.ADOQuery1.Active:=false;_Organiz.ADOQuery1.Active:=true;.Visible:=false;;ShowMessage('Вы ввели не все данные!');;TF_dob_organiz.Edit_nomChange(Sender: TObject);n:string;Length(Edit_nom.Text)<>0 then(Edit_nom.Text[Length(Edit_nom.Text)]='1')or(Edit_nom.Text[Length(Edit_nom.Text)]='2')or

(Edit_nom.Text[Length(Edit_nom.Text)]='3')or(Edit_nom.Text[Length(Edit_nom.Text)]='4')or

(Edit_nom.Text[Length(Edit_nom.Text)]='5')or(Edit_nom.Text[Length(Edit_nom.Text)]='6')or

(Edit_nom.Text[Length(Edit_nom.Text)]='7')or(Edit_nom.Text[Length(Edit_nom.Text)]='8')or

(Edit_nom.Text[Length(Edit_nom.Text)]='9')or(Edit_nom.Text[Length(Edit_nom.Text)]='0')then

else('Вы не можете использовать буквы при вводе номера!');

n:=Edit_nom.Text;(n,length(n),1);_nom.Text:=n;;;TF_dob_organiz.FormCreate(Sender: TObject);(0,MyDir);;TF_dob_organiz.Button3Click(Sender: TObject);(Edit_fio.Text<>'')and(Edit_nom.Text<>'')and(Edit_adr.Text<>'')and

(ComboBox1.Text<>'')and(DBLookupComboBox2.Text<>'')then:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\Заявление2.xls');.WorkBooks[1].WorkSheets[1].Cells[12,5]:=Edit_fio.Text;.WorkBooks[1].WorkSheets[1].Cells[14,2]:=Edit_adr.Text;.WorkBooks[1].WorkSheets[1].Cells[34,8]:=datetostr(date);.SQL.Clear;.SQL.Add('insert into sprav_u (naimen,nom,adres,[nas_punkt],tarif) values ('

+#39+Edit_fio.Text+#39+','+#39+Edit_nom.Text[1]+Edit_nom.Text[2]+'-'

+Edit_nom.Text[3]+'-'+Edit_nom.Text[4]+Edit_nom.Text[5]+#39+','+#39+Edit_adr.Text+#39

+','+#39+ComboBox1.Text+#39+','+ADOQuery2.FieldByName('kod').AsString+')');.ExecSQL;_Organiz.ADOQuery1.Active:=false;_Organiz.ADOQuery1.Active:=true;.Visible:=true;;ShowMessage('Вы ввели не все данные!');;.U_dob_tarif;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DB, ADODB, jpeg, ExtCtrls;_dob_tarif = class(TForm): TLabel;_tar: TEdit;: TLabel;_ab_f: TEdit;: TLabel;_ab_u: TEdit;: TLabel;_min_f: TEdit;: TLabel;_min_u: TEdit;: TButton;: TButton;: TADOQuery;FormShow(Sender: TObject);Edit_ab_fChange(Sender: TObject);Edit_ab_uChange(Sender: TObject);Edit_min_fChange(Sender: TObject);Edit_min_uChange(Sender: TObject);Button2Click(Sender: TObject);Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_dob_tarif: TF_dob_tarif;U_Glavn, U_Tarif, U_dob_chastnie, U_dob_organiz, U_red_chastnie, U_red_organiz;

{$R *.dfm}TF_dob_tarif.FormShow(Sender: TObject);_tar.Text:='';_ab_f.Text:='0';_ab_u.Text:='0';_min_f.Text:='0';_min_u.Text:='0';;TF_dob_tarif.Edit_ab_fChange(Sender: TObject);n:string;Length(Edit_ab_f.Text)<>0 then(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='1')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='2')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='3')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='4')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='5')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='6')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='7')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='8')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='9')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='0')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='.')then

else('Вы не можете использовать буквы при вводе!');

n:=Edit_ab_f.Text;(n,length(n),1);_ab_f.Text:=n;;Edit_ab_f.Text='' then Edit_ab_f.Text:='0';;TF_dob_tarif.Edit_ab_uChange(Sender: TObject);n:string;Length(Edit_ab_u.Text)<>0 then(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='1')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='2')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='3')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='4')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='5')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='6')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='7')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='8')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='9')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='0')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='.')then

else('Вы не можете использовать буквы при вводе!');

n:=Edit_ab_u.Text;(n,length(n),1);_ab_u.Text:=n;;Edit_ab_u.Text='' then Edit_ab_u.Text:='0';;TF_dob_tarif.Edit_min_fChange(Sender: TObject);n:string;Length(Edit_min_f.Text)<>0 then(Edit_min_f.Text[Length(Edit_min_f.Text)]='1')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='2')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='3')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='4')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='5')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='6')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='7')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='8')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='9')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='0')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='.')then

else('Вы не можете использовать буквы при вводе!');

n:=Edit_min_f.Text;(n,length(n),1);_min_f.Text:=n;;Edit_min_f.Text='' then Edit_min_f.Text:='0';;TF_dob_tarif.Edit_min_uChange(Sender: TObject);n:string;Length(Edit_min_u.Text)<>0 then(Edit_min_u.Text[Length(Edit_min_u.Text)]='1')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='2')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='3')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='4')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='5')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='6')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='7')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='8')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='9')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='0')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='.')then

else('Вы не можете использовать буквы при вводе!');

n:=Edit_min_u.Text;(n,length(n),1);_min_u.Text:=n;;Edit_min_u.Text='' then Edit_min_u.Text:='0';;TF_dob_tarif.Button2Click(Sender: TObject);;TF_dob_tarif.Button1Click(Sender: TObject);Edit_tar.Text<>'' then.SQL.Clear;.SQL.Add('insert into tarif (naimen,[ab_f],[ab_u],[min_f],[min_u]) values ('

+#39+Edit_tar.Text+#39+','+#39+Edit_ab_f.Text+#39+','+#39+Edit_ab_u.Text+#39

+','+#39+Edit_min_f.Text+#39+','+#39+Edit_min_u.Text+#39+')');.ExecSQL;_Tarif.ADOQuery1.Active:=false;_Tarif.ADOQuery1.Active:=true;_red_organiz.ADOQuery2.Active:=false;_red_organiz.ADOQuery2.Active:=true;_red_chastnie.ADOQuery2.Active:=false;_red_chastnie.ADOQuery2.Active:=true;_dob_organiz.ADOQuery2.Active:=false;_dob_organiz.ADOQuery2.Active:=true;_dob_chastnie.ADOQuery2.Active:=false;_dob_chastnie.ADOQuery2.Active:=true;;ShowMessage('Введите наименование тарифа!');;.U_Gurnal;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, DBCtrls, DB, Grids, DBGrids, ADODB, StdCtrls, Menus, ComObj,;_Gurnal = class(TForm): TADOQuery;: TDBGrid;: TDataSource;: TDBNavigator;: TGroupBox;: TRadioGroup;: TLabel;: TEdit;: TLabel;: TLabel;_Nachisl: TLabel;: TEdit;: TLabel;: TButton;: TGroupBox;: TLabel;: TEdit;: TLabel;: TEdit;: TRadioGroup;: TADOQuery;: TDataSource;: TComboBox;: TADOQuery;: TADOTable;_tarif: TLabel;: TLabel;: TButton;: TImage;: TButton;FormShow(Sender: TObject);ComboBox1Change(Sender: TObject);Edit1Change(Sender: TObject);Button1Click(Sender: TObject);Edit2Change(Sender: TObject);Edit3Change(Sender: TObject);Edit4Change(Sender: TObject);RadioGroup2Click(Sender: TObject);N1Click(Sender: TObject);RadioGroup1Click(Sender: TObject);FormCreate(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_Gurnal: TF_Gurnal;:string;:variant;:string;U_Glavn, U_chastnie, U_Ochist_gurn, U_organiz;

{$R *.dfm}filtr;F_Gurnal.RadioGroup1.ItemIndex=0 thenF_Gurnal.RadioGroup2.ItemIndex=0 then sort:=' order by fio'sort:=' order by data_opl';F_Gurnal.RadioGroup2.ItemIndex=0 then sort:=' order by naimen'sort:=' order by data_opl';;_Gurnal.ADOQuery1.Active:=false;_Gurnal.ADOQuery1.SQL.Clear;F_Gurnal.RadioGroup1.ItemIndex=0 then_Gurnal.ADOQuery1.SQL.Add('select g.kod,fio,data_opl,sum from gurnal as g,sprav_f as s where (g.kod_ab=s.kod)and(fio like '

+#39+F_Gurnal.Edit3.Text+'%'+#39+')and(data_opl like '+#39+F_Gurnal.Edit4.Text+'%'+#39+')'+sort)_Gurnal.ADOQuery1.SQL.Add('select g.kod,naimen,data_opl,sum from gurnal as g,sprav_u as s where (g.kod_ab=s.kod)and(naimen like '

+#39+F_Gurnal.Edit3.Text+'%'+#39+')and(data_opl like '+#39+F_Gurnal.Edit4.Text+'%'+#39+')'+sort);_Gurnal.ADOQuery1.Active:=true;;buton;(F_Gurnal.ComboBox1.Text<>'')and(F_Gurnal.Edit1.Text<>'0')and(F_Gurnal.Edit2.Text<>'0')F_Gurnal.Button1.Enabled:=trueF_Gurnal.Button1.Enabled:=false;;TF_Gurnal.FormShow(Sender: TObject);.Text:='';.Text:='';.Items.Clear;.First;not ADOQuery2.Eof doRadioGroup1.ItemIndex=0 then.Items.Add(ADOQuery2.FieldByName('fio').AsString).Items.Add(ADOQuery2.FieldByName('sprav_u.naimen').AsString);.Next;;;TF_Gurnal.ComboBox1Change(Sender: TObject);n:string;length(ComboBox1.Text)<>0 then(ComboBox1.Text[Length(ComboBox1.Text)]='1')or(ComboBox1.Text[Length(ComboBox1.Text)]='2')or

(ComboBox1.Text[Length(ComboBox1.Text)]='3')or(ComboBox1.Text[Length(ComboBox1.Text)]='4')or

(ComboBox1.Text[Length(ComboBox1.Text)]='5')or(ComboBox1.Text[Length(ComboBox1.Text)]='6')or

(ComboBox1.Text[Length(ComboBox1.Text)]='7')or(ComboBox1.Text[Length(ComboBox1.Text)]='8')or

(ComboBox1.Text[Length(ComboBox1.Text)]='9')or(ComboBox1.Text[Length(ComboBox1.Text)]='0')then

begin('Вы не можете использовать цифры при вводе ФИО\Организации!');

n:=ComboBox1.Text;(n,length(n),1);.Text:=n;;RadioGroup1.ItemIndex=0 then.Locate('fio',ComboBox1.Text,[]).Locate('sprav_u.naimen',ComboBox1.Text,[]);.Locate('kod',ADOQuery2.FieldByName('tarif').AsString,[]);_tarif.Caption:=ADOQuery2.FieldByName('tarif').AsString;l_tarif.Caption='' then l_tarif.Caption:='0';.Text:='0';ComboBox1.Text='' then_tarif.Caption:='0';_Nachisl.Caption:='0';;;;TF_Gurnal.Edit1Change(Sender: TObject);n:string;Length(Edit1.Text)<>0 then(Edit1.Text[Length(Edit1.Text)]='1')or(Edit1.Text[Length(Edit1.Text)]='2')or

(Edit1.Text[Length(Edit1.Text)]='3')or(Edit1.Text[Length(Edit1.Text)]='4')or

(Edit1.Text[Length(Edit1.Text)]='5')or(Edit1.Text[Length(Edit1.Text)]='6')or

(Edit1.Text[Length(Edit1.Text)]='7')or(Edit1.Text[Length(Edit1.Text)]='8')or

(Edit1.Text[Length(Edit1.Text)]='9')or(Edit1.Text[Length(Edit1.Text)]='0')then

else('Вы не можете использовать буквы при вводе кол-ва минут!');

n:=Edit1.Text;(n,length(n),1);.Text:=n;;Edit1.Text='' then.Text:='0';_Nachisl.Caption:='0';;_Nachisl.Caption:=floattostr(strtoint(Edit1.Text)*ADOQuery2.FieldByName('min_f').AsFloat+ADOQuery2.FieldByName('ab_f').AsFloat-strtofloat(l_tarif.Caption));;;TF_Gurnal.Button1Click(Sender: TObject);dat,summa,kodik:string;RadioGroup1.ItemIndex=0 then:=datetostr(date);:=Edit2.Text;:=ADOQuery2.FieldByName('sprav_f.kod').AsString;.SQL.Clear;.SQL.Add('insert into gurnal ([data_opl],[sum],[kod_ab]) values ('+#39+dat+#39+','+summa+','+kodik+')');.ExecSQL;.SQL.Clear;:=floattostr(strtofloat(Edit2.Text)-strtofloat(Label_Nachisl.Caption));.SQL.Add('update [sprav_f] set [TARIF]='+#39+summa+#39+' where kod='+kodik);.ExecSQL;:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\Счет.xls');.WorkBooks[1].WorkSheets[1].Cells[3,6]:=datetostr(date);.WorkBooks[1].WorkSheets[1].Cells[4,5]:=ComboBox1.Text;.WorkBooks[1].WorkSheets[1].Cells[5,4]:=ADOQuery2.FieldByName('adres').AsString;.WorkBooks[1].WorkSheets[1].Cells[13,8]:=Label_Nachisl.Caption;.WorkBooks[1].WorkSheets[1].Cells[16,6]:=datetostr(date);.WorkBooks[1].WorkSheets[1].Cells[17,5]:=ComboBox1.Text;.WorkBooks[1].WorkSheets[1].Cells[18,4]:=ADOQuery2.FieldByName('adres').AsString;.WorkBooks[1].WorkSheets[1].Cells[22,9]:=ADOQuery2.FieldByName('ab_f').AsString;.WorkBooks[1].WorkSheets[1].Cells[23,9]:=floattostr(strtoint(Edit1.Text)*ADOQuery2.FieldByName('min_f').AsFloat);.WorkBooks[1].WorkSheets[1].Cells[31,4]:=l_tarif.Caption;.WorkBooks[1].WorkSheets[1].Cells[31,6]:=Edit2.Text;.Visible:=true;_chastnie.ADOQuery1.Active:=false;_chastnie.ADOQuery1.Active:=true;.Active:=false;.Active:=true;.Active:=false;.Active:=true;:=datetostr(date);:=Edit2.Text;:=ADOQuery2.FieldByName('sprav_u.kod').AsString;.SQL.Clear;.SQL.Add('insert into gurnal ([data_opl],[sum],[kod_ab]) values ('+#39+dat+#39+','+summa+','+kodik+')');.ExecSQL;.SQL.Clear;:=floattostr(strtofloat(Edit2.Text)-strtofloat(Label_Nachisl.Caption));.SQL.Add('update [sprav_u] set [TARIF]='+#39+summa+#39+' where kod='+kodik);.ExecSQL;:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\расчетный счет.xls');;.WorkBooks[1].WorkSheets[1].Cells[6,3]:=inttostr(random(5000));.WorkBooks[1].WorkSheets[1].Cells[20,2]:=ADOTable1.FieldByName('naimen').AsString;.WorkBooks[1].WorkSheets[1].Cells[6,5]:=datetostr(date);.WorkBooks[1].WorkSheets[1].Cells[29,4]:=Label_Nachisl.Caption;.WorkBooks[1].WorkSheets[1].Cells[8,2]:=ComboBox1.Text;.WorkBooks[1].WorkSheets[1].Cells[9,4]:=ADOQuery2.FieldByName('adres').AsString;.WorkBooks[1].WorkSheets[1].Cells[29,2]:=l_tarif.Caption;.WorkBooks[1].WorkSheets[1].Cells[29,6]:=Edit2.Text;.Visible:=true;_organiz.ADOQuery1.Active:=false;_organiz.ADOQuery1.Active:=true;.Active:=false;.Active:=true;;.Active:=false;.Active:=true;.Text:='';.Text:='';.Text:='';;TF_Gurnal.Edit2Change(Sender: TObject);n:string;Edit2.Text='' then Edit2.Text:='0';Length(Edit2.Text)<>0 then(Edit2.Text[Length(Edit2.Text)]='1')or(Edit2.Text[Length(Edit2.Text)]='2')or

(Edit2.Text[Length(Edit2.Text)]='3')or(Edit2.Text[Length(Edit2.Text)]='4')or

(Edit2.Text[Length(Edit2.Text)]='5')or(Edit2.Text[Length(Edit2.Text)]='6')or

(Edit2.Text[Length(Edit2.Text)]='7')or(Edit2.Text[Length(Edit2.Text)]='8')or

(Edit2.Text[Length(Edit2.Text)]='9')or(Edit2.Text[Length(Edit2.Text)]='0')or

(Edit2.Text[Length(Edit2.Text)]=',')then

else('Вы не можете использовать буквы при вводе кол-ва минут!');

n:=Edit2.Text;(n,length(n),1);.Text:=n;;;;TF_Gurnal.Edit3Change(Sender: TObject);;;TF_Gurnal.Edit4Change(Sender: TObject);;;TF_Gurnal.RadioGroup2Click(Sender: TObject);;;TF_Gurnal.N1Click(Sender: TObject);_Ochist_gurn.Show;TF_Gurnal.RadioGroup1Click(Sender: TObject);.Text:='';.Text:='';.Text:='';RadioGroup1.ItemIndex=0 then.Active:=false;.SQL.Clear;.SQL.Add('select g.kod as Код,fio as ФИО,data_opl as [Дата оплаты],sum as Сумма from gurnal as g,sprav_f as s where (g.kod_ab=s.kod) order by fio');.Active:=true;.Active:=false;.SQL.Clear;.SQL.Add('select * from sprav_f,tarif where (sprav_f.tarif=tarif.kod) order by fio');.Active:=true;.First;.Items.Clear;not ADOQuery2.Eof do.Items.Add(ADOQuery2.FieldByName('fio').AsString);.Next;;.Active:=false;.SQL.Clear;.SQL.Add('select g.kod as Код,s.naimen as [Наименование организации],data_opl as [Дата оплаты],sum as Сумма from gurnal as g,sprav_u as s where (g.kod_ab=s.kod) order by s.naimen');.Active:=true;.Active:=false;.SQL.Clear;.SQL.Add('select * from sprav_u,tarif where (sprav_u.tarif=tarif.kod) order by sprav_u.naimen');.Active:=true;.First;.Items.Clear;not ADOQuery2.Eof do.Items.Add(ADOQuery2.FieldByName('sprav_u.naimen').AsString);.Next;;;;TF_Gurnal.FormCreate(Sender: TObject);(0,MyDir);;TF_Gurnal.Button2Click(Sender: TObject);;TF_Gurnal.Button3Click(Sender: TObject);_Ochist_gurn.Show;.U_Ochist_gurn;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, Buttons, jpeg, ExtCtrls;_Ochist_Gurn = class(TForm): TBitBtn;: TBitBtn;: TADOQuery;: TImage;: TLabel;BitBtn2Click(Sender: TObject);BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_Ochist_Gurn: TF_Ochist_Gurn;U_Glavn, U_Gurnal;

{$R *.dfm}TF_Ochist_Gurn.BitBtn2Click(Sender: TObject);;TF_Ochist_Gurn.BitBtn1Click(Sender: TObject);.SQL.Clear;.SQL.Add('delete from gurnal');.ExecSQL;_Gurnal.ADOQuery1.Active:=false;_Gurnal.ADOQuery1.Active:=true;;;.U_Organiz;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, ComObj,;_Organiz = class(TForm): TDBGrid;: TDBNavigator;: TGroupBox;: TButton;: TButton;: TButton;: TGroupBox;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TButton;: TADOQuery;: TDataSource;: TButton;: TImage;FormShow(Sender: TObject);Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);Button6Click(Sender: TObject);Button8Click(Sender: TObject);Button5Click(Sender: TObject);FormCreate(Sender: TObject);Edit1Change(Sender: TObject);Edit2Change(Sender: TObject);Edit3Change(Sender: TObject);Edit4Change(Sender: TObject);Button4Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_Organiz: TF_Organiz;:variant;:string;U_Glavn, U_dob_organiz, U_red_organiz, U_del_organiz;

{$R *.dfm}filtr;_Organiz.ADOQuery1.Active:=false;_Organiz.ADOQuery1.SQL.Clear;_Organiz.ADOQuery1.SQL.Add('select * from sprav_u where (naimen like '+#39+F_Organiz.Edit1.Text+'%'+#39+')and(nom like '

+#39+F_Organiz.Edit2.Text+'%'+#39+')and(nas_punkt like '+#39+F_Organiz.Edit3.Text+'%'+#39+')'

+'and(adres like '+#39+F_Organiz.Edit4.Text+'%'+#39+')');_Organiz.ADOQuery1.Active:=true;;TF_Organiz.FormShow(Sender: TObject);.Text:='';.Text:='';.Text:='';.Text:='';;TF_Organiz.Button1Click(Sender: TObject);_dob_organiz.Show;TF_Organiz.Button2Click(Sender: TObject);_red_organiz.Show;TF_Organiz.Button3Click(Sender: TObject);_Del_organiz.Show;TF_Organiz.Button6Click(Sender: TObject);.Active:=false;.SQL.Clear;.SQL.Add('select * from sprav_u order by naimen');.Active:=true;;TF_Organiz.Button8Click(Sender: TObject);.Active:=false;.SQL.Clear;.SQL.Add('select * from sprav_u where sal_nach<0 order by naimen');.Active:=true;;TF_Organiz.Button5Click(Sender: TObject);i:integer;:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\организации.xls');.First;:=4;not ADOQuery1.Eof do.WorkBooks[1].WorkSheets[1].Cells[i,1]:=i-3;.WorkBooks[1].WorkSheets[1].Cells[i,2]:=ADOQuery1.FieldByName('naimen').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,3]:=ADOQuery1.FieldByName('nom').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,4]:=ADOQuery1.FieldByName('nas_punkt').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,5]:=ADOQuery1.FieldByName('adres').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,6]:=ADOQuery1.FieldByName('tarif').AsString;:=i+1;.Next;;.Visible:=true;;TF_Organiz.FormCreate(Sender: TObject);(0,MyDir);;TF_Organiz.Edit1Change(Sender: TObject);;;TF_Organiz.Edit2Change(Sender: TObject);;;TF_Organiz.Edit3Change(Sender: TObject);;;TF_Organiz.Edit4Change(Sender: TObject);;;TF_Organiz.Button4Click(Sender: TObject);;.U_red_Chastnie;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, DBCtrls, jpeg, ExtCtrls;_red_chastnie = class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;_fio: TEdit;_nom: TEdit;_adr: TEdit;_lg: TEdit;: TButton;: TButton;: TADOQuery;: TDataSource;: TADOQuery;: TComboBox;: TComboBox;FormShow(Sender: TObject);Button2Click(Sender: TObject);Edit_fioChange(Sender: TObject);Edit_nomChange(Sender: TObject);Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_red_chastnie: TF_red_chastnie;U_chastnie;

{$R *.dfm}TF_red_chastnie.FormShow(Sender: TObject);_fio.Text:=F_Chastnie.ADOQuery1.fieldbyname('fio').AsString;_nom.Text:=F_Chastnie.ADOQuery1.fieldbyname('nom').AsString;_adr.Text:=F_Chastnie.ADOQuery1.fieldbyname('adres').AsString;_lg.Text:=F_Chastnie.ADOQuery1.fieldbyname('bonus').AsString;.First;.Items.Clear;not ADOQuery2.Eof do.Items.Add(ADOQuery2.FieldByName('naimen').AsString);.Next;;.Text:=F_Chastnie.ADOQuery1.FieldByName('nas_punkt').AsString;.Locate('kod',F_Chastnie.ADOQuery1.FieldByName('tarif').AsString,[]);.Text:=ADOQuery2.FieldByName('naimen').AsString;;TF_red_chastnie.Button2Click(Sender: TObject);;TF_red_chastnie.Edit_fioChange(Sender: TObject);n:string;length(Edit_fio.Text)<>0 then(Edit_fio.Text[Length(Edit_fio.Text)]='1')or(Edit_fio.Text[Length(Edit_fio.Text)]='2')or

(Edit_fio.Text[Length(Edit_fio.Text)]='3')or(Edit_fio.Text[Length(Edit_fio.Text)]='4')or

(Edit_fio.Text[Length(Edit_fio.Text)]='5')or(Edit_fio.Text[Length(Edit_fio.Text)]='6')or

(Edit_fio.Text[Length(Edit_fio.Text)]='7')or(Edit_fio.Text[Length(Edit_fio.Text)]='8')or

(Edit_fio.Text[Length(Edit_fio.Text)]='9')or(Edit_fio.Text[Length(Edit_fio.Text)]='0')then

begin('Вы не можете использовать цифры при вводе ФИО!');

n:=Edit_fio.Text;(n,length(n),1);_fio.Text:=n;;;TF_red_chastnie.Edit_nomChange(Sender: TObject);n:string;Length(Edit_nom.Text)<>0 then(Edit_nom.Text[Length(Edit_nom.Text)]='1')or(Edit_nom.Text[Length(Edit_nom.Text)]='2')or

(Edit_nom.Text[Length(Edit_nom.Text)]='3')or(Edit_nom.Text[Length(Edit_nom.Text)]='4')or

(Edit_nom.Text[Length(Edit_nom.Text)]='5')or(Edit_nom.Text[Length(Edit_nom.Text)]='6')or

(Edit_nom.Text[Length(Edit_nom.Text)]='7')or(Edit_nom.Text[Length(Edit_nom.Text)]='8')or

(Edit_nom.Text[Length(Edit_nom.Text)]='9')or(Edit_nom.Text[Length(Edit_nom.Text)]='0')or

(Edit_nom.Text[Length(Edit_nom.Text)]='-')then

else('Вы не можете использовать буквы при вводе номера!');

n:=Edit_nom.Text;(n,length(n),1);_nom.Text:=n;;;TF_red_chastnie.Button1Click(Sender: TObject);n:string;(Edit_fio.Text<>'')and(Edit_nom.Text<>'')and(length(Edit_nom.Text)=7)and(Edit_nom.Text[3]='-')and(Edit_nom.Text[5]='-')and(Edit_adr.Text<>'')and(ComboBox1.Text<>'')and(ComboBox2.Text<>'')then.Locate('naimen',ComboBox2.Text,[]);:=ADOQuery2.FieldByName('kod').AsString;.SQL.Clear;.SQL.Add('update sprav_f set fio='+#39+Edit_fio.Text+#39+',nom='+#39+Edit_nom.Text+#39+',adres='+

#39+Edit_adr.Text+#39+',bonus='+#39+Edit_lg.Text+#39+',nas_punkt='+#39+ComboBox1.Text+#39

+',tarif='+n+' where kod='+F_Chastnie.ADOQuery1.FieldByName('kod').AsString);.ExecSQL;_Chastnie.ADOQuery1.Active:=false;_Chastnie.ADOQuery1.Active:=true;_Chastnie.Edit1.Text:='';_Chastnie.Edit2.Text:='';_Chastnie.Edit3.Text:='';_Chastnie.Edit4.Text:='';;ShowMessage('Вы ввели некоректные данные.');;.U_red_organiz;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, DBCtrls, jpeg, ExtCtrls;_red_organiz = class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;_fio: TEdit;_nom: TEdit;_adr: TEdit;: TButton;: TButton;: TADOQuery;: TDataSource;: TADOQuery;: TComboBox;: TComboBox;Edit_nomChange(Sender: TObject);Button1Click(Sender: TObject);FormShow(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_red_organiz: TF_red_organiz;U_Glavn, U_organiz;

{$R *.dfm}TF_red_organiz.Edit_nomChange(Sender: TObject);n:string;Length(Edit_nom.Text)<>0 then(Edit_nom.Text[Length(Edit_nom.Text)]='1')or(Edit_nom.Text[Length(Edit_nom.Text)]='2')or

(Edit_nom.Text[Length(Edit_nom.Text)]='3')or(Edit_nom.Text[Length(Edit_nom.Text)]='4')or

(Edit_nom.Text[Length(Edit_nom.Text)]='5')or(Edit_nom.Text[Length(Edit_nom.Text)]='6')or

(Edit_nom.Text[Length(Edit_nom.Text)]='7')or(Edit_nom.Text[Length(Edit_nom.Text)]='8')or

(Edit_nom.Text[Length(Edit_nom.Text)]='9')or(Edit_nom.Text[Length(Edit_nom.Text)]='0')or

(Edit_nom.Text[Length(Edit_nom.Text)]='-')then

else('Вы не можете использовать буквы при вводе номера!');

n:=Edit_nom.Text;(n,length(n),1);_nom.Text:=n;;;TF_red_organiz.Button1Click(Sender: TObject);(Edit_fio.Text<>'')and(Edit_adr.Text<>'')and(Edit_nom.Text<>'')and

(ComboBox1.Text<>'')and(ComboBox2.Text<>'')then.SQL.Clear;.Locate('naimen',ComboBox2.Text,[]);.SQL.Add('update sprav_u set naimen='+#39+Edit_fio.Text+#39+',nom='+#39+Edit_nom.Text+#39+',adres='

+#39+Edit_adr.Text+#39+',nas_punkt='+#39+ComboBox1.Text+#39+',tarif='+.FieldByName('kod').AsString+' where kod='+F_Organiz.ADOQuery1.FieldByName('kod').AsString);.ExecSQL;_Organiz.ADOQuery1.Active:=false;_Organiz.ADOQuery1.Active:=true;;ShowMessage('Вы ввели не все данные!');;TF_red_organiz.FormShow(Sender: TObject);_fio.Text:=F_Organiz.ADOQuery1.FieldByname('naimen').AsString;_nom.Text:=F_Organiz.ADOQuery1.FieldByname('nom').AsString;_adr.Text:=F_Organiz.ADOQuery1.FieldByname('adres').AsString;.Text:=F_Organiz.ADOQuery1.FieldByName('nas_punkt').AsString;.First;.Items.Clear;not ADOQuery2.Eof do.Items.Add(ADOQuery2.FieldByName('naimen').AsString);.Next;;.Locate('kod',F_Organiz.ADOQuery1.FieldByName('tarif').AsString,[]);.Text:=ADOQuery2.FieldByName('naimen').AsString;;TF_red_organiz.Button2Click(Sender: TObject);;.U_red_tarif;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls;_red_tarif = class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;_tar: TEdit;_ab_f: TEdit;_ab_u: TEdit;_min_f: TEdit;_min_u: TEdit;: TButton;: TButton;: TADOQuery;FormShow(Sender: TObject);Edit_ab_fChange(Sender: TObject);Edit_ab_uChange(Sender: TObject);Edit_min_fChange(Sender: TObject);Edit_min_uChange(Sender: TObject);Button2Click(Sender: TObject);Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_red_tarif: TF_red_tarif;U_Glavn, U_Tarif, U_red_organiz, U_red_chastnie, U_dob_organiz, U_dob_chastnie;

{$R *.dfm}TF_red_tarif.FormShow(Sender: TObject);_tar.Text:=F_Tarif.ADOQuery1.FieldByName('naimen').AsString;_ab_f.Text:=F_Tarif.ADOQuery1.FieldByName('ab_f').AsString;_ab_u.Text:=F_Tarif.ADOQuery1.FieldByName('ab_u').AsString;_min_f.Text:=F_Tarif.ADOQuery1.FieldByName('min_f').AsString;_min_u.Text:=F_Tarif.ADOQuery1.FieldByName('min_u').AsString;;TF_red_tarif.Edit_ab_fChange(Sender: TObject);n:string;Length(Edit_ab_f.Text)<>0 then(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='1')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='2')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='3')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='4')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='5')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='6')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='7')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='8')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='9')or(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='0')or

(Edit_ab_f.Text[Length(Edit_ab_f.Text)]='.')then

else('Вы не можете использовать буквы при вводе!');

n:=Edit_ab_f.Text;(n,length(n),1);_ab_f.Text:=n;;Edit_ab_f.Text='' then Edit_ab_f.Text:='0';;TF_red_tarif.Edit_ab_uChange(Sender: TObject);n:string;Length(Edit_ab_u.Text)<>0 then(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='1')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='2')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='3')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='4')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='5')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='6')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='7')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='8')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='9')or(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='0')or

(Edit_ab_u.Text[Length(Edit_ab_u.Text)]='.')then

else('Вы не можете использовать буквы при вводе!');

n:=Edit_ab_u.Text;(n,length(n),1);_ab_u.Text:=n;;Edit_ab_u.Text='' then Edit_ab_u.Text:='0';;TF_red_tarif.Edit_min_fChange(Sender: TObject);n:string;Length(Edit_min_f.Text)<>0 then(Edit_min_f.Text[Length(Edit_min_f.Text)]='1')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='2')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='3')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='4')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='5')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='6')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='7')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='8')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='9')or(Edit_min_f.Text[Length(Edit_min_f.Text)]='0')or

(Edit_min_f.Text[Length(Edit_min_f.Text)]='.')then

else('Вы не можете использовать буквы при вводе!');

n:=Edit_min_f.Text;(n,length(n),1);_min_f.Text:=n;;Edit_min_f.Text='' then Edit_min_f.Text:='0';;TF_red_tarif.Edit_min_uChange(Sender: TObject);n:string;Length(Edit_min_u.Text)<>0 then(Edit_min_u.Text[Length(Edit_min_u.Text)]='1')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='2')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='3')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='4')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='5')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='6')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='7')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='8')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='9')or(Edit_min_u.Text[Length(Edit_min_u.Text)]='0')or

(Edit_min_u.Text[Length(Edit_min_u.Text)]='.')then

else('Вы не можете использовать буквы при вводе!');

n:=Edit_min_u.Text;(n,length(n),1);_min_u.Text:=n;;Edit_min_u.Text='' then Edit_min_u.Text:='0';;TF_red_tarif.Button2Click(Sender: TObject);;TF_red_tarif.Button1Click(Sender: TObject);Edit_tar.Text<>'' then.SQL.Clear;.SQL.Add('update tarif set naimen='+#39+Edit_tar.Text+#39+',[ab_f]='+#39+Edit_ab_f.Text+#39

+',[ab_u]='+#39+Edit_ab_u.Text+#39+',[min_f]='+#39+Edit_min_f.Text+#39+',[min_u]='+#39+Edit_min_u.Text+#39

+' where kod='+F_Tarif.ADOQuery1.FieldByName('kod').AsString);(ADOQuery1.SQL.CommaText);.ExecSQL;_Tarif.ADOQuery1.Active:=false;_Tarif.ADOQuery1.Active:=true;_red_organiz.ADOQuery2.Active:=false;_red_organiz.ADOQuery2.Active:=true;_red_chastnie.ADOQuery2.Active:=false;_red_chastnie.ADOQuery2.Active:=true;_dob_organiz.ADOQuery2.Active:=false;_dob_organiz.ADOQuery2.Active:=true;_dob_chastnie.ADOQuery2.Active:=false;_dob_chastnie.ADOQuery2.Active:=true;;ShowMessage('Введите наименование тарифа!');;.

U_svedenia;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, jpeg, ExtCtrls;_svedenia = class(TForm): TButton;: TButton;: TButton;: TImage;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_svedenia: TF_svedenia;U_Tarif, U_Gurnal;

{$R *.dfm}TF_svedenia.Button1Click(Sender: TObject);_Tarif.Show;TF_svedenia.Button2Click(Sender: TObject);_gurnal.show;TF_svedenia.Button3Click(Sender: TObject);;.

U_Tarif;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, ComObj,;_Tarif = class(TForm): TADOQuery;: TDataSource;: TDBGrid;: TDBNavigator;: TGroupBox;: TButton;: TButton;: TButton;: TButton;: TButton;: TImage;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);FormCreate(Sender: TObject);Button4Click(Sender: TObject);Button5Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_Tarif: TF_Tarif;:variant;:string;U_Glavn, U_dob_tarif, U_red_chastnie, U_del_chastnie, U_red_tarif,_del_tarif;

{$R *.dfm}TF_Tarif.Button1Click(Sender: TObject);_dob_tarif.Show;TF_Tarif.Button2Click(Sender: TObject);_red_tarif.Show;TF_Tarif.Button3Click(Sender: TObject);_del_tarif.Show;TF_Tarif.FormCreate(Sender: TObject);(0,MyDir);;TF_Tarif.Button4Click(Sender: TObject);i:integer;:=CreateOleObject('Excel.Application');.DisplayAlerts:=false;.WorkBooks.Open(MyDir + '\Тарифы.xls');.WorkBooks[1].WorkSheets[1].Cells[2,5]:=datetostr(date);.First;:=4;not ADOQuery1.Eof do.WorkBooks[1].WorkSheets[1].Cells[i,1]:=ADOQuery1.FieldByName('naimen').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,2]:=ADOQuery1.FieldByName('ab_f').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,3]:=ADOQuery1.FieldByName('min_f').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,4]:=ADOQuery1.FieldByName('ab_u').AsString;.WorkBooks[1].WorkSheets[1].Cells[i,5]:=ADOQuery1.FieldByName('min_u').AsString;:=i+1;.Next;;.Visible:=true;;TF_Tarif.Button5Click(Sender: TObject);;.U_Razrab;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, jpeg, ExtCtrls;_Razrab = class(TForm): TBitBtn;: TLabel;: TLabel;: TLabel;: TLabel;BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_Razrab: TF_Razrab;

{$R *.dfm}TF_Razrab.BitBtn1Click(Sender: TObject);

close

end;

end.

Приложение В (связь программных модулей)

Рисунок В-1

Приложение Г (сводные документы)

Рисунок Г-1

Рисунок Г-2

Рисунок Г-3

Рисунок Г-4

Рисунок Г-5

Рисунок Г-6

Рисунок Г-7

Похожие работы на - Разработка программного обеспечения 'Телефонный справочник'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!