Разработка программного обеспечения для автоматизации процесса закупок необходимых материалов для ООО "Звезда Востока и Японии"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
p>
)
/*удаление замены материала*/FROM materials_zamenmz_id = in_mz_id;materials_zamen_delete;
Структура таблицы закупок
Таблица закупок содержит информацию о заменах
Таблица 5.3
Таблица Закупки
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" (_mc_kat_id IN materials_contragent.mc_kat_id%TYPE, in_mc_mat_id IN _contragent.mc_mat_id%TYPE, in_mc_mz_id IN _contragent.mc_kat_id%TYPE, in_mc_post_id IN _contragent.mc_post_id%TYPE, in_mc_name IN _contragent.mc_name%TYPE, in_mc_count IN _contragent.mc_kat_id%TYPE, in_mc_cost IN _contragent.mc_cost%TYPE, in_mc_edizm IN _contragent.mc_edizm%TYPE, out_id OUT _contragent.mc_id%TYPE
)
/*добавление записи по материалу к версии расчета*/
ISseq_materials_contragent_mc_id.NEXTVALout_idDUAL;INTO materials_contragent
(mc_id, mc_mat_id, mc_mz_id, mc_post_id, mc_name,_count, mc_cost, mc_edizm, mc_kat_id
)(out_id, in_mc_mat_id, in_mc_mz_id, in_mc_post_id, _mc_name,_mc_count, in_mc_cost, in_mc_edizm, in_mc_kat_id
);
END materials_contragent_create;
Процедура удаления контрагента в таблицу закупок:
CREATE OR REPLACE PROCEDURE
"MATERIALS_CONTRAGENT_DELETE" (_mc_id IN materials_zamen.mz_id%TYPE
)
/*удаление контрагента*/FROM materials_contragentmc_id = in_mc_id;materials_CONTRAGENT_delete;
5.1.6 Модуль Mat_Zamen.pas
Модуль Mat_Zamen.pas, является главным модулем проекта, так как он содержит описание действий происходящих при загрузке программы, а также описание формы MainForm.
На форме расположены три таблицы TDBGridEh. Это таблицы материалов, замен и контрагентов, а также закладки и меню TMenuItem. На форме присутствуют компоненты TСlientDataSet, TdataSource.
Компонент TClientDataSet используется в клиентской части многозвенного распределенного приложения.
Компонент обеспечивает выполнение следующих основных функций:
получение данных от удаленного сервера и передача ему сделанных изменений с использованием удаленного компонента-провайдера;
представление набора данных при помощи локального буфера и поддержка основных операций, унаследованных от класса TDataSet;
объединение записей набора данных при помощи агрегатных функций для получения суммарных данных;
локальное сохранение набора данных в файле и последующее восстановление набора данных из файла;
представление набора данных в формате XML [6].
Предком компонента TClientDataSet является класс TDataSet, поэтому TClientDataSet обладает таким же набором функций, что и обычный компонент, инкапсулирующий набор данных. Основное же отличие заключается в том, источник данных для него доступен только через удаленный компонент-провайдер. Это означает, что сохранение изменений и обновление набора данных осуществляется локально, без обращения к источнику данных [7].
Как и обычный компонент, компонент TClientDataSet может использоваться совместно с визуальными компонентами отображения данных. Для этого нужен компонент TDataSource.
На втором этапе разработки приложения баз данных необходимо перенести на форму и настроить компонент TDataSource. Он обеспечивает взаимодействие набора данных с компонентами отображения данных. Чаще всего одному набору данных соответствует один компонент TDataSource, хотя их может быть несколько.
Для настройки свойств компонента необходимо выполнить следующие действия.
. Связать набор данных и компонент TDataSource. Для этого используется свойство DataSet компонента TDataSource, доступное через Инспектор объектов. Это указатель на экземпляр компонента доступа к данным.
В списке этого свойства в Инспекторе объектов перечислены все доступные компоненты наборов данных.
. Переименовать компонент. Это не обязательное действие. Тем не менее желательно присваивать компонентам осмысленные имена, соответствующие названиям связанных наборов данных [7].
Компонент меню, представленный на рисунке 5.1, выполняет следущие процедуры:
Ввод / удаление контрагента;
Ввод / удаление замены;
Печать отчета
Рисунок 5.1 - Главное меню
Процедуры ввода (TFRep_Mats.N5Click) и удаления (TFRep_Mats.N14Click) контрагентов
procedure TFRep_Mats.N5Click(Sender: TObject);not assigned(scM4_ContrAgents) then_ContrAgents(SharedConnection.ParentConnection);_Sprav(Self, ContrAgentsDisp(IDispatch(scM4_ContrAgents.AppServer)),
(Screen.DesktopHeight div 2) - (height div 2),
(Screen.DesktopWidth div 2) - (width div 2),
)Then_Contr_Add(Application,SharedConnection,Kat_Id,_Mats.FieldByName(MD_MR_ID).AsInteger,">, , ,_Name,_Code);(DBGEh_Mats.Focused = True) and (ContrAgent_Name <> ) Then_Contr_Add(Application, SharedConnection, Kat_Id, _Mats.FieldByName(MD_MR_ID).AsInteger,
)then_Contr_Add(Application,SharedConnection,Kat_Id,_Zamen.FieldByName(MZ_MAT_ID).AsInteger,_Zamen.FieldByName(MZ_ID).AsInteger,1,ContrAgent_Code,_Name);_Refresh;;TFRep_Mats.N14Click(Sender:TObject);.Mat_Zamen_Contr_Del(CDS_Contr.FieldByName(MC_ID).AsInteger);">, 0, ContrAgent_Code, ContrAgent_Name)if (DBGEh_Zamen.Focused = True) and (ContrAgent_Name <> ) then_Contr_Add(Application, SharedConnection, Kat_Id, _Zamen.FieldByName(MZ_MAT_ID).AsInteger,_Zamen.FieldByName(MZ_ID).AsInteger, 1, ContrAgent_Code, _Name);_Refresh;;TFRep_Mats.N14Click(Sender: TObject);.Mat_Zamen_Contr_Del(CDS_Contr.FieldByName(MC_ID).AsInteger);
Contr_Refresh;;
Процедуры ввода и удаления замен:
procedure TFRep_Mats.N13Click(Sender: TObject);_Zamen(Application, SharedConnection,_Id,_Mats.FieldByName(MD_MR_ID).AsInteger,_Mats.FieldByName(GM_ID).AsInteger,_Mats.FieldByName(MAT_OKP).AsInteger,_Mats.FieldByName(MR_NAME).AsString,_Mats.FieldByName(POTREB).AsString,_Mats.FieldByName(GM_NAME).AsString);_Refresh;;TFRep_Mats.N15Click(Sender: TObject);.Mat_Zamen_Delete(CDS_Zamen.FieldByName(mz_id).AsInteger);_Refresh;_Refresh;;
Печать отчетаTFRep_Mats.N8Click(Sender: TObject);_Zamen_Rep(Application, SharedConnection, Kat_Id, 1, _ZCO_NAME, Kat_Name);;
Модуль Mat_Zamen_New.pas
На форму модуля Mat_Zamen_New вынесены следующие компоненты:
TDBGridEh, TbitBtn, TdataSource, TclientDataSet, Tedit, TradioGroup
рисунок 5.2
Рисунок 5.2 - Модуль Mat_Zamen_New
TDBGridEh - та?/p>