Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

«Проектирование реализации операций бизнес-процесса «Расчет заработной платы»

Содержание:

ВВЕДЕНИЕ

Целью работы является проектирование бизнес процесса расчет заработной платы.

Для достижения данной цели были выявлены следующие задачи:

1. Анализ предметной области «Расчет заработной платы».

2. Проектирование БД в исследуемой предметной области (включающее проектирование структуры таблиц, ключевых полей и схемы данных).

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

ГЛАВА 1. АНАЛИТИЧЕСКАЯ ЧАСТЬ

Выбор комплекса задач автоматизации

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Характеристика документооборота, возникающего при решении задачи

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

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

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

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

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

Трудовые доходы, т.е. все виды оплаты труда, облагаются по единой ставке 13 %.

Пассивные доходы облагаются по более высоким фиксированным ставкам:

  • 30 % - суммы дивидендов, доходы, полученные лицами, не являющимися налоговыми резидентами Российской Федерации;
  • 35 % - доходы в виде выигрышей по лотереям, тотализаторам и другим играм, основанным на риске; стоимость призов и выигрышей, полученных на конкурсах и др.;
  • 9 % - доходы в виде дивидендов, получаемых физическими лицами, являющимися резидентами.

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

2. Все объекты модели (и сущности, и связи) должны быть именованы. Именование сущностей и связей должно выполняться в терминах предметной области.

3. Для связей должна быть указана кратность (один — многие).

4. Для каждой связи должно быть указано направление чтения

поиск

Запись

найдена

да

Формирование отчета

Добавление

записи

нет

Корректировка данных при надобности

База

Обновление, изменение и удаление записей из БД

Формирование справки

Рисунок 1.1 - Модель работы приложения

В программе реализуются следующие операции:

- добавление, изменение данных таблицы.

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

- при нажатии кнопки формирование справки формируется и открывается документ.

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

Характеристика существующих бизнес –процессов

Рисунок 1.2 - Контекстная диаграмма

Рисунок 1.3 - IDEF0-диаграмма первого уровня функциональной модели (декомпозиция блока «Расчёт заработной платы за выполненный объём работ»)

Рисунок 1.4 - DFD-диаграмма (декомпозиция блока «Расчёт сделки»)

Рисунок 1.5 - DFD-диаграмма (декомпозиция блока «Расчёт по тарифу»)

Рисунок 1.6 - IDEF3-диаграмма

Рисунок 1.7 - ERD-диаграмма

Обоснование проектных решений по информационному обеспечению

Информационное обеспечение (ИО) предназначено для отражения информации, характеризующей состояние управляемого объекта и являющейся основой для принятия управленческих решений [8].

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

- чрезвычайно большой объем документов для ручной обработки;

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

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

- имеются показатели, которые создаются, но не используются.

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

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

1) Входные и выходные документы. Входными документами системы является приходная накладная и накладная на внутреннее перемещение.

Выходными документами являются: журнал прихода, журнал отгрузок, отчет по качеству, отчет по остаткам, отчет по инвентаризации, отчет «Резервы отделов КЦ».

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

2) Экранные формы

Для построения диалога с пользователем возможны следующие способы: диалог типа «Вопрос-ответ»; диалог типа «Меню», диалог на основе экранных форм, диалог на основе командного языка.

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

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

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

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

4) Информационная база. Центральным компонентом информационного обеспечения является информационная база (ИБА), представляющая собой организованную определенным способом совокупность данных, хранимых в памяти вычислительной системы в виде файлов, с помощью которых удовлетворяются информационные потребности управленческих процессов и решаемых задач. [1]

Существуют следующие способы организации информационной базы: совокупность локальных файлов, поддерживаемых функциональными пакетами прикладных программ, и интегрированная база данных, основанная на использовании универсальных программных средств загрузки, хранения, поиска и ведения данных, то есть системы управления базами данных (СУБД).

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

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

Основными способами организации БД являются создание централизованных и распределенных БД. [4] В рассматриваемой задаче не предполагается распределенная структура ИС, т.к. задача небольшая по объему данных и по количеству пользователей.

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

Обоснование проектных решений по программному обеспечению

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

ГЛАВА 2. ПРОЕКТНАЯ ЧАСТЬ

Информационная модель и её описание

Графическое представление информационной модели отражено на рис. 2.1.

Рисунок 2.1 – Информационная модель системы

Характеристика нормативно-справочной, входной и оперативной информации

База данных должна содержать информацию следующего вида:

А: Служебная информация:

  1. Табельный номер;
  2. Фамилия Имя Отчество;
  3. Наименование должности;
  4. Отдел;
  5. Вид оплаты труда;
  6. Номер разрядаю.

Б: Личная информация:

  1. Фамилия Имя Отчество;
  2. Адрес;
  3. Домашний телефон;
  4. Мобильный телефон;
  5. Дата рождения.

В: Сведения о детях сотрудника:

  1. Фамилия Имя Отчество;
  2. Фамилия Имя Отчество детей;
  3. Дата рождения;
  4. Место проживания.

Г: Расценок:

  1. Вид оплаты труда;
  2. Номер разряда;
  3. Расценок.

Д: Процент премии:

  1. Номер разряда
  2. Процент премии

Характеристика результатной информации

Запросы базы данных:

  1. Запрос на выборку с условием отбора: работники по заданному разряду;
  2. Запрос на выборку с группировкой: средняя заработная плата по должностям ;
  3. Запрос на выборку с расчетом: расчет премии по окладникам;
  4. Запрос на выборку с расчетом: расчет премии по сдельщикам;
  5. Запрос на выборку с расчетом: зарплата по окладникам;
  6. Запрос на выборку с расчетом: зарплата по сдельщикам;
  7. Запрос на обновление: повышение тарифов;
  8. Запрос на удаление: увольнение;
  9. Запрос на добавление: прием на работу нового работника;
  10. Запрос на создание таблицы: дни рождения сотрудников;
  11. Перекрестный запрос: суммы окладов по должностям.

Общие положения (дерево функций и сценарий диалога)

Основным действующим лицом в разработанной системе является сотрудник отдела. Дерево функций для пользователя представлено на рисунке 2.2.

Рисунок 2.2 - Дерево функций системы сотрудника

Сценарии диалога, формирующийся на основе дерева функций, приведен на рисунке 2.3.

Рисунок 2.3 - Сценарий диалога для пользователя

Характеристика базы данных

На основании собранных исходных можем построить ER-диаграмму (см. рисунок 2.4).

Рисунок 2.4 - ER-диаграмма

  1. Работники – имеют – личную информацию.

- степень связи 1:1, потому что один работник может иметь только одну личную информацию;

Класс принадлежности между сущностями РАБОТНИКИ и ЛИЧНАЯ ИНФОРМАЦИЯ обязательный потому, что каждому работнику соответствует своя индивидуальная информация.

2. Личная информация – включает – сведения о детях.

- Степень связи здесь 1:n.

Класс принадлежности: необязательный для ЛИЧНОЙ ИНФОРМАЦИИ и обязательный для СВЕДЕНИЙ О ДЕТЯХ (т.е. не каждый работник может иметь детей).

3.Работники – имеют - расценок.

- степень связи n:1, потому что много сотрудников может иметь один и тот же оклад (или тарифную ставку);

Класс принадлежности обязательный для РАБОТНИКОВ и необязательный для РАСЦЕНКА.

4. Расценок – включает – процент премии

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

Класс принадлежности сущности РАСЦЕНОК и ПРОЦЕНТ ПРЕМИИ необязательный.

Имена и содержание ключевых атрибутов сводятся в одну таблицу (см. табл. 2.1).

Таблица 2.1 - Имена и содержание ключевых атрибутов

Табельный Номер

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

ФИО

Фамилия, имя, отчество работников.

ФИО Детей

Фамилия, имя, отчество детей работника.

Номер Разряда

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

ПроцентПремии

Каждому разряду соответствует процент премии.

Построение предварительных отношений

Для БД формируются следующие предварительные отношения (см. Таблицу 2.2).

Таблица 2.2 - Таблица предварительных отношений

Процент премии

включает

Расценок получают

Работники имеют

Личная информация

Включает сведения о детях

НомерРазряда, ПроцентПремии.

ВидОплаты, НомерРазряда, Расценок.

ТабельныйНомер, ФИО, НаименованиеДолжности, Отдел, ВилОплатыТруда, НомерРаряда.

ФИО, Адрес, ДомТел, МобТел, ДатаРождения.

ФИО, ФИОДетей, ДатаРождения, МестоПроживания.

(правило 1)

(правило 1)

(правило 1)

(правило 4)

(правило 5)

Правила нормализации отношений

Если отношение находится в нормальной форме, то снимаются многие проблемы хранения и обработки данных. Разрабатываемые методы проектирования применимы к определенным нормальным формам.

Существует уже более 15 нормальных форм, но продолжается поиск новых. В пособии будут рассмотрены первые три нормальных формы и нормальная форма Бойса-Кодда.

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

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

Напомним кратко свойства отношений (это и будут свойства 1НФ):

В отношении нет одинаковых кортежей.

Кортежи не упорядочены.

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

Все значения атрибутов атомарны.

Отношение находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа. (Неключевой атрибут - это атрибут, не входящий в состав никакого потенциального ключа). Замечание. Если потенциальный ключ отношения является простым, то отношение автоматически находится в 2НФ. Определение. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого. Отношение находится в третьей нормальной форме (3НФ) тогда и только тогда, когда отношение находится в 2НФ и все неключевые атрибуты взаимно независимы. В большинстве случаев третьей нормальной формы вполне достаточно, чтобы разрабатывать вполне работоспособные базы данных. Однако рассмотрим еще одну нормальную формы более высокого порядка, а именно, нормальную форму Бойса-Кодда (НФБК). При приведении отношений при помощи нормализации к отношениям в 3НФ неявно предполагалось, что все отношения содержат один потенциальный ключ. Это не всегда верно. Функциональная зависимость атрибутов утверждает лишь то, что для каждого конкретного состояния базы данных по значению одного атрибута (детерминанта) можно однозначно определить значение другого атрибута (зависимой части). Но конкретные значение зависимой части могут быть различны в различных состояниях базы данных. Если имеются отношения, содержащие несколько потенциальных ключей, то необходимо проверить, имеются ли функциональные зависимости, детерминанты которых не являются потенциальными ключами. Если такие функциональные зависимости имеются, то необходимо провести дальнейшую декомпозицию отношений. Те атрибуты, которые зависят от детерминантов, не являющихся потенциальными ключами выносятся в отдельное отношение вместе с детерминантами. Отношение находится в нормальной форме Бойса-Кодда (НФБК) тогда и только тогда, когда детерминанты всех функциональных зависимостей являются потенциальными ключами. Представляющие интерес для игрового центра "Вегас" дополнительные (неключевые) атрибуты.

Таблица 2.3 - Таблица неключевых атрибутов

ФИО

Фамилия, имя отчество каждого работника

Адрес

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

ДомТел

Домашний телефон работника

МобТел

Мобильный телефон работника

НомерРазряда

Номер разряда работника

ПроцентПремии

Прцент премии на оклад

ВидОплаты

Вид оплаты труда работника

ФИОДетей

Фамилия, имя, отчество детей работника

ДатаРожд

Дата рождения детей работника

МестоПрожив

Место проживание детей работника

ТабНомер

Табельный номер работника

НаимДолжн

Наименование должности работника

Отдел

Наименование отдела, за которым закреплен работник

Формируется таблица окончательных отношений (см. Таблицу 2.4).

Таблица 2.4 - Таблица окончательных отношений

Работники

Расценок

Процент премии

Личная информация

Сведения о детях

Табельный Номер, ФИО, Наименование Должности, Отдел, Вил Оплаты Труда, Номер Разряда.

Вид Оплаты, Номер Разряда, Расценок.

Номер Разряда, Процент Премии.

ФИО, Адрес, Дом Тел, Моб Тел, Дата Рождения.

ФИО, ФИО Детей, Дата Рождения, Место Проживания.

Структурная схема пакета (дерево вызова программных модулей)

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

  • справочники
  • документы
  • отчеты
  • обработки
  • регистры.

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

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

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

Программа состоит из следующих основных модулей.

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

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

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

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

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

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

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

    1. Контрольный пример реализации проекта и его описание

В ходе создания базы данных были созданы такие таблицы, как: Служебная Информация (см. рис. 2.5); Личная Информация (см рис. 2.6); Сведения О Детях Сотрудника (см. рис. 2.7); Расценок (см. рис. 2.8); Процент Премии(см. рис. 2.9);

Рисунок 2.5 - Таблица Служебная Информация

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

Рисунок 2.6 - Таблица Личная Информация

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

Рисунок 2.7 - Таблица Сведения О Детях Сотрудника

Эта таблица необходима для того, чтобы в дальнейшем можно было рассчитывать НДФЛ.

Рисунок 2.8 - Таблица Расценок

В этой таблице содержится информация о размерах окладов и тарифных ставках по разрядам.

Рисунок 2.9 - Таблица Процент Премии

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

Рисунок 2.10 - Схема данных

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

Рисунок 2.11 - Форма

В кнопочной форме представлены кнопки, которые ссылаются на основные категории БД (Таблицы, Запросы, Отчеты, Формы) и удобны в использовании. Кнопки предназначены для того, чтобы было легко открывать все таблицы, запросы, формы и отчеты. Кнопка "Выход" позволяет закрыть БД и сохраняет при изменении.

