Разработка программного обеспечения для автоматизации процесса закупок необходимых материалов для ООО "Звезда Востока и Японии"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

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>