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

"Проектирование реализации операций бизнес-процесса «Управление документооборотом"

Содержание:

ВВЕДЕНИЕ

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

Задачи работы:

1 Описать предметную область

2 Рассмотреть особенности использования системы

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

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

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

При решении поставленных задач в процессе работы использовались методы:

  • аналитический метод;
  • статистический метод;
  • графические методы;
  • сравнительный метод;
  • методы сбора и обработки данных;

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

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

Основных типов документов бывает всего три: входящие, исходящие и внутренние. Большинство исходящих документов являются ответом организации на соответствующие входящие документы. Внутренние. Данные документы используются для организации работы предприятия.

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

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

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

Рисунок 1.1 - Процесс прямой обработки входящего документа.

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

Рисунок 1.2 - Типы документов и их взаимодействие

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

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

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

Все документы, проходящие через канцелярию, попадают в архив организации, структура которого определяется текущими правилами ведения архивов (рисунок 1.3). Все документы подразделяются на дела. Одно дело объединяет все документы за один год работы предприятия по тому или иному пункту номенклатуры дел организации. Для больших дел вводятся несколько томов. Поиск информации осуществляется как по атрибутам дел и томов, так и по атрибутам документов. Дела в архив передаются из канцелярии или отдельно (по томам), или целиком по окончанию года. Сроки хранения для разных позиций номенклатуры различны. Типовые сроки хранения документов в крупной организации: 1, 3 года и 5, 10, 30, 50, 75 лет. После истечения срока хранения дело из архива предприятия передается на хранение в государственный архив.

Рисунок 1.3 - Структура архива организации

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

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

Поэтому необходимость в создании, разработке и внедрении АИС документооборота очевидна. Требование к системе автоматизации документооборота уровня отдела - простота использования и ее органичное слияние со средствами разработки документов: текстовыми процессорами, электронными таблицами и т. д.

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

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

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

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

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

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



Рисунок 1.4 – Модель AS-IS процесса «Документооборот в организации»


Рисунок 1.5 – Декомпозиция процесса «Документооборот в организации» в нотации IDЕF0 модели AS-IS


Рисунок 1.6 – Декомпозиция процесса «Обработка документа» модели AS-IS

Рисунок 1.7 - Декомпозиция процесса «Формирование отчетов» модели AS-IS




Рисунок 1.8- Декомпозиция процесса «Исполнение документа» в нотации IDEF3 модели AS-IS




Рисунок 1.9 - Модель TO-BE процесса «АРМ “Делопроизводство”»




Рисунок 1.10 - Декомпозиция процесса «АРМ “Делопроизводство”» в нотации IDEF0 модели TO-BE


Рисунок 1.11 - Декомпозиция процесса «АРМ “Делопроизводство: работа с документами”» модели TO-BE




Рисунок 1.12 - Декомпозиция процесса «АРМ “Делопроизводство: отчетность”» модели TO-BE


Рисунок 1.13 – Контекстная диаграмма потоков данных


Рисунок 1.14 – Схема документооборота

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

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

  • Корресподенты ( Справочник корреспондентов);
  • Контактные лица( Сотрудники и справочник должностей);
  • Реквизиты( Справочник видов документов);
  • Входящие документы;
  • Исходящие документы;
  • Внутренние документы;
  • Процессы;
  • Задачи.

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

по Документам:

  • Внутренние документы;
  • Входящие документы;
  • Договоры;
  • Документооборот по организациям;
  • Журнал передачи;
  • Корреспонденты;
  • Сводка по видам документов;
  • Справка об объеме документооборота;
  • Файлы.

по Задачам и процессам:

  • Процессы;
  • Задачи;
  • Поручения;
  • Согласования;
  • Утверждения;
  • Справка об исполнительской дисциплине;
  • Шаблоны процессов.

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

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

