Проектирование автоматизированной информационной системы "Учет торговых точек для мэрии г. Череповца"

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 20.03.2017
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Разработанная АИС "Учет торговых точек" может использоваться сотрудниками администрации для решения текущих задач по работе учёта фирм и предоставленной документации.

3.2.2 Описание запуска

Запуск программы производится двойным щелчком мышки по файлу "АИС Учет торговых точек. exe".

3.2.3 Описание установки

Для установки программного продукта необходимо скопировать папку "Shop", содержащую файлы базы данных, в корневой каталог C: \. По желанию пользователя исполняемый файл программы "АИС Учет торговых точек. exe" можно переименовать.

3.2.4 Описание пользовательского интерфейса

Запустим файл "АИС Учет торговых точек. exe" в корневом каталоге C: \ Shop. При запуске программы появляется окно авторизации пользователей в системе, которое представлено на рисунок 13.

Рисунок 13 - Авторизация пользователя в системе "Учет торговых точек"

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

Рисунок 14 - Главное окно программы "Учет торговых точек"

Опишем основные возможности главного меню программы в таблице 11.

Таблица 11 - Функциональные возможности меню

Пункт меню

Функциональная возможность

Файл

Добавить торговую точку

Открывает форму для добавления торговой точки

Удалить торговую точку

Удаляет выделенную в списке главной формы торговую точку

Редактировать торговую точку

Открывает форму текущей торговой точки на редактирование

Выход из программы

Выход из программы

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

Справочники

Ввод, просмотр и редактирование справочников:

Вид документа

- вид электронного документа;

Вид деятельности

- виде ведения деятельности торговой точки;

Вид предприятия

- вид торговой точки в удобной классификации.

Адресная база

Ввод, просмотр и редактирование справочников адресов:

Регионы города

- районы города Череповец;

Улицы города

- улицы города Череповец.

Данные о руководители

Редактирование

- открывает форму личных данных руководителя текущей торговой точки.

Руководители

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

Контрагенты

Форма для ввода, просмотра и редактирования контрагентов торговых точек.

Карточка торговой точки

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

Печать

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

Краткая информационная справка о программе

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

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

Рисунок 15 - Древовидное меню

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

вид предприятия;

район города;

названию торговой точки;

ИНН предприятия;

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

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

Перед началом работы в АИС "Учет торговых точек" сотруднику администрации необходимо заполнить все имеющиеся справочники. Для этого нужно перейти в раздел главного меню Справочники и выбрать справочник для ввода и редактирования из выпадающего меню (рисунок 16).

Рисунок 16 - Выпадающее меню раздела "Справочники"

Принцип работы со справочниками системы "Учет торговых точек" покажем на примере справочника Вид деятельности. После выбора соответствующего справочника (пункта меню) открывается диалоговое окно для редактирования справочника (рисунок 17).

Рисунок 17 - Интерфейс редактирования справочников

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

Ввод данных в табличной форме любого справочника также осуществляется с помощью кнопки клавиатуры Insert или после нажатия стрелки вниз на последней записи таблицы. Для удаления выделенной записи из справочника можно воспользоваться комбинацию клавиш клавиатуры Ctrl + Delete. При этом система обязательно попросить подтвердить удаление выделенной записи с помощью диалогового окна (рисунок 18).

Рисунок 18 - Диалоговое окно на подтверждение удаления записи

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

вид предприятия;

район города;

названию торговой точки;

ИНН предприятия;

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

В средней панели главной формы содержаться тир вкладки:

вкладка Список Торговых точек содержит перечень наиболее важной информации о предприятиях;

вкладка Личные Данные Руководителя содержит личную информацию о руководители торговой точке (рисунок 19);

Рисунок 19 - Вкладка "Личные Данные Руководителя"

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

Чтобы отредактировать личные данные необходимо нажать на кнопку Редактировать, после чего откроется форма для редактирования данных руководителя (рисунок 20).

Рисунок 20 - Форма "Личные Данные Руководителя"

вкладка Документы позволяет просматривать и импортировать перечень предоставленных документов (рисунок 21).

Рисунок 21 - Вкладка "Документы"

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

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

Рисунок 22 - Форма "Руководители"

Просмотреть все данные контрагентов, с которыми работает торговая точке, также можно через пункт меню Разделы ® Контрагенты документ, которая представлена на рисунке 23.

Рисунок 23 - Форма "Руководители"

вкладка Документы предназначена для ведения списка предоставленных руководителем документов (рисунок 24).

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

Рисунок 24 - Выбор импортируемого документа

После импорта электронной копии на сервер, просмотреть документ можно после нажатия на кнопку Открыть, после нажатия на которую система откроет файл документа с сервера.

Удалить Документ возможно по соответствующей кнопку на вкладе.

Чтобы просмотреть информацию о программном проекте достаточно выбрать пункт меню О разработчике (рисунок 25).

Рисунок 25 - Информация о системе

В завершении работы с программой распечатывается отчет "Карточка торгового предприятия"

Рисунок 26 - Отчет "Карточка торгового предприятия"

3.3 Руководство программиста

По ГОСТ 19.503-79 руководство системного программиста содержит всю информацию, необходимую для установки программного обеспечения, его настройки, проверки работоспособности. Руководство системного программиста содержит следующие разделы:

3.3.1 Общие сведения о программном продукте

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

Программный продукт "Учёт торговых точек" предназначен для организации работы учёта торговых предприятий г. Череповец.

Система позволяет решить следующие задачи:

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

5) Формирование запросов к базе данных, позволяющих реализовать требуемые алгоритмы обработки данных;

6) Генерацию отчетов по данным запросам, позволяющих представить эту информацию в виде документа "Карточка торговой точки"

Разработанная АИС "Учет торговых точек" может использоваться сотрудниками администрации для решения текущих задач по работе учёта фирм и предоставленной документации.

База данных "Shop. mdb" создана в режиме конструктора.

3.3.2 Структура

В папку "Shop" с программным продуктом входят:

- папка "Documents" для хранения электронных копий документов;

- папка "ICO" - папка, которая содержит основные изображения программы;

