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

Разработка регламента выполнения процесса «Расчет заработной платы".

Содержание:

Введение

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

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

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

Для достижения поставленной цели необходимо решить следующие задачи:

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

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

При помощи case-средств описать рассматриваемый бизнес-процесс. Выявить его сильные и слабые стороны. Продемонстрировать необходимость его автоматизации.

1 глава. Построение бизнес-процессов «как есть»

1.1 Описание предметной области. Постановка задачи

Разрабатываемая ЭИС предназначена, в первую очередь, для автоматизации расчета заработной платы бюджетного учреждения. В МДОУ «Детский сад общеразвивающего вида № 21 «Росточек» этим занимается бухгалтер под контролем главного бухгалтера. Часто в небольших бюджетных учреждениях должность бухгалтера по расчету заработной платы вакантна или вообще не предусмотрена, поэтому расчетом заработной платы также занимается главный бухгалтер.

Бухгалтеру по расчету заработной платы определены следующие должностные обязанности:

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

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

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

Осуществлять регистрацию бухгалтерских проводок и разноску их по счету «№ 71».

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

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

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

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

Подготавливать данные для составления баланса и оперативных сводных отчетов о доходах и расходах денежных средств.

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

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

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

Выполнять поручения главного бухгалтера (его заместителя).

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

заполнение и анализ табелей учета рабочего времени;

учет листков о временной нетрудоспособности;

начисление заработной платы;

расчет начислений страховых взносов;

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

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

Систематизируем автоматизируемые функции в виде схеме (см. рисунок 1.1).

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

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

количество отработанных часов;

количество пропущенных часов по болезни;

количество пропущенных часов по неуважительной причине;

сведения о сверхурочной работе или работе в ночную смену.

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

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

Общая схема документооборота данного процесса представлена на рисунке 1.2.

Рисунок 1.2 - Схема документооборота в процессе расчета заработной платы

В процессе своей деятельности на предприятии бухгалтер по учету заработной платы взаимодействует с:

главным бухгалтером;

старшим воспитателем;

заведующим хозяйственной частью;

другими работниками.

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

Особенности расчета заработной платы в бюджетных организациях

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

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

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

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

Основными видами оплаты труда являются повременная, сдельная.

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

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

Рассмотрим основные моменты расчет заработной платы МДОУ № 21. В соответствии с Положением об оплате труда и материальном стимулировании работников муниципального дошкольного образовательного учреждения МДОУ № 21 Заработная плата работников учреждения состоит:

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

компенсационных надбавок;

стимулирующих доплат.

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

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

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

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

за работу с вредными условиями труда;

за расширение функциональных обязанностей (руководство методическим объединением, ведение документации по персонифицированному учету, работа инспектором по охране детства, совмещение профессий (должностей));

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

за работу в ночное время;

за работу в праздничные дни.

Надбавка за работу в ночное время (с 22 часов до 6 часов) устанавливается в соответствии с Постановлением Правительства Российской Федерации от 22 июля 2008 г. № 554 «О минимальном размере повышения оплаты труда за работу в ночное время» в размере 40% за каждый час работы в ночное время. Период работы в ночное время фиксируется в табелях учета рабочего времени итоговым количеством за месяц. Часовая ставка для работников, получающих должностной оклад, рассчитывается путем деления должностного оклада на количество часов в месяц.

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

Работа в выходные и нерабочие праздничные дни оплачивается в порядке, предусмотренном статьей 153 Трудового кодекса Российской Федерации: для работников, получающих оклад такая работа оплачивается в размере не менее одинарной дневной или часовой ставки (части оклада (должностного оклада) за день или час работы) сверх оклада (должностного оклада), если работа в выходной или нерабочий праздничный день производилась в пределах месячной нормы рабочего времени, и в размере не менее двойной дневной или часовой ставки (части оклада (должностного оклада) за день или час работы) сверх оклада (должностного оклада), если работа производилась сверх месячной нормы рабочего времени.

Компенсационные надбавки устанавливаются по представлению руководителя структурного подразделения приказом Заведующего МДОУ.

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

за квалификационную категорию

за почетное звание \ научную степень;

за стаж педагогической работы;

за стаж непрерывной работы в данном учреждении;

за качество выполняемых работ;

за методическую работу;

по итогам работы за период;

за интенсивность и высокие показатели в работе;

за качество выполняемых работ.

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

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

