«Таблица закупок» содержит информацию о заменах (табл.4).
Табл.4
MC_ID : Идентификатор
MC_MAT_ID : Идентификатор материала
MC_MZ_ID : Идентификатор замены материала
MC_POST_ID : Идентификатор контрагента
MC_NAME : Наименование контрагента
MC_COUNT : Количество на закупку
MC_COST : Цена
MC_EDIZM : Еденица измерения
MC_KAT_ID : Каталог
Процедура добавления контрагента в таблицу закупок:
CREATE OR REPLACE PROCEDURE "MATERIALS_CONTRAGENT_CREATE" (
in_mc_kat_id IN materials_contragent.mc_kat_id%TYPE, in_mc_mat_id IN materials_contragent.mc_mat_id%TYPE, in_mc_mz_id IN materials_contragent.mc_kat_id%TYPE, in_mc_post_id IN materials_contragent.mc_post_id%TYPE, in_mc_name IN materials_contragent.mc_name%TYPE, in_mc_count IN materials_contragent.mc_kat_id%TYPE, in_mc_cost IN materials_contragent.mc_cost%TYPE, in_mc_edizm IN materials_contragent.mc_edizm%TYPE, out_id OUT materials_contragent.mc_id%TYPE
)
/*добавление записи по материалу к версии расчета*/
IS
BEGIN
SELECT seq_materials_contragent_mc_id.NEXTVAL
INTO out_id
FROM DUAL;
INSERT INTO materials_contragent
(mc_id, mc_mat_id, mc_mz_id, mc_post_id, mc_name,
mc_count, mc_cost, mc_edizm, mc_kat_id
)
VALUES (out_id, in_mc_mat_id, in_mc_mz_id, in_mc_post_id, in_mc_name,
in_mc_count, in_mc_cost, in_mc_edizm, in_mc_kat_id
);
END materials_contragent_create;
Процедура удаления контрагента в таблицу закупок:
CREATE OR REPLACE PROCEDURE "MATERIALS_CONTRAGENT_DELETE" (
in_mc_id IN materials_zamen.mz_id%TYPE
)
/*удаление контрагента */
IS
BEGIN
DELETE FROM materials_contragent
WHERE mc_id = in_mc_id;
END materials_CONTRAGENT_delete;
Разработка модулей
2.5.1. Модуль Mat_ Zamen. pas
Модуль Mat_Zamen.pas, представленный на рис.3, является главным модулем проекта, так как он содержит описание действий происходящих при загрузке программы, а также описание формы MainForm.
На форме расположены три таблицы TDBGridEh. Это таблицы материалов, замен и контрагентов, а также закладки и меню TMenuItem. На форме присутствуют компоненты TСlientDataSet, TdataSource.
Компонент TClientDataSet используется в клиентской части многозвенного распределенного приложения.
Компонент обеспечивает выполнение следующих основных функций:
• получение данных от удаленного сервера и передача ему сделанных изменений с использованием удаленного компонента-провайдера;
• представление набора данных при помощи локального буфера и поддержка основных операций, унаследованных от класса TDataSet;
• объединение записей набора данных при помощи агрегатных функций для получения суммарных данных;
• локальное сохранение набора данных в файле и последующее восстановление набора данных из файла;
• представление набора данных в формате XML [6].
Предком компонента TClientDataSet является класс TDataSet, поэтому TClientDataSet обладает таким же набором функций, что и обычный компонент, инкапсулирующий набор данных. Основное же отличие заключается в том, источник данных для него доступен только через удаленный компонент-провайдер. Это означает, что сохранение изменений и обновление набора данных осуществляется локально, без обращения к источнику данных [7].
Как и обычный компонент, компонент TClientDataSet может использоваться совместно с визуальными компонентами отображения данных. Для этого нужен компонент TDataSource.
На втором этапе разработки приложения баз данных необходимо перенести на форму и настроить компонент TDataSource. Он обеспечивает взаимодействие набора данных с компонентами отображения данных. Чаще всего одному набору данных соответствует один компонент TDataSource, хотя их может быть несколько.
Для настройки свойств компонента необходимо выполнить следующие действия.
1. Связать набор данных и компонент TDataSource. Для этого используется свойство DataSet компонента TDataSource, доступное через Инспектор объектов. Это указатель на экземпляр компонента доступа к данным.
В списке этого свойства в Инспекторе объектов перечислены все доступные компоненты наборов данных.
2. Переименовать компонент. Это не обязательное действие. Тем не менее желательно присваивать компонентам осмысленные имена, соответствующие названиям связанных наборов данных [7].
Компонент меню, представленный на рис. 4, выполняет следущие процедуры:
· Ввод / удаление контрагента;
· Ввод / удаление замены;
· Печать отчета
Рис. 4. Главное меню
Процедуры ввода (TFRep_Mats.N5Click) и удаления (TFRep_Mats.N14Click) контрагентов.
procedure TFRep_Mats.N5Click(Sender: TObject);
begin
IF not assigned(scM4_ContrAgents) then
initscM4_ContrAgents(SharedConnection.ParentConnection);
ContrAgentsGet_Sprav(Self, IM4ContrAgentsDisp(IDispatch(scM4_ContrAgents.AppServer)),
(Screen.DesktopHeight div 2) - (height div 2),
(Screen.DesktopWidth div 2) - (width div 2),
'', '', '',
ContrAgent_Name,
ContrAgent_Code);
if (DBGEh_Mats.Focused = True) and (ContrAgent_Name <> '') Then
Mat_Contr_Add(Application, SharedConnection, Kat_Id, CDS_Mats.FieldByName('MD_MR_ID').AsInteger,
0, 0, ContrAgent_Code, ContrAgent_Name)
else if (DBGEh_Zamen.Focused = True) and (ContrAgent_Name <> '') then
Mat_Contr_Add(Application, SharedConnection, Kat_Id, CDS_Zamen.FieldByName('MZ_MAT_ID').AsInteger,
CDS_Zamen.FieldByName('MZ_ID').AsInteger, 1, ContrAgent_Code, ContrAgent_Name);
Contr_Refresh;
end;
procedure TFRep_Mats.N14Click(Sender: TObject);
begin
V.Mat_Zamen_Contr_Del(CDS_Contr.FieldByName('MC_ID').AsInteger);
Contr_Refresh;
end;
Процедуры ввода и удаления замен:
procedure TFRep_Mats.N13Click(Sender: TObject);
begin
Enter_Zamen(Application, SharedConnection,
Kat_Id,
CDS_Mats.FieldByName('MD_MR_ID').AsInteger,
CDS_Mats.FieldByName('GM_ID').AsInteger,
CDS_Mats.FieldByName('MAT_OKP').AsInteger,
CDS_Mats.FieldByName('MR_NAME').AsString,
CDS_Mats.FieldByName('POTREB').AsString,
CDS_Mats.FieldByName('GM_NAME').AsString);
Zamen_Refresh;
end;
procedure TFRep_Mats.N15Click(Sender: TObject);
begin
V.Mat_Zamen_Delete(CDS_Zamen.FieldByName('mz_id').AsInteger);
Zamen_Refresh;
Contr_Refresh;
end;
Печать отчета
procedure TFRep_Mats.N8Click(Sender: TObject);
begin
Mat_Zamen_Rep(Application, SharedConnection, Kat_Id, 1, Kat_ZCO_NAME, Kat_Name);
end;
2.5.2. Модуль Mat_Zamen_New.pas
На форму модуля Mat_Zamen_New вынесены следующие компоненты: TDBGridEh, TbitBtn, TdataSource, TclientDataSet, Tedit, TradioGroup (рис.5).
Рис.5. Модуль Mat_Zamen_New
TDBGridEh – таблица в которую заносятся данные , TbitBtn – кнопки ввода замены и отмены, TdataSource и TclientDataSet – для соединения с базой данных, Tedit – строки с материалами, TradioGroup – выбор полной или частичной замены.
Процедура выбора типа замены:
rocedure TFNew_Zamen.RGClick(Sender: TObject);
begin
if RG.ItemIndex = 1 then
begin
DBN_OldKol.Enabled := True;
end
else if RG.ItemIndex = 0 then
begin
DBN_OldKol.Enabled := False;
DBN_OldKol.Value := Old_Kol;
end;
Zamen_Type := RG.ItemIndex;
end;
Процедура ввода замены:
procedure TFNew_Zamen.BitBtn1Click(Sender: TObject);
var Old, Max, New : WideString;
begin
Old := FloatToStr(DBN_OldKol.Value);
Max := FloatToStr(Max_Kol);
New := FloatToStr(DBN_NewKol.Value);
V.Mat_Zamen_Create(Kat_Id,
Mat_Id,
CDS_Mats.FieldByName('MATERIAL_ID').AsInteger,
Old,
Max,
New,
Zamen_Type);
Close;end;
2.5.2. Модуль Mat_Zamen_CNTR_Add.pas
На форме (рис. 6) находятся следующие компоненты: Tedit, TDBNumberEditEh, TspeedButton, TclientDataSet, TdataSource, TcomboBox.
Tedit – наименование контрагента, TDBNumberEditEh – количество закупаемого материала и цена, TcomboBox – выпадающее меню выбора едениц измерения, TspeedButton – рабочие кнопки , TclientDataSet и TdataSource – связь с базой данных.
Рис.6. Модуль Mat_Zamen_CNTR_Add
Модуль формирования очета
На форму (Рис.7 ) вынесена таблица, меню и компоненты связи с базой данных.
После заполнения таблицы, выбрав из меню строку «печать отчета» появится окно компонента FastReport (Рис.8). Этот компонент отвечает за печать отчета.
Рис.7. Таблица закупок
Рис.8. Отчет FastReport
3. Технологическая часть
Требования к аппаратному и программному обеспечению
§ Требования к аппаратному обеспечению:
- Процессор Pentium 800 МГц;
- Объем оперативной памяти 128 Мбайт;
- Объем жесткого диска не менее 5 Гбайт;
- Монитор SVGA, клавиатура и манипулятор мышь.
§ Требования к программному обеспечению:
- программа должна работать под управлением операционной системы Microsoft Windows 98/ME/2000/XP.
Установка подсистемы
Вычислительная среда поставляется на диске CD-R, емкостью 700 Мб. Установка производится в несколько этапов:
§ Проверить соответствие оборудования, на которое предполагается произвести установку, минимальным требованиям для работы подсистемы;
§ Вставить компакт-диск с программой в CD-ROM;
§ Скопировать каталог K_T_Base и все его содержимое на жесткий диск, с которого предполагается производить запуск программы, в каталог C:\ K_T_Base;
§ Для удобства запуска создать на рабочем столе операционной системы значок «K_T_Base», ссылающийся на программу C:\ K_T_Base \ K_T_Base.exe, рабочий каталог C:\ K_T_Base;
§ Создать в главном меню элемент, ссылающийся на программу C:\ K_T_Base \ K_T_Base.exe;
§ Произвести запуск программы;
§ Установка завершена.
Руководство администратора
Для функционирования подсистемы необходимо наличие специального ПО:
1. На сервере баз данных необходимо установить серверную часть Oracle.
2. Для сервера приложений необходимо установить: клиентскую часть Oracle – для связи с сервером Oracle, Borland Socket Server – для прослушивания порта, к которому будет происходить подключение и Borland Database Engine – для соединения сервера приложений с клиентской частью Oracle.
3. Также необходимо зарегистрировать сервер приложений, запустив его.
4. На клиентских машинах нет необходимости в установке дополнительного программного обеспечения, кроме самой подсистемы.
5. На клиентской машине необходимо однократно настроить имя сервера приложений и указать порт, к которому будет происходить подключение.
Порт должен быть точно таким же, какой указан Borland Socket Server.
Для успешного администрирования базы данных, также необходимо обладать знаниями навыками по настройке и администрированию сервера Oracle.
7. При запуске сервера приложений на панели задач появляется иконка сервера приложений. Когда сервер закрывается, иконка тоже исчезает.
Руководство оператора
Запуск подсистемы
После запуска операционной системы Microsoft Windows 98/ME/2000/XP запуск программы можно провести несколькими способами:
§ используя кнопку «Пуск» («Start» в англоязычной версии Windows);
§ используя значок «Расчет трудоемкости», расположенный на рабочем столе Windows;
§ используя команду выполнить с аргументом «C:\K_T_Base\ K_T_Base.exe»;
§ используя проводник Windows или аналогичную программу.
Для запуска первым способом необходимо нажать кнопку «Пуск» и выбрать в меню пункт «Программы» («Program» в англоязычной версии Windows). После чего в подменю выбрать строку «K_T_Base» и осуществить таким образом запуск программы.
Для запуска вторым способом необходимо дважды щелкнуть левой клавишей мыши на значок «K_T_Base», расположенный на рабочем столе.
Для запуска третьим способом необходимо нажать кнопку «Пуск» и выбрать в меню пункт «Выполнить». Далее ввести в окно текст «C:\K_T_Base\K_T_Base.exe» с клавиатуры или воспользовавшись возможностью обзора, нажать кнопку «Ok».
Для запуска четвертым способом необходимо запустить проводник, выбрать каталог «C:\K_T_Base \», в нем выбрать программу «K_T_Base.exe».
Начало работы
Разработанная подсистема выполняет следующие функции:
§ Расчет потребностей материалов
§ Добавление необходимых замен
§ Удаление необходимых замен
§ Добавление контрагентов
§ Удаление контрагентов
§ Формирование таблицы закупок
§ Вывод отчета
На рис. 9. показано окно подсистемы, с которого пользователь начинает работу.
Рис 9. Проверка доступа
В этом окне пользователю необходимо ввести имя пользователя и пароль. Доступ к серверу баз данных открывает администратор, пароль и имя пользователя вводятся латинскими буквами. Пароль не отоброжается, в случае необходимости просмотра пароля надо поставить галочку в ячейке «Показать пароль». После ввода данных надо нажать на кнопку «ОК», в результате, если данные верны, открывается сама программа (Рис.10).
Рис.10. Окно системы К_Т_Base.
В окне выбирается каталог, для которого будет производиться расчет потребности. В строке меню, при нажатии кнопки «Отчеты», появляется выпадающее меню в котором необходимо выбрать строку «Закупки материалов» (Рис.11).
Рис. 10. Меню «Отчеты».
Новый расчет
Для создания нового расчета пользователю необходимо выбрать будет ли расчет производиться на выбранный каталог или каталог будет формироваться. Данные параметры задаются в окне, представленном на рис. 11.
Рис.11. Окно выбора каталога
После выбора каталога следует нажать кнопку «Данные», в результате будет произведен расчет потребности, и будет сформирована форма с тремя взаимосвязанными таблицами. В таблице «Список материалов» находятся материалы, их код ОКП, количество и единица измерения. В таблице «Список замен» находятся заменяемые материалы, их код ОКП, количество заменяемого и нового материала. В таблице «Список контрагентов» находятся контрагенты, количество материала необходимого к закупке, его единица измерения и цена (рис. 12.). Все три таблицы взаимосвязаны: каждому материалу соответствует своя замена и контрагент, каждой замене соответствует свой контрагент.
Рис. 12. Основное окно программы
Чтобы начать ввод замен и контрагентов, необходимо в главном меню выбрать пункт «Действие», в результате появится выпадающее меню (рис.13), в котором пользователь выбирает необходимое действие.
Рис. 13. Меню «Действие».
Ввод замен
Ввод замен производится при выборе строки меню «Ввести замену», в результате появляется новое окно, отраженное на рис.14. В этом окне отображается к какой группе относится материал, тип замены (полная или частичная), старый материал и его количество, новый материал и его количество. Новый материал выбирается из таблицы, его количество вводится вручную. Если замена частичная, то количество замены, должно быть меньше, иначе появится окно с ошибкой замены. Материал можно заменять на несколько других, но общее количество замены не должно превышать рассчитанное по норме. Это производится аналогично полной замене. Когда все замены введены, надо нажать кнопку «Ввести замену», если замены не требуется – нажать «Отмена».
Рис. 14. Ввод замен
Ввод контрагентов
После того, как введены замены, можно начать ввод контрагентов. Контрагенты вводятся как для материала, так и для замены. Для этого надо выбрать в главном меню строку «Ввести контрагента» и появится окно, представленное на рис. 15., в нем выбирается контрагент. Если найден нужный контрагент, нажать кнопку «Выбрать», в противном случае «Отмена».
Рис. 15. Справочник контрагентов
После ввода контрагента появляется окно «Добавление контрагентов», в него заносим количество материала на закупку, предполагаемую цену и единицу измерения. Чтобы очистить поля данных, надо нажать кнопку «Очистить». Если данные не требуется изменять, следует нажать кнопку «Добавить в таблицу». Если требуется изменить контрагента – нажать «Отмена» (Рис. 16).
Рис. 16. Добавление контрагентов
Далее, для формирования таблицы, отображающей все взаимосвязи материалов и контрагентов, необходимо в главном меню выбрать строку «Печать отчета», затем в выпадающем меню «На текущий каталог» или «На все каталоги». После нажатия на один из пунктов меню, появится форма с таблицей, отражающей материал, контрагента, количество, цену, еденицу измерения, и признак выбора.
Печать отчета
Печать отчета возможна после выбора материалов необходимых к закупке. Материалы выбираются в столбце признак выбора. Признаком вбора является галочка в соответствующей строке. Выбрав в меню «Печать отчета», на экране появляется отчет (Рис.18.)
Удаление подсистемы
Для удаления с жесткого диска подсистемы необходимо произвести следующие операции:
§ Удалить с жесткого диска каталог C:\K_T_Base и все его содержимое;
§ Удалить с рабочего стола операционной системы значок «K_T_Base»;
§ Удалить из главного меню элемент «K_T_Base»
4. Организационно-экономическая часть
Дата: 2019-07-30, просмотров: 220.