Создание вычисляемого поля с данными из разных таблиц одного узла
В этой статье рассматривается как создать вычисляемое поле для отображения суммарного потребления тепла на объекте учета, в который входят две точки учета системы теплоснабжения и одна точка учета ГВС.
ШАГ 1. Создайте отчетную форму для объекта учета с системами теплоснабжения и ГВС. Для системы теплоснабжения задайте две точки учета, для системы ГВС - одну. В параметрах отметьте только теплоту.
ШАГ 2 Для теплоснабжения удалите колонки Q1 и Q2.
Добавьте колонку для отображения суммарного потребления тепла в системах теплоснабжения и ГВС. Измените заголовки колонок.
Задайте ячейкам секции Detail следующие имена:
- tcHeat1 - ячейка для теплопотребления первой точки учета системы теплоснабжения,
- tcHeat2 - ячейка для теплопотребления второй точки учета системы теплоснабжения,
- tcHotWater - ячейка для теплопотребления первой точки учета системы ГВС,
- tcHeatAndHotWater - ячейка для суммарного потребления по теплоснабжению и ГВС.
Для этого поменяйте значения свойства (Имя) в окне свойств.
ШАГ 3. На панели Список полей выберите Архивы потреблений и интеграторов, вызовите контекстное меню и 4 раза выберите пункт Добавить вычисляемое поле. Будут автоматически добавлены поля с наименованиям calculatedField1, calculatedField2, calculatedField3, calculatedField4.
ШАГ 4. Для calculatedField1 поменяйте Имя поля на Q_1, тип поля на Двойной точности.
В пункт Выражение скопируйте: IsNull([Потребление].[Теплоснабжение Точка учета1 (Потребление)].[Q], 0)
Для calculatedField2 поменяйте Имя поля на Q_2, тип поля на Двойной точности.
В пункт Выражение скопируйте: IsNull([Потребление].[Теплоснабжение Точка учета2 (Потребление)].[Q], 0)
Для calculatedField3 поменяйте Имя поля на Q_hotwater, тип поля на Двойной точности.
В пункт Выражение скопируйте: IsNull([Потребление].[ГВС Точка учета1 (Потребление)].[Q], 0)
Важно
Вычисляемые поля Q_1, Q_1 и Q_hotwater нужны для возможности использования объектов учета, у которых в системе теплоснабжения меньше двух точек учета и/или нет точек для системы ГВС.
Для calculatedField4 поменяйте Имя поля на calcHeatAndHotWater, тип поля на Двойной точности.
В пункт Выражение скопируйте: IsNull([Q_1], 0) + IsNull([Q_2], 0) + IsNull([Q_hotwater], 0)
Важно
Если вместо вычисляемых полей в функции IsNull()
сразу использовать ссылки на поля источника данных, то при наличии ссылки на поле несуществующей точки учета, будет возвращаться значение null, независимо от наличия данных в имеющихся точках учета.
ШАГ 5. Свяжите колонку с суммарным потреблением тепла c созданным вычисляемым полем calcHeatAndHotWater. Для этого щелкните на нем левой кнопкой мыши и, не отпуская кнопки, перетащите поле на соответствующие ячейки в секции Detail и ReportFooter.
В ячейках строки Итого задайте расчет сумм.
Для сохранения созданной отчетной формы нажмите кнопку .
Для выхода из редактора отчетов нажмите кнопку .
ШАГ 6. Кнопка Просмотр на панели представления позволяет увидеть как будет выглядеть готовый отчет. Если нужно что-либо изменить, кнопка Дизайнер на панели представления позволяет вернуться к режиму редактирования.
Чтобы проверить вид отчета с данными, нажмите кнопку Сформировать, выберите объект учета, задайте период, тип данных и нажмите кнопку ОК.
Пример сформированного отчета: