Файл: Проектирование реализации операций бизнес-процесса «Продажи» (Характеристика существующих бизнес – процессов).pdf
Добавлен: 04.07.2023
Просмотров: 234
Скачиваний: 3
СОДЕРЖАНИЕ
1.1. Выбор комплекса задач автоматизации
1.2. Характеристика существующих бизнес – процессов
1.3. Характеристика документооборота, возникающего при решении задачи
2.1. Информационная модель и её описание
2.2. Характеристика нормативно-справочной, входной и оперативной информации
2.3. Характеристика результатной информации
2.4. Общие положения (дерево функций и сценарий диалога)
2.5. Характеристика базы данных
2.6. Структурная схема пакета (дерево вызова программных модулей)
Form3.Edit1.Text:=DBGrid4.DataSource.DataSet.FieldByName('ID').AsString;
Form3.Edit2.Text:=DBGrid4.DataSource.DataSet.FieldByName('Predmet').AsString;
Form3.Edit3.Text:=DBGrid4.DataSource.DataSet.FieldByName('DATA_ZAKLYCHENIA').AsString;
Form3.Edit4.Text:=DBGrid4.DataSource.DataSet.FieldByName('SUMMA').AsString;
Form3.Edit5.Text:=DBGrid4.DataSource.DataSet.FieldByName('SROK_ISPOLNENIA').AsString;
Form3.Edit6.Text:=DBGrid4.DataSource.DataSet.FieldByName('OBJEM_PRODAG').AsString;
Form3.Edit7.Text:=DBGrid4.DataSource.DataSet.FieldByName('ID_KLIENT').AsString;
Form3.Edit8.Text:=DBGrid4.DataSource.DataSet.FieldByName('ID_MENEDGER').AsString;
// реквизиты договора из таблицы "Клиент"
Form3.Edit9.Text:=DBGrid1.DataSource.DataSet.FieldByName('ID').AsString;
Form3.Edit10.Text:=DBGrid1.DataSource.DataSet.FieldByName('NAME_FIRMA').AsString;
Form3.Edit11.Text:=DBGrid1.DataSource.DataSet.FieldByName('ADRES').AsString;
Form3.Edit12.Text:=DBGrid1.DataSource.DataSet.FieldByName('RASHETNIY_SHET').AsString;
Form3.Edit13.Text:=DBGrid1.DataSource.DataSet.FieldByName('KOD_EDRPO').AsString;
Form3.Edit14.Text:=DBGrid1.DataSource.DataSet.FieldByName('FIO_DIRECTOR').AsString;
Form3.Edit15.Text:=DBGrid1.DataSource.DataSet.FieldByName('BANK').AsString;
Form3.Edit16.Text:=DBGrid1.DataSource.DataSet.FieldByName('MFO').AsString;
Данный программный код позволяет перенести («подтянуть») данные из таблиц «Договор» и «Клиент» в строковые поля формы регистрации договоров . Изначально переключатели в панели «Регистрация» неактивны. Нажатие на кнопку «Подключить» на вкладке «Договор» делает активным переключатель «Договор», а нажатие на кнопку «Подключить» на вкладке «Счет» делает активным переключатель «Счет», при этом делая переключатель «Договор» снова делает неактивным.
Нажатие на кнопку «Экспортировать в Word» автоматически сформирует нам типичный договор купли-продажи в документе Word. Подтянутые реквизиты в Word будут выделены жирным шрифтом. После экспорта реквизитов договора в Word станет доступна кнопка «Сохранить C:\Договор.doc», которая позволит сохранить сформированный документ на жёстком диске.
При изменении реквизитов в строках редактирования, необходимо чтобы изменения также были отражены в базе данных, то есть необходим обратный процесс передачи данных. Для этого на форме, где у нас расположена база данных добавим следующие кнопки:
- Обновить "Договор" (для отражения изменений реквизитов в таблице «Договор»);
- Обновить "Счет" (для отражения изменений реквизитов в таблице «Счёт»);
- Обновить "Клиент" (для отражения изменений реквизитов в таблице «Клиент»);
Изначально все эти кнопки сделаем недоступными и только при переходе на форму регистрации либо договора, либо счёта у нас будет активироваться соответствующая кнопка.
Например, процедура обработчика событий при нажатии на кнопку Обновить "Договор" будет следующая:
Листинг 2. Процедура обработки события «Обновить договор»
// обновление для таблицы "Договор"
ADOTable4.Edit;
ADOTable4.FieldByName('Predmet').AsString:=Form3.Edit2.Text;
ADOTable4.FieldByName('Data_zaklychenia').AsString:=Form3.Edit3.Text;
ADOTable4.FieldByName('Summa').AsString:=Form3.Edit4.Text;
ADOTable4.FieldByName('Srok_ispolnenia').AsString:=Form3.Edit5.Text;
ADOTable4.FieldByName('Objem_prodag').AsString:=Form3.Edit6.Text;
ADOTable4.Post;
BitBtn2.Enabled:=False;
Form3.Close;
Форма регистрации счетов аналогична форме договоров, однако есть отличие. Поскольку при выдаче счёта на оплату услуг необходимо учитывать такой реквизит как «сумма», то мы дополнительно должны создать в этой форме новые реквизиты:
- Количество // этот реквизит мы вводим
- Цена // этот реквизит мы выбираем из списка
- Сумма // этот реквизит будет рассчитываться как Количество*Цена.
Здесь реквизит «Цена» соответствует полю «Сумма» из таблицы «Договор». Необходимо выбрать из списка соответствующую цену.
При нажатии на кнопку «Экспортировать в Word» помимо описанных выше функций для договора будет создана таблица в Word, в строках которой будут находиться введённые и вычисленные реквизиты.
Следующим этапом является создание формы для выбора определённых записей. Для этого мы создадим пункт меню Данные на форме базы данных, которое будет содержать подменю «Договора», «Счета» и «Клиенты», каждое из которых будет содержать боковое меню «Выбрать» и «Найти».
Пройдя по «маршруту» Данные – Договора – Выбрать на экране появится окно «Список договоров». В этом окне мы разместим панель «Список договоров», внутри которого разместим компонент DBLookupComboBox со страницы Data Controls, компоненты для подключения таблицы «Договор» и две кнопки «Изменить» и «Назад в Базу Данных».
В свойстве компонента DBLookupComboBox ListSource выставим значение DataSource1, а в свойстве KeyField – ID. Этот компонент будет выводить список всех номеров договора, среди которых можно выбрать интересующий. Выбрав договор на экране отобразятся компонент DBGrid1 и кнопки. При этом курсор установится в ту запись поля ID, которая была выбрана из списка.
При нажатии на кнопку «Изменить» данные в строке, помеченной курсором будут переведены в форму регистрации договоров для их редактирования, а затем оттуда их можно перевести в базу, нажав кнопку Обновить "Договор".
При создании поисковой системы на форме расположения базы данных создадим панель «Поиск», которая будет включать в себя переключатели с названиями таблиц, по полям которых можно вести поиск интересующих нас записей. Также в меню Данные каждая таблица содержит подменю «Найти», которая также осуществляет поиск.
Например, мы будем вести поиск из таблицы «Договор» по полю «Предмет договора». Для начала мы создадим соответствующую форму для поиска, которая будет включать компоненты:
- ComboBox1 – для отображения списка полей таблицы;
- Edit1 – Edit6 – для ввода значений;
- Button1 – Button6 – кнопки «Найти»;
- Кнопка «Назад» - для возврата в БД.
Рис.7 Форма «Поиск договоров»
2.7. Контрольный пример реализации проекта и его описание
Физическая организация для базы данных «Максимум» в СУБД Oracle включает следующие таблицы:
Рис. 8. Таблица «Бухгалтер»
Рис. 9. Таблица «Договор»
Рис. 10. Таблица «Клиент»
Рис. 11. Таблица «Менеджер»
Рис. 12. Таблица «ПО»
Рис. 13. Таблица «Программист»
Рис. 14. Таблица «Счет»
Рис. 15. Таблица «Заказ»
После того, как мы создали и заполнили таблицы базы данных в Oracle перейдём к этапу написания запросов на языке SQL.
1) Запрос: «Список ПО с указанием фирм-производителей»
Рис. 16. Запрос «Список ПО с указанием фирм-производителей»
2) Запрос: «Рейтинг программ по объёмам продаж с указанием номера и предмета заказа»
Рис. 17. Запрос «Рейтинг программ по объёмам продаж с указанием номера и предмета заказа»
3) Запрос: «Рейтинг менеджеров, осуществивших продажи за прошедший месяц»
Рис. 18. Запрос «Рейтинг менеджеров, осуществивших продажи за прошедший месяц»
4) Запрос: «Список клиентов, осуществивших заказ в прошлом году»