назад | содержание | вперед

Вычисляемые поля в отчете

К сожалению, невозможно добавить вычисляемые поля в отчет простым составлением выражении из имеющихся полей. Об их создании необходимо позаботиться еще на стадии построения окружения данных отчета и иметь хотя бы общее представление о выражениях языка SQL для выборки данных из таблиц базы данных.

Чтобы работать с вычисляемыми полями, необходимо создать их в окружении данных отчета. Покажем это на конкретном примере. Добавим в созданный нами отчет CustomerOrderReport поле, вычисляющее стоимость заказа по следующей формуле: Сумма = количвство*Цена.

1. Откройте окно проектирования окружения данных отчета.

2. Установите курсор на источник данных OrderDetailcommand, нажмите правую кнопку мыши и выберите команду Properties (Свойства) контекстного меню. Откроется окно настройки источника данных.

3. Поскольку в таблице OrdSaled отсутствует необходимое нам вычисляемое поле, его нужно создать с помощью выборки данных из этой таблицы. В окне настройки источника данных установите опцию SQL Statement (Выражение SQL) и введите в поле текста выражение для выборки полей таблицы OrdSaled и вычисляемого поля:

Select icdorder, icdgoods, nquant, nunitprice, (nquant * nunitprice) As RowSummary from OrdSaled

4. Нажмите кнопку Применить. Если этого не выполнить, то не удастся восстановить связи с родительской и дочерней таблицами, разрушенные при переходе в режим выборки.

5. Перейдите на вкладку Relation (Связь) и кнопкой Add (Добавить) восстановите связь с родительским объектом.

6. Выйдите из окна настройки, нажав кнопку ОК.

7. Для восстановления связи с дочерним объектом выберите объект orderGoods Command и откройте окно Properties для настройки. На вкладке Relation восстановите связь и нажмите кнопку ОК.

Созданное таким образом вычисляемое поле RowSummary может участвовать в отчете так же, как и все остальные поля. Доработайте проектируемый отчет CustomerOrderReport.

Запустите приложение и выведите отчет в окно просмотра, нажав кнопку Заказы.

Осталось добавить в отчет итоговую сумму по заказу. Это можно сделать с помощью функционального поля отчета.

 

назад | содержание | вперед