ЗАКЛЮЧЕНИЕ

Курсовая работа ставила целью разработать автоматизированную систему «Расчет заработной платы».

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

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

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

- Проведен анализ предметной области;

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

- Выявлены недостатки;

- Построена информационная модель данных;

- Построены дерево функций и сценарий диалога;

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила оформления.
  2. ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов.
  3. ГОСТ 19.402-78 ЕСПД. Описание программы.
  4. ГОСТ 19.505-79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению.
  5. ГОСТ 34.201-89. Информационная технология. Комплекс стандартов на автоматизированные системы. Виды, комплектность и обозначение документов при создании автоматизированных систем.
  6. ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и сис¬тем. Условные обозначения и правила выполнения.
  7. Карпова Т.С. Базы данных: модели, разработка, реализация. – СПб.: Питер, 2001 – 304с.
  8. Базы данных: Учебник для вузов / Под ред. Проф. А.Д.Хомоненко. Изд. 2-е. – МПб.: КОРОНА принт, 2002. – 672с.
  9. Дж.Вейскас. Эффективная работа с Microsoft Access 2000. – С.-Птб. : Питер, 2000. – 1040с. ACCESS 7.0 для Windows 95. - Киев: BHV, 1996. – 480с.
  10. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. ГОСТ 19.701-90 (ИСО 5807-85) / Государственный комитет СССР по управлению качеством продукции и стандартам, 01.01.1992.
  11. Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие, М.: Гелиос АРВ, 2007. - 368 с., ил
  12. Баженова И. Ю. , Основы проектирования приложений баз данных, Издательства: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2008 г., , 328 стр.
  13. Вендров А.М., CASE-технологии. Современные методы и средства проектирования информационных систем - М.: Финансы и статистика, 2007 г, 456 стр.
  14. Гашков С. Б., Э. А. Применко, М. А. Черепнев Криптографические методы защиты информации, М, Издательство: Академия, 2010 г., 304 стр.
  15. Гвоздева Т. В., Б. А. Баллод, Проектирование информационных систем, М, Издательство: Феникс, 2009 г., 512 стр.
  16. Голицына О. Л., И. И. Попов, Н. В. Максимов, Т. Л. Партыка, Информационные технологии, М, Издательство Инфра-М, 2009 г., 608 стр.
  17. Емельянова Н. З., Партыка Т. Л., И. И. Попов, Проектирование информационных систем, М, Издательство: Форум, 2009 г., 432 стр.
  18. Емельянова Н. З., Т. Л. Партыка, И. И. Попов, М, Издательство Форум, 2007 г., , 416 стр.
  19. Илюшечкин В. М. , Основы использования и проектирования баз данных, М, Издательство Юрайт, 2010 г., 224 стр.
  20. Котляров В. П., Т. В. Коликова, Основы тестирования программного обеспечения, Издательства: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2009 г., 288 стр.
  21. Кузин А. В., С. В. Левонисова, Базы данных, М, Издательство: Академия, 2008 г., 320 стр.
  22. Кузнецов С. Д., Основы баз данных, М, Издательства: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2007 г., 488 стр.
  23. Молчанов А. Ю., Системное программное обеспечение, М, Издательство: Питер, 2010 г., 400 стр.

ПРИЛОЖЕНИЕ А - ЛИСТИНГ ПРОГРАММНЫХ МОДУЛЕЙ

function IsFormOpen(const FormName : string): Boolean;

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N3Click(Sender: TObject);

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

procedure N4Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N19Click(Sender: TObject);

private

{ Private declarations }

procedure BuildGridDatabaseDirectoryItem(sCaption:String; ds:TDataSource);

public

{ Public declarations }

end;

var

MainClientsForm: TMainClientsForm;

nastr:tinifile;

DirectoryForm : TDBDirectoryTemplateForm;

prosmForm: Taddform;

mainflag:boolean;

nomer_poisk:word;

flag1,flag2:boolean;

s:string;

var dom_tel,mob_tel:string;

adres,notes:string;

stag:real;

rogd:tdate;

var education,vuz, fakultet,specialnost,kurs:string;

data_vuz, data_kurs:tdate;

lingvo,lingvo_k, comp, comp_k :string;

idlingvo, idcomp, id_education,id_client,id_regim, id_areal, id_organization:integer;

var oblast,profesiya:string;

implementation

{$R *.dfm}

function TMainClientsForm.IsMDIChildOpen(const AFormName: TForm; const AMDIChildName : string): Boolean;

var

i: Integer;

begin

Result := False;

for i := Pred(AFormName.MDIChildCount) DownTo 0 do

if (AFormName.MDIChildren[i].Name = AMDIChildName) then

begin

Result := True;

AFormName.MDIChildren[i].Free;

end;

end;

function TMainClientsForm.IsFormOpen(const FormName : string): Boolean;

var

i: Integer;

begin

Result := False;

for i := Screen.FormCount - 1 DownTo 0 do

if (Screen.Forms[i].Name = FormName) then

begin

Result := True;

Break;

end;

end;

procedure TMainClientsForm.BuildGridDatabaseDirectoryItem(sCaption:String; ds:TDataSource);

begin

//создаем форму

DirectoryForm:=TDBDirectoryTemplateForm.Create(Owner);

DirectoryForm.TableDBGrid.DataSource:=ds;

DirectoryForm.Top:=0;

DirectoryForm.Left:=0;

DirectoryForm.Caption:=sCaption;

end;

procedure TMainClientsForm.N12Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Неотработанные документы';

nomer_poisk:=3;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N6Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable1;