В качестве среды разработки приложения было решено использовать Borland Delphi 7.0. Выбор обусловлен тем, что для связи с таблицами Access предполагается использование механизма Microsoft ActiveX Data Objects (ADO), который предоставляет по сравнению с BDE гораздо больше функциональных возможностей, и Delphi поддерживает эту технологию. Так же Delphi имеет ряд преимуществ по сравнению с другими программными продуктами:

  • быстрота разработки приложения;
  • высокая производительность разработанного приложения;
  • низкие требования разработанного приложения к ресурсам компьютера;
  • наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi.
  • возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходниках)
  • удачная проработка иерархии объектов

Borland включила в Delphi поддержку технологии ADO, которая усиленно развивается корпорацией Microsoft. На основе этого механизма созданы соответствующие компоненты-наборы TADOTable, TADOQuery, TADOStoredProc, повторяющие в функциональном отношении компоненты Table, Query, StoredProc, но не требующие развёртывания и настройки на клиентской машине BDE, т.к. технология ADO является специальной надстройкой над механизмом OLE и органически входит в Windows 32.

Технология ADO основана на возможностях СОМ, а именно интерфейсов OLE DB. OLE DB и ADO — часть универсального механизма доступа к данным Microsoft (Microsoft Universal Data Access), позволяющая осуществить доступ как к реляционным, так и к нереляционным источникам данных, таким как файловая система, данные электронной почты, многомерные хранилища данных и др. ADO использует библиотеки OLE DB, предоставляющие низкоуровневый интерфейс для доступа к данным. OLE DB предоставляет доступ к данным с помощью COM-интерфейсов. Можно также использовать OLE DB непосредственно, минуя ADO. Приложения БД, обращающиеся к данным через ADO, независимы от процессора БД Borland Database Engine.

OLE DB представляет собой набор специализированных объектов СОМ, инкапсулирующих стандартные функции обработки данных, и специализированные функции конкретных источников данных и интерфейсов, обеспечивающих передачу данных между объектами.

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

Объекты OLE DB создаются и функционируют так же, как и другие объекты СОМ. Каждому объекту соответствует идентификатор класса CLSID, хранящийся в системном реестре. Для создания объекта используется метод CoCreateinstance и соответствующая фабрика класса. Объекту соответствует набор интерфейсов, к методам которых можно обращаться после создания объекта.

В результате приложение обращается не прямо к источнику данных, а к объекту OLE DB, который "умеет" представить данные (например, из файла электронной почты) в виде таблицы БД или результата выполнения запроса SQL.

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

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

Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек.

Основным достоинством ADO является её естественная ориентация на создание “облегчённого” клиента. В рамках этой технологии на машине сервера данных (это может быть файловый сервер в рамках стандартной файл - серверной технологии или машина с сервером данных – в технологии клиент-сервер) устанавливается так называемая технология OLE DB v.2.1 и выше, а на клиентской машине – несколько базовых объектов ADO, обеспечивающие все необходимые запросы пользователя к данным. В рамках OLE DB созданы несколько провайдеров данных, которые выбираются в соответствии с типом обслуживаемых данных (существуют провайдеры для файл/серверных таблиц типа dBase, Paradox, FoxPro и ряда других, а также для промышленных серверов MS SQL Server и Oracle). Базовые объекты ADO, как и любые другие ActiveX компоненты, после компиляции становятся неотъемлемой частью клиентской программы, осуществляя всю необходимую связь с провайдером. На рисунке 1.14 показана схема доступа к данным через ADO.

Рисунок 1.14 - Cхема доступа к данным через ADO

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

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

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

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

\

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

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

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

  • Корресподенты ( Справочник корреспондентов);
  • Контактные лица( Сотрудники и справочник должностей);
  • Реквизиты( Справочник видов документов);
  • Входящие документы;
  • Исходящие документы;
  • Внутренние документы;
  • Процессы;
  • Задачи.

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

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

