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

Проектирование реализации операций бизнес-процесса «Управление запасами(АНАЛИТИЧЕСКАЯ ЧАСТЬ)

Содержание:

ВВЕДЕНИЕ

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

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

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

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

Задачи проекта:

1. Обосновать использование вычислительной техники;

2. Обосновать разработки по всем видам обеспечения;

3. Построить инфологическую модель;

4. Охарактеризовать входную, результатную информацию;

5. Реализовать выбранный вариант проекта;

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

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

Задачи логистического управления, решаемые с помощью подсистемы «Логистика», условно разбиваются на три функциональные области:

  • управление закупками;
  • управление запасами;
  • управление сбытом.

Управление закупкамми – решаются следующие задачи, относящиеся к области «Управление закупками»:

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

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

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

Управление сбытом включает задачи, относящиеся к области « Управление сбытом »:

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

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

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

В дипломной работе будут решаться следуюшие задачи:

  • задача определения опримальной распределеники запасов по видам продукции (получение макс. прибыли);
  • составление книги покупок;
  • составление книги продаж;
  • создание журнала выставленных счет фактур;
  • создание журнала чуета полученных счет фактур;
  • составление оборотно-сальдовой ведомости по счтеу;
  • получение отчета “Анализ счета”.

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

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

Таблица 2.1 - Функции подсистемы « Логистика »

Закупками

Запасы

Сбыт

Учет наменклатуры потребляемых товаров

Учет и контроль исполнения заявок от потразделений

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

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

Формирование товарного календаря

Учет и контроль исполнения договоров с поставщиками

Учет товарных документов от поставщиков

Учет возвратных товарных документов поставщикам

Учет платежей поставщикам

Учет накладных расходов

Книга покупок

Автоматизированное оформление товарных документов с использованием сканера и штрих-кодов

Учет внешних и внутренних перемещений товаров

Ведение карточек складского учета

Учет товаров по местам хранения

Учет ведемостей инвентаризации, актов списания недостач и оприходования излишков

Переоценка товаров, ведение истории учетных цен

Разнесение накладных расходов

Учет комплектования/ разукомплектования товаров

Контроль и анализ товарных запасов

Коетроль и анализ загруженности складов

Учет намеенклатуры реализуемых товаров

Учет цен реализации

Учет иконтроль исполнения заказов потребителей

Учет и контроль исполнения договоров с потребителям

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

Резервирование

товаров

Учет возвратных товарних документов от потребителей

Учет платежей от потребителей

Коетроль и анализ состояния продаж

Контроль и анализ послепродажного обслуживания

Максимизации доходов

Книга продаж

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

АИС управление запасами

Управление физическим распределением

Управление запасами

Управление закупками

Рисунок 1.1 - Функционалная структура управление запасами

Прежде чем рассматривать автоматизацию такого сложного и комплексного объекта, как логистическая система предприятия, следует определить основные, неопходимые для описания подходов к автоматизации понятия и оговарить особнности логистической системы как объекта автоматизации. Главная особнность даного объекта в том, что контур логистики связан с обшей системой управления предприятием, управленическим и бухгалтерским учетом, финансовим менеджментом. При разработке автоматизации управления логистической системой работают не только традицонные приемыдекомпозиции, но и комплексный синтетический подход, он сравнительноновый в практике автоматизации, хотя определенные традиици автоматизации учета движения товарно-материльных ценностей (ТМЦ) за последнее десятилетие наработаны в практике автоматизации бухгалтерского учета.

ООО Аштрак-кат неопходимо саздат запаси различни видов ресурсов запаси бивают разними как по номенклатуре, так и по объему. Поэтому нужно управлять этими запасами.

Нормативно-прававые документи

Организационной работи

материали

Оснавние потребители продукци ЗАО «Аштарак-кат»

норма различни выдов готовий продукции

прававие форми

поставщик

норма запасов

Рисунок 1.2 - Сущность процессного блока управления запасами

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

В ИСЛП такими оснавними бизнес-процессами являются управление закупками, управление запасами, управление физичеким расприделением.

Взаимасвязь и единство (а логистика – это системный инструмент) между основными бизнес – процессами и видами менеджмента показано на рис. 1.3.

Рисунок 1.3 - Взаимадествие между оснавными бизнес – процессами и видами менеджмента

Управление закупками – это сбор, учет, оброботка заказов на материальные ресурсы, выбор поставщиков, размещение заказов, оплата и контроль оплаты. В случае неопходимости – возврат товаров поставщикам.

Процесс подразделяется на ряд этапов (рис. 1.4.).

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

Рисунок 1.4 - процесс управления закупками

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

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

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

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

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

Рисунок 1.5 - Бизнес – процесс управления запасами

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

Этот процесс состаит из ряда этапов (рис.1.6).

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

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

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

Рисунок 1.6 - Бизнес-процесс управления физическим распределением матиериальных (товарных) ресурсов

Информационные потоки, детално иллюстрирующие оснавеые бизнес – процессы логистики, а именно управление закупками, запсами и физическими распределением, првидены на рис. 1.4.-1.6.

Информационная система логистики предпрятия. Функционирование системы автоматизации логистики возможно лишь при параллельном функционировании информационной системы логистики предприятия (далее ИСЛП) и физической логистической системы.

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

Информационные потоки в современной логистике формируются по следуюшим направлениям:

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

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

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

Основные принципы постраеия ИСЛП являются:

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

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

- Современность информации. Как правило, в современных системах управления используется режим on line.

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

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

- Совместность по форматам данных. Это совешенно естественное общее требование, так как ИСЛП является частью общей информационной системы предприятия [25].

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

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

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

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

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

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

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

Организация связей между базами данных требует определенных правил обращения с записями:

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

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

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

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

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

Таблица 1.2 - Сравнение СУБД

СУБД

Достоинства

Недостатки

Oracle

Высокая надежность

Устойчивость к сбоям

Наличие универсальных средств защиты информации

Быстродействие

Наличие средств мониторинга и администрирования

Все преимущества реализованы только в Enterprise-версии, которая стоит очень дорого

Сложность администрирования

MS SQL

Простота администрирования

Защита данных: шифрование данных автоматическом режиме на необходимых уровнях взаимодействия

Обработка документов и данных любого типа и формата

Управление с помощью политик

Наличие средств централизованного мониторинга и контроля

Быстродействие

Работает только под Windows

Выбираем MS SQL.

Система программирования Delphi версии 7 фирмы Enterprise (Borland) предоставляет наиболее широкие возможности для программирования приложений ОС Windows.

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

Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic (она не является RAD-системой) или в других инструментах визуального проектирования. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и прочее, необходимое для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ для Windows-среды.

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

Преимущества Delphi по сравнению с аналогичными программными продуктами.

– быстрота разработки приложения (RAD);

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

– низкие требования разработанного приложения к ресурсам компьютера;

– наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;

– возможность разработки новых компонентов и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);

– удачная проработка иерархии объектов.

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

Основным конкурентом Borland Delphi 7 является её родной брат – RAD-среда Borland C++ Builder, технология работы с которой полностью совпадает с технологией, принятой в Delphi 7. Только в Delphi программный код пишется на языке программирования Паскаль, точнее на его объектно-ориентированной версии ObjectPascal, а не на языке C++.

Для того чтобы обосновать, почему наш выбор остановился на Borland Delphi 7, достаточно просто перечислить некоторые недостатки языка С++ по сравнению с ObjectPascal:

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

2. Значительно большая, по сравнению с Object Pascal, сложность языка, даже, несмотря на компактность кода, возникают сложности в его восприятии.

3. Одна особенность, на мой взгляд, языка С++ очень портит этот язык - он чувствителен к регистру символов, т.е. переменная A и переменная a - это разные переменные.

4. В Delphi классы (объекты) могут располагаться только в динамической памяти, а в C++ в любой памяти (статическая, стек, динамическая). Это добавляет безопасности программирования в Delphi.

Также существует среда программирования Lazarus, относительно молодая, внешне похожая на Delphi. Данный продукт - IDE для компилятора FreePascal Compiler. Распространяется бесплатно по GNU General Public License (или просто GPL), но Lazarus ещё не является средой программирования профессионального уровня, для него разработано мало компонентов, при стандартных настройках. Также размеры разрабатываемых приложений тоже оставляют желать лучшего. В первую очередь это связано с особенностью компилятора FreePascal, который не дружит с динамическими библиотеками. А потому должен включать в себя все используемые пакеты. Тоже самое касается и собственно среды разработки, которую вы должны пересобрать каждый раз при добавлении нового пакета.

Компиляция проекта в IDE Lazarus, как и во всех средах разработки подразделяется на два этапа: компиляция и сборка. Хотя они и реализованы в виде вызова компилятора FreePascal отдельным процессом, и мы не можем построчно (как в Delphi) наблюдать за компиляцией проекта.

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

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

Для проведения анализа данных необходимо выделить информационные объекты (ИО) предметной области (таблица 2.1).

Таблица 2.1 - Информационные объекты предметной области

Имя ИО

Реквизиты ИО

Ключевые реквизиты

Признак ключа

Семантика (описание)

Bank