- файл запроса "SQL_BD. sql" для построения списка торговых точек в главном меню:

SELECT

Торговая_точка. Код,

Вид_предприятия. [Вид предприятия],

Вид_деятельности. [Вид деятельности],

Торговая_точка. Название,

Торговая_точка. [ИНН/КПП],

Регион. Регион,

Улицы. Улица,

Торговая_точка. [Номер дома],

Торговая_точка. [Торговая площадь],

Торговая_точка. [Подъездные пути],

Торговая_точка. [Наличие урн],

Торговая_точка. [Количество мест],

Торговая_точка. [Количество рабочих],

Торговая_точка. Руководитель

FROM Улицы RIGHT JOIN (Руководитель RIGHT JOIN (Регион RIGHT JOIN

(Вид_предприятия RIGHT JOIN (Вид_деятельности RIGHT JOIN Торговая_точка ON

Вид_деятельности. Код = Торговая_точка. [Вид деятельности]) ON

Вид_предприятия. Код = Торговая_точка. [Вид предприятия]) ON Регион. Код = Торговая_точка. Регион) ON

Руководитель. Код = Торговая_точка. Руководитель) ON Улицы. Код = Торговая_точка. Улица

- файл запроса "SQL_Report. sql" для построения списка торговых точек в главном меню:

SELECT

Торговая_точка. Название,

Торговая_точка. [ИНН/КПП],

Вид_деятельности. [Вид деятельности],

Вид_предприятия. [Вид предприятия],

Регион. Регион,

Улицы. Улица,

Торговая_точка. [Номер дома],

Руководитель. Фамилия,

Руководитель. Имя,

Руководитель. Отчество,

Торговая_точка. Телефон,

Торговая_точка. [Торговая площадь],

Торговая_точка. [График работы],

Торговая_точка. [Площадь уборки],

Торговая_точка. [Подъездные пути],

Торговая_точка. [Наличие урн],

Торговая_точка. [Количество мест],

Торговая_точка. [Количество рабочих],

Торговая_точка. Код,

Паспорт. Номер,

Паспорт. Серия,

Паспорт. [Код подразделения],

Паспорт. [Дата выдачи],

Паспорт. [Кем выдан],

Руководитель. [Адрес прописки],

Руководитель. [Дата рождения],

Руководитель. Снилс,

Руководитель. ИНН

FROM Улицы RIGHT JOIN ( (Руководитель LEFT JOIN Паспорт ON Руководитель. Код = Паспорт. Код) RIGHT JOIN (Регион RIGHT JOIN (Вид_предприятия RIGHT JOIN (Вид_деятельности RIGHT JOIN Торговая_точка ON Вид_деятельности. Код = Торговая_точка. [Вид деятельности]) ON Вид_предприятия. Код = Торговая_точка. [Вид предприятия]) ON Регион. Код = Торговая_точка. Регион) ON Руководитель. Код = Торговая_точка. Руководитель) ON Улицы. Код = Торговая_точка. Улица

- файл базы данных "Shop. mdb";

- исполняемый файл программы "АИС Учет торговых точек. exe".

3.3.3 Настройка

Программа устанавливается путем копирования с физического носителя. Для этого нужно скопировать папку "Shop. mdb" на диск С, а на рабочем столе создать ярлык для запуска программы, который должен указывать на файл "АИС Учет торговых точек. exe".

Система должна работать на IBM совместимых персональных компьютеров класса Pentium-2 с тазовой частотой 266 Гц и выше; объем дискового пространства не менее 1 Гбайт для разрабатываемого ПО; Программа должна работать под управлением операционных систем семейства Windows 98/2000/NT/XP.

3.3.4 Проверка

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

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

Рисунок 27 - Сообщение системы

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

3.3.5 Дополнительные возможности

Программа не имеет дополнительных возможностей.

Заключение

В результате выполнения дипломной работы было разработано программное обеспечение "Учёт торговых точек" для мэрии г. Череповца". Для реализации программного продукта была спроектирована база данных с использованием MS Access и разработано программное приложение с помощью совокупности программных средств на языке Pascal в среде разработки Borland Delphi 7.0.

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

Внедрение разработанного программного продукта "Учёт торговых точек" позволит:

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

2) мгновенный доступ к актуальной информации. К основному преимуществу АИС можно отнести способность быстро и легко находить последние актуальную информацию.

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

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

5) сократить потребности в дополнительном персонале. Увеличение объемов производства при электронном учете не требует значительного расширение персонала.

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

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

Список используемых источников

1. Уфимцева, Е.В. Экономика и управление городским хозяйством [Текст]: учебное пособие / Е.В. Уфимцева. - Томск: Изд-во Том. гос. архит. - строит. ун-та, 2014. - 204 с

2. Основные возможности Borland C++Builder 6. http://cwer. ws/node/319944/.

3. Delphi 7 Обоснование выбора [Электронный ресурс]. - Режим доступа: http://barsicne. narod.ru/publ/delphi_7_obosnovanie_vybora/1-1-0-1.

4. Microsoft Visual Studio [Электронный ресурc]. - Режим доступа: https: // ru. wikipedia.org/wiki/Microsoft_Visual_Studio.

5. Сравнительные характеристики средств разработки приложений [Электронный ресурс]. - Режим доступа: http://altcode.ru/c-plus/.

6. Кандзюба, С.П. Delphi 6/7. Базы данных и приложения [Текст] / С.П. Кандзюба, В.Н. Громов. - СПб: ООО "ДиаСофтЮп", 2002.

7. Епанешников, А.М. DELPHI 5. Базы данных [Текст] / А.М. Епанешников, В.А. Епанешников. - М.: ДИАЛОГ-МИФИ, 2000.

8. Ачкасов В.Ю. Программирование баз данных в Delphi. Издательство: СамГТУ, 2010.

9. Основы программирования в Delphi XE (+ CD-ROM): Н.Б. Культин - Москва, БХВ-Петербург, 2011 г.

10. Delphi для школьников: В.Б. Попов - Санкт-Петербург, Финансы и статистика, Инфра-М, 2010 г.