по Документам:

  • Внутренние документы;
  • Входящие документы;
  • Договоры;
  • Документооборот по организациям;
  • Журнал передачи;
  • Корреспонденты;
  • Сводка по видам документов;
  • Справка об объеме документооборота;
  • Файлы.

по Задачам и процессам:

  • Процессы;
  • Задачи;
  • Поручения;
  • Согласования;
  • Утверждения;
  • Справка об исполнительской дисциплине;
  • Шаблоны процессов.

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

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

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

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

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

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

Рисунок 2.4 - ER-модель разрабатываемой базы данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • повторное использование кода;
  • простота использования;
  • удобный графический пользовательский интерфейс.

Минимально необходимое техническое и программное обеспечение:

  • Процессор Intel Pentium 166 MHz;
  • Оперативная память 32 Mb;
  • 10 Mb свободного места на жестком диске;
  • ОС Microsoft Windows 2000;
  • Microsoft Office 2000.

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

Рисунок 2.5 - Окно идентификации пользователя

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

Рисунок 2.6 - Основное окно приложения

Описание элементов управления основного окна приложения:

Секция «Справочники»:

  • Клиенты – открывает окно «Клиенты», предназначенное для управления списком клиентов.
  • Поставщики – открывает окно «Поставщики», предназначенное для управления списком поставщиков.
  • Материалы - открывает окно «Оборудование и расходные материалы», предназначенное для управления списком материалов и просмотра состояния склада.

Секция «Документация»:

  • Технические задания – открывает окно «Технические задания», предназначенное для ввода данных технического задания и формирования по нему технического предложения клиенту.
  • Заказы – открывает окно «Заказы», предназначенное для ввода данных заказа поставщику.
  • Приходные ордера – открывает окно «Приходные ордера», предназначенное для ввода информации о поступившем оборудовании и расходных материалах.
  • Договоры – открывает окно «Договоры», предназначенное для ввода данных заключенного с клиентом договора.
  • Платежные поручения – открывает окно «Платежные поручения», предназначенное для ввода данных платежного поручения в банк.
  • Акты выполненных работ – открывает окно «Акты выполненных работ», предназначенное для ввода данных актов выполненных работ.

Секция «Отчеты»:

  • По договорам – открывает окно «Отчет по договорам», для формирования отчетов по договорам по выбранным клиенту и периоду заключения договора.
  • Расход материалов – открывает окно «Отчет по расходу материалов»

Справка- вызов справки по работе с программой.

Выход – завершение работы приложения.

Описание окон вызываемых из главного окна приложения.

Клиенты. Окно «Клиенты» предназначено для управления списком клиентов организации, рисунок 2.7.

Рисунок 2.7 - Окно «Клиенты»

Окно содержит таблицу, в которой отображаются данные о клиенте и поля для ввода этих данных (наименование, адрес, телефон, ИНН, банк, расчетный счет, БИК). Все операции с записями осуществляются с помощью кнопок под таблицей.

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

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

Поставщики. Окно «Поставщики» предназначено для управления списком поставщиков организации, рисунок 2.8.

Рисунок 2.8 - Окно «Поставщики»

Окно содержит таблицу, в которой отображаются данные о поставщике и поля для ввода этих данных (наименование, адрес, телефон, ИНН, банк, расчетный счет, БИК). Все операции с записями осуществляются с помощью кнопок под таблицей.

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

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

Оборудование и расходные материалы. Окно «Оборудование и расходные материалы» предназначено для управления списком материалов и просмотра состояния склада, рисунок 2.9.

Рисунок 2.9 - Окно «Оборудование и расходные материалы»

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

В нижней части окна расположена секция «Поиск». Поиск ведется по наименованию материала.

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы

Технические задания. Окно «Технические задания» предназначено для ввода данных технического задания и формирования по нему технического предложения клиенту, рисунок 2.10.

Рисунок 2.10 - Окно «Технически задания»