Bank_Code

Bank_Name

Bank_Town

Bank_Address

Bank_House

Bank_Postal_Code

Bank_BIK

Bank_k_schet

Bank_Code

Простой

Данные о банках, счета в которых открыты поставщиками и клиентами компании

Supplier

Supplier_Code

Supplier_Name

Supplier_INN

Supplier_KPP

Supplier_OGRN

Supplier_Settlement_Account

Bank_Code

Supplier_Index

Supplier_Town

Supplier_Address

Supplier_House

Supplier_Phone_Number

Supplier_Fax

Supplier_E_mail

Supplier_Website

Supplier_Contact_Name

Supplier_Code

Простой

Данные о поставщиках

Order

Order_ID

Worker_ID

Supplier_ID

Good_ID

Order_Amount

Order_Price

Order_Status

Order_ID

Простой

Данные о заказах поставщику

Contract

Contract_Number Contract_Status Contract_Date

Contract_Sum

Expiration_Date

Planned_Execution_Date

Order_Code

Contract_Number

Простой

Данные о договорах с поставщиками

Invoice

Invoice_Code Invoice_Number

Адрес банка

Invoice_Sum

Invoice_Real_Execution_Date

Contract_Number

Invoice_Code

Простой

Данные о товарно-транспортных накладных

Receipt

Goods_Code

Invoice_Code

Receipt_Quantity

Receipt_Price

Receipt_Sum

Goods_Code

Invoice_Code

Составной

Информация о подрядчиках

Client

Client_Code

Client_Name

Client_KPP

Client_OGRN Client_Settlement_Account Bank_Code

Client_Index

Client_Town

Client_Postal_Address

Client_House

Client_Phone_Number

Client_Fax

Client_E_Mail

Client_Contact_Name

Client_Code

Простой

Данные о клиентах компании

Client_Request

Client_Request_Code

Request_Date

Request_Sum

Client_Code

Worker_Code

Client_Request_Code

Простой

Данные о заказ клиентов

Client_Contract

Client_Contract_Number

Client_Contract_Status

Client_Contract_Date

Client_Expiration_Date

Client_Execution_Date

Client_Order_Code

Client_Contract_Number

Простой

Данные о договорах с клиентами

Client_Invoice

Client_Invoice_Code

Client_Invoice_Number

Client_Invoice_Date

Clent_Contract_Number

Clent_Execution_Date

Client_Invoice_Code

Простой

Данные о расходных накладных

Sale

Client_Invoice_Code

Goods_Code

Sale_Quantity

Sale_Price

Auto

Client_Invoice_Code

Goods_Code

Составной

Данные о продажах товаров клиентам

Auto

Gos_Number

Auto_Type

Worker_ID

Auto_Name

Auto_Picture

upsize_ts

Gos_Number

Простой

Данные об автомобилях, осуществляющих доставку товара

Auto_Type

ID_Auto_type

Auto_Type

ID_Auto_type

Простой

Данные о типах авто

Worker

Worker_Code

Last_Name

First_Name

Patronymic

Position_Code

Passport_Series

Passport_Number

Worker_Code

Простой

Данные о сотрудниках компании

Capacity

Position_Code

Position

Position_Code

Простой

Справочник должностей

Goods

Goods_Code

Goods_Name

Goods_Quantity

Unit_Code

Group_Code

Goods_Code

Простой

Данные о товарах

Unit

Unit_Code

Unit

Unit_Code

Простой

Справочник единиц измерения

Goods_Group

Group_Code

Group_Name

Group_Code

Простой

Справочник групп товаров

Good_Param

Param_Code

Good_ID

Good_Delivery_Cost

Good_Delievery_Time

Good_Max_Stock

Good_Threshold_StocK

Good_ABC_Group

Param_Code

Простой

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

Supplier_PriceList

Supplier_ID

Good_ID

Good_Price

Supplier_ID

Good_ID

Составной

Данные прайс листов поставщиков

Inventory

Inventory_ID

Good_ID

Inventory_Quantity

Inventory_Date

Inventory_ID

Простой

Данные об инвентаризации товаров

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

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

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

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

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

  • банках (таблица 2.2);
  • клиентах (таблица 2.3);
  • поставщиках (таблица 2.4);
  • товарах (таблица 2.5);
  • группах товаров (таблица 2.6);
  • единицах измерений товаров (таблица 2.7).

Таблица 2.2 - Нормативно-справочная информация «Банки» (Bank)

Обозначение реквизита

Наименование реквизита

Формат

Bank_Code

Код банка

Integer

Bank_Name

Наименование банка

Char

Bank_Town

Город банка

Char

Bank_Address

Адрес банка

Char

Bank_House

Дом банка

Char

Bank_Postal_Code

Почтовый индекс банка

Integer

Bank_BIK

БИК банка

Char

Bank_k_schet

Корреспондентский счет

Char

Таблица 2.3 - Нормативно-справочная информация «Клиенты» (Client)

Обозначение реквизита

Наименование реквизита

Формат

Client_Code

Код клиента

Integer

Client_Name

Наименование клиента

Char

Client_KPP

КПП клиента

Char

Client_OGRN

ОГРН клиента

Integer

Client_Settlement_Account

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

Char

Bank_Code

Код банка

Integer

Client_Index

Индекс клиента

Integer

Client_Town

Город клиента

Char

Client_Postal_Address

Адрес клиента

Char

Client_House

Дом клиента

Char

Client_Phone_Number

Телефон клиента

Integer

Client_Fax

Факс клиента

Integer

Client_E_Mail

Адрес электронной почты

Char

Client_Contact_Name

Контактное лицо

Char

Таблица 2.4 - Нормативно-справочная информация «Поставщики» (Supplier)

Обозначение реквизита

Наименование реквизита

Формат

Supplier_Code

Код поставщика

Integer

Supplier_Name

Наименование поставщика

Char

Supplier_INN

ИНН поставщика

Char

Supplier_KPP

КПП поставщика

Integer

Supplier_OGRN

ОГРН поставщика

Char

Supplier_Settlement_Account

Расчетный счет поставщика

Integer

Bank_Code

Код банка

Integer

Supplier_Index

Индекс поставщика

Char

Supplier_Town

Город поставщика

Char

Supplier_Address

Адрес поставщика

Char

Supplier_House

Дом поставщика

Integer

Supplier_Phone_Number

Телефон поставщика

Integer

Supplier_Fax

Факс поставщика

Char

Supplier_E_mail

Адрес электронной почты

Char

Supplier_Website

Web-сайт поставщика

Integer

Supplier_Contact_Name

Контактное лицо

Char

Таблица 2.5 - Нормативно-справочная информация «Товары» (Goods)

Обозначение реквизита

Наименование реквизита

Формат

Goods_Code

Код товара

Integer

Goods_Name

Название товара

Char

Goods_Quantity

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

Integer

Unit_Code

Код единицы измерения

Integer

Group_Code

Код группы товара

Integer

Таблица 2.6 - Нормативно-справочная информация «Группы товара» (Goods_Group)

Обозначение реквизита

Наименование реквизита

Формат

Group_Code

Код группы товара

Integer

Group_Name

Название группы

Char

Таблица 2.7 - Нормативно-справочная информация «Единицы измерения» (Unit)

Обозначение реквизита

Наименование реквизита

Формат

Unit_Code

Код единицы измерения

Integer

Unit

Название единицы измерения

Char

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

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

В качестве входной информации в данном проекте выступают данные о договорах, заказах клиентов, прайс-листах поставщиков, представленные в таблицах 2.8, 2.9, 2.10.

Таблица 2.8 - Входная информация «Договоры клиентов» (Client_Contract)

Обозначение реквизита

Наименование реквизита

Формат

Client_Contract_Number

Номер договора клиента

Integer

Client_Contract_Status

Статус договора клиента

Text

Client_Contract_Date

Дата подписания договора

Date

Client_Expiration_Date

Дата окончания договора

Date

Client_Execution_Date

Дата выполнения договора

Date

Client_Order_Code

Код заказа клиента

Date

Таблица 2.9 - Входная информация «Заказы клиентов» (Client_Request)

Обозначение реквизита

Наименование реквизита

Формат

Client_Request_Code

Номер заказа клиента

Integer

Request_Date

Дата заказа

Date

Request_Sum

Сумма заказа

Float

Client_Code

Код клиента

Integer

Worker_Code

Код работника

Integer

Таблица 2.10 - Входная информация «Прайс-листы поставщиков» (Supplier_PriceList)

Обозначение реквизита

Наименование реквизита

Формат

Supplier_ID

Код поставщика

Integer

Good_ID

Код товара

Integer

Good_Price

Цена товара

Float

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

Выходная информация по задаче формируется на основе входных данных.

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

  • выходной документ «Заказ на поставку»;
  • выходной документ «Договор»;
  • выходной документ «Товарно-транспортная накладная»;
  • внутренние отчеты компании.

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

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

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

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

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

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

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

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

  • Entity Relationship Diagram (ERD) – диаграмма зависимостей сущностей – определяет основные бизнес-объекты и взаимосвязи между ними;
  • Key Based model (KB) – модель, основанная на ключах – определяет рамки требований бизнес информации и начинает раскрывать подробности предметной области.

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