В МДОУ устанавливается доплата работникам, удостоенным отраслевыми наградами и почетными званиями. Доплата работникам, удостоенным нагрудными знаками за труд (орден, медаль, знак отличия), устанавливается в размере 20% от должностного оклада (ставки заработной платы). Доплата работникам, удостоенным почетными званиями, устанавливается в размере 10% от должностного оклада. Работникам, занимающим штатные должности с неполным рабочим днем (0,25, 0,5 или 0,75 ставки), доплата устанавливается пропорционально отработанному времени.

Доплата за стаж непрерывной работы устанавливается работникам, проработавшим в МДОУ, пять и более лет. Доплата за стаж непрерывной работы устанавливается в следующих размерах:

стаж 5 полных лет - доплата 5% к основному окладу;

стаж 10 полных лет - доплата 10% к основному окладу;

стаж 15 полных лет - доплата 15% к основному окладу;

стаж 20 полных лет - доплата 20% к основному окладу.

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

Расчет больничных листов происходит в соответствии с действующим законодательством РФ. Право на получение пособия по временной нетрудоспособности возникает у работника с того момента, как был предъявлен больничный. Работник должен предъявить его в день выхода на работу. 100% оплата больничного зависит от стажа работника, в который включается вся трудовая деятельность человека и считается она по трудовой книжке в календарных днях. Свыше 8 лет страхового стажа - 100% оплата больничного (но не более 34 583 руб.), от 5 до 8 лет - 80%, до 5 лет - 60%. При страховом стаже менее 6 месяцев размер пособия по временной нетрудоспособности исчисляется из МРОТ (4 430 руб.).

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

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

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

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

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

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

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

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

1.2 Выбор средства для моделирования бизнес-процессов

CASE – средства моделирования

Хотя рисовать модели на бумаге не возбраня­ется, современное моделирование бизнес-процессов обычно осуществляется с использованием CASE–средств. Эта аббревиатура означает Computer Aided System Engineering, что переводится как «проектирование систем с помощью компьютера». На современном рынке программного обеспечения CASE–средств не одна сотня. В такой ситуации имеет смысл обсудить их классификацию и задачи, которые можно решить с их помощью (применительно к процессному подходу).

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

Особенностью современных CASE-средств являются:

а) наглядные графические средства для создания моделей;

б) использование средств их хранения в виде файлов или в виде данных в специальном репозитарии;

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

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

CASE–средства можно классифицировать по типам:

а) средства анализа и моделирования, предназначенные для создания описаний процессов и иных предметных областей;

б) средства анализа и проектирования, используемые для управления требованиями и документирования IT–проектов;

в) средства проектирования данных, обеспечивающие моделирование данных и генерацию структуры СУБД;

г) средства моделирования приложений (сегодня наиболее распространенной категорией таких средств является семейство средств UML–моделирования).

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

– Together Architect фирмы Borland;

– семейство AllFusion Business Process Modeler (фирма BPwin) для описания бизнес-процессов с помощью методологии IDEF0 (Computer Associates) и организации коллективной работы над единым репозитарием моделей;

– ARIS Bisiness Architect (фирма IDS Scheer) – инструмент коллектив­ной работы над совокупностью взаимосвязанных моделей различных типов, предназначенных для описания бизнес-процессов, данных и информационных систем, деятельности компаний;

– Visio (фирма Microsoft) – средство создания моделей бизнес-процессов и данных с применением различных методологий.

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

BPWin и ERWin компании СотрШвгAssociates. Computer Associates International, Inc. (CA) входит в пятерку ведущих производителей программного обеспечения, предлагая средства моделирования, резервного копирования, управления инфраструктурой предприятия (сетями, серверами и т. д.), информационной безопасности, business intelligence и т. д. Пакет BPWin основан на методологии IDEF и предназначен для функционального моделирования и анализа деятельности предприятия. Методология IDEF, являющаяся официальным федеральным стандартом США, представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель IDEF0 отображает функциональную структуру объекта, то есть производимые им действия и связи между этими действиями.

Возможности BPwin:

- поддерживает сразу три стандартные нотации – IDEF0 (функциональное моделирование), DFD (моделирование потоков данных) и IDEF3 (моделирование потоков работ). Эти три основных ракурса позволяют описывать предметную область наиболее комплексно;

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

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

- позволяет облегчить сертификацию на соответствие стандартам качества ISO9000;

- интегрирован с ERwin (для моделирования БД), Paradigm Plus (для моделирования компонентов ПО) и др.;

- интегрирован со средством имитационного моделирования Arena;

- содержит собственный генератор отчетов;

- позволяет эффективно манипулировать моделями – сливать и расщеплять их;

- имеет широкий набор средств документирования моделей, проектов.