Верхняя таблица содержит информацию о технических заданиях (объект, клиент, дата). Объект и дата вводятся в соответствующие поля ввода под таблицей. Наименование клиента выбирается из справочника «Клиенты».

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

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

Все операции с записями осуществляются с помощью кнопок под таблицами.

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

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

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

Рисунок 2.11- Окно «Технические предложения»

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

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

Нижняя таблица содержит информацию о подобранном оборудовании (наименование, фирма, модель, количество, цена, итого). Поле «Итого» вычисляется автоматически по каждой строке.

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

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к окну «Технические задания».

Заказы. Окно «Заказы» предназначено для управления списком заказов поставщикам, рисунок 2.12.

Рисунок 2.12 - Окно «Заказы»

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

Под таблицей расположена секция «Фильтрация записей». Фильтрация может осуществляться по следующим полям: наименование поставщика, дата.

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

Все операции с записями осуществляются с помощью кнопок под таблицами.

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

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

Приходные ордера. Окно «Приходные ордера» предназначено для ввода информации о поступившем оборудовании и расходных материалах, рисунок 2.13.

Рисунок 2.13 - Окно «Приходные ордера»

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

Под таблицей расположена секция «Фильтрация записей». Фильтрация может осуществляться по следующим полям: наименование поставщика, дата.

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

Все операции с записями осуществляются с помощью кнопок под таблицами.

При нажатии на кнопку "Печать" открывается приложение Microsoft Word, в котором автоматически формируется выбранный приходный ордер. Сформированный документ можно распечатать или сохранить на диске.

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

Договоры. Окно «Договоры» предназначено для ввода данных заключенного с клиентом договора, рисунок 2.14.

Рисунок 2.14 - Окно «Договоры»

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

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

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

Все операции с записями осуществляются с помощью кнопок под таблицами.

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

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

Платежные поручения. Окно «Платежные поручения» предназначено для ввода данных платежного поручения в банк, рисунок 2.15.

Рисунок 2.15 - Окно «Платежные поручения»

Окно содержит таблицу, которая содержит информацию о платежных поручениях в банк (поставщик, назначение платежа, вид платежа, дата оплаты, сумма платежа). Наименование поставщика выбирается из справочника «Поставщики».

Под таблицей расположена секция «Фильтрация записей». Фильтрация может осуществляться по следующим полям: наименование поставщика, дата.

Все операции с записями осуществляются с помощью кнопок под таблицами.

При нажатии на кнопку "Печать" открывается приложение Microsoft Word, в котором автоматически формируется выбранное платежное поручение. Сформированный документ можно распечатать или сохранить на диске.

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

Акты выполненных работ. Окно «Акты выполненных работ» предназначено для ввода данных актов выполненных работ, рисунок 2.16.

Рисунок 2.16 - Окно «Акты выполненных работ»

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

Под таблицей расположена секция «Фильтрация записей». Фильтрация может осуществляться по следующим полям: наименование клиента, дата.

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

Все операции с записями осуществляются с помощью кнопок под таблицами.

При нажатии на кнопку "Печать" открывается приложение Microsoft Word, в котором автоматически формируется выбранный акт выполненных работ. Сформированный документ можно распечатать или сохранить на диске.

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

Отчет по договорам. Окно «Отчет по договорам» предназначено для формирования отчетов по договорам, рисунок 2.17.

Рисунок 2.17 - Окно «Отчет по договорам»

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

При нажатии на кнопку "Печать" открывается приложение Microsoft Word, в котором автоматически формируется отчет по договорам. Сформированный документ можно распечатать или сохранить на диске.

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

Отчет по расходу материалов. Окно «Отчет по расходу материалов» предназначено для формирования отчетов по расходу материалов, рисунок 2.18.

Рисунок 2.18 - Окно «Отчет по расходу материалов»

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

Нажатие кнопки «Очистить» очищает поля ввода периода.