Модель ERD является презентационной и удобной для обсуждения (приложение 2, рис. 1).

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

Созданная модель БД была реализована в MS SQL Server (рис. 2.4).

Рисунок 2.4 - Схема БД в MS SQL Server

Структура базы данных

Рисунок 2.5 - ERD-модель предметной области

Рисунок 2.6 - KB-модель предметной области

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

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

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

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

Схема использования комплекса программ представлена на рис. 2.7

2 4

3

1 6

5

Рисунок 2.7 - Схема использования комплекса программ

Таблица 2.11

Назначение Использует данные

1 Проверка правильности заполнения ----

полей формы и запись введенной

информации о поступившем

материале в базу данных

2 Корректировка данных о материале 1

3 Передача материалов в производство 1

4 Изготовление готовой продукции 1, 2, 3

  1. Передача готовой продукции из

производства на склад 4

6 Отгрузка готовой продукции 4, 5

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

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

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

Основные формы подсистемы

Рисунок 2.8 - Выбор справочников

Рисунок 2.9 - Справочник «Поставщики»

Рисунок 2.10 - Редактор «Закупка товаров»

Рисунок 2.11 - Вкладка «Поставки товара»

Рисунок 2.12 - Вкладка «Продажи товара»

Рисунок 2.13 - Вкладка «Товары»

Рисунок 2.14 - Вкладка «ABC-анализ»

Рисунок 2.15 - Вкладка «Заказы поставщикам»

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

Окно для ввода логина и пароля представлено на рис. 2.16.

Рисунок 2.16 - Окно ввода логина и пароля

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

Рисунок 2.17 - Главная форма программы

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

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

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

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

Для каждого справочника выделена отдельная форма просмотра и редактирования.

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

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

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

Под основным меню расположены вкладки:

  • «Поставки товара»;
  • «Продажи товара»;
  • «Товары»;
  • «Заказы поставщикам»;
  • «ABC-анализ»;

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

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

На вкладе «Продажи товара» отображается информация обо всех договорах с клиентами и связанных с ними расходными накладными.

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

На вкладке «ABC-анализ» можно провести анализ ассортимента товара 2 способами – эмпирическим методом и методом суммы. С помощью настроек возможно задать различные параметры выделения групп, также выбрать период времени, когда нужно провести анализ. В результате анализа, данные будет отнесены к какой-либо группе и выделены определенным цветом.

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

В программе также имеется справочная подсистема, выполненная в формате HTML-страниц. Справка вызывается нажатием на клавишу F1, Либо выбором пункта меню «Справка».

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

Результатом работы является повышение эффективности работы на ООО «Тиги-Тверь» в части управления запасами.

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

  1. ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила оформления.
  2. ГОСТ 19.103-77 ЕСПД. Обозначение программ и программных документов.
  3. ГОСТ 19.402-78 ЕСПД. Описание программы.
  4. ГОСТ 19.505-79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению.
  5. ГОСТ 34.201-89. Информационная технология. Комплекс стандартов на автоматизированные системы. Виды, комплектность и обозначение документов при создании автоматизированных систем.
  6. ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
  7. Официальный сайт ООО «Тиги-Тверь»
  8. Фаронов В.: DELPHI. Программирование на языке высокого уровня: Учебник для вузов: Питер, 2010 г.
  9. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г.: Базы данных. Учебник для вузов: Москва: Корона-Принт, 2004 г.
  10. Шрайбфедер Дж. Эффективное управление запасами: М.: Альпина Бизнес Букс, 2006 г.
  11. Стерлигова А.: Управление запасами в цепях поставок. Учебник. М: ИНФРА-М, 2009 г.
  12. Лукинский В.В. Управление запасами в цепях поставок: оптимальный размер заказа: Монография. – Ставрополь, Сев.Кав.ГТУ, 2007.
  13. Управление цепями поставок: Справочник издательства Gower / Под ред. Дж. Гатторны - М: ИНФРА-М, 2008
  14. Проблема надежности АСУ

ПРИЛОЖЕНИЕ А – ЛИСТИНГ ПО

class TFormDolgnost : public TForm

{

__published: // IDE-managed Components

TDBGrid *DBGridDolgnost;

TADODataSet *ADODataSetDolgnost;

TDataSource *DataSourceDolgnost;

TAutoIncField *ADODataSetDolgnostCod;

TWideStringField *ADODataSetDolgnostName;

TDataSource *DataSourceManager;

TADODataSet *ADODataSetManager;

TGroupBox *GroupBox1;

TDBEdit *DBEditName;

TPanel *Panel1;

TButton *ButtonAdd;

TButton *ButtonDelete;

TButton *ButtonChange;

TButton *ButtonExit;

TPanel *Panel2;

TButton *ButtonPost;

TButton *ButtonOtmen;

TAutoIncField *ADODataSetManagerCod;

TWideStringField *ADODataSetManagerFIO;

TBCDField *ADODataSetManagerOklad;

TDateTimeField *ADODataSetManagerDataRozhd;

TWideStringField *ADODataSetManagerPasport;

TWideStringField *ADODataSetManagerPassword;

TIntegerField *ADODataSetManagerCodDolgnost;

void __fastcall ButtonAddClick(TObject *Sender);

void __fastcall ButtonDeleteClick(TObject *Sender);

void __fastcall ButtonChangeClick(TObject *Sender);

void __fastcall ButtonExitClick(TObject *Sender);

void __fastcall ButtonPostClick(TObject *Sender);

void __fastcall ButtonOtmenClick(TObject *Sender);

void __fastcall FormShow(TObject *Sender);

void __fastcall DBEditNameKeyPress(TObject *Sender, char &Key);

private: // User declarations

public: // User declarations

__fastcall TFormDolgnost(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormDolgnost *FormDolgnost;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef MainAISH

#define MainAISH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Menus.hpp>

#include <ExtCtrls.hpp>

#include <jpeg.hpp>

//---------------------------------------------------------------------------

class TFormMainAIS : public TForm

{

__published: // IDE-managed Components

TMainMenu *MainMenu1;

TMenuItem *N1;

TMenuItem *N2;

TMenuItem *N3;

TMenuItem *N4;

TMenuItem *N5;

TMenuItem *N6;

TMenuItem *N7;

TMenuItem *N8;

TPopupMenu *PopupMenu1;

TMenuItem *N9;

TMenuItem *N10;

TMenuItem *N12;

TMenuItem *N13;

TMenuItem *N14;

TMenuItem *N11;

TMenuItem *N15;

TImage *Image1;

void __fastcall N8Click(TObject *Sender);

void __fastcall N4Click(TObject *Sender);

void __fastcall N5Click(TObject *Sender);

void __fastcall N3Click(TObject *Sender);

void __fastcall N6Click(TObject *Sender);

void __fastcall N9Click(TObject *Sender);

void __fastcall N10Click(TObject *Sender);

void __fastcall N12Click(TObject *Sender);

void __fastcall N13Click(TObject *Sender);

void __fastcall N14Click(TObject *Sender);

void __fastcall N11Click(TObject *Sender);

void __fastcall N15Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormMainAIS(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormMainAIS *FormMainAIS;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef MainComputerH

#define MainComputerH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ADODB.hpp>

#include <DB.hpp>

#include <Buttons.hpp>

//---------------------------------------------------------------------------

class TFormVxod : public TForm

{

__published: // IDE-managed Components

TLabel *Label1;

TComboBox *ComboBoxManager;

TLabel *Label2;

TEdit *EditPassword;

TBitBtn *BitBtnExit;

TButton *ButtonVxod;

TADODataSet *ADODataSetManager;

TAutoIncField *ADODataSetManagerCod;

TWideStringField *ADODataSetManagerFIO;

TBCDField *ADODataSetManagerOklad;

TDateTimeField *ADODataSetManagerDataRozhd;

TWideStringField *ADODataSetManagerPasport;

TWideStringField *ADODataSetManagerPassword;

TIntegerField *ADODataSetManagerCodDolgnost;

void __fastcall FormShow(TObject *Sender);

void __fastcall BitBtnExitClick(TObject *Sender);

void __fastcall ButtonVxodClick(TObject *Sender);

void __fastcall EditPasswordKeyPress(TObject *Sender, char &Key);

private: // User declarations

public: // User declarations

__fastcall TFormVxod(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormVxod *FormVxod;

extern int TekManager;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef ManagerH

#define ManagerH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ADODB.hpp>

#include <ComCtrls.hpp>

#include <DB.hpp>

#include <DBCtrls.hpp>

#include <DBGrids.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include <Mask.hpp>

#include <Menus.hpp>

//---------------------------------------------------------------------------

class TFormManager : public TForm

{

__published: // IDE-managed Components

TDBGrid *DBGridFormManager;

TDataSource *DataSourceManager;

TADODataSet *ADODataSetManager;

TAutoIncField *ADODataSetManagerCod;

TWideStringField *ADODataSetManagerFIO;

TBCDField *ADODataSetManagerOklad;

TDateTimeField *ADODataSetManagerDataRozhd;

TWideStringField *ADODataSetManagerPasport;

TWideStringField *ADODataSetManagerPassword;

TIntegerField *ADODataSetManagerCodDolgnost;

TADODataSet *ADODataSetDolgnost;

TAutoIncField *ADODataSetDolgnostCod;

TWideStringField *ADODataSetDolgnostName;

TStringField *ADODataSetManagerNameDolgnost;

TGroupBox *GroupBox1;

TLabel *Label1;

TDBEdit *DBEditFIO;

TLabel *Label2;

TDBLookupComboBox *DBLookupComboBoxDolgnost;

TDataSource *DataSourceDolgnost;

TLabel *Label3;

TDBEdit *DBEditOklad;

TLabel *Label4;

TDBEdit *DBEditPasport;

TLabel *Label5;

TDBEdit *DBEditPassword;

TLabel *Label6;

TDateTimePicker *DateTimePicker1;

TPanel *Panel1;

TButton *ButtonAdd;

TButton *ButtonDelete;

TButton *ButtonChange;

TButton *ButtonExit;

TPanel *Panel2;

TButton *ButtonPost;

TButton *ButtonOtmen;

TPopupMenu *PopupMenu1;

TMenuItem *N1;

void __fastcall FormShow(TObject *Sender);

void __fastcall ButtonAddClick(TObject *Sender);

void __fastcall ButtonDeleteClick(TObject *Sender);

void __fastcall ButtonChangeClick(TObject *Sender);

void __fastcall ButtonExitClick(TObject *Sender);

void __fastcall ButtonPostClick(TObject *Sender);

void __fastcall ButtonOtmenClick(TObject *Sender);

void __fastcall N1Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormManager(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormManager *FormManager;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef OtchetManagerH

#define OtchetManagerH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ADODB.hpp>

#include <DB.hpp>

#include <DBGrids.hpp>

#include <Grids.hpp>

#include <Menus.hpp>

//---------------------------------------------------------------------------

class TFormOtchetManager : public TForm

{

__published: // IDE-managed Components

TDBGrid *DBGridManager;

TADODataSet *ADODataSetManager;

TDataSource *DataSourceManager;

TADODataSet *ADODataSetDolgnost;

TDataSource *DataSourceDolgnost;

TADODataSet *ADODataSetComputerTehnika;

TDataSource *DataSourceComputerTehnika;

TADODataSet *ADODataSetHistory;

TDataSource *DataSourceHistory;

TPopupMenu *PopupMenu1;

TMenuItem *N1;

TButton *ButtonExit;

void __fastcall FormShow(TObject *Sender);

void __fastcall N1Click(TObject *Sender);

void __fastcall ButtonExitClick(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormOtchetManager(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormOtchetManager *FormOtchetManager;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef ProdanoH

#define ProdanoH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ADODB.hpp>

#include <DB.hpp>

#include <DBGrids.hpp>

#include <Grids.hpp>

#include <DBCtrls.hpp>

#include <Menus.hpp>

//---------------------------------------------------------------------------

class TFormProdano : public TForm

{

__published: // IDE-managed Components

TDBGrid *DBGridComputerTehnika;

TADODataSet *ADODataSetComputerTehnika;

TDataSource *DataSourceComputerTehnika;

TAutoIncField *ADODataSetComputerTehnikaCod;

TWideStringField *ADODataSetComputerTehnikaName;

TBCDField *ADODataSetComputerTehnikaCena;

TBooleanField *ADODataSetComputerTehnikaProdan;

TDateTimeField *ADODataSetComputerTehnikaDataPostup;

TMemoField *ADODataSetComputerTehnikaOpisanie;

TBlobField *ADODataSetComputerTehnikaPicture;

TIntegerField *ADODataSetComputerTehnikaCodVidTehniki;

TDataSource *DataSourceVidTehniki;

TADODataSet *ADODataSetVidTehniki;

TStringField *ADODataSetComputerTehnikaNameVidTehniki;

TDBImage *DBImageFoto;

TDBMemo *DBMemoOpisanie;

TButton *ButtonExit;

TButton *ButtonPrint;

TPopupMenu *PopupMenu1;

TMenuItem *N1;

TMenuItem *N2;

TDataSource *DataSourceHistory;

TADODataSet *ADODataSetHistory;

TAutoIncField *ADODataSetHistoryCod;

TIntegerField *ADODataSetHistoryCodComputerTehnika;

TIntegerField *ADODataSetHistoryCodManager;

TDateTimeField *ADODataSetHistoryDataProdazhi;

TBCDField *ADODataSetHistoryCena;

TDateField *ADODataSetComputerTehnikaDataProdazhi;

void __fastcall ButtonExitClick(TObject *Sender);

void __fastcall DBGridComputerTehnikaCellClick(TColumn *Column);

void __fastcall FormShow(TObject *Sender);

void __fastcall ButtonPrintClick(TObject *Sender);

void __fastcall N1Click(TObject *Sender);

void __fastcall N2Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormProdano(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormProdano *FormProdano;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef ProdazhaH

#define ProdazhaH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ComCtrls.hpp>

#include <ADODB.hpp>

#include <DB.hpp>

#include <DBCtrls.hpp>

#include <DBGrids.hpp>

#include <Grids.hpp>

#include <Menus.hpp>

//---------------------------------------------------------------------------

class TFormProdazha : public TForm

{

__published: // IDE-managed Components

TLabel *Label1;

TDateTimePicker *DateTimePickerDataProdazhi;

TGroupBox *GroupBox1;

TDBGrid *DBGridComputerTehnika;

TADODataSet *ADODataSetComputerTehnika;

TDataSource *DataSourceComputerTehnika;

TAutoIncField *ADODataSetComputerTehnikaCod;

TWideStringField *ADODataSetComputerTehnikaName;

TBCDField *ADODataSetComputerTehnikaCena;

TBooleanField *ADODataSetComputerTehnikaProdan;

TDateTimeField *ADODataSetComputerTehnikaDataPostup;

TMemoField *ADODataSetComputerTehnikaOpisanie;

TBlobField *ADODataSetComputerTehnikaPicture;

TIntegerField *ADODataSetComputerTehnikaCodVidTehniki;

TButton *ButtonProdat;

TGroupBox *GroupBoxOpisanie;

TDBMemo *DBMemoOpisanie;

TDBImage *DBImageFoto;

TButton *ButtonExit;

TADODataSet *ADODataSetHistory;

TDataSource *DataSourceHistory;

TAutoIncField *ADODataSetHistoryCod;

TIntegerField *ADODataSetHistoryCodComputerTehnika;

TIntegerField *ADODataSetHistoryCodManager;

TDateTimeField *ADODataSetHistoryDataProdazhi;

TBCDField *ADODataSetHistoryCena;

TPopupMenu *PopupMenu1;

TMenuItem *N1;

TMenuItem *N2;

void __fastcall FormShow(TObject *Sender);

void __fastcall DBGridComputerTehnikaCellClick(TColumn *Column);

void __fastcall ButtonProdatClick(TObject *Sender);

void __fastcall ButtonExitClick(TObject *Sender);

void __fastcall N1Click(TObject *Sender);

void __fastcall N2Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormProdazha(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormProdazha *FormProdazha;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef SpravkaH

#define SpravkaH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

//---------------------------------------------------------------------------

class TFormSpravka : public TForm

{

__published: // IDE-managed Components

TMemo *MemoSpravka;

TMemo *Memo1;

TButton *ButtonExit;

void __fastcall ButtonExitClick(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormSpravka(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormSpravka *FormSpravka;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef UnitReportH

#define UnitReportH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DB.hpp>

#include <DBTables.hpp>

#include <ExtCtrls.hpp>

#include <QRCtrls.hpp>

#include <QuickRpt.hpp>

#include <ADODB.hpp>

//---------------------------------------------------------------------------

class TFormReport : public TForm

{

__published: // IDE-managed Components

TQuickRep *QuickRep1;

TQRBand *QRBand1;

TQRLabel *QRLabel1;

TQRBand *QRBand2;

TQRBand *QRBand3;

TQRLabel *QRLabel2;

TQRLabel *QRLabel3;

TQRLabel *QRLabel4;

TDataSource *DataSourceComputerTehnika;

TQRLabel *QRLabel5;

TQRBand *QRBand4;

TQRDBText *QRDBText1;

TQRDBText *QRDBText2;

TQRDBText *QRDBText3;

TQRDBText *QRDBText4;

TADODataSet *ADODataSetComputerTehnika;

TAutoIncField *ADODataSetComputerTehnikaCod;

TWideStringField *ADODataSetComputerTehnikaName;

TBCDField *ADODataSetComputerTehnikaCena;

TBooleanField *ADODataSetComputerTehnikaProdan;

TDateTimeField *ADODataSetComputerTehnikaDataPostup;

TMemoField *ADODataSetComputerTehnikaOpisanie;

TBlobField *ADODataSetComputerTehnikaPicture;

TIntegerField *ADODataSetComputerTehnikaCodVidTehniki;

TADODataSet *ADODataSetVidTehniki;

TDataSource *DataSourceVidTehniki;

TAutoIncField *ADODataSetVidTehnikiCod;

TWideStringField *ADODataSetVidTehnikiName;

TStringField *ADODataSetComputerTehnikaNameVidTehniki;

void __fastcall QuickRep1AfterPreview(TObject *Sender);

void __fastcall FormActivate(TObject *Sender);

void __fastcall FormShow(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormReport(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormReport *FormReport;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef UnitReport2H

#define UnitReport2H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DB.hpp>

#include <DBTables.hpp>

#include <ExtCtrls.hpp>

#include <QRCtrls.hpp>

#include <QuickRpt.hpp>

#include <ADODB.hpp>

//---------------------------------------------------------------------------

class TFormReport2 : public TForm

{

__published: // IDE-managed Components

TQuickRep *QuickRep1;

TQRBand *QRBand1;

TQRLabel *QRLabel1;

TQRBand *QRBand2;

TQRBand *QRBand3;

TQRLabel *QRLabel2;

TQRLabel *QRLabel3;

TQRLabel *QRLabel4;

TDataSource *DataSourceComputerTehnika;

TQRLabel *QRLabel5;

TQRBand *QRBand4;

TQRDBText *QRDBText1;

TQRDBText *QRDBText2;

TQRDBText *QRDBText3;

TQRDBText *QRDBText4;

TADODataSet *ADODataSetComputerTehnika;

TAutoIncField *ADODataSetComputerTehnikaCod;

TWideStringField *ADODataSetComputerTehnikaName;

TBCDField *ADODataSetComputerTehnikaCena;

TBooleanField *ADODataSetComputerTehnikaProdan;

TDateTimeField *ADODataSetComputerTehnikaDataPostup;

TMemoField *ADODataSetComputerTehnikaOpisanie;

TBlobField *ADODataSetComputerTehnikaPicture;

TIntegerField *ADODataSetComputerTehnikaCodVidTehniki;

TADODataSet *ADODataSetVidTehniki;

TDataSource *DataSourceVidTehniki;

TAutoIncField *ADODataSetVidTehnikiCod;

TWideStringField *ADODataSetVidTehnikiName;

TStringField *ADODataSetComputerTehnikaNameVidTehniki;

TDataSource *DataSourceHistory;

TADODataSet *ADODataSetHistory;

TAutoIncField *ADODataSetHistoryCod;

TIntegerField *ADODataSetHistoryCodComputerTehnika;

TIntegerField *ADODataSetHistoryCodManager;

TDateTimeField *ADODataSetHistoryDataProdazhi;

TBCDField *ADODataSetHistoryCena;

TDateField *ADODataSetComputerTehnikaDataProdazhi;

void __fastcall QuickRep1AfterPreview(TObject *Sender);

void __fastcall FormActivate(TObject *Sender);

void __fastcall FormShow(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormReport2(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormReport2 *FormReport2;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef VidTehnikiH

#define VidTehnikiH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ADODB.hpp>

#include <DB.hpp>

#include <DBGrids.hpp>

#include <Grids.hpp>

#include <DBCtrls.hpp>

#include <ExtCtrls.hpp>

#include <Mask.hpp>

//---------------------------------------------------------------------------

class TFormVidTehniki : public TForm

{

__published: // IDE-managed Components

TDBGrid *DBGridVidTehniki;

TADODataSet *ADODataSetVidTehniki;

TDataSource *DataSourceVidTehniki;

TDataSource *DataSourceManager;

TADODataSet *ADODataSetComputerTehnika;

TGroupBox *GroupBox1;

TDBEdit *DBEditName;

TPanel *Panel1;

TButton *ButtonAdd;

TButton *ButtonDelete;

TButton *ButtonChange;

TButton *ButtonExit;

TPanel *Panel2;

TButton *ButtonPost;

TButton *ButtonOtmen;

TAutoIncField *ADODataSetVidTehnikiCod;

TWideStringField *ADODataSetVidTehnikiName;

TAutoIncField *ADODataSetComputerTehnikaCod;

TWideStringField *ADODataSetComputerTehnikaName;

TBCDField *ADODataSetComputerTehnikaCena;

TDateTimeField *ADODataSetComputerTehnikaDataPostup;

TMemoField *ADODataSetComputerTehnikaOpisanie;

TBlobField *ADODataSetComputerTehnikaPicture;

TIntegerField *ADODataSetComputerTehnikaCodVidTehniki;

TBooleanField *ADODataSetComputerTehnikaProdan;

void __fastcall ButtonAddClick(TObject *Sender);

void __fastcall ButtonDeleteClick(TObject *Sender);

void __fastcall ButtonChangeClick(TObject *Sender);

void __fastcall ButtonExitClick(TObject *Sender);

void __fastcall ButtonPostClick(TObject *Sender);

void __fastcall ButtonOtmenClick(TObject *Sender);

void __fastcall FormShow(TObject *Sender);

void __fastcall DBEditNameKeyPress(TObject *Sender, char &Key);

private: // User declarations

public: // User declarations

__fastcall TFormVidTehniki(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormVidTehniki *FormVidTehniki;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#ifndef VnalichiiH

#define VnalichiiH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ADODB.hpp>

#include <DB.hpp>

#include <DBGrids.hpp>

#include <Grids.hpp>

#include <DBCtrls.hpp>

#include <Menus.hpp>

//---------------------------------------------------------------------------

class TFormVnalichii : public TForm

{

__published: // IDE-managed Components

TDBGrid *DBGridComputerTehnika;

TADODataSet *ADODataSetComputerTehnika;

TDataSource *DataSourceComputerTehnika;

TAutoIncField *ADODataSetComputerTehnikaCod;

TWideStringField *ADODataSetComputerTehnikaName;

TBCDField *ADODataSetComputerTehnikaCena;

TBooleanField *ADODataSetComputerTehnikaProdan;

TDateTimeField *ADODataSetComputerTehnikaDataPostup;

TMemoField *ADODataSetComputerTehnikaOpisanie;

TBlobField *ADODataSetComputerTehnikaPicture;

TIntegerField *ADODataSetComputerTehnikaCodVidTehniki;

TDataSource *DataSourceVidTehniki;

TADODataSet *ADODataSetVidTehniki;

TStringField *ADODataSetComputerTehnikaNameVidTehniki;

TDBImage *DBImageFoto;

TDBMemo *DBMemoOpisanie;

TButton *ButtonExit;

TButton *ButtonPrint;

TPopupMenu *PopupMenu1;

TMenuItem *N1;

TMenuItem *N2;

void __fastcall ButtonExitClick(TObject *Sender);

void __fastcall DBGridComputerTehnikaCellClick(TColumn *Column);

void __fastcall FormShow(TObject *Sender);

void __fastcall ButtonPrintClick(TObject *Sender);

void __fastcall N1Click(TObject *Sender);

void __fastcall N2Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFormVnalichii(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TFormVnalichii *FormVnalichii;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "ComputerTehnika.h"

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormComputerTehnika *FormComputerTehnika;

//---------------------------------------------------------------------------

__fastcall TFormComputerTehnika::TFormComputerTehnika(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TFormComputerTehnika::ButtonFotoClick(TObject *Sender)

{ char *s;

OpenDialogFoto->InitialDir= ExtractFileDir(Application->ExeName);

if(OpenDialogFoto->Execute()==true) //вызовдиалогавыборафайла

{DBImageFoto->Visible=true;

s= OpenDialogFoto->FileName.c_str(); //получитьнаименованиевыбранногофайласполнымпутем

DBImageFoto->Picture->LoadFromFile(s);

}

else

{if(ADODataSetComputerTehnikaPicture->Value=="")

DBImageFoto->Visible=false;

}

}

//---------------------------------------------------------------------------

void __fastcall TFormComputerTehnika::FormShow(TObject *Sender)

{

ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->Open();

ADODataSetVidTehniki->Close();

ADODataSetVidTehniki->Open();

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Добавить

void __fastcall TFormComputerTehnika::ButtonAddClick(TObject *Sender)

{

if(ADODataSetComputerTehnika->State==dsBrowse)

{ADODataSetComputerTehnika->Insert();

Panel1->Visible=false;

Panel2->Visible=true;

GroupBox1->Visible=true;

DateTimePickerDataPostup->Date= Date();

DBEditName->SetFocus();

}

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Удалить

void __fastcall TFormComputerTehnika::ButtonDeleteClick(TObject *Sender)

{

if(ADODataSetComputerTehnika->RecordCount==0) //естьлиданныевБД

{ButtonChange->Enabled=false;//сделать кнопку Изменить недоступной

ButtonDelete->Enabled=false;//сделать кнопку Удалить недоступной

ShowMessage("Данные отсутствуют в БД!"); //вывести сообщение в виде окошка

return;//выходизформы

}

if(ADODataSetComputerTehnika->State==dsBrowse)

if(Application->MessageBoxA("Подтвердитеудалениезаписи

!","Внимание",MB_ICONWARNING+MB_YESNO)==IDYES)

ADODataSetComputerTehnika->Delete();//удалитьзаписьизтаблицыБД

}

//---------------------------------------------------------------------------

//ВыполняетсяпринажатиикнопкиИзменить

void __fastcall TFormComputerTehnika::ButtonChangeClick(TObject *Sender)

{

if(ADODataSetComputerTehnika->RecordCount==0) //есть ли данные в БД - кол-во записей в таблице БД

{ShowMessage("Данные отсутствуют в БД!");//вывести сообщение в виде окошка

return;//выходизформы

}

if(ADODataSetComputerTehnika->State==dsBrowse)

ADODataSetComputerTehnika->Edit();//перевести таблицу БД в режим редактирования

Panel1->Visible=false;//сделать панель невидимой

Panel2->Visible=true;//сделать панель видимой

GroupBox1->Visible=true;//сделать панель видимой

DateTimePickerDataPostup->Date= ADODataSetComputerTehnikaDataPostup->Value;

DBEditName->SetFocus(); //установить фокус в поле для ввода

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Выход

void __fastcall TFormComputerTehnika::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

//------Выполняется при нажатии кнопки Запомнить

void __fastcall TFormComputerTehnika::ButtonPostClick(TObject *Sender)

{

//------проверка всех введенных данных

if(DBEditName->Text=="" )//проверка введенных данных

{ShowMessage("Введите название !");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

if(DBEditCena->Text=="" )//проверка введенных данных

{ShowMessage("Введите цену !");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

if(DBMemoOpisanie->Text=="" )//проверка введенных данных

{ShowMessage("Введите описание !");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

if(ADODataSetComputerTehnikaCodVidTehniki->Value==0 )//проверка введенных данных

{ShowMessage("Введите вид товара!");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

//-----------

ADODataSetComputerTehnikaDataPostup->Value= DateTimePickerDataPostup->Date;

ADODataSetComputerTehnika->Post();//запомнить все изменения в таблице БД

Panel1->Visible=true;//сделать панель видимой

Panel2->Visible=false;//сделать панель невидимой

GroupBox1->Visible=false;//сделать панель невидимой

ButtonChange->Enabled=true;//сделать кнопку Изменить доступной

ButtonDelete->Enabled=true;//сделать кнопку Удалить доступной

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Отменить

void __fastcall TFormComputerTehnika::ButtonOtmenClick(TObject *Sender)

{

ADODataSetComputerTehnika->Cancel();//отменить все изменения - данные в таблице БД не сохраняются

Panel1->Visible=true;//сделать панель видимой

Panel2->Visible=false;//сделать панель невидимой

GroupBox1->Visible=false;//сделать панель невидимой

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "DiagrammaOklad.h"

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormDiagrammaOklad *FormDiagrammaOklad;

//---------------------------------------------------------------------------

__fastcall TFormDiagrammaOklad::TFormDiagrammaOklad(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TFormDiagrammaOklad::FormShow(TObject *Sender)

{

ADODataSetManager->Close();

ADODataSetManager->Open();

}

//---------------------------------------------------------------------------

void __fastcall TFormDiagrammaOklad::ADODataSetManagerCalcFields(

TDataSet *DataSet)

{

ADODataSetManagerFIO2->Value= ADODataSetManagerFIO->Value;

}

//---------------------------------------------------------------------------

void __fastcall TFormDiagrammaOklad::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TFormDiagrammaOklad::N1Click(TObject *Sender)

{

ButtonExitClick(Sender);

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TDM1 *DM1;

//---------------------------------------------------------------------------

__fastcall TDM1::TDM1(TComponent* Owner)

: TDataModule(Owner)

{

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Dolgnost.h"

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormDolgnost *FormDolgnost;

//---------------------------------------------------------------------------

__fastcall TFormDolgnost::TFormDolgnost(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Добавить

void __fastcall TFormDolgnost::ButtonAddClick(TObject *Sender)

{

if(ADODataSetDolgnost->State==dsBrowse)

{ADODataSetDolgnost->Insert();

Panel1->Visible=false;

Panel2->Visible=true;

GroupBox1->Visible=true;

DBEditName->SetFocus();

}

}

//---------------------------------------------------------------------------

//ВыполняетсяпринажатиикнопкиУдалить

void __fastcall TFormDolgnost::ButtonDeleteClick(TObject *Sender)

{

if(ADODataSetDolgnost->RecordCount==0) //естьлиданныевБД

{ButtonChange->Enabled=false;//сделатькнопкуИзменитьнедоступной

ButtonDelete->Enabled=false;//сделать кнопку Удалить недоступной

ShowMessage("Данные отсутствуют в БД!"); //вывести сообщение в виде окошка

return;//выходизформы

}

if(ADODataSetDolgnost->State==dsBrowse)

if(Application->MessageBoxA("Подтвердитеудалениезаписи !","Внимание",MB_ICONWARNING+MB_YESNO)==IDYES)

{ADODataSetManager->Close();

ADODataSetManager->CommandText= "select * from TablManager where CodDolgnost="+IntToStr(ADODataSetDolgnostCod->Value);

ADODataSetManager->Open();

if(ADODataSetManager->RecordCount>0)

{ShowMessage("Ошибка при удалении! В таблице 'TablManager' имеются связанные записи!"); //вывести сообщение в виде окошка

return;//выход из процедуры

}

ADODataSetDolgnost->Delete();//удалить запись из таблицы БД

}

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Изменить

void __fastcall TFormDolgnost::ButtonChangeClick(TObject *Sender)

{

if(ADODataSetDolgnost->RecordCount==0) //есть ли данные в БД - кол-во записей в таблице БД

{ShowMessage("Данные отсутствуют в БД!");//вывести сообщение в виде окошка

return;//выходизформы

}

if(ADODataSetDolgnost->State==dsBrowse)

ADODataSetDolgnost->Edit();//перевести таблицу БД в режим редактирования

Panel1->Visible=false;//сделать панель невидимой

Panel2->Visible=true;//сделать панель видимой

GroupBox1->Visible=true;//сделать панель видимой

DBEditName->SetFocus(); //установить фокус в поле для ввода

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Выход

void __fastcall TFormDolgnost::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

//------Выполняется при нажатии кнопки Запомнить

void __fastcall TFormDolgnost::ButtonPostClick(TObject *Sender)

{

//------проверка всех введенных данных

if(DBEditName->Text=="" )//проверка введенных данных

{ShowMessage("Введите название!");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

//-----------

ADODataSetDolgnost->Post();//запомнить все изменения в таблице БД

Panel1->Visible=true;//сделать панель видимой

Panel2->Visible=false;//сделать панель невидимой

GroupBox1->Visible=false;//сделать панель невидимой

ButtonChange->Enabled=true;//сделать кнопку Изменить доступной

ButtonDelete->Enabled=true;//сделать кнопку Удалить доступной

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Отменить

void __fastcall TFormDolgnost::ButtonOtmenClick(TObject *Sender)

{

ADODataSetDolgnost->Cancel();//отменить все изменения - данные в таблице БД не сохраняются

Panel1->Visible=true;//сделать панель видимой

Panel2->Visible=false;//сделать панель невидимой

GroupBox1->Visible=false;//сделать панель невидимой

}

//---------------------------------------------------------------------------

void __fastcall TFormDolgnost::FormShow(TObject *Sender)

{

ADODataSetDolgnost->Close();

ADODataSetDolgnost->Open();

ADODataSetManager->Close();

ADODataSetManager->Open();

}

//---------------------------------------------------------------------------

void __fastcall TFormDolgnost::DBEditNameKeyPress(TObject *Sender,

char &Key)

{

if(Key==13)

ButtonPostClick(Sender);

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "MainAIS.h"

#include "Dolgnost.h"

#include "VidTehniki.h"

#include "Manager.h"

#include "ComputerTehnika.h"

#include "Prodazha.h"

#include "Vnalichii.h"

#include "Prodano.h"

#include "OtchetManager.h"

#include "DiagrammaOklad.h"

#include "Spravka.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormMainAIS *FormMainAIS;

//---------------------------------------------------------------------------

__fastcall TFormMainAIS::TFormMainAIS(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N8Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N4Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormDolgnost), &FormDolgnost);

FormDolgnost->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N5Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormVidTehniki), &FormVidTehniki);

FormVidTehniki->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N3Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormManager), &FormManager);

FormManager->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N6Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormComputerTehnika), &FormComputerTehnika);

FormComputerTehnika->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N9Click(TObject *Sender)

{

N8Click(Sender);

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N10Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormProdazha), &FormProdazha);

FormProdazha->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N12Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormVnalichii), &FormVnalichii);

FormVnalichii->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N13Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormProdano), &FormProdano);

FormProdano->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N14Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormOtchetManager), &FormOtchetManager);

FormOtchetManager->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormMainAIS::N11Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormDiagrammaOklad), &FormDiagrammaOklad);

FormDiagrammaOklad->ShowModal();

}

//---------------------------------------------------------------------------

//Вызовсправки

void __fastcall TFormMainAIS::N15Click(TObject *Sender)

{

Application->CreateForm(__classid(TFormSpravka), &FormSpravka);

FormSpravka->ShowModal();

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "MainComputer.h"

#include "DM.h"

#include "MainAIS.h"

#include "string.h"

#include "stdio.h"

#include <algorithm>

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormVxod *FormVxod;

int TekManager;

//---------------------------------------------------------------------------

__fastcall TFormVxod::TFormVxod(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TFormVxod::FormShow(TObject *Sender)

{

ComboBoxManager->Clear();

ADODataSetManager->Close();

ADODataSetManager->Open();

ADODataSetManager->First();

while(!ADODataSetManager->Eof)

{ComboBoxManager->Items->Add(ADODataSetManagerFIO->Value);

ADODataSetManager->Next();

}

}

//---------------------------------------------------------------------------

void __fastcall TFormVxod::BitBtnExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TFormVxod::ButtonVxodClick(TObject *Sender)

{

ADODataSetManager->Close();

ADODataSetManager->CommandText= "select * from TablManager where FIO="+QuotedStr(ComboBoxManager->Text);

ADODataSetManager->Open();

if(ADODataSetManagerPassword->Value==EditPassword->Text)

{TekManager= ADODataSetManagerCod->Value;

Application->CreateForm(__classid(TFormMainAIS), &FormMainAIS);

FormMainAIS->ShowModal();

Close();

}

else ShowMessage("Неверныйпароль!");

}

//---------------------------------------------------------------------------

void __fastcall TFormVxod::EditPasswordKeyPress(TObject *Sender, char &Key)

{

if(Key==13)

ButtonVxodClick(Sender);

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Manager.h"

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormManager *FormManager;

//---------------------------------------------------------------------------

__fastcall TFormManager::TFormManager(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TFormManager::FormShow(TObject *Sender)

{

ADODataSetManager->Close();

ADODataSetManager->Open();

ADODataSetDolgnost->Close();

ADODataSetDolgnost->Open();

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Добавить

void __fastcall TFormManager::ButtonAddClick(TObject *Sender)

{

if(ADODataSetManager->State==dsBrowse)

{ADODataSetManager->Insert();

Panel1->Visible=false;

Panel2->Visible=true;

GroupBox1->Visible=true;

DateTimePicker1->Date= Date();

DBEditFIO->SetFocus();

}

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Удалить

void __fastcall TFormManager::ButtonDeleteClick(TObject *Sender)

{

if(ADODataSetManager->RecordCount==0) //естьлиданныевБД

{ButtonChange->Enabled=false;//сделатькнопкуИзменитьнедоступной

ButtonDelete->Enabled=false;//сделать кнопку Удалить недоступной

ShowMessage("Данные отсутствуют в БД!"); //вывести сообщение в виде окошка

return;//выходизформы

}

if(ADODataSetManager->State==dsBrowse)

if(Application->MessageBoxA("Подтвердитеудалениезаписи !","Внимание",MB_ICONWARNING+MB_YESNO)==IDYES)

ADODataSetManager->Delete();//удалить запись из таблицы БД

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Изменить

void __fastcall TFormManager::ButtonChangeClick(TObject *Sender)

{

if(ADODataSetManager->RecordCount==0) //есть ли данные в БД - кол-во записей в таблице БД

{ShowMessage("Данные отсутствуют в БД!");//вывести сообщение в виде окошка

return;//выходизформы

}

if(ADODataSetManager->State==dsBrowse)

ADODataSetManager->Edit();//перевести таблицу БД в режим редактирования

Panel1->Visible=false;//сделать панель невидимой

Panel2->Visible=true;//сделать панель видимой

GroupBox1->Visible=true;//сделать панель видимой

DateTimePicker1->Date= ADODataSetManagerDataRozhd->Value;

DBEditFIO->SetFocus(); //установить фокус в поле для ввода

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Выход

void __fastcall TFormManager::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

//------Выполняется при нажатии кнопки Запомнить

void __fastcall TFormManager::ButtonPostClick(TObject *Sender)

{

//------проверка всех введенных данных

if(DBEditFIO->Text=="" )//проверка введенных данных

{ShowMessage("Введите Ф.И.О. !");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

if(DBEditPasport->Text=="" )//проверка введенных данных

{ShowMessage("Введите паспорт !");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

if(DBEditOklad->Text=="" )//проверка введенных данных

{ShowMessage("Введите оклад !");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

if(DBEditPassword->Text=="" )//проверка введенных данных

{ShowMessage("Введите пароль !");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

if(ADODataSetManagerCodDolgnost->Value==0 )//проверка введенных данных

{ShowMessage("Введите должность !");//вывод диалогового окна с сообщением

return;//выходизпроцедуры

}

//-----------

ADODataSetManagerDataRozhd->Value= DateTimePicker1->Date;

ADODataSetManager->Post();//запомнить все изменения в таблице БД

Panel1->Visible=true;//сделать панель видимой

Panel2->Visible=false;//сделать панель невидимой

GroupBox1->Visible=false;//сделать панель невидимой

ButtonChange->Enabled=true;//сделать кнопку Изменить доступной

ButtonDelete->Enabled=true;//сделать кнопку Удалить доступной

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Отменить

void __fastcall TFormManager::ButtonOtmenClick(TObject *Sender)

{

ADODataSetManager->Cancel();//отменить все изменения - данные в таблице БД не сохраняются

Panel1->Visible=true;//сделать панель видимой

Panel2->Visible=false;//сделать панель невидимой

GroupBox1->Visible=false;//сделать панель невидимой

}

//---------------------------------------------------------------------------

void __fastcall TFormManager::N1Click(TObject *Sender)

{

ButtonExitClick(Sender);

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "OtchetManager.h"

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormOtchetManager *FormOtchetManager;

//---------------------------------------------------------------------------

__fastcall TFormOtchetManager::TFormOtchetManager(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TFormOtchetManager::FormShow(TObject *Sender)

{ char *s;

ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->Open();

ADODataSetHistory->Close();

ADODataSetHistory->Open();

ADODataSetDolgnost->Close();

ADODataSetDolgnost->Open();

ADODataSetManager->Close();

ADODataSetManager->CommandText= "select TablManager.FIO as 'ФИОменеджера',TablDolgnost.name as 'Должность',TablHistory.cena as 'Цена',TablComputerTehnika.name as 'Названиетовара' from TablManager,TablHistory,TablDolgnost,TablComputerTehnika where (TablManager.Cod=TablHistory.CodManager)and(TablDolgnost.Cod=TablManager.CodDolgnost)and(TablHistory.CodComputerTehnika=TablComputerTehnika.Cod)";

ADODataSetManager->Open();

DBGridManager->Columns->Items[0]->Width=290;

DBGridManager->Columns->Items[1]->Width=160;

DBGridManager->Columns->Items[2]->Width=60;

DBGridManager->Columns->Items[3]->Width=410;

}

//---------------------------------------------------------------------------

void __fastcall TFormOtchetManager::N1Click(TObject *Sender)

{

ButtonExitClick(Sender);

}

//---------------------------------------------------------------------------

void __fastcall TFormOtchetManager::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Prodano.h"

#include "DM.h"

#include "UnitReport2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormProdano *FormProdano;

//---------------------------------------------------------------------------

__fastcall TFormProdano::TFormProdano(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TFormProdano::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TFormProdano::DBGridComputerTehnikaCellClick(

TColumn *Column)

{

if(ADODataSetComputerTehnikaPicture->Value=="")

DBImageFoto->Visible=false;

else DBImageFoto->Visible=true;

if(ADODataSetComputerTehnika->RecordCount==0)

{DBImageFoto->Visible=false;

DBMemoOpisanie->Visible=false;

}

}

//---------------------------------------------------------------------------

void __fastcall TFormProdano::FormShow(TObject *Sender)

{ TColumn *Column;

ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->Open();

ADODataSetVidTehniki->Close();

ADODataSetVidTehniki->Open();

DBGridComputerTehnikaCellClick(Column);

}

//---------------------------------------------------------------------------

//ВыполняетсяпринажатиикнопкиПечать

void __fastcall TFormProdano::ButtonPrintClick(TObject *Sender)

{

Application->CreateForm(__classid(TFormReport2), &FormReport2);

FormReport2->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFormProdano::N1Click(TObject *Sender)

{

ButtonPrintClick(Sender);

}

//---------------------------------------------------------------------------

void __fastcall TFormProdano::N2Click(TObject *Sender)

{

ButtonExitClick(Sender);

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Prodazha.h"

#include "DM.h"

#include "MainComputer.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormProdazha *FormProdazha;

//---------------------------------------------------------------------------

__fastcall TFormProdazha::TFormProdazha(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

//Выполняется при отображении формы

void __fastcall TFormProdazha::FormShow(TObject *Sender)

{ TColumn *Column;

DateTimePickerDataProdazhi->Date= Date();

ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->Open();

ADODataSetHistory->Close();

ADODataSetHistory->Open();

DBGridComputerTehnikaCellClick(Column);

}

//---------------------------------------------------------------------------

void __fastcall TFormProdazha::DBGridComputerTehnikaCellClick(

TColumn *Column)

{

if(ADODataSetComputerTehnikaPicture->Value=="")

DBImageFoto->Visible=false;

else DBImageFoto->Visible=true;

if(ADODataSetComputerTehnika->RecordCount==0)

{DBImageFoto->Visible=false;

GroupBoxOpisanie->Visible= false;

}

else

GroupBoxOpisanie->Visible=true;

}

//---------------------------------------------------------------------------

void __fastcall TFormProdazha::ButtonProdatClick(TObject *Sender)

{TColumn *Column;

if(Application->MessageBoxA("Подтвердитепродажутовара !","Внимание",MB_ICONWARNING+MB_YESNO)==IDYES)

{if(ADODataSetComputerTehnika->RecordCount==0)

{ShowMessage("Товаротсутствуетвпродаже!");

return;

}

ADODataSetComputerTehnika->Edit();

ADODataSetComputerTehnikaProdan->Value=1;

ADODataSetComputerTehnika->Post();

ADODataSetComputerTehnika->Refresh();

ADODataSetHistory->Insert();

ADODataSetHistoryCodComputerTehnika->Value= ADODataSetComputerTehnikaCod->Value;

ADODataSetHistoryCodManager->Value= TekManager;

ADODataSetHistoryDataProdazhi->Value= DateTimePickerDataProdazhi->Date;

ADODataSetHistoryCena->Value= ADODataSetComputerTehnikaCena->Value;

ADODataSetHistory->Post();

ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->Open();

DBGridComputerTehnikaCellClick(Column);

}

}

//---------------------------------------------------------------------------

void __fastcall TFormProdazha::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TFormProdazha::N1Click(TObject *Sender)

{

ButtonProdatClick(Sender);

}

//---------------------------------------------------------------------------

void __fastcall TFormProdazha::N2Click(TObject *Sender)

{

ButtonExitClick(Sender);

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

USEFORM("MainComputer.cpp", FormVxod);

USEFORM("DM.cpp", DM1); /* TDataModule: File Type */

USEFORM("Dolgnost.cpp", FormDolgnost);

USEFORM("MainAIS.cpp", FormMainAIS);

USEFORM("VidTehniki.cpp", FormVidTehniki);

USEFORM("Manager.cpp", FormManager);

USEFORM("ComputerTehnika.cpp", FormComputerTehnika);

USEFORM("Prodazha.cpp", FormProdazha);

USEFORM("Vnalichii.cpp", FormVnalichii);

USEFORM("UnitReport.cpp", FormReport);

USEFORM("Prodano.cpp", FormProdano);

USEFORM("UnitReport2.cpp", FormReport2);

USEFORM("OtchetManager.cpp", FormOtchetManager);

USEFORM("DiagrammaOklad.cpp", FormDiagrammaOklad);

USEFORM("Spravka.cpp", FormSpravka);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TFormVxod), &FormVxod);

Application->CreateForm(__classid(TDM1), &DM1);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0;

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Spravka.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormSpravka *FormSpravka;

//---------------------------------------------------------------------------

__fastcall TFormSpravka::TFormSpravka(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TFormSpravka::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "UnitReport.h"

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormReport *FormReport;

bool Pr;

//---------------------------------------------------------------------------

__fastcall TFormReport::TFormReport(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

//выполняется после закрытия окна просмотра отчета

void __fastcall TFormReport::QuickRep1AfterPreview(TObject *Sender)

{

FormReport->Close(); //закрыть форму

}

//---------------------------------------------------------------------------

//выполняется при активации формы

void __fastcall TFormReport::FormActivate(TObject *Sender)

{

if(Pr==false)

Pr=true;

else

{Pr=false;

FormReport->Close();

return;

}

QuickRep1->Visible=false;

QuickRep1->Preview();//показатьокнопредварительногопросмотраотчета

}

//---------------------------------------------------------------------------

//выполняетсяприотображенииформы

void __fastcall TFormReport::FormShow(TObject *Sender)

{

ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->Open();

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "UnitReport2.h"

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormReport2 *FormReport2;

bool Pr;

//---------------------------------------------------------------------------

__fastcall TFormReport2::TFormReport2(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

//выполняется после закрытия окна просмотра отчета

void __fastcall TFormReport2::QuickRep1AfterPreview(TObject *Sender)

{

FormReport2->Close(); //закрыть форму

}

//---------------------------------------------------------------------------

//выполняется при активации формы

void __fastcall TFormReport2::FormActivate(TObject *Sender)

{

if(Pr==false)

Pr=true;

else

{Pr=false;

FormReport2->Close();

return;

}

QuickRep1->Visible=false;

QuickRep1->Preview();//показатьокнопредварительногопросмотраотчета

}

//---------------------------------------------------------------------------

//выполняетсяприотображенииформы

void __fastcall TFormReport2::FormShow(TObject *Sender)

{

ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->Open();

ADODataSetVidTehniki->Close();

ADODataSetVidTehniki->Open();

ADODataSetHistory->Close();

ADODataSetHistory->Open();

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "VidTehniki.h"

#include "DM.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormVidTehniki *FormVidTehniki;

//---------------------------------------------------------------------------

__fastcall TFormVidTehniki::TFormVidTehniki(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Добавить

void __fastcall TFormVidTehniki::ButtonAddClick(TObject *Sender)

{

if(ADODataSetVidTehniki->State==dsBrowse)

{ADODataSetVidTehniki->Insert();

Panel1->Visible=false;

Panel2->Visible=true;

GroupBox1->Visible=true;

DBEditName->SetFocus();

}

}

//---------------------------------------------------------------------------

//ВыполняетсяпринажатиикнопкиУдалить

void __fastcall TFormVidTehniki::ButtonDeleteClick(TObject *Sender)

{

if(ADODataSetVidTehniki->RecordCount==0) //естьлиданныевБД

{ButtonChange->Enabled=false;//сделать кнопку Изменить недоступной

ButtonDelete->Enabled=false;//сделать кнопку Удалить недоступной

ShowMessage("Данные отсутствуют в БД!"); //вывести сообщение в виде окошка

return;//выход из формы

}

if(ADODataSetVidTehniki->State==dsBrowse)

if(Application->MessageBoxA("Подтвердите удаление записи !","Внимание",MB_ICONWARNING+MB_YESNO)==IDYES)

{ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->CommandText= "select * from TablComputerTehnika where CodVidTehniki="+ADODataSetVidTehnikiCod->AsString;

ADODataSetComputerTehnika->Open();

if(ADODataSetComputerTehnika->RecordCount>0)

{ShowMessage("Ошибка при удалении! В таблице 'TablComputerTehnika' имеются связанные записи!"); //вывести сообщение в виде окошка

return;//выход из процедуры

}

ADODataSetVidTehniki->Delete();//удалить запись из таблицы БД

}

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Изменить

void __fastcall TFormVidTehniki::ButtonChangeClick(TObject *Sender)

{

if(ADODataSetVidTehniki->RecordCount==0) //есть ли данные в БД - кол-во записей в таблице БД

{ShowMessage("Данные отсутствуют в БД!");//вывести сообщение в виде окошка

return;//выход из формы

}

if(ADODataSetVidTehniki->State==dsBrowse)

ADODataSetVidTehniki->Edit();//перевести таблицу БД в режим редактирования

Panel1->Visible=false;//сделать панель невидимой

Panel2->Visible=true;//сделать панель видимой

GroupBox1->Visible=true;//сделать панель видимой

DBEditName->SetFocus(); //установить фокус в поле для ввода

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Выход

void __fastcall TFormVidTehniki::ButtonExitClick(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

//------Выполняется при нажатии кнопки Запомнить

void __fastcallTFormVidTehniki::ButtonPostClick(TObject *Sender)

{

//------проверка всех введенных данных

if(DBEditName->Text=="" )//проверка введенных данных

{ShowMessage("Введите название!");//вывод диалогового окна с сообщением

return;//выход из процедуры

}

//-----------

ADODataSetVidTehniki->Post();//запомнить все изменения в таблице БД

Panel1->Visible=true;//сделать панель видимой

Panel2->Visible=false;//сделать панель невидимой

GroupBox1->Visible=false;//сделать панель невидимой

ButtonChange->Enabled=true;//сделать кнопку Изменить доступной

ButtonDelete->Enabled=true;//сделать кнопку Удалить доступной

}

//---------------------------------------------------------------------------

//Выполняется при нажатии кнопки Отменить

void __fastcall TFormVidTehniki::ButtonOtmenClick(TObject *Sender)

{

ADODataSetVidTehniki->Cancel();//отменить все изменения - данные в таблице БД не сохраняются

Panel1->Visible=true;//сделать панель видимой

Panel2->Visible=false;//сделать панель невидимой

GroupBox1->Visible=false;//сделать панель невидимой

}

//---------------------------------------------------------------------------

void __fastcall TFormVidTehniki::FormShow(TObject *Sender)

{

ADODataSetVidTehniki->Close();

ADODataSetVidTehniki->Open();

ADODataSetComputerTehnika->Close();

ADODataSetComputerTehnika->Open();

}

//---------------------------------------------------------------------------

void __fastcall TFormVidTehniki::DBEditNameKeyPress(TObject *Sender,

char &Key)

{

if(Key==13)

ButtonPostClick(Sender);

}

//---------------------------------------------------------------------------