mainclientsform.ADOTable1.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem(, mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N7Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable2;

mainclientsform.ADOTable2.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Обязательства', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N8Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable3;

mainclientsform.ADOTable3.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Клиенты', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N9Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable4;

mainclientsform.ADOTable4.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Адреса', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.RzRapidFireButton1Click(Sender: TObject);

begin

MainClientsForm.N3Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton2Click(Sender: TObject);

begin

MainClientsForm.N4Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton3Click(Sender: TObject);

begin

MainClientsForm.N15Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton4Click(Sender: TObject);

begin

MainClientsForm.N14Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton5Click(Sender: TObject);

begin

MainClientsForm.Close;

end;

procedure TMainClientsForm.N10Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable5;

mainclientsform.ADOTable5.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Документы', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N20Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable6;

mainclientsform.ADOTable6.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N21Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable7;

mainclientsform.ADOTable7.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Запросы', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N23Click(Sender: TObject);

begin

mainclientsform.N3Click(Sender);

mainflag:=true;

flag1:=true;

flag2:=false;

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.Height:=800;

mainclientsform.DataSource1.DataSet.Last();

end;

procedure TMainClientsForm.N24Click(Sender: TObject);

begin

mainclientsform.N6Click(Sender);

mainflag:=true;

flag1:=false;

flag2:=true;

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=true;

ProsmForm.Height:=500;

ProsmForm.Width:=800;

mainclientsform.DataSource1.DataSet.Last();

end;

procedure TMainClientsForm.N25Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=7;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=true;

Poisk.Button1.Caption:='Подготовить данные';

end;

procedure TMainClientsForm.N26Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Отчеты;

nomer_poisk:=8;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='Подготовить данные';

end;

procedure TMainClientsForm.FormCreate(Sender: TObject);

var NewConnection: Widestring;

begin

ADOConnection1.Close;

ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+GetCurrentDir+'\baza.mdb;';

ADOConnection1.Open;

MainClientsForm.ADOTable1.Active:=true;

MainClientsForm.ADOTable2.Active:=true;

MainClientsForm.ADOTable3.Active:=true;

MainClientsForm.ADOTable4.Active:=true;

MainClientsForm.ADOTable5.Active:=true;

MainClientsForm.ADOTable6.Active:=true;

MainClientsForm.ADOTable7.Active:=true;

MainClientsForm.ADOTable8.Active:=true;

end;

procedure TMainClientsForm.hClick(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,'Резолюция ');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=true;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:=' / запрос';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N3Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=true;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.DataSource1DataChange(Sender: TObject;

Field: TField);

var

kodistorii,kodclient,kodfact,kodkred:integer;

datanach:tdatetime;

status:string;

begin

if mainflag then

begin

kodistorii:=mainclientsform.DataSource1.DataSet.FieldByName('Код истории').AsInteger;

ProsmForm.Edit70.Text:=inttostr(kodistorii);

kodclient:=mainclientsform.DataSource1.DataSet.FieldByName('Код клиента').AsInteger;

ProsmForm.Edit71.Text:=inttostr(kodclient);

datanach:=mainclientsform.DataSource1.DataSet.FieldByName('дата начала').AsDateTime;

ProsmForm.Edit83.Text:=Datetostr(datanach);

kodfact:=mainclientsform.DataSource1.DataSet.FieldByName('Код факта').AsInteger;

status:=mainclientsform.DataSource1.DataSet.FieldByName('статус').AsString;

mainclientsform.ADOTable3.Active:=true;

if mainclientsform.ADOTable3.Locate('Код клиента',kodclient , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit72.Text:=mainclientsform.ADOTable3.FieldByName('Фамилия').AsString;

ProsmForm.Edit73.Text:=mainclientsform.ADOTable3.FieldByName('Имя').AsString;

ProsmForm.Edit76.Text:=mainclientsform.ADOTable3.FieldByName('Отчество').AsString;

ProsmForm.Edit74.Text:=mainclientsform.ADOTable3.FieldByName('ИНН').AsString;

ProsmForm.Edit75.Text:=mainclientsform.ADOTable3.FieldByName('доход').AsString;

ProsmForm.Edit77.Text:=mainclientsform.ADOTable3.FieldByName('телефон1').AsString;

end;

if mainclientsform.ADOTable8.Locate('Код факта',kodfact , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit81.Text:=DateToStr(mainclientsform.ADOTable8.FieldByName('').AsDateTime);

ProsmForm.Edit84.Text:=mainclientsform.ADOTable8.FieldByName('нарушение').AsString;

ProsmForm.Edit85.Text:=inttostr(mainclientsform.ADOTable8.FieldByName('%своеврем').AsInteger);

ProsmForm.Edit86.Text:=mainclientsform.ADOTable8.FieldByName('штрафные санкции').AsString;

ProsmForm.Edit82.Text:=mainclientsform.ADOTable8.FieldByName('закрытие').AsString;

end;

mainclientsform.ADOTable7.Active:=true;

if mainclientsform.ADOTable7.Locate('',kodistorii , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit87.Text:=DateToStr(mainclientsform.ADOTable7.FieldByName('дата').AsDateTime);

kodkred:=mainclientsform.ADOTable7.FieldByName('').AsInteger;

end;

mainclientsform.ADOTable6.Active:=true;

if mainclientsform.ADOTable6.Locate(',kodkred , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit88.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit69.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit66.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit79.Text:=mainclientsform.ADOTable6.FieldByName('цель').AsString;

ProsmForm.Edit64.Text:=DateToStr(mainclientsform.ADOTable6.FieldByName('').AsDateTime);

end;

mainclientsform.DataSource2.DataSet:=mainclientsform.ADOQuery1;

mainclientsform.ADOQuery1.Active:=false;

mainclientsform.ADOQuery1.SQL.Clear();

P1 :=mainclientsform.ADOQuery1.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftinteger;

P1.Value:=kodistorii;

stroka_SQL:='SELECT обязательства.* FROM обязательства WHERE (.[]=:P1) ;' ;

MainClientsForm.ADOQuery1.SQL.Add(stroka_SQL);

MainClientsForm.ADOQuery1.Active:=true;

MainClientsForm.ADOQuery1.ExecSQL;

end;

end;

procedure TMainClientsForm.N4Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,'');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=true;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N14Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=1;

Poisk.GroupBox1.Visible:=true;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N15Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=2;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=true;

end;

procedure TMainClientsForm.N16Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Поиск клиента';

nomer_poisk:=4;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=true;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N17Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=5;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='';

end;

procedure TMainClientsForm.N18Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable8;

mainclientsform.ADOTable8.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Фактическое выполнение', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N11Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,' ');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N19Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='""';

nomer_poisk:=6;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='';

end;

end.

unit addsorce;

interface

uses

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

Dialogs, DB, ADODB, Menus, ChildTemplate, Grids, DBGrids,

StdCtrls, Mask,DateUtils, ExtCtrls, ComCtrls, DBCtrls ;

type

TaddForm = class(TForm)

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Button1: TButton;

Edit7: TEdit;

GroupBox3: TGroupBox;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Edit14: TEdit;

Edit15: TEdit;

Edit16: TEdit;

Button3: TButton;

GroupBox5: TGroupBox;

Label29: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label37: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label17: TLabel;

Edit29: TEdit;

Edit31: TEdit;

Edit32: TEdit;

Edit33: TEdit;

Edit34: TEdit;

Edit35: TEdit;

Edit37: TEdit;

Button5: TButton;

Edit19: TEdit;

Edit20: TEdit;

Edit21: TEdit;

Edit22: TEdit;

Edit23: TEdit;

Edit17: TEdit;

Label85: TLabel;

Edit89: TEdit;

Label86: TLabel;

Edit90: TEdit;

Label87: TLabel;

Label88: TLabel;

Edit91: TEdit;

Label89: TLabel;

Edit92: TEdit;

Label90: TLabel;

Edit93: TEdit;

Label91: TLabel;

Edit94: TEdit;

Label92: TLabel;

Label93: TLabel;

Edit95: TEdit;

Label94: TLabel;

Edit96: TEdit;

Label95: TLabel;

Edit97: TEdit;

Label96: TLabel;

Edit98: TEdit;

Label18: TLabel;

Label27: TLabel;

Edit18: TEdit;

Label30: TLabel;

Edit27: TEdit;

Label36: TLabel;

Edit30: TEdit;

Label38: TLabel;

Edit36: TEdit;

Label97: TLabel;

Edit38: TEdit;

Label99: TLabel;

Edit99: TEdit;

GroupBox7: TGroupBox;

Label62: TLabel;

Label63: TLabel;

Label64: TLabel;

Label65: TLabel;

Label66: TLabel;

Label67: TLabel;

Label70: TLabel;

Label71: TLabel;

Label73: TLabel;

Label74: TLabel;

Label75: TLabel;

Label77: TLabel;

Label79: TLabel;

Label80: TLabel;

Label81: TLabel;

Label82: TLabel;

Label83: TLabel;

Label84: TLabel;

Label78: TLabel;

Edit64: TEdit;

Edit66: TEdit;

Edit69: TEdit;

Edit70: TEdit;

DBNavigator2: TDBNavigator;

Edit71: TEdit;

Edit72: TEdit;

Edit73: TEdit;

Edit74: TEdit;

Edit75: TEdit;

Edit76: TEdit;

Edit77: TEdit;

Edit79: TEdit;

Edit81: TEdit;

Edit82: TEdit;

Edit83: TEdit;

Edit84: TEdit;

Edit85: TEdit;

Edit86: TEdit;

Edit87: TEdit;

Edit88: TEdit;

DBGrid1: TDBGrid;

procedure Button5Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

addForm: TaddForm;

naim:string;

ed_izm:string;

kolvo:integer;

cena:real;

nomerpartiya:string;

sernum:string;

srok_godnost:tdate;

data_postavka:tdate;

postavchik:string;

description:string;

location:string;

location_part:string;

primech:string;

Ayear, amonth,aday:word;

razmer_part,kol:integer;

id_part,idaddional,idlocation,idzapas:integer;

idtov,id_proffesiya:integer;

implementation

uses MainClients;

{$R *.dfm}

procedure TaddForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TaddForm.Button1Click(Sender: TObject);

var

Fam, Name1, Sec_Name, Dep, Dolg, Tel1, tel2, INN :string;

kodadr,koddok,dohod:integer;

oblast,gorod, street, dom, kvartira:string;

naimenovan, nomer, kem:string;

datadok,datarogd:tdate;

begin

oblast:=Edit90.Text;

gorod:= Edit91.Text;

street:=Edit92.Text;

dom:=Edit93.Text;

kvartira:=Edit94.Text;

mainclientsform.ADOTable4.Active:=true;

mainclientsform.ADOTable4.Insert();

mainclientsform.ADOTable4.FieldByName('').AsString:= oblast;

mainclientsform.ADOTable4.FieldByName('').AsString:= gorod;

mainclientsform.ADOTable4.FieldByName('').AsString:= street;

mainclientsform.ADOTable4.FieldByName('дом').AsString:= dom;

mainclientsform.ADOTable4.FieldByName('').AsString:= kvartira;

mainclientsform.ADOTable4.Post();

kodadr:=mainclientsform.ADOTable4.FieldByName('').AsInteger;

naimenovan:=Edit95.Text;

nomer:=Edit96.Text;

kem:=Edit98.Text;;

datadok:=strtodate(Edit97.Text);

mainclientsform.ADOTable5.Active:=true;

mainclientsform.ADOTable5.Insert();

mainclientsform.ADOTable5.FieldByName('').AsString:= naimenovan;

mainclientsform.ADOTable5.FieldByName('').AsString:= nomer;

mainclientsform.ADOTable5.FieldByName('').AsDateTime:=datadok;

mainclientsform.ADOTable5.FieldByName('').AsString:= kem;

mainclientsform.ADOTable5.Post();

koddok:=mainclientsform.ADOTable5.FieldByName('Код документа').AsInteger;

Fam:= Edit1.Text;

Name1:= Edit2.Text;

Sec_Name:= Edit3.Text;

datarogd:=strtodate(Edit4.Text);

Tel1:= Edit7.Text;

Tel2:= Edit89.Text;

INN:= Edit5.Text;

dohod:= strtoint(Edit6.Text);

// добавление данных клиент

mainclientsform.ADOTable3.Active:=true;

mainclientsform.ADOTable3.Insert();

mainclientsform.ADOTable3.FieldByName('').AsString:= Fam;

mainclientsform.ADOTable3.FieldByName('').AsString:= Name1;

mainclientsform.ADOTable3.FieldByName('').AsString:= Sec_Name;

mainclientsform.ADOTable3.FieldByName('').AsDateTime:=datarogd;

mainclientsform.ADOTable3.FieldByName('').AsString:= Tel1;

mainclientsform.ADOTable3.FieldByName('').AsString:= Tel2;

mainclientsform.ADOTable3.FieldByName('').AsString:= INN;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= dohod;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= kodadr;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= koddok;

mainclientsform.ADOTable3.Post();

end;

procedure TaddForm.Button3Click(Sender: TObject);

var summa, egplat,srok,procent, kodkred,kodistorii:integer;

target:string;

datapogash:tdatetime;

begin

target:= Edit15.Text;

datapogash:=StrToDate(Edit36.Text);

summa:=strtoint(Edit16.Text);

egplat:=strtoint(Edit14.Text);

srok:=strtoint(Edit30.Text);

procent:=strtoint(Edit38.Text);

kodistorii:= strtoint(Edit99.Text);

mainclientsform.ADOTable6.Active:=true;

mainclientsform.ADOTable6.Insert();

mainclientsform.ADOTable6.FieldByName('').AsString:= target;

mainclientsform.ADOTable6.FieldByName('').AsDateTime:=datapogash;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=summa;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=egplat;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=srok;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=procent;

mainclientsform.ADOTable6.Post();

kodkred:= mainclientsform.ADOTable6.FieldByName('').AsInteger;

mainclientsform.ADOTable7.Active:=true;

mainclientsform.ADOTable7.Insert();

mainclientsform.ADOTable7.FieldByName('').AsInteger:=kodistorii;

mainclientsform.ADOTable7.FieldByName('').AsInteger:=kodkred;

mainclientsform.ADOTable7.FieldByName('').AsDateTime:=now;

mainclientsform.ADOTable7.FieldByName('').AsString:='';

mainclientsform.ADOTable7.Post();

end;

procedure TaddForm.Button5Click(Sender: TObject);

var srokvoz, datenach:tdatetime;

narush,sankcii,zakrut,status:string;

procentsv, kodclient, kodfakt, kodistorii, summa:integer;

bank,vidob,nomdog,notes:string;

datadog,srokup:tdatetime;

begin

srokvoz:=StrToDate(Edit21.Text);

narush:=Edit37.Text;

procentsv:=strtoint(Edit32.Text);

sankcii:=Edit29.Text;

zakrut:=Edit31.Text;

mainclientsform.ADOTable8.Active:=true;

mainclientsform.ADOTable8.Insert();

mainclientsform.ADOTable8.FieldByName('').AsDateTime:= srokvoz;

mainclientsform.ADOTable8.FieldByName('').AsString:= narush;

mainclientsform.ADOTable8.FieldByName('%').AsInteger:=procentsv;

mainclientsform.ADOTable8.FieldByName('').AsString:= sankcii;

mainclientsform.ADOTable8.FieldByName('').AsString:= zakrut;

mainclientsform.ADOTable8.Post();

kodfakt:= mainclientsform.ADOTable8.FieldByName('Код факта').AsInteger;

status:=Edit34.Text;

datenach:=StrToDate(Edit35.Text);

kodclient:=strtoint(Edit33.Text);

mainclientsform.ADOTable1.Active:=true;

mainclientsform.ADOTable1.Insert();

MainClientsForm.ADOTable1.FieldByName('').AsInteger:=kodclient;

MainClientsForm.ADOTable1.FieldByName('').AsInteger:=kodfakt;

mainclientsform.ADOTable1.FieldByName('').AsDateTime:=datenach;

mainclientsform.ADOTable1.FieldByName('').AsString:= status;

mainclientsform.ADOTable1.Post();

kodistorii:= mainclientsform.ADOTable1.FieldByName('').AsInteger;

bank:=Edit19.Text;

vidob:=Edit20.Text;

nomdog:=Edit23.Text;

notes:=Edit27.Text;

summa:=STRToint(Edit17.Text);

datadog:= StrToDate(Edit22.Text);

srokup:=StrToDate(Edit18.Text);

mainclientsform.ADOTable2.Active:=true;

mainclientsform.ADOTable2.Insert();

mainclientsform.ADOTable2.FieldByName('').AsString:=bank;

mainclientsform.ADOTable2.FieldByName('').AsString:= vidob;

mainclientsform.ADOTable2.FieldByName('').AsDateTime:=datadog;

mainclientsform.ADOTable2.FieldByName('').AsString:=nomdog;

MainClientsForm.ADOTable2.FieldByName('').AsInteger:=summa;

mainclientsform.ADOTable2.FieldByName('').AsDateTime:=srokup;

mainclientsform.ADOTable2.FieldByName('').AsString:=notes;

MainClientsForm.ADOTable2.FieldByName('').AsInteger:=kodistorii;

mainclientsform.ADOTable2.Post();

end;

end.

unit parampoisk;

interface

uses

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

Dialogs, DB, ADODB, Menus, ChildTemplate, Grids, DBGrids,addsorce,

StdCtrls, Mask,DateUtils, ExtCtrls, ComCtrls ;

type

Tparampoik = class(TForm)

Button1: TButton;

GroupBox1: TGroupBox;

Label1: TLabel;

Edit3: TEdit;

GroupBox2: TGroupBox;

Label2: TLabel;

Edit1: TEdit;

GroupBox3: TGroupBox;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

Edit4: TEdit;

Label5: TLabel;

Edit5: TEdit;

procedure RzBitBtn4Click(Sender: TObject);

procedure RzBitBtn3Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

parampoik: Tparampoik;

ChildTemplateForm1: TChildTemplateForm;

ff:string;

flagpoisk:boolean;

p1,p2:tparameter;

all:boolean;

ahour, aminute, asecond, amillisecond :word;

priznak:string;

stroka_SQL,pole,tabl, srtkl,name_poisk, sqlwhere:string;

idnakl,idzapas,i,sravn,kolnakl,kolzapas, rezerv_kol:integer;

implementation

uses mainclients;

{$R *.dfm}

procedure Tparampoik.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure Tparampoik.RzBitBtn3Click(Sender: TObject);

var ChildTemplateForm:TChildTemplateform;

all:boolean;

stroka_SQL,pole,tabl, srtkl,name_poisk, sqlwhere:string;

fl_book, fl_avtor, fl_izdat, fl_location, fl_vid, fl_category:boolean;

begin

MainClientsForm.IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'addform');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'ChildTemplateForm');

ChildTemplateForm:=TChildTemplateform.Create(Owner);

ChildTemplateForm.Left:=0;

ChildTemplateForm.Top:=3;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery1;

mainclientsform.ADOQuery1.Active:=false;

mainclientsform.ADOQuery1.SQL.Clear;

P1 :=mainclientsform.ADOQuery1.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

end;

procedure Tparampoik.RzBitBtn4Click(Sender: TObject);

begin

flagpoisk:=false;

MainClientsForm.IsMDIChildOpen(MainClientsForm,'parampoik');

end;

procedure Tparampoik.Button1Click(Sender: TObject);

var ChildTemplateForm:TChildTemplateform;

timenach,timekon:tdatetime;

data:tdatetime;

summa,srok:integer;

begin

MainClientsForm.IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'addform');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'ChildTemplateForm');

ChildTemplateForm:=TChildTemplateform.Create(Owner);

ChildTemplateForm.Left:=0;

ChildTemplateForm.Top:=3;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery2;

mainclientsform.ADOQuery2.Active:=false;

mainclientsform.ADOQuery2.SQL.Clear;

if nomer_poisk=1 then begin

childTemplateForm.Button1.Visible:=false;

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

S:=Edit3.Text;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

stroka_SQL:='SELECT.[],.[], , .* FROM INNER JOIN История ON.[] =.[] WHERE (((])=:P1));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=4 then begin

childTemplateForm.Button1.Visible:=false;

S:=Edit1.Text;

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

stroka_SQL:='SELECT.* FROM Клиент WHERE ((() = :P1))' ;

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=5 then begin

childTemplateForm.Button1.Visible:=true;

P1:=mainclientsform.ADOQuery2.Parameters.AddParameter();

P1.Name:='P1';

P1.DataType:=ftInteger;

P1.Value:=1;

stroka_SQL:='SELECT.[], .[], , , , , , , , , ';

stroka_SQL:=stroka_SQL+' FROM (Адрес INNER JOIN ON.[] = .[])';

stroka_SQL:=stroka_SQL+'INNER JOIN ON .[] =.[] WHERE ((()=" "));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=6 then begin

childTemplateForm.Button1.Visible:=true;

P1:=mainclientsform.ADOQuery2.Parameters.AddParameter();

P1.Name:='P1';

P1.DataType:=ftInteger;