При нажатии на кнопку "Печать" открывается приложение Microsoft Word, в котором автоматически формируется отчет по расходу материалов. Сформированный документ можно распечатать или сохранить на диске.

При нажатии на кнопку «Закрыть», расположенную в нижней части окна, происходит переход к главному окну программы.

ЗАКЛЮЧЕНИЕ

Курсовая работа ставила целью разработать автоматизированную систему документооборота для организации.

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

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

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

- Выявлены недостатки и построена функциональная модель «To Be»;

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

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

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

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

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

  1. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. ГОСТ 19.701-90 (ИСО 5807-85) / Государственный комитет СССР по управлению качеством продукции и стандартам, 01.01.1992.
  2. Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие, М.: Гелиос АРВ, 2007. - 368 с., ил
  3. Баженова И. Ю. , Основы проектирования приложений баз данных, Издательства: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2008 г., , 328 стр.
  4. Вендров А.М., CASE-технологии. Современные методы и средства проектирования информационных систем - М.: Финансы и статистика, 2007 г, 456 стр.
  5. Гашков С. Б., Э. А. Применко, М. А. Черепнев Криптографические методы защиты информации, М, Издательство: Академия, 2010 г., 304 стр.
  6. Гвоздева Т. В., Б. А. Баллод, Проектирование информационных систем, М, Издательство: Феникс, 2009 г., 512 стр.
  7. Голицына О. Л., И. И. Попов, Н. В. Максимов, Т. Л. Партыка, Информационные технологии, М, Издательство Инфра-М, 2009 г., 608 стр.
  8. Дейв Крейн, Эрик Паскарелло, Даррен Джеймс. AJAX в действии: Учебник – М.: Вильямс, 2007. 450 – 490 с.
  9. Дэвид Флэнаган. JavaScript. Подробное руководство: Учебник – М.: Символ Плюс, 2008. 243 – 249 с.
  10. Емельянова Н. З., Партыка Т. Л., И. И. Попов, Проектирование информационных систем, М, Издательство: Форум, 2009 г., 432 стр.
  11. Емельянова Н. З., Т. Л. Партыка, И. И. Попов, М, Издательство Форум, 2007 г., , 416 стр.
  12. Илюшечкин В. М. , Основы использования и проектирования баз данных, М, Издательство Юрайт, 2010 г., 224 стр.
  13. Котляров В. П., Т. В. Коликова, Основы тестирования программного обеспечения, Издательства: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2009 г., 288 стр.
  14. Кристиан Дари, Богдан Бринзаре, Филип Черчез-Тоза, Михай Бусика. AJAX и PHP. Разработка динамических веб-приложений: Учебник – М.: Символ Плюс, 2007, 289 стр.
  15. Кузин А. В., С. В. Левонисова, Базы данных, М, Издательство: Академия, 2008 г., 320 стр.
  16. Кузнецов С. Д., Основы баз данных, М, Издательства: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2007 г., 488 стр.
  17. Молчанов А. Ю., Системное программное обеспечение, М, Издательство: Питер, 2010 г., 400 стр.
  18. Незнанов А. А., Программирование и алгоритмизация, М, Издательство: Академия, 2010 г., 304 стр.
  19. Пирогов В. Ю., Информационные системы и базы данных. М, Организация и проектирование, Издательство: БХВ-Петербург, 2009 г.528 стр.
  20. Предметно-ориентированные экономические информационные системы, М, Издательство: Финансы и статистика, 2007 г., 224 стр.
  21. Реляционные базы данных: практические приемы оптимальных решений. – СПб.: БХВ-Петербург, 2009 – 400с.:ил;
  22. Симионов Ю.Ф., Боромотов В.В. Информационный менеджмент. — Ростов н.Д: Феникс, 2008, 250с., ил.;
  23. Чипига А. Ф., Информационная безопасность автоматизированных систем, М, Издательство: Гелиос АРВ, 2010 г., 336 стр.

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

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;

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;