Пакет ERWin – это средство концептуального моделирования БД. Используется при моделировании и создании баз данных произвольной сложности на основе диаграмм «сущность – связь». В настоящее время ERWin является наиболее популярным пакетом моделирования данных благодаря поддержке широкого спектра СУБД самых различных классов. Возможности ERWin:

- поддерживает методологию структурного моделирования SADT и следующие нотации: стандартную нотацию IDEFlx для ER-диаграмм моделей данных, нотацию IE и специальную нотацию, предназначенную для проектирования хранилищ данных – Dimensional;

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

- интегрирован линейкой продуктов Computer Associates для поддержки всех стадий разработки ИС, CASE-средствами Oracle Designer, Rational Rose, средствами разработки и др.;

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

- возможна совместная работа группы проектировщиков с одними и теми же моделями (с помощью AllFusion Model Manager);

- позволяет переносить структуру БД (не сами данные!) из СУБД одного типа в СУБД другого;

- позволяет документировать структуру БД.

1.3 Моделирование бизнес-процессов «как есть»

Построим IDEF0 и DFD диаграммы документооборота процесса расчета заработной платы. Рассмотрим входные и выходные данные поток данного процесса на следующей структурно-функциональной диаграмме (см. рисунок 1.3).

Рисунок 1.3 - Структурно-функциональная диаграмма процесса документооборота

Входящие объекты:

сведения об отработанном времени (данные для составления табеля учета рабочего времени);

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

больничные листы.

Выходными объектами являются:

табель учета рабочего времени;

расчетно-платежная ведомость.

Управляющие потоки:

локальные нормативные акты;

трудовое законодательство Российской Федерации;

налоговое законодательство Российской Федерации.

Исполнители:

руководители структурных подразделений;

бухгалтер по расчету заработной платы;

работники.

Рассмотрим декомпозицию этого процесса - диаграмму DFD (Рисунок 1.4).

Рисунок 1.4 - Структурно-функциональная диаграмма декомпозиции

На диаграмме в отдельные этапы выделены следующие подпроцессы:

Учет больничных листов.

Расчет отработанного времени.

Расчет компенсаций и стимулирующих надбавок.

Расчет налоговых вычетов.

Окончательный расчет заработной платы.

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

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

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

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

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

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

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

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

К основным функциям разрабатываемой информационной системы относятся:

учет рабочего времени сотрудников;

составление табелей учета рабочего времени;

учет больничных листов;

расчет заработной платы сотрудников;

расчет вычетов из заработной платы;

формирование расчетно-платежной ведомости;

формирование отчетных документов.

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

снижение трудоемкости обработки информации;

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

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

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

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

Схематично постановка задачи изображена далее (Рисунок 1.5).

Рисунок 1.5 - Постановка задачи на разработку ЭИС

Входная информация может поступать в систему следующим образом:

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

ввод данных о временной нетрудоспособности;

учет компенсационных и стимулирующих выплат.

Выходная информация будет представлена данными:

табель учета отработанного времени;

расчетно-платежная ведомость;

другие отчеты, требуемые в учреждении.

В качестве внутренней информации можно выделить:

должностные тарифы (оклады);

индивидуальные повышающие индексы;

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

Этапы разработки структурно представлены на следующей схеме (Рисунок 1.6).

Рисунок 1.6 - Этапы разработки ЭИС

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

Анализ существующих разработок

Рассмотрим конфигурацию системы 1С Зарплата и кадры. Программа «1С:Зарплата и Кадры» предназначена для расчета заработной платы и кадрового учета, может использоваться как на хозрасчетных предприятиях Российской Федерации, так и в организациях с бюджетным финансированием. Она позволяет не только автоматизировать расчет заработной платы, но и организовать учет сотрудников, регистрировать служебные перемещения, получать статистические справки по кадровому составу. Универсальность системы позволяет реализовать любой подход к решению этих задач и получать любые отчетные документы.

Система имеет богатые возможности:

оформлять приказы о приеме на работу;

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

вводить и рассчитывать больничные листы;

осуществлять расчет отпусков разного типа и оформлять отпускные записки;

вводить разовые или долгосрочные доплаты и надбавки;

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

проводить перерасчеты "задним числом";

рассчитывать разнообразные доплаты от доплаты к окладу до надбавки "за выслугу лет";

вести штатное расписание предприятия;

получать стандартные отчеты и формы для представления в налоговые и прочие органы;

проводить межрасчетные выплаты заработной платы;

проводить частичную выплату заработной платы;

депонировать суммы, не выданные по платежным ведомостям;

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

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

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

Приказ о приеме (форма Т-1);

Приказ об увольнении (форма Т-8);

Начисление зарплаты;