P1.Value:=1;

stroka_SQL:='SELECT .[], .[], , , , , , , , , ';

stroka_SQL:=stroka_SQL+' FROM (Адрес INNER JOIN ON.[] = .[])';

stroka_SQL:=stroka_SQL+'INNER JOIN ON .[] =.[] WHERE ((()<>""));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=7 then begin

childTemplateForm.Button1.Visible:=false;

S:=Edit2.Text;

summa:=STRTOINT(Edit4.Text);

srok:=STRTOINT(Edit5.Text);

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

P2 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P2.Name:='P2';

P2.DataType:=ftinteger;

P2.Value:=round(0.5*summa/srok);

stroka_SQL:='SELECT, , , , , , .[], .[], ';

stroka_SQL:=stroka_SQL+'FROM INNER JOIN ( INNER JOIN ON.[] =.[]) ON Фактвыполнения.[Код факта] =.[]';

stroka_SQL:=stroka_SQL+'WHERE ( (>:P2) and () AND((Фактвыполнения.нарушение)="нет") AND (( [) AND (() AND (());';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

if mainclientsform.ADOQuery2.RecordCount>0 then

begin

childTemplateForm.Label1.Caption:=!!!!'

end

else

childTemplateForm.Label1.Caption:=

end;

end;

end;

end.

unit ChildTemplate;

interface

uses

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

Dialogs, Buttons, Grids, DBGrids, ExtCtrls, Menus, StdCtrls, OleServer, ExcelXP, OleCtnrs, ComObj;

type

TChildTemplateForm = class(TForm)

DBGrid1: TDBGrid;

Button1: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure RzToolbarButton2Click(Sender: TObject);

procedure RzToolbarButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

implementation

{$R *.dfm}

uses mainclients;

procedure TChildTemplateForm.Button1Click(Sender: TObject);

var put,asFileName:string;

var

XlApplication: OleVariant;

XLWorkSheet: OleVariant;

var

vVarApp,vVarBooks,vVarBook,

vVarSheets,vVarSheet,vVarCell,ws: Variant;

i,j:integer;

a:string;

begin

if mainclientsform.ADOQuery2.RecordCount>0 then

begin

try

XlApplication := GetActiveOleObject('Excel.Application');

except

XlApplication := CreateOleObject('Excel.Application');

end;

XlApplication.Workbooks.Open[ExtractFilePath(Application.ExeName)+'zayavka.xlt', 0, true]; XlApplication.Visible := true;

XLWorkSheet := XlApplication.ActiveWorkBook.ActiveSheet;

if nomer_poisk<>8 then

XLWorkSheet.cells[3,3]:=''

else

XLWorkSheet.cells[3,3]:='';

mainclientsform.ADOQuery2.First;

for i:=1 to mainclientsform.ADOQuery2.RecordCount do

begin

j:= 0;

A:= mainclientsform.ADOQuery2.FieldByName('Фамилия').AsString;

XLWorkSheet.cells[i+5,2]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Имя').AsString;

XLWorkSheet.cells[i+5,3]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Отчество').AsString;

XLWorkSheet.cells[i+5,4]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('телефон1').AsString;

XLWorkSheet.cells[i+5,5]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('город').AsString;

XLWorkSheet.cells[i+5,6]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('улица').AsString;

XLWorkSheet.cells[i+5,7]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('дом').AsString;

XLWorkSheet.cells[i+5,8]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('квартира').AsString;

XLWorkSheet.cells[i+5,9]:=A ;

mainclientsform.ADOQuery2.Next;

end ;

end;

end;

procedure TChildTemplateForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

unit MainClients;

interface

uses

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

Dialogs, Menus, DB, ADODB, IniFiles, Grids, DBGrids,DBDirectoryTemplate,

addsorce, DateUtils, parampoisk, ToolWin, ComCtrls, StdCtrls, jpeg, ExtCtrls,

RzButton, Buttons, RzSpnEdt, RzPanel;

type

TMainClientsForm = class(TForm)

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

MainMenu1: TMainMenu;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

DataSource1: TDataSource;

ADOTable2: TADOTable;

ADOTable3: TADOTable;

ADOTable4: TADOTable;

ADOTable5: TADOTable;

ADOTable6: TADOTable;

ADOTable7: TADOTable;

N20: TMenuItem;

N21: TMenuItem;

N22: TMenuItem;

ADOQuery1: TADOQuery;

ADOQuery2: TADOQuery;

N18: TMenuItem;

ADOTable8: TADOTable;

N24: TMenuItem;

Image1: TImage;

ToolBar1: TToolBar;

RzRapidFireButton1: TRzRapidFireButton;

RzRapidFireButton2: TRzRapidFireButton;

RzRapidFireButton3: TRzRapidFireButton;

RzRapidFireButton4: TRzRapidFireButton;

RzRapidFireButton5: TRzRapidFireButton;

DataSource2: TDataSource;

h: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N19: TMenuItem;

N25: TMenuItem;

procedure N26Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N25Click(Sender: TObject);

procedure hClick(Sender: TObject);

procedure N24Click(Sender: TObject);

procedure N23Click(Sender: TObject);

procedure RzRapidFireButton5Click(Sender: TObject);

procedure RzRapidFireButton4Click(Sender: TObject);

procedure RzRapidFireButton3Click(Sender: TObject);

procedure RzRapidFireButton2Click(Sender: TObject);

procedure RzRapidFireButton1Click(Sender: TObject);

procedure N12Click(Sender: TObject);

function IsMDIChildOpen(const AFormName: TForm; const AMDIChildName : string): Boolean;

function IsFormOpen(const FormName : string): Boolean;

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N3Click(Sender: TObject);

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

procedure N4Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N19Click(Sender: TObject);

private

{ Private declarations }

procedure BuildGridDatabaseDirectoryItem(sCaption:String; ds:TDataSource);

public

{ Public declarations }

end;

var

MainClientsForm: TMainClientsForm;

nastr:tinifile;

DirectoryForm : TDBDirectoryTemplateForm;

prosmForm: Taddform;

mainflag:boolean;

nomer_poisk:word;

flag1,flag2:boolean;

s:string;

var dom_tel,mob_tel:string;

adres,notes:string;

stag:real;

rogd:tdate;

var education,vuz, fakultet,specialnost,kurs:string;

data_vuz, data_kurs:tdate;

lingvo,lingvo_k, comp, comp_k :string;

idlingvo, idcomp, id_education,id_client,id_regim, id_areal, id_organization:integer;

var oblast,profesiya:string;

implementation

{$R *.dfm}

function TMainClientsForm.IsMDIChildOpen(const AFormName: TForm; const AMDIChildName : string): Boolean;

var

i: Integer;

begin

Result := False;

for i := Pred(AFormName.MDIChildCount) DownTo 0 do

if (AFormName.MDIChildren[i].Name = AMDIChildName) then

begin

Result := True;

AFormName.MDIChildren[i].Free;

end;

end;

function TMainClientsForm.IsFormOpen(const FormName : string): Boolean;

var

i: Integer;

begin

Result := False;

for i := Screen.FormCount - 1 DownTo 0 do

if (Screen.Forms[i].Name = FormName) then

begin

Result := True;

Break;

end;

end;

procedure TMainClientsForm.BuildGridDatabaseDirectoryItem(sCaption:String; ds:TDataSource);

begin

//создаем форму

DirectoryForm:=TDBDirectoryTemplateForm.Create(Owner);

DirectoryForm.TableDBGrid.DataSource:=ds;

DirectoryForm.Top:=0;

DirectoryForm.Left:=0;

DirectoryForm.Caption:=sCaption;

end;

procedure TMainClientsForm.N12Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Неотработанные документы';

nomer_poisk:=3;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N6Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable1;

