Как создать вычисляемое поле с данными из разных таблиц одного узла

Top  Previous  Next

В этой статье рассматривается порядок создания и использования вычисляемого поля для отображения суммарного потребления тепла на объекте учета, в который входят две точки учета системы отопления и одна точка учета ГВС.

Шаг 1. Создайте отчет для объекта учета с системой теплоснабжения и ГВС. Для системы теплоснабжения задайте две точки учета, для системы ГВС - одну. В отчете оставьте колонки только с потреблением тепла по каждой точке учета и колонку с датой. Добавьте колонку для отображения суммарного потребления тепла в системе теплоснабжения и ГВС. Задайте ячейкам секции Detail следующие имена:

tcHeat1 - ячейка для теплопотребления первой точки учета системы теплоснабжения,

tcHeat2 - ячейка для теплопотребления второй точки учета системы теплоснабжения,

tcHotWater - ячейка для теплопотребления первой точки учета системы ГВС.

Для этого поменяйте значения свойства (Имя) в окне свойств. Используйте латинский шрифт.

ExampleCalculatedFields_0

 

Шаг 2. На панели Список полей выберите Архивы потреблений и интеграторов и, щелкнув на нем правой кнопкой мыши, выберите в контекстном меню пункт Добавить вычисляемое поле.

ExampleCalcField_17

Будет автоматически добавлено поле с наименование calculatedField1.

Шаг 3. Щелкните на наименовании созданного поля правой кнопкой мыши и в контекстном меню выберите пункт Редактировать вычисляемые поля...

ExampleCalcField_18

Шаг 4. Поменяйте Имя поля на calcHeatAndHotWater, тип поля на Двойной точности.

Выберите пункт Выражение вычисляемого поля calcHeatAndHotWater и скопируйте выражение:

Iif(IsNull([Архив потреблений.Теплоснабжение 1.Q - (∆Q) теплопотребление (Гкал)]), 0, [Архив потреблений.Теплоснабжение 1.Q - (∆Q) теплопотребление (Гкал)]) + 

Iif(IsNull([Архив потреблений.Теплоснабжение 2.Q - (∆Q) теплопотребление (Гкал)]),  0, [Архив потреблений.Теплоснабжение 2.Q - (∆Q) теплопотребление (Гкал)]) + 

Iif(IsNull([Архив потреблений.ГВС 1.Q - (∆Q) теплопотребление (Гкал)]),  0, [Архив потреблений.ГВС 1.Q - (∆Q) теплопотребление (Гкал)])

 

или постройте это выражение с помощью редактора формул. Здесь используются функции Iif() и IsNull() из списка функций редактора формул и поля с теплопотреблением для соответствующих точек учета для проверки наличия соответствующих данных.

Шаг 5. Проверьте правильность ввода, нажав кнопку Просмотр. Перейдите в режим редактирования отчетной формы, нажав кнопку Дизайнер. Свяжите колонку с суммарным потреблением тепла c созданным вычисляемым полем calcHeatAndHotWater. Для этого щелкните на нем левой кнопкой мыши и, не отпуская кнопки, перетащите поле на ячейки в секции Detal и ReportFooter.

ExampleCalcField_24

 

Значения из строки Итого можно получить в обработчике события OnSummaryCalculated (Вычисление сводки завершено).

В примере значение суммы потребления тепла в системе теплоснабжения и ГВС записывается в переменную sumHeatAndHotWater.

private double sumHeatAndHotWater = 0;

private void tcSumHeatAndHotWater_SummaryCalculated(object sender, DevExpress.XtraReports.UI.TextFormatEventArgs e) 

{

 if (e.Value != null)

 {

         sumHeatAndHotWater = Convert.ToDouble(e.Value);

 }

}

 

Для использования значения сохраненного в переменной sumHeatAndHotWater надо использовать обработчик события PrintOnPage (Печать на странице). Например:

private void result_PrintOnPage(object sender, DevExpress.XtraReports.UI.PrintOnPageEventArgs e) 

{

 result.Text = String.Format("{0:F5}", sumHeatAndHotWater);

}

Шаг 6. Сохраните отчет, нажав кнопку icon_save на панели инструментов редактора.

Если сформировать отчет, то он будет иметь следующий вид.

ExampleCalcField_25

chapterup Наверх