2.5. Разработка модулей

 

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;

 


Информация о работе «Автоматизация предприятия»
Раздел: Информатика, программирование
Количество знаков с пробелами: 111629
Количество таблиц: 3
Количество изображений: 21

Похожие работы

Скачать
65531
2
1

... этот путь сейчас является базовым в оптимизации административно-управленческой деятельности и автоматизации прогрессивных производств. 1.2 Уровень развития ИТ в российском легпроме: оценка ситуации По оценкам исследователей, средний уровень развития информационных технологий на предприятиях легкой промышленности классификации CobiT соответствует второй модели зрелости («регулярной»). Это ...

Скачать
568458
20
78

... для реализации системы бюджетирования Консультационной группы "Воронов и Максимов". Статья о проблемах выбора системы бюджетирования - в проекте "УПРАВЛЕНИЕ 3000". Бюджетный автомат Если вы решитесь на автоматизацию системы бюджетирования компании, перед вами сразу встанут вопросы: что выбрать, сколько платить, как внедрять. Примеряйте! О ЧЕМ РЕЧЬ В “Капитале” на стр. 44, 45 мы рассказали ...

Скачать
73825
0
0

... информацию за предыдущие периоды, иначе отчет нарастающим итогом за год придется тоже делать на бумаге. Вот в чем состоит болезненность срыва сроков автоматизации. Расценки и порядок определения стоимости услуг по автоматизации бухгалтерского и управленческого учета. Порядок определения стоимости услуг по автоматизации строится на двух принципах: 1. Объем работ по автоматизации того или иного ...

Скачать
64577
0
0

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

0 комментариев


Наверх