mainclientsform.ADOTable1.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem(, mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N7Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable2;

mainclientsform.ADOTable2.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Обязательства', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N8Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable3;

mainclientsform.ADOTable3.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Клиенты', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N9Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable4;

mainclientsform.ADOTable4.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Адреса', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.RzRapidFireButton1Click(Sender: TObject);

begin

MainClientsForm.N3Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton2Click(Sender: TObject);

begin

MainClientsForm.N4Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton3Click(Sender: TObject);

begin

MainClientsForm.N15Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton4Click(Sender: TObject);

begin

MainClientsForm.N14Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton5Click(Sender: TObject);

begin

MainClientsForm.Close;

end;

procedure TMainClientsForm.N10Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable5;

mainclientsform.ADOTable5.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Документы', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N20Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable6;

mainclientsform.ADOTable6.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N21Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable7;

mainclientsform.ADOTable7.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Запросы', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N23Click(Sender: TObject);

begin

mainclientsform.N3Click(Sender);

mainflag:=true;

flag1:=true;

flag2:=false;

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.Height:=800;

mainclientsform.DataSource1.DataSet.Last();

end;

procedure TMainClientsForm.N24Click(Sender: TObject);

begin

mainclientsform.N6Click(Sender);

mainflag:=true;

flag1:=false;

flag2:=true;

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=true;

ProsmForm.Height:=500;

ProsmForm.Width:=800;

mainclientsform.DataSource1.DataSet.Last();

end;

procedure TMainClientsForm.N25Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=7;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=true;

Poisk.Button1.Caption:='Подготовить данные';

end;

procedure TMainClientsForm.N26Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Отчеты;

nomer_poisk:=8;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='Подготовить данные';

end;

procedure TMainClientsForm.FormCreate(Sender: TObject);

var NewConnection: Widestring;

begin

ADOConnection1.Close;

ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+GetCurrentDir+'\baza.mdb;';

ADOConnection1.Open;

MainClientsForm.ADOTable1.Active:=true;

MainClientsForm.ADOTable2.Active:=true;

MainClientsForm.ADOTable3.Active:=true;

MainClientsForm.ADOTable4.Active:=true;

MainClientsForm.ADOTable5.Active:=true;

MainClientsForm.ADOTable6.Active:=true;

MainClientsForm.ADOTable7.Active:=true;

MainClientsForm.ADOTable8.Active:=true;

end;

procedure TMainClientsForm.hClick(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,'Резолюция ');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=true;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:=' / запрос';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N3Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=true;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.DataSource1DataChange(Sender: TObject;

Field: TField);

var

kodistorii,kodclient,kodfact,kodkred:integer;

datanach:tdatetime;

status:string;

begin

if mainflag then

begin

kodistorii:=mainclientsform.DataSource1.DataSet.FieldByName('Код истории').AsInteger;

ProsmForm.Edit70.Text:=inttostr(kodistorii);

kodclient:=mainclientsform.DataSource1.DataSet.FieldByName('Код клиента').AsInteger;

ProsmForm.Edit71.Text:=inttostr(kodclient);

datanach:=mainclientsform.DataSource1.DataSet.FieldByName('дата начала').AsDateTime;

ProsmForm.Edit83.Text:=Datetostr(datanach);

kodfact:=mainclientsform.DataSource1.DataSet.FieldByName('Код факта').AsInteger;

status:=mainclientsform.DataSource1.DataSet.FieldByName('статус').AsString;

mainclientsform.ADOTable3.Active:=true;

if mainclientsform.ADOTable3.Locate('Код клиента',kodclient , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit72.Text:=mainclientsform.ADOTable3.FieldByName('Фамилия').AsString;

ProsmForm.Edit73.Text:=mainclientsform.ADOTable3.FieldByName('Имя').AsString;

ProsmForm.Edit76.Text:=mainclientsform.ADOTable3.FieldByName('Отчество').AsString;

ProsmForm.Edit74.Text:=mainclientsform.ADOTable3.FieldByName('ИНН').AsString;

ProsmForm.Edit75.Text:=mainclientsform.ADOTable3.FieldByName('доход').AsString;

ProsmForm.Edit77.Text:=mainclientsform.ADOTable3.FieldByName('телефон1').AsString;

end;

if mainclientsform.ADOTable8.Locate('Код факта',kodfact , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit81.Text:=DateToStr(mainclientsform.ADOTable8.FieldByName('').AsDateTime);

ProsmForm.Edit84.Text:=mainclientsform.ADOTable8.FieldByName('нарушение').AsString;

ProsmForm.Edit85.Text:=inttostr(mainclientsform.ADOTable8.FieldByName('%своеврем').AsInteger);

ProsmForm.Edit86.Text:=mainclientsform.ADOTable8.FieldByName('штрафные санкции').AsString;

ProsmForm.Edit82.Text:=mainclientsform.ADOTable8.FieldByName('закрытие').AsString;

end;

mainclientsform.ADOTable7.Active:=true;

if mainclientsform.ADOTable7.Locate('',kodistorii , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit87.Text:=DateToStr(mainclientsform.ADOTable7.FieldByName('дата').AsDateTime);

kodkred:=mainclientsform.ADOTable7.FieldByName('').AsInteger;

end;

mainclientsform.ADOTable6.Active:=true;

if mainclientsform.ADOTable6.Locate(',kodkred , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit88.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit69.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit66.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit79.Text:=mainclientsform.ADOTable6.FieldByName('цель').AsString;

ProsmForm.Edit64.Text:=DateToStr(mainclientsform.ADOTable6.FieldByName('').AsDateTime);

end;

mainclientsform.DataSource2.DataSet:=mainclientsform.ADOQuery1;

mainclientsform.ADOQuery1.Active:=false;

mainclientsform.ADOQuery1.SQL.Clear();

P1 :=mainclientsform.ADOQuery1.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftinteger;

P1.Value:=kodistorii;

stroka_SQL:='SELECT обязательства.* FROM обязательства WHERE (.[]=:P1) ;' ;

MainClientsForm.ADOQuery1.SQL.Add(stroka_SQL);

MainClientsForm.ADOQuery1.Active:=true;

MainClientsForm.ADOQuery1.ExecSQL;

end;

end;

procedure TMainClientsForm.N4Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,'');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=true;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N14Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=1;

Poisk.GroupBox1.Visible:=true;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N15Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=2;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=true;

end;

procedure TMainClientsForm.N16Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Поиск клиента';

nomer_poisk:=4;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=true;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N17Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=5;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='';

end;

procedure TMainClientsForm.N18Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable8;

mainclientsform.ADOTable8.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Фактическое выполнение', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N11Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,' ');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N19Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='""';

nomer_poisk:=6;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='';

end;

end.

unit addsorce;

interface

uses

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

Dialogs, DB, ADODB, Menus, ChildTemplate, Grids, DBGrids,

StdCtrls, Mask,DateUtils, ExtCtrls, ComCtrls, DBCtrls ;

type

TaddForm = class(TForm)

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Button1: TButton;

Edit7: TEdit;

GroupBox3: TGroupBox;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Edit14: TEdit;

Edit15: TEdit;

Edit16: TEdit;

Button3: TButton;

GroupBox5: TGroupBox;

Label29: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label37: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label17: TLabel;

Edit29: TEdit;

Edit31: TEdit;

Edit32: TEdit;

Edit33: TEdit;

Edit34: TEdit;

Edit35: TEdit;

Edit37: TEdit;

Button5: TButton;

Edit19: TEdit;

Edit20: TEdit;

Edit21: TEdit;

Edit22: TEdit;

Edit23: TEdit;

Edit17: TEdit;

Label85: TLabel;

Edit89: TEdit;

Label86: TLabel;

Edit90: TEdit;

Label87: TLabel;

Label88: TLabel;

Edit91: TEdit;

Label89: TLabel;

Edit92: TEdit;

Label90: TLabel;

Edit93: TEdit;

Label91: TLabel;

Edit94: TEdit;

Label92: TLabel;

Label93: TLabel;

Edit95: TEdit;

Label94: TLabel;

Edit96: TEdit;

Label95: TLabel;

Edit97: TEdit;

Label96: TLabel;

Edit98: TEdit;

Label18: TLabel;

Label27: TLabel;

Edit18: TEdit;

Label30: TLabel;

Edit27: TEdit;

Label36: TLabel;

Edit30: TEdit;

Label38: TLabel;

Edit36: TEdit;

Label97: TLabel;

Edit38: TEdit;

Label99: TLabel;

Edit99: TEdit;

GroupBox7: TGroupBox;

Label62: TLabel;

Label63: TLabel;

Label64: TLabel;

Label65: TLabel;

Label66: TLabel;

Label67: TLabel;

Label70: TLabel;

Label71: TLabel;

Label73: TLabel;

Label74: TLabel;

Label75: TLabel;

Label77: TLabel;

Label79: TLabel;

Label80: TLabel;

Label81: TLabel;

Label82: TLabel;

Label83: TLabel;

Label84: TLabel;

Label78: TLabel;

Edit64: TEdit;

Edit66: TEdit;

Edit69: TEdit;

Edit70: TEdit;

DBNavigator2: TDBNavigator;

Edit71: TEdit;

Edit72: TEdit;

Edit73: TEdit;

Edit74: TEdit;

Edit75: TEdit;

Edit76: TEdit;

Edit77: TEdit;

Edit79: TEdit;

Edit81: TEdit;

Edit82: TEdit;

Edit83: TEdit;

Edit84: TEdit;

Edit85: TEdit;

Edit86: TEdit;

Edit87: TEdit;

Edit88: TEdit;

DBGrid1: TDBGrid;

procedure Button5Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

addForm: TaddForm;

naim:string;

ed_izm:string;

kolvo:integer;

cena:real;

nomerpartiya:string;

sernum:string;

srok_godnost:tdate;

data_postavka:tdate;

postavchik:string;

description:string;

location:string;

location_part:string;

primech:string;

Ayear, amonth,aday:word;

razmer_part,kol:integer;

id_part,idaddional,idlocation,idzapas:integer;

idtov,id_proffesiya:integer;

implementation

uses MainClients;

{$R *.dfm}

procedure TaddForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TaddForm.Button1Click(Sender: TObject);

var

Fam, Name1, Sec_Name, Dep, Dolg, Tel1, tel2, INN :string;

kodadr,koddok,dohod:integer;

oblast,gorod, street, dom, kvartira:string;

naimenovan, nomer, kem:string;

datadok,datarogd:tdate;

begin

oblast:=Edit90.Text;

gorod:= Edit91.Text;

street:=Edit92.Text;

dom:=Edit93.Text;

kvartira:=Edit94.Text;

mainclientsform.ADOTable4.Active:=true;

mainclientsform.ADOTable4.Insert();

mainclientsform.ADOTable4.FieldByName('').AsString:= oblast;

mainclientsform.ADOTable4.FieldByName('').AsString:= gorod;

mainclientsform.ADOTable4.FieldByName('').AsString:= street;

mainclientsform.ADOTable4.FieldByName('дом').AsString:= dom;

mainclientsform.ADOTable4.FieldByName('').AsString:= kvartira;

mainclientsform.ADOTable4.Post();

kodadr:=mainclientsform.ADOTable4.FieldByName('').AsInteger;

naimenovan:=Edit95.Text;

nomer:=Edit96.Text;

kem:=Edit98.Text;;

datadok:=strtodate(Edit97.Text);

mainclientsform.ADOTable5.Active:=true;

mainclientsform.ADOTable5.Insert();

mainclientsform.ADOTable5.FieldByName('').AsString:= naimenovan;

mainclientsform.ADOTable5.FieldByName('').AsString:= nomer;

mainclientsform.ADOTable5.FieldByName('').AsDateTime:=datadok;

mainclientsform.ADOTable5.FieldByName('').AsString:= kem;

mainclientsform.ADOTable5.Post();

koddok:=mainclientsform.ADOTable5.FieldByName('Код документа').AsInteger;

Fam:= Edit1.Text;

Name1:= Edit2.Text;

Sec_Name:= Edit3.Text;

datarogd:=strtodate(Edit4.Text);

Tel1:= Edit7.Text;

Tel2:= Edit89.Text;

INN:= Edit5.Text;

dohod:= strtoint(Edit6.Text);

// добавление данных клиент

mainclientsform.ADOTable3.Active:=true;

mainclientsform.ADOTable3.Insert();

mainclientsform.ADOTable3.FieldByName('').AsString:= Fam;

mainclientsform.ADOTable3.FieldByName('').AsString:= Name1;

mainclientsform.ADOTable3.FieldByName('').AsString:= Sec_Name;

mainclientsform.ADOTable3.FieldByName('').AsDateTime:=datarogd;

mainclientsform.ADOTable3.FieldByName('').AsString:= Tel1;

mainclientsform.ADOTable3.FieldByName('').AsString:= Tel2;

mainclientsform.ADOTable3.FieldByName('').AsString:= INN;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= dohod;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= kodadr;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= koddok;

mainclientsform.ADOTable3.Post();

end;

procedure TaddForm.Button3Click(Sender: TObject);

var summa, egplat,srok,procent, kodkred,kodistorii:integer;

target:string;

datapogash:tdatetime;

begin

target:= Edit15.Text;

datapogash:=StrToDate(Edit36.Text);

summa:=strtoint(Edit16.Text);

egplat:=strtoint(Edit14.Text);

srok:=strtoint(Edit30.Text);

procent:=strtoint(Edit38.Text);

kodistorii:= strtoint(Edit99.Text);

mainclientsform.ADOTable6.Active:=true;

mainclientsform.ADOTable6.Insert();

mainclientsform.ADOTable6.FieldByName('').AsString:= target;

mainclientsform.ADOTable6.FieldByName('').AsDateTime:=datapogash;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=summa;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=egplat;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=srok;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=procent;

mainclientsform.ADOTable6.Post();

kodkred:= mainclientsform.ADOTable6.FieldByName('').AsInteger;

mainclientsform.ADOTable7.Active:=true;

mainclientsform.ADOTable7.Insert();

mainclientsform.ADOTable7.FieldByName('').AsInteger:=kodistorii;

mainclientsform.ADOTable7.FieldByName('').AsInteger:=kodkred;

mainclientsform.ADOTable7.FieldByName('').AsDateTime:=now;

mainclientsform.ADOTable7.FieldByName('').AsString:='';

mainclientsform.ADOTable7.Post();

end;

procedure TaddForm.Button5Click(Sender: TObject);

var srokvoz, datenach:tdatetime;

narush,sankcii,zakrut,status:string;

procentsv, kodclient, kodfakt, kodistorii, summa:integer;

bank,vidob,nomdog,notes:string;

datadog,srokup:tdatetime;

begin

srokvoz:=StrToDate(Edit21.Text);

narush:=Edit37.Text;

procentsv:=strtoint(Edit32.Text);

sankcii:=Edit29.Text;

zakrut:=Edit31.Text;

mainclientsform.ADOTable8.Active:=true;

mainclientsform.ADOTable8.Insert();

mainclientsform.ADOTable8.FieldByName('').AsDateTime:= srokvoz;

mainclientsform.ADOTable8.FieldByName('').AsString:= narush;

mainclientsform.ADOTable8.FieldByName('%').AsInteger:=procentsv;

mainclientsform.ADOTable8.FieldByName('').AsString:= sankcii;

mainclientsform.ADOTable8.FieldByName('').AsString:= zakrut;

mainclientsform.ADOTable8.Post();

kodfakt:= mainclientsform.ADOTable8.FieldByName('Код факта').AsInteger;

status:=Edit34.Text;

datenach:=StrToDate(Edit35.Text);

kodclient:=strtoint(Edit33.Text);

mainclientsform.ADOTable1.Active:=true;

mainclientsform.ADOTable1.Insert();

MainClientsForm.ADOTable1.FieldByName('').AsInteger:=kodclient;

MainClientsForm.ADOTable1.FieldByName('').AsInteger:=kodfakt;

mainclientsform.ADOTable1.FieldByName('').AsDateTime:=datenach;

mainclientsform.ADOTable1.FieldByName('').AsString:= status;

mainclientsform.ADOTable1.Post();

kodistorii:= mainclientsform.ADOTable1.FieldByName('').AsInteger;

bank:=Edit19.Text;

vidob:=Edit20.Text;

nomdog:=Edit23.Text;

notes:=Edit27.Text;

summa:=STRToint(Edit17.Text);

datadog:= StrToDate(Edit22.Text);

srokup:=StrToDate(Edit18.Text);

mainclientsform.ADOTable2.Active:=true;

mainclientsform.ADOTable2.Insert();

mainclientsform.ADOTable2.FieldByName('').AsString:=bank;

mainclientsform.ADOTable2.FieldByName('').AsString:= vidob;

mainclientsform.ADOTable2.FieldByName('').AsDateTime:=datadog;

mainclientsform.ADOTable2.FieldByName('').AsString:=nomdog;

MainClientsForm.ADOTable2.FieldByName('').AsInteger:=summa;

mainclientsform.ADOTable2.FieldByName('').AsDateTime:=srokup;

mainclientsform.ADOTable2.FieldByName('').AsString:=notes;

MainClientsForm.ADOTable2.FieldByName('').AsInteger:=kodistorii;

mainclientsform.ADOTable2.Post();

end;

end.

unit parampoisk;

interface

uses

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

Dialogs, DB, ADODB, Menus, ChildTemplate, Grids, DBGrids,addsorce,

StdCtrls, Mask,DateUtils, ExtCtrls, ComCtrls ;

type

Tparampoik = class(TForm)

Button1: TButton;

GroupBox1: TGroupBox;

Label1: TLabel;

Edit3: TEdit;

GroupBox2: TGroupBox;

Label2: TLabel;

Edit1: TEdit;

GroupBox3: TGroupBox;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

Edit4: TEdit;

Label5: TLabel;

Edit5: TEdit;

procedure RzBitBtn4Click(Sender: TObject);

procedure RzBitBtn3Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

parampoik: Tparampoik;

ChildTemplateForm1: TChildTemplateForm;

ff:string;

flagpoisk:boolean;

p1,p2:tparameter;

all:boolean;

ahour, aminute, asecond, amillisecond :word;

priznak:string;

stroka_SQL,pole,tabl, srtkl,name_poisk, sqlwhere:string;

idnakl,idzapas,i,sravn,kolnakl,kolzapas, rezerv_kol:integer;

implementation

uses mainclients;

{$R *.dfm}

procedure Tparampoik.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure Tparampoik.RzBitBtn3Click(Sender: TObject);

var ChildTemplateForm:TChildTemplateform;

all:boolean;

stroka_SQL,pole,tabl, srtkl,name_poisk, sqlwhere:string;

fl_book, fl_avtor, fl_izdat, fl_location, fl_vid, fl_category:boolean;

begin

MainClientsForm.IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'addform');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'ChildTemplateForm');

ChildTemplateForm:=TChildTemplateform.Create(Owner);

ChildTemplateForm.Left:=0;

ChildTemplateForm.Top:=3;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery1;

mainclientsform.ADOQuery1.Active:=false;

mainclientsform.ADOQuery1.SQL.Clear;

P1 :=mainclientsform.ADOQuery1.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

end;

procedure Tparampoik.RzBitBtn4Click(Sender: TObject);

begin

flagpoisk:=false;

MainClientsForm.IsMDIChildOpen(MainClientsForm,'parampoik');

end;

procedure Tparampoik.Button1Click(Sender: TObject);

var ChildTemplateForm:TChildTemplateform;

timenach,timekon:tdatetime;

data:tdatetime;

summa,srok:integer;

begin

MainClientsForm.IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'addform');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'ChildTemplateForm');