Начисление налогов;

Больничный лист;

Начисление отпуска (форма Т-6);

Ссуда предприятия;

Исполнительный лист;

Наряды;

Договора гражданско-правового характера;

Табель отработанного времени (форма Т-13);

Расчетные листки;

Расчетные и расчетно-платежные ведомости (формы Т-49, Т-51, 13-ФО, 15-ФО);

Свод по заработной плате;

Отчет по расходам за счет средств ФСС;

Свод по исполнительным листам;

Свод по перечислению заработной платы в банки;

Среднесписочная численность;

Отчеты по штатному расписанию (в том числе форма Т-3);

Сводная отчетность для бюджетных организаций (по формам 14-БЮДЖ и 14-СВ);

Отчет по сводным проводкам;

Регистры налогового учета расходов на оплату труда для целей налогообложения прибыли;

Справка о доходах физического лица (форма 2-НДФЛ);

Сведения о доходах физических лиц на магнитных носителях;

Налоговая карточка по учету доходов и налога на доходы физических лиц (форма 1-НДФЛ);

Отчеты для персонифицированного учета в ПФР (анкета формы АДВ-1 и индивидуальные сведения о застрахованном лице формы СЗВ-3);

Сведения для персонифицированного учета в ПФР на магнитных носителях;

Расчет по авансовым платежам по ЕСН и страховым взносам в ПФР на обязательное пенсионное страхование;

Индивидуальная карточка по ЕСН;

Заявления физических лиц в ИМНС для получения ИНН.

Система «1С:Зарплата и Кадры» может быть адаптирована к любым особенностям расчета заработной платы и учета кадров конкретного предприятия. Стоимость данной системы составляет порядка 15 000 рублей, плюс стоимость базовой платформы 1С, что для бюджетного учреждения является высокой стоимостью. Кроме того, ввиду обилия возможностей, данная программа требует высококвалифицированных пользователей, принятие на работу которого в бюджетное учреждение потребует дополнительных расходов на оплату труда. Именно поэтому, не смотря на все достоинства рассматриваемой системы, разработка собственного программного продукта является, несомненно, наиболее оптимальным решением.

2 глава. Построение бизнес-процессов «как должно быть»

2.1 Предлагаемые мероприятия по улучшению бизнес-процессов

Под информационным обеспечением понимается совокупность следующих элементов [2.2]:

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

система документации;

схема информационных потоков;

методология построения базы данных.

Рассмотрим систему документации и информационных потоков в проектируемой системе. В ЭИС расчета заработной платы в качестве входной информации будет выступать:

информация о фактически отработанном времени сотрудниками;

информация о больничных;

размеры компенсационных и стимулирующих выплат.

Выходными документами являются:

табель учета отработанного времени;

расчетно-платежная ведомость;

другие отчеты, требуемые в учреждении.

Внутренняя информация представлена:

сведения о должностных окладах;

сведения о персонале;

повышающие коэффициенты, установленные руководителем;

фиксированные надбавки за стаж и награды.

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

должность;

сотрудник;

табель учета рабочего времени;

элемент табеля рабочего времени;

расчетно-платежная ведомость;

элемент ведомости.

Сущность «Должность» определена следующими атрибутами:

идентификатор;

наименование должности;

оклад.

Сущность «Сотрудник»:

идентификатор;

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

ФИО;

должность;

возраст;

общее начало работы;

сведения о детях.

Сущность «Табель учета рабочего времени»:

идентификатор;

номер;

дата составления;

период;

примечания.

Сущность «Элемент табеля рабочего времени»:

идентификатор;

идентификатор соответствующего табеля;

сотрудник;

дата;

отработано часов;

дополнительное количество часов;

коды отработки.

Сущность «Расчетно-платежная ведомость»:

идентификатор;

номер;

дата составления;

период;

примечания.

Сущность «Элемент ведомости»:

идентификатор;

идентификатор соответствующей ведомости;

сотрудник;

количество отработанных часов;

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

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

количество часов, отработанных в выходные дни;

начисленная сумма;

надбавки;

общая сумма;

удержания из заработной платы;

сумма к выдаче.

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

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

Рассмотрим атрибуты указанных на схеме сущностей (Таблицы 2.1 - 2.7).

Таблица 2.1 - Атрибуты сущности «Должность»

№ пп

Атрибут

Тип данных

Размер

Примечания

1

Идентификатор

Автоинкрементное

ПК

2

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

Строка

100

3

Оклад

Денежный

Таблица 2.2 - Атрибуты сущности «Сотрудник»

№ пп

Атрибут

Тип данных

Размер

Примечания

1

Идентификатор;

Автоинкрементное

ПК

2

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

Строка

10

3

ФИО;

Строка

100

4

Должность;

Код

ВК

5

Возраст;

Числовой

6

Общее начало работы;

Числовой

7

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

Комплексное

Таблица 2.3 - Атрибуты сущности «Элемент табеля»

№ пп

Атрибут

Тип данных

Размер

Примечания

1

Идентификатор;

Автоинкрементное

ПК

2

идентификатор соответствующего табеля;

Код

ВК

3

сотрудник;

Код

ВК

4

дата;

Дата

5

отработано часов;

Числовой

6

дополнительное количество часов;

Числовой

7

коды отработки.

Комплексное

Таблица 2.4 - Атрибуты сущности «Табель учета рабочего времени»

№ пп

Атрибут

Тип данных

Размер

Примечания

1

идентификатор;

Автоинкрементное

ПК

2

номер;

Числовой

3

дата составления;

Дата

4

период;

Строка

50

5

примечания

Строка

300

Таблица 2.5 - Атрибуты сущности «Элемент ведомости»

№ пп

Атрибут

Тип данных

Размер

Примечания

1

Идентификатор;

Автоинкрементное

ПК

2

идентификатор соответствующего табеля;

Код

ВК

3

сотрудник;

Код

ВК

4

количество отработанных часов;

Числовой

5

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

Числовой

6

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

Числовой

7

количество часов, отработанных в выходные дни;

Числовой

8

начисленная сумма;

Денежный

9

надбавки;

Денежный

10

общая сумма;

Денежный

11

удержания из заработной платы;

Денежный

12

сумма к выдаче

Денежный

Таблица 2.6 - Атрибуты сущности «Расчетно-платежная ведомость»

№ пп

Атрибут

Тип данных

Размер

Примечания

1

идентификатор;

Автоинкрементное

ПК

2

номер;

Числовой

3

дата составления;

Дата

4

период;

Строка

50

5

примечания

Строка

300

2.2 Моделирование бизнес-процессов «как должно быть»

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

Рисунок 2.2 - Структурно-функциональная диаграмма процесса документооборота

Входящие объекты:

сведения об отработанном времени (данные для составления табеля учета рабочего времени);

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

больничные листы.

Выходными объектами являются:

табель учета рабочего времени;

расчетно-платежная ведомость.

Управляющие потоки:

локальные нормативные акты;

трудовое законодательство Российской Федерации;

налоговое законодательство Российской Федерации.

Исполнители:

руководители структурных подразделений;

бухгалтер по расчету заработной платы;

работники.

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

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

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

Описание обеспечивающих подсистем ЭИС

Организационное обеспечение

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

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

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

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

В частности, относительно проектируемого ЭИС к организационному обеспечению будет относиться:

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

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

разработка электронных шаблонов выходных документов;

организация взаимодействия страхового агента и центра приема платежей (при необходимости).

Заключение

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

К основным функциям разрабатываемой информационной системы относятся:

учет рабочего времени сотрудников;

составление табелей учета рабочего времени;

учет больничных листов;

расчет заработной платы сотрудников;

расчет вычетов из заработной платы;

формирование расчетно-платежной ведомости;

формирование отчетных документов.

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

снижение трудоемкости обработки информации;

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

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

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

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

  1. Тунгусков Ю. А., Совершенствование материально-технического обеспечения ООО «Нижневартовскэнергонефть» на основе логистики, Тюмень, 2005. – 22 с.
  2. Миротин Л.Б., Ташбвев Ы.Э., Порошина О.Г. Эффективная логистика, М.: Экзамен, 2002 - 152 с.
  3. Миротин Л.Б., Ташбвев Ы.Э. Системный анализ в логистике, М.: Экзамен, 2004 - 258 с.
  4. Пиявский С.А., Дерябкин В.П. Методические указания по дипломному проектированию, Самара 2006 – 16 с.
  5. Основы организации деятельности предприятия, Ларионова О.А., 2005
  6. Базы данных: модели, разработка, реализация / Карпова Т.- СПб.: Питер, 2001. –304с.
  7. Конноли Томас, Бегг Каролин. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. — М.: Вильямс, 2000. – 1111 с.
  8. Буч Г. Объектно-ориентированное проектирование с примерами применения. М., 1992. - 654с.
  9. Галатенко В. Информационная безопасность // Открытые системы- 1996. – N 1-4.
  10. Глушаков С.В., Ломотько Д.В. Базы данных .- Х.: Фолио, 2002. – 504 с.
  11. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 2000. – 351 с.

Приложение А -Листинг

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;