11. Самоучитель Delphi в примерах, играх и программах. От простых приложений, решения задач и до программирования интеллектуальных игр (+ DVD-ROM): В. Рубанцев - Москва, Наука и техника, 2011 г.

12. Синтаксис и семантика основных объектов UML [Электронный ресурс]. Режим доступа: http://koi. tspu.ru/koi_books/gazizov/l12p02. htm.

13. Диаграммы взаимодействия [Электронный ресурс]. Режим доступа: http://oplib.ru/random/view/446708.

Приложение

Листинг программы

unit UnitReg;

interface

uses

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

Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls;

type

TFormReg = class (TForm)

GroupBox1: TGroupBox;

EditLog: TEdit;

Label1: TLabel;

Label2: TLabel;

EditPar: TEdit;

ButtonOK: TSpeedButton;

ButtonCancel: TSpeedButton;

Image1: TImage;

procedure ButtonCancelClick (Sender: TObject);

procedure ButtonOKClick (Sender: TObject);

private

{ Private declarations }

public

PersonKey: integer;

{ Public declarations }

end;

var

FormReg: TFormReg;

implementation

uses UnitMain, UnitD, Math, DB;

{$R *. dfm}

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

procedure TFormReg. ButtonCancelClick (Sender: TObject);

begin

Application. Terminate;

end;

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

procedure TFormReg. ButtonOKClick (Sender: TObject);

begin

try

DataM. QueryR. Close;

DataM. QueryR. SQL. Clear;

if ( (EditLog. Text = '') or (EditPar. Text = '')) then

begin

MessageDlg ('Поля "логин" или "пароль" не заполнены. ', mtInformation, [mbOk], 0);

end

else

begin

DataM. QueryR. SQL. Add ('Select Код From Пользователи Where Логин = ''' + EditLog. Text + ''' and Пароль = ''' + EditPar. Text + '''');

DataM. QueryR. Open;

If (DataM. QueryR. RecordCount > 0) then

begin

Hide;

FormMain. Show;

end

else

begin

MessageDlg ('Неверно введен логин или пароль', mtError, [mbOk], 0);

EditLog. Text: = '';

EditPar. Text: = '';

end;

end;

except

messageDlg ('Проверьте соединение с Базой Данных. ', mtError, [mbOK],0);

end;

end;

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

end.

unit UnitMain;

interface

uses

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

Db, DBTables, StdCtrls, ComCtrls, ExtCtrls, DBCtrls, Grids, DBGrids,

Menus, CheckLst, IBSQL, UnitD, ImgList, Buttons, Variants, Shellapi;

type

TFormMain = class (TForm)

Label26: TLabel;

MainMenu1: TMainMenu;

N671: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N1: TMenuItem;

N6: TMenuItem;

N13: TMenuItem;

N7: TMenuItem;

N14: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N25: TMenuItem;

N26: TMenuItem;

N12: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N22: TMenuItem;

N23: TMenuItem;

PanelT: TPanel;

Panel1: TPanel;

ImageListM: TImageList;

N11: TMenuItem;

N18: TMenuItem;

N20: TMenuItem;

N21: TMenuItem;

PageControlM: TPageControl;

TabSheet1: TTabSheet;

SplitterM: TSplitter;

DBGridM: TDBGrid;

PanelI: TPanel;

DBNavigatorM: TDBNavigator;

Tree: TTreeView;

TabSheet2: TTabSheet;

DBText1: TDBText;

DBText2: TDBText;

DBText3: TDBText;

DBText4: TDBText;

DBText5: TDBText;

DBText6: TDBText;

DBText9: TDBText;

DBText10: TDBText;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

DBText11: TDBText;

TabSheet3: TTabSheet;

DBText13: TDBText;

DBText14: TDBText;

DBText15: TDBText;

DBText16: TDBText;

Label16: TLabel;

Label17: TLabel;

Label19: TLabel;

Label20: TLabel;

DBText28: TDBText;

SplitterR: TSplitter;

Panel2: TPanel;

DBGridD: TDBGrid;

BtnEditL: TSpeedButton;

Label9: TLabel;

DBText12: TDBText;

DBText7: TDBText;

DBText8: TDBText;

DBText17: TDBText;

Label10: TLabel;

DBText18: TDBText;

BtnAdd: TSpeedButton;

BtnDel: TSpeedButton;

BtnEdit: TSpeedButton;

Label11: TLabel;

Label15: TLabel;

Label18: TLabel;

DBText19: TDBText;

DBText20: TDBText;

BtnImpD: TSpeedButton;

SpeedButton1: TSpeedButton;

BtnExit: TSpeedButton;

Label21: TLabel;

Label1: TLabel;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

DBLookupCBVP: TDBLookupComboBox;

DBLookupCBR: TDBLookupComboBox;

EditN: TEdit;

EditINN: TEdit;

DBLookupCBU: TDBLookupComboBox;

BtnBack: TSpeedButton;

N10: TMenuItem;

BtnAddL: TSpeedButton;

BtnDelL: TSpeedButton;

BtnOpD: TSpeedButton;

BtnDelD: TSpeedButton;

OpenDialogM: TOpenDialog;

BtnAddD: TSpeedButton;

DBNavigatorN: TDBNavigator;

Splitter1: TSplitter;

procedure BtnExitClick (Sender: TObject);

procedure DBNavigatorMClick (Sender: TObject; Button: TNavigateBtn);

procedure DBGridMCellClick (Column: TColumn);

procedure N1Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure DBGridMDblClick (Sender: TObject);

procedure N20Click (Sender: TObject);

procedure N13Click (Sender: TObject);

procedure N22Click (Sender: TObject);

procedure PageControlMChanging (Sender: TObject;

var AllowChange: Boolean);

procedure FormActivate (Sender: TObject);

procedure N25Click (Sender: TObject);

procedure N26Click (Sender: TObject);

procedure N23Click (Sender: TObject);

procedure Reload ();

procedure TreeClick (Sender: TObject);

procedure N21Click (Sender: TObject);

procedure N18Click (Sender: TObject);

procedure BtnEditLClick (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure ButtonAddClick (Sender: TObject);

procedure ButtonDelClick (Sender: TObject);

procedure FilterTT ();

procedure N9Click (Sender: TObject);

procedure BtnEditClick (Sender: TObject);

procedure N12Click (Sender: TObject);

procedure N8Click (Sender: TObject);

procedure N10Click (Sender: TObject);

procedure BtnAddLClick (Sender: TObject);

procedure BtnDelLClick (Sender: TObject);

procedure BtnOpDClick (Sender: TObject);

procedure BtnDelDClick (Sender: TObject);

procedure DBGridDCellClick (Column: TColumn);

procedure BtnImpDClick (Sender: TObject);

procedure DBGridDDrawColumnCell (Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

procedure BtnAddDClick (Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormMain: TFormMain;

implementation

uses UnitL, UnitO, UnitE, UnitS, UnitA, UnitRep, ADODB;

{$R *. DFM}

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

procedure TFormMain. FilterTT ();

var

first: boolean;

ss: string;

begin

first: = false;

ss: = '';

if (Tree. Selected. Index>0) then

begin

if first then ss: = ss + ' AND ';

ss: = ss + ' [Вид_деятельности]. [Вид деятельности] ="' + Tree. Items. Item [Tree. Selected. Index]. Text + '"';

first: = true;

end;

if (DBLookupCBVP. KeyValue >0) then

begin

if first then ss: = ss + ' AND ';

ss: = ss + ' [Вид_предприятия]. [Вид предприятия] ="' + DBLookupCBVP. Text + '"';

first: = true;

end;

if (DBLookupCBR. KeyValue >0) then

begin

if first then ss: = ss + ' AND ';

ss: = ss + ' Регион. Регион="' + DBLookupCBR. Text + '"';

first: = true;

end;

if (DBLookupCBU. KeyValue >0) then

begin

if first then ss: = ss + ' AND ';

ss: = ss + ' Улицы. Улица="' + DBLookupCBU. Text + '"';

first: = true;

end;

if (EditN. Text <> '') then

begin

if first then ss: = ss + ' AND ';

ss: = ss + ' [Торговая_точка]. Название LIKE ' + QuotedStr ('%' + EditN. Text + '%');

first: = true;

end;

if (EditINN. Text <> '') then

begin

if first then ss: = ss + ' AND ';

ss: = ss + ' [Торговая_точка]. [ИНН/КПП] LIKE ' + QuotedStr ('%' + EditINN. Text + '%');

first: = true;

end;

with DataM. QueryH do

begin

Close;

SQL. Clear;

SQL. LoadFromFile ('SQL_BD. sql');

if (ss<>'') then SQL. Add (' WHERE ' + ss);

Open;

end;

end;

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

procedure TFormMain. Reload ();

begin

DataM. Region. Close;

DataM. Ulicy. Close;

DataM. VidDokumenta. Close;

DataM. VidDeyatelnosti. Close;

DataM. VidPredpriyatiya. Close;

DataM.rukovoditel. Close;

DataM. Passport. Close;

DataM. Kontragent. Close;

DataM. Document. Close;

DataM. TT. Close;

DataM. QueryH. Close;

DataM. Region. Open;

DataM. Ulicy. Open;

DataM. VidDokumenta. Open;

DataM. VidDeyatelnosti. Open;

DataM. VidPredpriyatiya. Open;

DataM.rukovoditel. Open;

DataM. Passport. Open;

DataM. Kontragent. Open;

DataM. Document. Open;

DataM. TT. Open;

DataM. QueryH. Open;

DataM. Passport. Filter: = '';

DataM. Passport. Filtered: = false;

DataM.rukovoditel. Filter: = '';

DataM.rukovoditel. Filtered: = false;

DataM. TT. Filter: = '';

DataM. TT. Filtered: = false;

DataM. Document. Filter: = '';

DataM. Document. Filtered: = false;

end;

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

procedure FillTree (Tree: TTreeView; Query: TDataSet; idNode, idParent,

cNodeName: string);

var

i: integer;

begin

Query. First;

Tree. Items. Clear;

Tree. Items. AddObject (nil, 'Вид деятельности', Pointer (1));

Query. Next;

while not Query. Eof do

begin

i: = 0;

Tree. Items. AddChildObject (Tree. Items. Item [i],

Query. FieldByName (cNodeName). AsString,

Pointer (Query. FieldByName (idNode). asInteger));

Inc (i);

Query. Next;

end;

end;

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

procedure TFormMain. FormActivate (Sender: TObject);

begin

Reload;

FillTree (Tree, DataM. VidDeyatelnosti, 'Код','','Вид деятельности');

DBNavigatorM. Visible: = True;

DBGridMCellClick (DBGridM. Columns [0]);

end;

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

procedure TFormMain. N1Click (Sender: TObject);

begin

FormSpr. LabelS. Caption: = 'Вид документа';

FormSpr. DBGridS. DataSource: = DataM. VidDokumentaS;

FormSpr. DBGridS. Columns [0]. Visible: = False;

FormSpr. DBNavigatorS. DataSource: = DataM. VidDokumentaS;

FormSpr. ShowModal;

end;

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

procedure TFormMain. BtnExitClick (Sender: TObject);

begin

Close;

end;

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

procedure TFormMain. N23Click (Sender: TObject);

begin

Messagedlg ('Данный програмный продукт разработан в качестве дипломного проекта. ',mtInformation, [mbOk],0);

end;

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

procedure TFormMain. TreeClick (Sender: TObject);

begin

FilterTT;

end;

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

procedure TFormMain. N20Click (Sender: TObject);

begin

FormSpr. LabelS. Caption: = 'Вид деятельности';

FormSpr. DBGridS. DataSource: = DataM. VidDeyatelnostiS;

FormSpr. DBGridS. Columns [0]. Visible: = False;

FormSpr. DBNavigatorS. DataSource: = DataM. VidDeyatelnostiS;

FormSpr. ShowModal;

end;

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

procedure TFormMain. N21Click (Sender: TObject);

begin

FormSpr. LabelS. Caption: = 'Вид предприятия';

FormSpr. DBGridS. DataSource: = DataM. VidPredpriyatiyaS;

FormSpr. DBGridS. Columns [0]. Visible: = False;

FormSpr. DBNavigatorS. DataSource: = DataM. VidPredpriyatiyaS;

FormSpr. ShowModal;

end;

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

procedure TFormMain. N13Click (Sender: TObject);

begin

FormSpr. LabelS. Caption: = 'Регионы города';

FormSpr. DBGridS. DataSource: = DataM. RegionS;

FormSpr. DBGridS. Columns [0]. Visible: = False;

FormSpr. DBNavigatorS. DataSource: = DataM. RegionS;

FormSpr. ShowModal;

end;

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

procedure TFormMain. N18Click (Sender: TObject);

begin

FormSpr. LabelS. Caption: = 'Улицы города';

FormSpr. DBGridS. DataSource: = DataM. UlicyS;

FormSpr. DBGridS. Columns [0]. Visible: = False;

FormSpr. DBGridS. Columns [1]. Visible: = False;

FormSpr. DBGridS. Columns [2]. Width: = 150;

FormSpr. DBGridS. Columns [3]. Width: = 150;

FormSpr. DBNavigatorS. DataSource: = DataM. UlicyS;

FormSpr. ShowModal;

end;

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

procedure TFormMain. BtnEditLClick (Sender: TObject);

begin

try

DataM.rukovoditel. Edit;

DataM. Passport. Edit;

FormL. Showmodal;

except

ShowMessage ('Введите корректные данные! ');

end;

end;

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

procedure TFormMain. FormCreate (Sender: TObject);

begin

Reload;

PanelT. Visible: = false;

BtnBack. Visible: = false;

end;

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

procedure TFormMain. ButtonAddClick (Sender: TObject);

begin

DataM. TT. First;

DataM. TT. Edit;

FormA. DBNavigatorM. BtnClick (nbInsert);

FormA. Showmodal;

end;

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

procedure TFormMain. ButtonDelClick (Sender: TObject);

begin

try

FormA. DBNavigatorM. BtnClick (nbDelete);

FormA. DBNavigatorM. BtnClick (nbRefresh);

except ShowMessage ('Сохраните изменения!! ');

end;

end;

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

procedure TFormMain. N25Click (Sender: TObject);

begin

BtnAdd. Click;

end;

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

procedure TFormMain. N26Click (Sender: TObject);

begin

BtnDel. click;

end;

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

procedure TFormMain. N22Click (Sender: TObject);

begin

PanelT. Visible: = not PanelT. Visible;

DBLookupCBVP. KeyValue: = Null;

DBLookupCBR. KeyValue: = Null;

DBLookupCBU. KeyValue: = Null;

with DataM. QueryH do

begin

Close;

SQL. Clear;

SQL. LoadFromFile (Copy (Application. ExeName, 0, LastDelimiter ('\', Application. ExeName)) + '\SQL_BD. sql');

Open;

end;

EditN. Text: = '';

EditINN. Text: = '';

end;

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

procedure TFormMain. N9Click (Sender: TObject);

begin

FormO. ShowModal;

end;

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

procedure TFormMain. DBGridMCellClick (Column: TColumn);

begin

if (DataM. QueryHDSDesigner. Value <> 0) then

begin

DataM. TT. Filter: = 'Код=' + DataM. QueryHDSDesigner. AsString;

DataM. TT. Filtered: = true;

DataM. TT. Open;

DataM. Document. Filter: = ' [Торговая точка] =' + DataM. QueryHDSDesigner. AsString;

DataM. Document. Filtered: = true;

DataM. Document. Open

end;

if DataM. TT. Active and (DataM. TT. RecordCount = 0) then DataM. TT. Close;

if DataM. Document. Active and (DataM. Document. RecordCount = 0) then DataM. Document. Close;

if (DataM. QueryHDSDesigner14. Value <> 0) then

begin

DataM. Passport. Filter: = 'Код=' + DataM. QueryHDSDesigner14. AsString;

DataM. Passport. Filtered: = true;

DataM. Passport. Open;

DataM.rukovoditel. Filter: = 'Код=' + DataM. QueryHDSDesigner14. AsString;

DataM.rukovoditel. Filtered: = true;

DataM.rukovoditel. Open;

end

else

begin

DataM. Passport. Close;

DataM.rukovoditel. Close;

end;

end;

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

procedure TFormMain. N3Click (Sender: TObject);

begin

Application. Terminate;

end;

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

procedure TFormMain. DBGridMDblClick (Sender: TObject);

begin

Reload;

DataM. TT. Filter: = 'Код=' + DataM. QueryHDSDesigner. AsString;

DataM. TT. Filtered: = true;

FormA. ShowModal;

end;

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

procedure TFormMain. PageControlMChanging (Sender: TObject;

var AllowChange: Boolean);

begin

BtnBack. Visible: = (PageControlM. ActivePage. ImageIndex > 0);

BtnEditL. Enabled: = DataM.rukovoditel. Active;

BtnAddL. Enabled: = not DataM.rukovoditel. Active;

BtnDelL. Enabled: = DataM.rukovoditel. Active;

DBGridDCellClick (DBGridD. Columns [0]);

end;

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

procedure TFormMain. BtnEditClick (Sender: TObject);

begin

DataM. TT. First;

DataM. TT. Edit;

FormA. Showmodal;

end;

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

procedure TFormMain. DBNavigatorMClick (Sender: TObject; Button: TNavigateBtn);

begin

Reload;

DBGridM. SelectedRows. CurrentRowSelected: = true;

if (Button = nbNext) or (Button = nbLast) then

DBGridMCellClick (DBGridM. Columns [0]);

end;

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

procedure TFormMain. N12Click (Sender: TObject);

begin

BtnEdit. Click;

end;

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

procedure TFormMain. N8Click (Sender: TObject);

begin

DataM.rukovoditel. Filtered: = false;

DataM.rukovoditel. Open;

FormE. ShowModal;

end;

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

procedure TFormMain. BtnAddLClick (Sender: TObject);

begin

FormL. DBNavigatorM. BtnClick (nbInsert);

FormL. Showmodal;

end;

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

procedure TFormMain. BtnDelLClick (Sender: TObject);

begin

FormL. DBNavigatorM. BtnClick (nbDelete);

end;

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

procedure DrawGridCheckBox (Canvas: TCanvas; Rect: TRect; Checked: boolean); // прорисовка галочки в таблице

var

DrawFlags: Integer;

begin

Canvas. TextRect (Rect, Rect. Left + 1, Rect. Top + 1, ' ');

DrawFrameControl (Canvas. Handle, Rect, DFC_BUTTON, DFCS_BUTTONPUSH or DFCS_ADJUSTRECT);

DrawFlags: = DFCS_BUTTONCHECK or DFCS_ADJUSTRECT;

if Checked then

DrawFlags: = DrawFlags or DFCS_CHECKED;

DrawFrameControl (Canvas. Handle, Rect, DFC_BUTTON, DrawFlags);

end;

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

procedure TFormMain. BtnOpDClick (Sender: TObject);

var documentO: String;

begin

if (DataM. Document. FieldByName ('Месторасположение'). Value <> '') then

begin

documentO: = DataM. Document. FieldByName ('Месторасположение'). Value;

ShellExecute (0,'Open',PChar (documentO),nil,nil,1);

end

else

MessageDlg ('Для документа не загружена электронная копия. ', mtInformation, [mbOk], 0);

end;

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

procedure TFormMain. BtnDelDClick (Sender: TObject);

begin

try

DeleteFile (DataM. Document. FieldByName ('Месторасположение'). Value);

DataM. QueryR. Close;

DataM. QueryR. SQL. Clear;

DataM. QueryR. SQL. Add ('UPDATE Документ');

DataM. QueryR. SQL. Add ('SET Месторасположение = ""');

DataM. QueryR. SQL. Add ('WHERE Код=' + IntToStr (DBGridD. Fields [0]. Value));

DataM. QueryR. ExecSQL;

DataM. Document. Refresh;

DBGridDCellClick (DBGridD. Columns [0]);

except ShowMessage ('Не удалось удалить документ! ');

end;

end;

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

procedure TFormMain. N10Click (Sender: TObject);

begin

DataM. QueryR. Close;

DataM. QueryR. SQL. Clear;

DataM. QueryR. SQL. LoadFromFile (Copy (Application. ExeName, 0, LastDelimiter ('\', Application. ExeName)) + '\SQL_Report. sql');

DataM. QueryR. SQL. Add ('Where Торговая_точка. Код=' + DataM. QueryHDSDesigner. AsString);

DataM. QueryR. Open;

if (DataM. QueryR. RecordCount >0) then

FormRep. QuickR. Preview

else

Messagedlg ('Нет данных для печати! ',mtInformation, [mbOk],0);

end;

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

procedure TFormMain. DBGridDCellClick (Column: TColumn);

begin

BtnImpD. Enabled: = DataM. Document. FieldByName ('Месторасположение'). AsString = '';

BtnOpD. Enabled: = DataM. Document. FieldByName ('Месторасположение'). AsString <> '';

BtnDelD. Enabled: = DataM. Document. FieldByName ('Месторасположение'). AsString <> '';

if (DataM. Document. Active) and (DataM. DocumentDSDesigner. Value > 0) then

if (Column. FieldName = 'Копия') then

begin

DataM. Document. Edit;

Column. Field. Value: = not Column. Field. Value;

end;

if (DataM. Document. Modified) then DataM. Document. Post;

end;

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

procedure TFormMain. BtnImpDClick (Sender: TObject);

var

docPath, PathName: String;

bSuccess: Boolean;

position: Integer;

admin: Boolean;

begin

OpenDialogM. Filter: = 'Электронные копии документы|*. pdf; *. doc; *. docx; ';

if OpenDialogM. Execute then

begin

docPath: = OpenDialogM. FileName;

position: = LastDelimiter ('\', Application. ExeName);

PathName: = Copy (Application. ExeName, 0, position);

position: = LastDelimiter ('\', docPath);

PathName: = PathName + 'Documents' + Copy (docPath, position, StrLen (PAnsiChar (docPath)) - position + 1);

bSuccess: = CopyFile (PAnsiChar (docPath), PAnsiChar (PathName), false);

if (bSuccess) then

begin

DataM. QueryR. Close;

DataM. QueryR. SQL. Clear;

DataM. QueryR. SQL. Add ('UPDATE Документ');

DataM. QueryR. SQL. Add ('SET Месторасположение=' + '"' + PathName + '"');

DataM. QueryR. SQL. Add ('WHERE Код=' + IntToStr (DBGridD. Fields [0]. Value));

DataM. QueryR. ExecSQL;

end

else MessageDlg ('Не удалось загрузить документ на сервер. ', mtError, [mbOk], 0);

DataM. Document. Refresh;

DBGridDCellClick (DBGridD. Columns [0]);

end;

end;

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

procedure TFormMain. DBGridDDrawColumnCell (Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumn;

State: TGridDrawState);

begin

if DataM. Document. FieldByName ('Месторасположение'). AsString = '' then

DBGridD. Canvas. Brush. Color: = $000066FF

else

DBGridD. Canvas. Brush. Color: = $00D9DDDB;

DBGridD. DefaultDrawColumnCell (Rect,DataCol,Column,State);

if (DataM. Document. Active) and (Column. FieldName = 'Копия') then

if (Column. Field. AsBoolean) then

DrawGridCheckBox (DBGridD. Canvas, Rect, true)

else

DrawGridCheckBox (DBGridD. Canvas, Rect, false);

end;

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

procedure TFormMain. BtnAddDClick (Sender: TObject);

begin

DataM. Document. Open;

DBNavigatorN. BtnClick (nbInsert);

end;

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

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

begin

N3Click (Sender);

end;

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

end.

unit UnitD;

interface

uses

SysUtils, Classes, DB, ADODB, DBTables;

type

TDataM = class (TDataModule)

RegionS: TDataSource;

VidDokumentaS: TDataSource;

QueryHS: TDataSource;

PassportS: TDataSource;

TTS: TDataSource;

DocumentS: TDataSource;

RukovoditelS: TDataSource;

UlicyS: TDataSource;

KontragentS: TDataSource;

VidPredpriyatiyaS: TDataSource;

ADOConnect: TADOConnection;

Region: TADOTable;

Ulicy: TADOTable;

Passport: TADOTable;

VidPredpriyatiya: TADOTable;

Document: TADOTable;

VidDokumenta: TADOTable;

Rukovoditel: TADOTable;

Kontragent: TADOTable;

TT: TADOTable;

VidDeyatelnostiS: TDataSource;

RegionDSDesigner: TAutoIncField;

RegionDSDesigner2: TWideStringField;

UlicyDSDesigner: TAutoIncField;

UlicyDSDesigner3: TWideStringField;

VidDokumentaDSDesigner: TAutoIncField;

VidDokumentaDSDesigner2: TWideStringField;

VidDeyatelnosti: TADOTable;

VidDeyatelnostiDSDesigner: TAutoIncField;

VidDeyatelnostiDSDesigner2: TWideStringField;

VidPredpriyatiyaDSDesigner: TAutoIncField;

VidPredpriyatiyaDSDesigner2: TWideStringField;

RukovoditelDSDesigner: TAutoIncField;

RukovoditelDSDesigner2: TWideStringField;

RukovoditelDSDesigner3: TWideStringField;

RukovoditelDSDesigner4: TWideStringField;

RukovoditelDSDesigner5: TWideStringField;

RukovoditelDSDesigner6: TWideStringField;

RukovoditelDSDesigner7: TWideStringField;

RukovoditelDSDesigner8: TDateTimeField;

RukovoditelDSDesigner9: TWideStringField;

RukovoditelDSDesigner10: TWideStringField;

PassportDSDesigner: TIntegerField;

PassportDSDesigner2: TWideStringField;

PassportDSDesigner3: TWideStringField;

PassportDSDesigner4: TWideStringField;

PassportDSDesigner6: TWideStringField;

KontragentDSDesigner: TAutoIncField;

KontragentDSDesigner2: TIntegerField;

KontragentDSDesigner3: TWideStringField;

KontragentDSDesigner4: TWideStringField;

KontragentDSDesigner5: TIntegerField;

KontragentDSDesigner6: TIntegerField;

KontragentDSDesigner7: TIntegerField;

KontragentDSDesigner8: TWideStringField;

KontragentDSDesigner10: TWideStringField;

DocumentDSDesigner: TAutoIncField;

DocumentDSDesigner2: TIntegerField;

DocumentDSDesigner3: TWideStringField;

DocumentDSDesigner4: TDateTimeField;

DocumentDSDesigner5: TDateTimeField;

DocumentDSDesigner6: TIntegerField;

DocumentDSDesigner7: TIntegerField;

DocumentDSDesigner8: TBooleanField;

DocumentDSDesigner9: TWideStringField;

DocumentDSDesigner10: TWideStringField;

TTDSDesigner: TAutoIncField;

TTDSDesigner2: TDateTimeField;

TTDSDesigner3: TDateTimeField;

TTDSDesigner4: TDateTimeField;

TTDSDesigner5: TIntegerField;

TTDSDesigner6: TWideStringField;

TTDSDesigner7: TWideStringField;

TTDSDesigner8: TIntegerField;

TTDSDesigner9: TIntegerField;

TTDSDesigner10: TIntegerField;

TTDSDesigner11: TWideStringField;

TTDSDesigner12: TIntegerField;

TTDSDesigner13: TWideStringField;

TTDSDesigner14: TFloatField;

TTDSDesigner15: TWideStringField;

TTDSDesigner16: TFloatField;

TTDSDesigner17: TIntegerField;

TTDSDesigner18: TIntegerField;

TTDSDesigner19: TIntegerField;

TTDSDesigner20: TIntegerField;

UlicyDSDesigner2: TIntegerField;

UlicyIntegerField: TStringField;

DocumentField: TStringField;

DocumentField2: TStringField;

DocumentField3: TStringField;

QueryH: TADOQuery;

PassportDSDesigner5: TDateTimeField;

KontragentField: TStringField;

KontragentField2: TStringField;

KontragentField3: TStringField;

KontragentIntegerField: TStringField;

TTField: TStringField;

TTField2: TStringField;

TTField3: TStringField;

TTIntegerField: TStringField;

QueryRS: TDataSource;

QueryR: TADOQuery;

QueryHDSDesigner: TAutoIncField;

QueryHDSDesigner2: TWideStringField;

QueryHDSDesigner3: TWideStringField;

QueryHDSDesigner4: TWideStringField;

QueryHDSDesigner5: TWideStringField;

QueryHDSDesigner6: TWideStringField;

QueryHDSDesigner7: TWideStringField;

QueryHDSDesigner8: TWideStringField;

QueryHDSDesigner9: TFloatField;

QueryHDSDesigner10: TIntegerField;

QueryHDSDesigner11: TIntegerField;

QueryHDSDesigner12: TIntegerField;

QueryHDSDesigner13: TIntegerField;

QueryHDSDesigner14: TIntegerField;

procedure DataModuleCreate (Sender: TObject);

procedure RukovoditelAfterPost (DataSet: TDataSet);

procedure DocumentBeforePost (DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DataM: TDataM;

implementation

{$R *. dfm}

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

procedure TDataM. DataModuleCreate (Sender: TObject);

begin

with DataM. QueryH do

begin

Close;

SQL. Clear;

SQL. LoadFromFile ('SQL_BD. sql');

Open;

end;

end;

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

procedure TDataM.rukovoditelAfterPost (DataSet: TDataSet);

begin

if (RukovoditelDSDesigner. Value = 0) then

TTDSDesigner12. Value: = RukovoditelDSDesigner. Value;

end;

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

procedure TDataM. DocumentBeforePost (DataSet: TDataSet);

begin

if (DocumentDSDesigner. Value = 0) then

DocumentDSDesigner7. Value: = TTDSDesigner. Value;

end;

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

end.

unit UnitO;

interface

uses

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

Db, StdCtrls, Mask, DBCtrls, DBTables, ExtCtrls, Grids, DBGrids, Buttons;

type

TFormO = class (TForm)

DBGrid1: TDBGrid;

Panel1: TPanel;

Label4: TLabel;

DBEdit4: TDBEdit;

DBNavigatorM: TDBNavigator;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label5: TLabel;

Label6: TLabel;

DBLookupCBVP: TDBLookupComboBox;

DBLookupComboBox1: TDBLookupComboBox;

DBEdit1: TDBEdit;

Label7: TLabel;

DBLookupComboBox2: TDBLookupComboBox;

DBLookupComboBox3: TDBLookupComboBox;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

Label8: TLabel;

ButtonOK: TSpeedButton;

ButtonCancel: TSpeedButton;

ButtonEx: TSpeedButton;

ButtonDel: TSpeedButton;

ButtonAdd: TSpeedButton;

procedure DBEdit1Change (Sender: TObject);

procedure DBGrid1KeyPress (Sender: TObject; var Key: Char);

procedure FormCreate (Sender: TObject);

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

procedure ButtonExClick (Sender: TObject);

procedure ButtonOKClick (Sender: TObject);

procedure ButtonCancelClick (Sender: TObject);

procedure ButtonDelClick (Sender: TObject);

procedure ButtonAddClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormO: TFormO;

implementation

uses UnitMain, UnitD;

{$R *. DFM}

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

procedure TFormO. ButtonExClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbCancel);

Close;

end;

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

procedure TFormO. ButtonOKClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbPost);

DBNavigatorM. BtnClick (nbRefresh);

ButtonOK. Enabled: = false;

end;

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

procedure TFormO. ButtonCancelClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbRefresh);

end;

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

procedure TFormO. ButtonDelClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbRefresh);

end;

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

procedure TFormO. DBEdit1Change (Sender: TObject);

begin

ButtonOK. Enabled: = true;

end;

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

procedure TFormO. ButtonAddClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbInsert);

end;

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

procedure TFormO. DBGrid1KeyPress (Sender: TObject; var Key: Char);

begin

ButtonOK. Enabled: =true;

end;

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

procedure TFormO. FormCreate (Sender: TObject);

begin

DataM. Kontragent. Edit;

end;

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

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

begin

DataM. TT. Filter: = '';

DataM. TT. Filtered: = false;

end;

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

end.

unit UnitE;

interface

uses

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

StdCtrls, Grids, DBGrids, DBCtrls, ExtCtrls, CheckLst, Mask, Buttons;

type

TFormE = class (TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

Label7: TLabel;

Label2: TLabel;

Label8: TLabel;

Label9: TLabel;

Label12: TLabel;

Label13: TLabel;

ButtonOK: TSpeedButton;

ButtonCancel: TSpeedButton;

ButtonEx: TSpeedButton;

DBNavigatorM: TDBNavigator;

GroupBox1: TGroupBox;

Label10: TLabel;

Label11: TLabel;

Label14: TLabel;

DBEdit11: TDBEdit;

DBEdit8: TDBEdit;

MaskEdit2: TMaskEdit;

DBEdit3: TDBEdit;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

DBEdit12: TDBEdit;

DBEdit9: TDBEdit;

DBNavigatorN: TDBNavigator;

ButtonAdd: TSpeedButton;

ButtonDel: TSpeedButton;

procedure ButtonExClick (Sender: TObject);

procedure ButtonAddClick (Sender: TObject);

procedure ButtonOKClick (Sender: TObject);

procedure ButtonDelClick (Sender: TObject);

procedure ButtonCancelClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormE: TFormE;

implementation

uses UnitMain, UnitD;

{$R *. DFM}

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

procedure TFormE. ButtonExClick (Sender: TObject);

begin

DataM.rukovoditel. Filtered: = true;

close;

DBNavigatorM. BtnClick (nbRefresh);

end;

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

procedure TFormE. ButtonAddClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbInsert);

end;

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

procedure TFormE. ButtonOKClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbPost);

end;

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

procedure TFormE. ButtonDelClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbDelete);

end;

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

procedure TFormE. ButtonCancelClick (Sender: TObject);

begin

DBNavigatorM. BtnClick (nbRefresh);

end;

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

end.

unit UnitS;

interface

uses

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

ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, Mask, Buttons;

type

TFormSpr = class (TForm)

DBGridS: TDBGrid;

DBNavigatorS: TDBNavigator;

LabelS: TLabel;

ButtonOK: TSpeedButton;

ButtonCancel: TSpeedButton;

ButtonAdd: TSpeedButton;

ButtonDel: TSpeedButton;

ButtonEx: TSpeedButton;

procedure DBGridSCellClick (Column: TColumn);

procedure ButtonOKClick (Sender: TObject);

procedure ButtonCancelClick (Sender: TObject);

procedure ButtonAddClick (Sender: TObject);

procedure ButtonDelClick (Sender: TObject);

procedure ButtonExClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormSpr: TFormSpr;

implementation

uses UnitD;

{$R *. DFM}

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

procedure TFormSpr. ButtonCancelClick (Sender: TObject);

begin

DBNavigatorS. BtnClick (nbCancel);

DBNavigatorS. BtnClick (nbRefresh);

end;

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

procedure TFormSpr. DBGridSCellClick (Column: TColumn);

begin

ButtonOK. Enabled: = true;

end;

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

procedure TFormSpr. ButtonOKClick (Sender: TObject);

begin

if DataM. VidDokumenta. Modified then DataM. VidDokumenta. Post;

if DataM. VidDeyatelnosti. Modified then DataM. VidDeyatelnosti. Post;

if DataM. VidPredpriyatiya. Modified then DataM. VidPredpriyatiya. Post;


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.