ChildTemplateForm:=TChildTemplateform.Create(Owner);

ChildTemplateForm.Left:=0;

ChildTemplateForm.Top:=3;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery2;

mainclientsform.ADOQuery2.Active:=false;

mainclientsform.ADOQuery2.SQL.Clear;

if nomer_poisk=1 then begin

childTemplateForm.Button1.Visible:=false;

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

S:=Edit3.Text;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

stroka_SQL:='SELECT.[],.[], , .* FROM INNER JOIN История ON.[] =.[] WHERE (((])=:P1));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=4 then begin

childTemplateForm.Button1.Visible:=false;

S:=Edit1.Text;

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

stroka_SQL:='SELECT.* FROM Клиент WHERE ((() = :P1))' ;

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=5 then begin

childTemplateForm.Button1.Visible:=true;

P1:=mainclientsform.ADOQuery2.Parameters.AddParameter();

P1.Name:='P1';

P1.DataType:=ftInteger;

P1.Value:=1;

stroka_SQL:='SELECT.[], .[], , , , , , , , , ';

stroka_SQL:=stroka_SQL+' FROM (Адрес INNER JOIN ON.[] = .[])';

stroka_SQL:=stroka_SQL+'INNER JOIN ON .[] =.[] WHERE ((()=" "));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=6 then begin

childTemplateForm.Button1.Visible:=true;

P1:=mainclientsform.ADOQuery2.Parameters.AddParameter();

P1.Name:='P1';

P1.DataType:=ftInteger;

P1.Value:=1;

stroka_SQL:='SELECT .[], .[], , , , , , , , , ';

stroka_SQL:=stroka_SQL+' FROM (Адрес INNER JOIN ON.[] = .[])';

stroka_SQL:=stroka_SQL+'INNER JOIN ON .[] =.[] WHERE ((()<>""));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=7 then begin

childTemplateForm.Button1.Visible:=false;

S:=Edit2.Text;

summa:=STRTOINT(Edit4.Text);

srok:=STRTOINT(Edit5.Text);

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

P2 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P2.Name:='P2';

P2.DataType:=ftinteger;

P2.Value:=round(0.5*summa/srok);

stroka_SQL:='SELECT, , , , , , .[], .[], ';

stroka_SQL:=stroka_SQL+'FROM INNER JOIN ( INNER JOIN ON.[] =.[]) ON Фактвыполнения.[Код факта] =.[]';

stroka_SQL:=stroka_SQL+'WHERE ( (>:P2) and () AND((Фактвыполнения.нарушение)="нет") AND (( [) AND (() AND (());';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

if mainclientsform.ADOQuery2.RecordCount>0 then

begin

childTemplateForm.Label1.Caption:=!!!!'

end

else

childTemplateForm.Label1.Caption:=

end;

end;

end;

end.

unit ChildTemplate;

interface

uses

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

Dialogs, Buttons, Grids, DBGrids, ExtCtrls, Menus, StdCtrls, OleServer, ExcelXP, OleCtnrs, ComObj;

type

TChildTemplateForm = class(TForm)

DBGrid1: TDBGrid;

Button1: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure RzToolbarButton2Click(Sender: TObject);

procedure RzToolbarButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

implementation

{$R *.dfm}

uses mainclients;

procedure TChildTemplateForm.Button1Click(Sender: TObject);

var put,asFileName:string;

var

XlApplication: OleVariant;

XLWorkSheet: OleVariant;

var

vVarApp,vVarBooks,vVarBook,

vVarSheets,vVarSheet,vVarCell,ws: Variant;

i,j:integer;

a:string;

begin

if mainclientsform.ADOQuery2.RecordCount>0 then

begin

try

XlApplication := GetActiveOleObject('Excel.Application');

except

XlApplication := CreateOleObject('Excel.Application');

end;

XlApplication.Workbooks.Open[ExtractFilePath(Application.ExeName)+'zayavka.xlt', 0, true]; XlApplication.Visible := true;

XLWorkSheet := XlApplication.ActiveWorkBook.ActiveSheet;

if nomer_poisk<>8 then

XLWorkSheet.cells[3,3]:=''

else

XLWorkSheet.cells[3,3]:='';

mainclientsform.ADOQuery2.First;

for i:=1 to mainclientsform.ADOQuery2.RecordCount do

begin

j:= 0;

A:= mainclientsform.ADOQuery2.FieldByName('Фамилия').AsString;

XLWorkSheet.cells[i+5,2]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Имя').AsString;

XLWorkSheet.cells[i+5,3]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Отчество').AsString;

XLWorkSheet.cells[i+5,4]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('телефон1').AsString;

XLWorkSheet.cells[i+5,5]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('город').AsString;

XLWorkSheet.cells[i+5,6]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('улица').AsString;

XLWorkSheet.cells[i+5,7]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('дом').AsString;

XLWorkSheet.cells[i+5,8]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('квартира').AsString;

XLWorkSheet.cells[i+5,9]:=A ;

mainclientsform.ADOQuery2.Next;

end ;

end;

end;

procedure TChildTemplateForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

unit MainClients;

interface

uses

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

Dialogs, Menus, DB, ADODB, IniFiles, Grids, DBGrids,DBDirectoryTemplate,

addsorce, DateUtils, parampoisk, ToolWin, ComCtrls, StdCtrls, jpeg, ExtCtrls,

RzButton, Buttons, RzSpnEdt, RzPanel;

type

TMainClientsForm = class(TForm)

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

MainMenu1: TMainMenu;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

DataSource1: TDataSource;

ADOTable2: TADOTable;

ADOTable3: TADOTable;

ADOTable4: TADOTable;

ADOTable5: TADOTable;

ADOTable6: TADOTable;

ADOTable7: TADOTable;

N20: TMenuItem;

N21: TMenuItem;

N22: TMenuItem;

ADOQuery1: TADOQuery;

ADOQuery2: TADOQuery;

N18: TMenuItem;

ADOTable8: TADOTable;

N24: TMenuItem;

Image1: TImage;

ToolBar1: TToolBar;

RzRapidFireButton1: TRzRapidFireButton;

RzRapidFireButton2: TRzRapidFireButton;

RzRapidFireButton3: TRzRapidFireButton;

RzRapidFireButton4: TRzRapidFireButton;

RzRapidFireButton5: TRzRapidFireButton;

DataSource2: TDataSource;

h: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N19: TMenuItem;

N25: TMenuItem;

procedure N26Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N25Click(Sender: TObject);

procedure hClick(Sender: TObject);

procedure N24Click(Sender: TObject);

procedure N23Click(Sender: TObject);

procedure RzRapidFireButton5Click(Sender: TObject);

procedure RzRapidFireButton4Click(Sender: TObject);

procedure RzRapidFireButton3Click(Sender: TObject);

procedure RzRapidFireButton2Click(Sender: TObject);

procedure RzRapidFireButton1Click(Sender: TObject);

procedure N12Click(Sender: TObject);

function IsMDIChildOpen(const AFormName: TForm; const AMDIChildName : string): Boolean;

function IsFormOpen(const FormName : string): Boolean;

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N3Click(Sender: TObject);

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

procedure N4Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N19Click(Sender: TObject);

private

{ Private declarations }

procedure BuildGridDatabaseDirectoryItem(sCaption:String; ds:TDataSource);

public

{ Public declarations }

end;

var

MainClientsForm: TMainClientsForm;

nastr:tinifile;

DirectoryForm : TDBDirectoryTemplateForm;

prosmForm: Taddform;

mainflag:boolean;

nomer_poisk:word;

flag1,flag2:boolean;

s:string;

var dom_tel,mob_tel:string;

adres,notes:string;

stag:real;

rogd:tdate;

var education,vuz, fakultet,specialnost,kurs:string;

data_vuz, data_kurs:tdate;

lingvo,lingvo_k, comp, comp_k :string;

idlingvo, idcomp, id_education,id_client,id_regim, id_areal, id_organization:integer;

var oblast,profesiya:string;

implementation

{$R *.dfm}

function TMainClientsForm.IsMDIChildOpen(const AFormName: TForm; const AMDIChildName : string): Boolean;

var

i: Integer;

begin

Result := False;

for i := Pred(AFormName.MDIChildCount) DownTo 0 do

if (AFormName.MDIChildren[i].Name = AMDIChildName) then

begin

Result := True;

AFormName.MDIChildren[i].Free;

end;

end;

function TMainClientsForm.IsFormOpen(const FormName : string): Boolean;

var

i: Integer;

begin

Result := False;

for i := Screen.FormCount - 1 DownTo 0 do

if (Screen.Forms[i].Name = FormName) then

begin

Result := True;

Break;

end;

end;

procedure TMainClientsForm.BuildGridDatabaseDirectoryItem(sCaption:String; ds:TDataSource);

begin

//создаем форму

DirectoryForm:=TDBDirectoryTemplateForm.Create(Owner);

DirectoryForm.TableDBGrid.DataSource:=ds;

DirectoryForm.Top:=0;

DirectoryForm.Left:=0;

DirectoryForm.Caption:=sCaption;

end;

procedure TMainClientsForm.N12Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Неотработанные документы';

nomer_poisk:=3;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N6Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable1;

mainclientsform.ADOTable1.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem(, mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N7Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable2;

mainclientsform.ADOTable2.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Обязательства', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N8Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable3;

mainclientsform.ADOTable3.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Клиенты', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N9Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable4;

mainclientsform.ADOTable4.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Адреса', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.RzRapidFireButton1Click(Sender: TObject);

begin

MainClientsForm.N3Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton2Click(Sender: TObject);

begin

MainClientsForm.N4Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton3Click(Sender: TObject);

begin

MainClientsForm.N15Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton4Click(Sender: TObject);

begin

MainClientsForm.N14Click(Sender);

end;

procedure TMainClientsForm.RzRapidFireButton5Click(Sender: TObject);

begin

MainClientsForm.Close;

end;

procedure TMainClientsForm.N10Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable5;

mainclientsform.ADOTable5.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Документы', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N20Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable6;

mainclientsform.ADOTable6.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N21Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable7;

mainclientsform.ADOTable7.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Запросы', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N23Click(Sender: TObject);

begin

mainclientsform.N3Click(Sender);

mainflag:=true;

flag1:=true;

flag2:=false;

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.Height:=800;

mainclientsform.DataSource1.DataSet.Last();

end;

procedure TMainClientsForm.N24Click(Sender: TObject);

begin

mainclientsform.N6Click(Sender);

mainflag:=true;

flag1:=false;

flag2:=true;

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=true;

ProsmForm.Height:=500;

ProsmForm.Width:=800;

mainclientsform.DataSource1.DataSet.Last();

end;

procedure TMainClientsForm.N25Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=7;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=true;

Poisk.Button1.Caption:='Подготовить данные';

end;

procedure TMainClientsForm.N26Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Отчеты;

nomer_poisk:=8;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='Подготовить данные';

end;

procedure TMainClientsForm.FormCreate(Sender: TObject);

var NewConnection: Widestring;

begin

ADOConnection1.Close;

ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+GetCurrentDir+'\baza.mdb;';

ADOConnection1.Open;

MainClientsForm.ADOTable1.Active:=true;

MainClientsForm.ADOTable2.Active:=true;

MainClientsForm.ADOTable3.Active:=true;

MainClientsForm.ADOTable4.Active:=true;

MainClientsForm.ADOTable5.Active:=true;

MainClientsForm.ADOTable6.Active:=true;

MainClientsForm.ADOTable7.Active:=true;

MainClientsForm.ADOTable8.Active:=true;

end;

procedure TMainClientsForm.hClick(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,'Резолюция ');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=true;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:=' / запрос';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N3Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=true;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.DataSource1DataChange(Sender: TObject;

Field: TField);

var

kodistorii,kodclient,kodfact,kodkred:integer;

datanach:tdatetime;

status:string;

begin

if mainflag then

begin

kodistorii:=mainclientsform.DataSource1.DataSet.FieldByName('Код истории').AsInteger;

ProsmForm.Edit70.Text:=inttostr(kodistorii);

kodclient:=mainclientsform.DataSource1.DataSet.FieldByName('Код клиента').AsInteger;

ProsmForm.Edit71.Text:=inttostr(kodclient);

datanach:=mainclientsform.DataSource1.DataSet.FieldByName('дата начала').AsDateTime;

ProsmForm.Edit83.Text:=Datetostr(datanach);

kodfact:=mainclientsform.DataSource1.DataSet.FieldByName('Код факта').AsInteger;

status:=mainclientsform.DataSource1.DataSet.FieldByName('статус').AsString;

mainclientsform.ADOTable3.Active:=true;

if mainclientsform.ADOTable3.Locate('Код клиента',kodclient , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit72.Text:=mainclientsform.ADOTable3.FieldByName('Фамилия').AsString;

ProsmForm.Edit73.Text:=mainclientsform.ADOTable3.FieldByName('Имя').AsString;

ProsmForm.Edit76.Text:=mainclientsform.ADOTable3.FieldByName('Отчество').AsString;

ProsmForm.Edit74.Text:=mainclientsform.ADOTable3.FieldByName('ИНН').AsString;

ProsmForm.Edit75.Text:=mainclientsform.ADOTable3.FieldByName('доход').AsString;

ProsmForm.Edit77.Text:=mainclientsform.ADOTable3.FieldByName('телефон1').AsString;

end;

if mainclientsform.ADOTable8.Locate('Код факта',kodfact , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit81.Text:=DateToStr(mainclientsform.ADOTable8.FieldByName('').AsDateTime);

ProsmForm.Edit84.Text:=mainclientsform.ADOTable8.FieldByName('нарушение').AsString;

ProsmForm.Edit85.Text:=inttostr(mainclientsform.ADOTable8.FieldByName('%своеврем').AsInteger);

ProsmForm.Edit86.Text:=mainclientsform.ADOTable8.FieldByName('штрафные санкции').AsString;

ProsmForm.Edit82.Text:=mainclientsform.ADOTable8.FieldByName('закрытие').AsString;

end;

mainclientsform.ADOTable7.Active:=true;

if mainclientsform.ADOTable7.Locate('',kodistorii , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit87.Text:=DateToStr(mainclientsform.ADOTable7.FieldByName('дата').AsDateTime);

kodkred:=mainclientsform.ADOTable7.FieldByName('').AsInteger;

end;

mainclientsform.ADOTable6.Active:=true;

if mainclientsform.ADOTable6.Locate(',kodkred , [loCaseInsensitive,loPartialKey]) then

begin

ProsmForm.Edit88.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit69.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit66.Text:=inttostr(mainclientsform.ADOTable6.FieldByName('').AsInteger);

ProsmForm.Edit79.Text:=mainclientsform.ADOTable6.FieldByName('цель').AsString;

ProsmForm.Edit64.Text:=DateToStr(mainclientsform.ADOTable6.FieldByName('').AsDateTime);

end;

mainclientsform.DataSource2.DataSet:=mainclientsform.ADOQuery1;

mainclientsform.ADOQuery1.Active:=false;

mainclientsform.ADOQuery1.SQL.Clear();

P1 :=mainclientsform.ADOQuery1.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftinteger;

P1.Value:=kodistorii;

stroka_SQL:='SELECT обязательства.* FROM обязательства WHERE (.[]=:P1) ;' ;

MainClientsForm.ADOQuery1.SQL.Add(stroka_SQL);

MainClientsForm.ADOQuery1.Active:=true;

MainClientsForm.ADOQuery1.ExecSQL;

end;

end;

procedure TMainClientsForm.N4Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,'');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=true;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N14Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=1;

Poisk.GroupBox1.Visible:=true;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N15Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=2;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=true;

end;

procedure TMainClientsForm.N16Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='Поиск клиента';

nomer_poisk:=4;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=true;

Poisk.GroupBox3.Visible:=false;

end;

procedure TMainClientsForm.N17Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='';

nomer_poisk:=5;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='';

end;

procedure TMainClientsForm.N18Click(Sender: TObject);

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

mainflag:=false;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable8;

mainclientsform.ADOTable8.Active:=true;

MainClientsForm.BuildGridDatabaseDirectoryItem('Фактическое выполнение', mainclientsform.DataSource1);

end;

procedure TMainClientsForm.N11Click(Sender: TObject);

begin

mainflag:=false;

IsMDIChildOpen(MainClientsForm,' ');

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addForm');

ProsmForm:=Taddform.Create(Owner);

ProsmForm.GroupBox3.Visible:=false;

ProsmForm.GroupBox1.Visible:=false;

ProsmForm.GroupBox5.Visible:=false;

ProsmForm.GroupBox7.Visible:=false;

ProsmForm.Caption:='';

ProsmForm.Height:=400;

end;

procedure TMainClientsForm.N19Click(Sender: TObject);

var poisk:Tparampoik;

begin

IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

IsMDIChildOpen(MainClientsForm,'addform');

IsMDIChildOpen(MainClientsForm,'parampoik');

poisk:=Tparampoik.Create(Owner);

poisk.Left:=530;

poisk.Top:=3;

poisk.Width:=300;

poisk.Caption:='""';

nomer_poisk:=6;

Poisk.GroupBox1.Visible:=false;

Poisk.GroupBox2.Visible:=false;

Poisk.GroupBox3.Visible:=false;

Poisk.Button1.Caption:='';

end;

end.

unit addsorce;

interface

uses

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

Dialogs, DB, ADODB, Menus, ChildTemplate, Grids, DBGrids,

StdCtrls, Mask,DateUtils, ExtCtrls, ComCtrls, DBCtrls ;

type

TaddForm = class(TForm)

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Button1: TButton;

Edit7: TEdit;

GroupBox3: TGroupBox;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Edit14: TEdit;

Edit15: TEdit;

Edit16: TEdit;

Button3: TButton;

GroupBox5: TGroupBox;

Label29: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label37: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label17: TLabel;

Edit29: TEdit;

Edit31: TEdit;

Edit32: TEdit;

Edit33: TEdit;

Edit34: TEdit;

Edit35: TEdit;

Edit37: TEdit;

Button5: TButton;

Edit19: TEdit;

Edit20: TEdit;

Edit21: TEdit;

Edit22: TEdit;

Edit23: TEdit;

Edit17: TEdit;

Label85: TLabel;

Edit89: TEdit;

Label86: TLabel;

Edit90: TEdit;

Label87: TLabel;

Label88: TLabel;

Edit91: TEdit;

Label89: TLabel;

Edit92: TEdit;

Label90: TLabel;

Edit93: TEdit;

Label91: TLabel;

Edit94: TEdit;

Label92: TLabel;

Label93: TLabel;

Edit95: TEdit;

Label94: TLabel;

Edit96: TEdit;

Label95: TLabel;

Edit97: TEdit;

Label96: TLabel;

Edit98: TEdit;

Label18: TLabel;

Label27: TLabel;

Edit18: TEdit;

Label30: TLabel;

Edit27: TEdit;

Label36: TLabel;

Edit30: TEdit;

Label38: TLabel;

Edit36: TEdit;

Label97: TLabel;

Edit38: TEdit;

Label99: TLabel;

Edit99: TEdit;

GroupBox7: TGroupBox;

Label62: TLabel;

Label63: TLabel;

Label64: TLabel;

Label65: TLabel;

Label66: TLabel;

Label67: TLabel;

Label70: TLabel;

Label71: TLabel;

Label73: TLabel;

Label74: TLabel;

Label75: TLabel;

Label77: TLabel;

Label79: TLabel;

Label80: TLabel;

Label81: TLabel;

Label82: TLabel;

Label83: TLabel;

Label84: TLabel;

Label78: TLabel;

Edit64: TEdit;

Edit66: TEdit;

Edit69: TEdit;

Edit70: TEdit;

DBNavigator2: TDBNavigator;

Edit71: TEdit;

Edit72: TEdit;

Edit73: TEdit;

Edit74: TEdit;

Edit75: TEdit;

Edit76: TEdit;

Edit77: TEdit;

Edit79: TEdit;

Edit81: TEdit;

Edit82: TEdit;

Edit83: TEdit;

Edit84: TEdit;

Edit85: TEdit;

Edit86: TEdit;

Edit87: TEdit;

Edit88: TEdit;

DBGrid1: TDBGrid;

procedure Button5Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

addForm: TaddForm;

naim:string;

ed_izm:string;

kolvo:integer;

cena:real;

nomerpartiya:string;

sernum:string;

srok_godnost:tdate;

data_postavka:tdate;

postavchik:string;

description:string;

location:string;

location_part:string;

primech:string;

Ayear, amonth,aday:word;

razmer_part,kol:integer;

id_part,idaddional,idlocation,idzapas:integer;

idtov,id_proffesiya:integer;

implementation

uses MainClients;

{$R *.dfm}

procedure TaddForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TaddForm.Button1Click(Sender: TObject);

var

Fam, Name1, Sec_Name, Dep, Dolg, Tel1, tel2, INN :string;

kodadr,koddok,dohod:integer;

oblast,gorod, street, dom, kvartira:string;

naimenovan, nomer, kem:string;

datadok,datarogd:tdate;

begin

oblast:=Edit90.Text;

gorod:= Edit91.Text;

street:=Edit92.Text;

dom:=Edit93.Text;

kvartira:=Edit94.Text;

mainclientsform.ADOTable4.Active:=true;

mainclientsform.ADOTable4.Insert();

mainclientsform.ADOTable4.FieldByName('').AsString:= oblast;

mainclientsform.ADOTable4.FieldByName('').AsString:= gorod;

mainclientsform.ADOTable4.FieldByName('').AsString:= street;

mainclientsform.ADOTable4.FieldByName('дом').AsString:= dom;

mainclientsform.ADOTable4.FieldByName('').AsString:= kvartira;

mainclientsform.ADOTable4.Post();

kodadr:=mainclientsform.ADOTable4.FieldByName('').AsInteger;

naimenovan:=Edit95.Text;

nomer:=Edit96.Text;

kem:=Edit98.Text;;

datadok:=strtodate(Edit97.Text);

mainclientsform.ADOTable5.Active:=true;

mainclientsform.ADOTable5.Insert();

mainclientsform.ADOTable5.FieldByName('').AsString:= naimenovan;

mainclientsform.ADOTable5.FieldByName('').AsString:= nomer;

mainclientsform.ADOTable5.FieldByName('').AsDateTime:=datadok;

mainclientsform.ADOTable5.FieldByName('').AsString:= kem;

mainclientsform.ADOTable5.Post();

koddok:=mainclientsform.ADOTable5.FieldByName('Код документа').AsInteger;

Fam:= Edit1.Text;

Name1:= Edit2.Text;

Sec_Name:= Edit3.Text;

datarogd:=strtodate(Edit4.Text);

Tel1:= Edit7.Text;

Tel2:= Edit89.Text;

INN:= Edit5.Text;

dohod:= strtoint(Edit6.Text);

// добавление данных клиент

mainclientsform.ADOTable3.Active:=true;

mainclientsform.ADOTable3.Insert();

mainclientsform.ADOTable3.FieldByName('').AsString:= Fam;

mainclientsform.ADOTable3.FieldByName('').AsString:= Name1;

mainclientsform.ADOTable3.FieldByName('').AsString:= Sec_Name;

mainclientsform.ADOTable3.FieldByName('').AsDateTime:=datarogd;

mainclientsform.ADOTable3.FieldByName('').AsString:= Tel1;

mainclientsform.ADOTable3.FieldByName('').AsString:= Tel2;

mainclientsform.ADOTable3.FieldByName('').AsString:= INN;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= dohod;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= kodadr;

mainclientsform.ADOTable3.FieldByName('').AsInteger:= koddok;

mainclientsform.ADOTable3.Post();

end;

procedure TaddForm.Button3Click(Sender: TObject);

var summa, egplat,srok,procent, kodkred,kodistorii:integer;

target:string;

datapogash:tdatetime;

begin

target:= Edit15.Text;

datapogash:=StrToDate(Edit36.Text);

summa:=strtoint(Edit16.Text);

egplat:=strtoint(Edit14.Text);

srok:=strtoint(Edit30.Text);

procent:=strtoint(Edit38.Text);

kodistorii:= strtoint(Edit99.Text);

mainclientsform.ADOTable6.Active:=true;

mainclientsform.ADOTable6.Insert();

mainclientsform.ADOTable6.FieldByName('').AsString:= target;

mainclientsform.ADOTable6.FieldByName('').AsDateTime:=datapogash;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=summa;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=egplat;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=srok;

mainclientsform.ADOTable6.FieldByName('').AsInteger:=procent;

mainclientsform.ADOTable6.Post();

kodkred:= mainclientsform.ADOTable6.FieldByName('').AsInteger;

mainclientsform.ADOTable7.Active:=true;

mainclientsform.ADOTable7.Insert();

mainclientsform.ADOTable7.FieldByName('').AsInteger:=kodistorii;

mainclientsform.ADOTable7.FieldByName('').AsInteger:=kodkred;

mainclientsform.ADOTable7.FieldByName('').AsDateTime:=now;

mainclientsform.ADOTable7.FieldByName('').AsString:='';

mainclientsform.ADOTable7.Post();

end;

procedure TaddForm.Button5Click(Sender: TObject);

var srokvoz, datenach:tdatetime;

narush,sankcii,zakrut,status:string;

procentsv, kodclient, kodfakt, kodistorii, summa:integer;

bank,vidob,nomdog,notes:string;

datadog,srokup:tdatetime;

begin

srokvoz:=StrToDate(Edit21.Text);

narush:=Edit37.Text;

procentsv:=strtoint(Edit32.Text);

sankcii:=Edit29.Text;

zakrut:=Edit31.Text;

mainclientsform.ADOTable8.Active:=true;

mainclientsform.ADOTable8.Insert();

mainclientsform.ADOTable8.FieldByName('').AsDateTime:= srokvoz;

mainclientsform.ADOTable8.FieldByName('').AsString:= narush;

mainclientsform.ADOTable8.FieldByName('%').AsInteger:=procentsv;

mainclientsform.ADOTable8.FieldByName('').AsString:= sankcii;

mainclientsform.ADOTable8.FieldByName('').AsString:= zakrut;

mainclientsform.ADOTable8.Post();

kodfakt:= mainclientsform.ADOTable8.FieldByName('Код факта').AsInteger;

status:=Edit34.Text;

datenach:=StrToDate(Edit35.Text);

kodclient:=strtoint(Edit33.Text);

mainclientsform.ADOTable1.Active:=true;

mainclientsform.ADOTable1.Insert();

MainClientsForm.ADOTable1.FieldByName('').AsInteger:=kodclient;

MainClientsForm.ADOTable1.FieldByName('').AsInteger:=kodfakt;

mainclientsform.ADOTable1.FieldByName('').AsDateTime:=datenach;

mainclientsform.ADOTable1.FieldByName('').AsString:= status;

mainclientsform.ADOTable1.Post();

kodistorii:= mainclientsform.ADOTable1.FieldByName('').AsInteger;

bank:=Edit19.Text;

vidob:=Edit20.Text;

nomdog:=Edit23.Text;

notes:=Edit27.Text;

summa:=STRToint(Edit17.Text);

datadog:= StrToDate(Edit22.Text);

srokup:=StrToDate(Edit18.Text);

mainclientsform.ADOTable2.Active:=true;

mainclientsform.ADOTable2.Insert();

mainclientsform.ADOTable2.FieldByName('').AsString:=bank;

mainclientsform.ADOTable2.FieldByName('').AsString:= vidob;

mainclientsform.ADOTable2.FieldByName('').AsDateTime:=datadog;

mainclientsform.ADOTable2.FieldByName('').AsString:=nomdog;

MainClientsForm.ADOTable2.FieldByName('').AsInteger:=summa;

mainclientsform.ADOTable2.FieldByName('').AsDateTime:=srokup;

mainclientsform.ADOTable2.FieldByName('').AsString:=notes;

MainClientsForm.ADOTable2.FieldByName('').AsInteger:=kodistorii;

mainclientsform.ADOTable2.Post();

end;

end.

unit parampoisk;

interface

uses

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

Dialogs, DB, ADODB, Menus, ChildTemplate, Grids, DBGrids,addsorce,

StdCtrls, Mask,DateUtils, ExtCtrls, ComCtrls ;

type

Tparampoik = class(TForm)

Button1: TButton;

GroupBox1: TGroupBox;

Label1: TLabel;

Edit3: TEdit;

GroupBox2: TGroupBox;

Label2: TLabel;

Edit1: TEdit;

GroupBox3: TGroupBox;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

Edit4: TEdit;

Label5: TLabel;

Edit5: TEdit;

procedure RzBitBtn4Click(Sender: TObject);

procedure RzBitBtn3Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

parampoik: Tparampoik;

ChildTemplateForm1: TChildTemplateForm;

ff:string;

flagpoisk:boolean;

p1,p2:tparameter;

all:boolean;

ahour, aminute, asecond, amillisecond :word;

priznak:string;

stroka_SQL,pole,tabl, srtkl,name_poisk, sqlwhere:string;

idnakl,idzapas,i,sravn,kolnakl,kolzapas, rezerv_kol:integer;

implementation

uses mainclients;

{$R *.dfm}

procedure Tparampoik.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure Tparampoik.RzBitBtn3Click(Sender: TObject);

var ChildTemplateForm:TChildTemplateform;

all:boolean;

stroka_SQL,pole,tabl, srtkl,name_poisk, sqlwhere:string;

fl_book, fl_avtor, fl_izdat, fl_location, fl_vid, fl_category:boolean;

begin

MainClientsForm.IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'addform');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'ChildTemplateForm');

ChildTemplateForm:=TChildTemplateform.Create(Owner);

ChildTemplateForm.Left:=0;

ChildTemplateForm.Top:=3;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery1;

mainclientsform.ADOQuery1.Active:=false;

mainclientsform.ADOQuery1.SQL.Clear;

P1 :=mainclientsform.ADOQuery1.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

end;

procedure Tparampoik.RzBitBtn4Click(Sender: TObject);

begin

flagpoisk:=false;

MainClientsForm.IsMDIChildOpen(MainClientsForm,'parampoik');

end;

procedure Tparampoik.Button1Click(Sender: TObject);

var ChildTemplateForm:TChildTemplateform;

timenach,timekon:tdatetime;

data:tdatetime;

summa,srok:integer;

begin

MainClientsForm.IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'addform');

MainClientsForm.IsMDIChildOpen(MainClientsForm,'ChildTemplateForm');

ChildTemplateForm:=TChildTemplateform.Create(Owner);

ChildTemplateForm.Left:=0;

ChildTemplateForm.Top:=3;

mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery2;

mainclientsform.ADOQuery2.Active:=false;

mainclientsform.ADOQuery2.SQL.Clear;

if nomer_poisk=1 then begin

childTemplateForm.Button1.Visible:=false;

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

S:=Edit3.Text;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

stroka_SQL:='SELECT.[],.[], , .* FROM INNER JOIN История ON.[] =.[] WHERE (((])=:P1));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=4 then begin

childTemplateForm.Button1.Visible:=false;

S:=Edit1.Text;

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

p1.DataType := ftstring;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

stroka_SQL:='SELECT.* FROM Клиент WHERE ((() = :P1))' ;

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=5 then begin

childTemplateForm.Button1.Visible:=true;

P1:=mainclientsform.ADOQuery2.Parameters.AddParameter();

P1.Name:='P1';

P1.DataType:=ftInteger;

P1.Value:=1;

stroka_SQL:='SELECT.[], .[], , , , , , , , , ';

stroka_SQL:=stroka_SQL+' FROM (Адрес INNER JOIN ON.[] = .[])';

stroka_SQL:=stroka_SQL+'INNER JOIN ON .[] =.[] WHERE ((()=" "));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=6 then begin

childTemplateForm.Button1.Visible:=true;

P1:=mainclientsform.ADOQuery2.Parameters.AddParameter();

P1.Name:='P1';

P1.DataType:=ftInteger;

P1.Value:=1;

stroka_SQL:='SELECT .[], .[], , , , , , , , , ';

stroka_SQL:=stroka_SQL+' FROM (Адрес INNER JOIN ON.[] = .[])';

stroka_SQL:=stroka_SQL+'INNER JOIN ON .[] =.[] WHERE ((()<>""));';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

end;

end;

if nomer_poisk=7 then begin

childTemplateForm.Button1.Visible:=false;

S:=Edit2.Text;

summa:=STRTOINT(Edit4.Text);

srok:=STRTOINT(Edit5.Text);

P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P1.Name:='P1';

P1.DataType:=ftString;

P1.Value:=S;

P2 :=mainclientsform.ADOQuery2.Parameters.AddParameter;

P2.Name:='P2';

P2.DataType:=ftinteger;

P2.Value:=round(0.5*summa/srok);

stroka_SQL:='SELECT, , , , , , .[], .[], ';

stroka_SQL:=stroka_SQL+'FROM INNER JOIN ( INNER JOIN ON.[] =.[]) ON Фактвыполнения.[Код факта] =.[]';

stroka_SQL:=stroka_SQL+'WHERE ( (>:P2) and () AND((Фактвыполнения.нарушение)="нет") AND (( [) AND (() AND (());';

if (stroka_SQL<>'') then

begin

mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);

