Не могу заставить работать вычисляемое поле в отчете “Теплоснабжение”.
В вычисляемом поле должна быть обработка с использованием данных из “Атрибуты точки учета”, “Архивы потреблений и интеграторов” и из Параметров.
Если я назначаю вычисляемое поле к определенному элементу данных, то не видно данных из других групп. А если оставляю без группы - не выводится в форме.
Вычисляемое поле Qm2h в прилагаемом шаблоне
Теплоснабжение проба1.lersreport (101 KB)
.
- Создайте атрибут с кодом “ploshad”. Для получения значения атрибута в отчетах используются коды атрибута.
- Создается переменная для хранения данных из узла “Атрибуты точки учета” (строка 22 в примере из вложения).
- В обработчике события BaseReport_DataSourceDemanded считайте значение атрибута (строки 67-69 в примере из вложения).
- В узле “Архивы потреблений и интеграторов” создайте вычисляемое поле calculatedField_Ploshad для получения значения атрибута. Само значение атрибута возвращается в обработчике события “Получить значение” (calculatedField_Ploshad_GetValue строки 122-126 в примере из вложения).
- Для вычисляемого поля Qm2h задайте элемент данных “Архивы потреблений и интеграторов”.
- Отредактируйте выражение для Qm2h. Т.к. вычисляемое поле calculatedField_Ploshad создано в узле “Архивы потреблений и интеграторов”, то оно будет доступно в выражении наряду с другими полями этого узла. Параметры отчета DATE_START и DATE_END доступны в любом узле. В примере из вложения для вычисляемого поля Qm2h задано выражение:
1000000*[].Sum([Q - (?Q) теплопотребление (Гкал)])/( ToDouble(Replace([calculatedField_Ploshad], ',', '.'))*(1+DateDiffHour([Parameters.DATE_START, Parameters.DATE_END])))
Выдается ошибка и в правленном мной отчете, и в вашем
Ошибка возникает, если у точки учета не заданы атрибуты или таблица с атрибутами пустая.
Добавьте в обработчике события BaseReport_DataSourceDemanded проверку.
if (table.Rows.Count == 1 && table.Columns.Contains("ploshad"));
{
this.ploshad = Convert.ToString(table.Rows[0]["ploshad"]);
{
Все заработало, спасибо!