Далее создаем вычисляемое поле summa

Для этогов структуре (Structure) -> Storage -> Fields -> щелкнем правой кнопкой мыши и выберем New field…. и делаем аналогично предыдущему …

В поле Name: пишем summa;

в поле Type: выбираем Float;

выбираем поле Calculated;

и жмем ОК

В инспекторе объектов для созданного поля свойство DisplyLabel-> Сумма., DisplyWidth->10, DisplayFormat->.## .

Свяжем таблицуtable_storageс таблицей table_prihodвDatamodule (dm)для этого выбираем компонент table_storageи в инспекторе объектов свойство MasterSource -> dm.prihod, MasterFields->…

и в открывшемся окне выбираем в левом окнеid_prihodа в правом окнеidнажимаемAdd.

В окнеJoinedFieldsдолжна появиться связь

Далее создаем вычисляемое поле summa - student2.ru

Нажимаем ОК и связь между таблицами установлена.


Для table_storage устанавливаем свойство Active-> True;

для ADOQuery1 в инспекторе объектов свойство Name записываем ADOQuery_summa,

Connection устанавливаем -> form_general.ADOConnection1;

DataSource-> dm.prihod;

SQL (TString) -> в открывшемся окне вводим следующий запрос

SELECT storage.id_prihod, Sum([storage].[quantity]*[storage].[price]) AS [sum] FROM storage GROUP BY storage.id_prihod HAVING (((storage.id_prihod)=:id));


далее выбираем свойство Parameters((TParameters)

Далее создаем вычисляемое поле summa - student2.ru

Далее создаем вычисляемое поле summa - student2.ru

Создаем новый параметр Name->id

Value->Type->Integer;

Выбираем ADOQuery_summa и в структуре (Structure) -> ADOQuery_summa -> Fields -> щелкнем правой кнопкой мыши и выберем Add all fields.

Далее создаем вычисляемое поле summa - student2.ru

Из вкладки Data Accessпомещаем на форму три компонента TDataSource.


для DataSource1в инспекторе объектов свойство Nameзаписываем summa,

DataSet-> ADOQuery_summa;


для DataSource2в инспекторе объектов свойство Nameзаписываем postav_ik,

DataSet-> Form_general.table_postav_ik;


для DataSource3в инспекторе объектов свойство Nameзаписываем storage,

DataSet-> table_storage;

Из вкладки Data Controls помещаем на форму компоненты TDBLookupComboBox , TDBGrid и TDBEdit.


для DBGrid1 в инспекторе объектов свойствоDataSource-> storage,а свойство Options->dgRowSelect->True.


дляDBEdit1в Name-> DBEdit_summ, DataSource->summa, DataField->sum, ReadOnly->True.


для DBLookupComboBox1 в инспекторе объектов свойство Nameзаписываем DBLookup_postav_ik, ListSource->postav_ik, ListField->postav_ik_name, KeyField->id, DataSource->dm.prihod, DataField->id_postav_ik.

Вопросы для контроля

1. Для чего нужен компонент TDBNavigator

2. Как обозначается Указатель текущей записи перемещается к первой записи файла данных?

3. Как обозначается Указатель текущей записи перемещается к предыдущей записи файла данных?

4. Как обозначается Указатель текущей записи перемещается к следующей записи файла данных?

5. Как обозначается Указатель текущей записи перемещается к последней записи файла данных?

6. Что позволяет свойство VisibleButtons?

Литература

1. Фаронов В.В. Программирование на языке высокого уровня: Учебник для вузов. -СПб.: Питер, 2003.

2. Бобровский С.И. Delphi 7. Учебный курс. - СПб.: Питер, 2005.

3. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Visual Basic, C++ Builder, Delphi. - СПб.: БХВ - Петербург, 2005.

Наши рекомендации