mainclientsform.ADOQuery2.Active:=true;

mainclientsform.ADOQuery2.ExecSQL();

if mainclientsform.ADOQuery2.RecordCount>0 then

begin

childTemplateForm.Label1.Caption:=!!!!'

end

else

childTemplateForm.Label1.Caption:=

end;

end;

end;

end.

unit ChildTemplate;

interface

uses

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

Dialogs, Buttons, Grids, DBGrids, ExtCtrls, Menus, StdCtrls, OleServer, ExcelXP, OleCtnrs, ComObj;

type

TChildTemplateForm = class(TForm)

DBGrid1: TDBGrid;

Button1: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure RzToolbarButton2Click(Sender: TObject);

procedure RzToolbarButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

implementation

{$R *.dfm}

uses mainclients;

procedure TChildTemplateForm.Button1Click(Sender: TObject);

var put,asFileName:string;

var

XlApplication: OleVariant;

XLWorkSheet: OleVariant;

var

vVarApp,vVarBooks,vVarBook,

vVarSheets,vVarSheet,vVarCell,ws: Variant;

i,j:integer;

a:string;

begin

if mainclientsform.ADOQuery2.RecordCount>0 then

begin

try

XlApplication := GetActiveOleObject('Excel.Application');

except

XlApplication := CreateOleObject('Excel.Application');

end;

XlApplication.Workbooks.Open[ExtractFilePath(Application.ExeName)+'zayavka.xlt', 0, true]; XlApplication.Visible := true;

XLWorkSheet := XlApplication.ActiveWorkBook.ActiveSheet;

if nomer_poisk<>8 then

XLWorkSheet.cells[3,3]:=''

else

XLWorkSheet.cells[3,3]:='';

mainclientsform.ADOQuery2.First;

for i:=1 to mainclientsform.ADOQuery2.RecordCount do

begin

j:= 0;

A:= mainclientsform.ADOQuery2.FieldByName('Фамилия').AsString;

XLWorkSheet.cells[i+5,2]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Имя').AsString;

XLWorkSheet.cells[i+5,3]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Отчество').AsString;

XLWorkSheet.cells[i+5,4]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('телефон1').AsString;

XLWorkSheet.cells[i+5,5]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('город').AsString;

XLWorkSheet.cells[i+5,6]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('улица').AsString;

XLWorkSheet.cells[i+5,7]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('дом').AsString;

XLWorkSheet.cells[i+5,8]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('квартира').AsString;

XLWorkSheet.cells[i+5,9]:=A ;

mainclientsform.ADOQuery2.Next;

end ;

end;

end;

procedure TChildTemplateForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

XlApplication.Visible := true;

XLWorkSheet := XlApplication.ActiveWorkBook.ActiveSheet;

if nomer_poisk<>8 then

XLWorkSheet.cells[3,3]:=''

else

XLWorkSheet.cells[3,3]:='';

mainclientsform.ADOQuery2.First;

for i:=1 to mainclientsform.ADOQuery2.RecordCount do

begin

j:= 0;

A:= mainclientsform.ADOQuery2.FieldByName('Фамилия').AsString;

XLWorkSheet.cells[i+5,2]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Имя').AsString;

XLWorkSheet.cells[i+5,3]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Отчество').AsString;

XLWorkSheet.cells[i+5,4]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('телефон1').AsString;

XLWorkSheet.cells[i+5,5]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('город').AsString;

XLWorkSheet.cells[i+5,6]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('улица').AsString;

XLWorkSheet.cells[i+5,7]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('дом').AsString;

XLWorkSheet.cells[i+5,8]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('квартира').AsString;

XLWorkSheet.cells[i+5,9]:=A ;

mainclientsform.ADOQuery2.Next;

end ;

end;

end;

procedure TChildTemplateForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

XlApplication.Visible := true;

XLWorkSheet := XlApplication.ActiveWorkBook.ActiveSheet;

if nomer_poisk<>8 then

XLWorkSheet.cells[3,3]:=''

else

XLWorkSheet.cells[3,3]:='';

mainclientsform.ADOQuery2.First;

for i:=1 to mainclientsform.ADOQuery2.RecordCount do

begin

j:= 0;

A:= mainclientsform.ADOQuery2.FieldByName('Фамилия').AsString;

XLWorkSheet.cells[i+5,2]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Имя').AsString;

XLWorkSheet.cells[i+5,3]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Отчество').AsString;

XLWorkSheet.cells[i+5,4]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('телефон1').AsString;

XLWorkSheet.cells[i+5,5]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('город').AsString;

XLWorkSheet.cells[i+5,6]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('улица').AsString;

XLWorkSheet.cells[i+5,7]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('дом').AsString;

XLWorkSheet.cells[i+5,8]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('квартира').AsString;

XLWorkSheet.cells[i+5,9]:=A ;

mainclientsform.ADOQuery2.Next;

end ;

end;

end;

procedure TChildTemplateForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

XlApplication.Visible := true;

XLWorkSheet := XlApplication.ActiveWorkBook.ActiveSheet;

if nomer_poisk<>8 then

XLWorkSheet.cells[3,3]:=''

else

XLWorkSheet.cells[3,3]:='';

mainclientsform.ADOQuery2.First;

for i:=1 to mainclientsform.ADOQuery2.RecordCount do

begin

j:= 0;

A:= mainclientsform.ADOQuery2.FieldByName('Фамилия').AsString;

XLWorkSheet.cells[i+5,2]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Имя').AsString;

XLWorkSheet.cells[i+5,3]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('Отчество').AsString;

XLWorkSheet.cells[i+5,4]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('телефон1').AsString;

XLWorkSheet.cells[i+5,5]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('город').AsString;

XLWorkSheet.cells[i+5,6]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('улица').AsString;

XLWorkSheet.cells[i+5,7]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('дом').AsString;

XLWorkSheet.cells[i+5,8]:=A ;

A:= mainclientsform.ADOQuery2.FieldByName('квартира').AsString;

XLWorkSheet.cells[i+5,9]:=A ;

mainclientsform.ADOQuery2.Next;

end ;

end;

end;

procedure TChildTemplateForm.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;