В примерах отчетных форм написано, что Значения из строки Итого можно получить в обработчике события OnSummaryCalculated (Вычисление сводки завершено).
Далее полученная сводка записывается в переменную и выводится на экран в другой ячейке обработчиком PrintOnPage (Печать на странице).
Мне нужно сделать тоже - самое, только полученную в переменной сводку записать в вычисляемое поле и использовать в дальнейшем в других вычисляемых полях. Попытался получить данное значение через скрипт вычисляемого поля - GetValue, но ничего не вышло. Видимо сначала срабатывает скрипт вычисляемого поля, а затем уже скрипт OnSummaryCalculated.
Подскажите как это можно сделать, и можно ли как то отследить последовательность работы скриптов в отчетах?
Последовательность поднятия событий:
- Запрос источника данных ( DataSourceDemanded )
- Перед печатью ( BeforePrint )
- После печати ( AfterPrint )
- PrintOnPage ( Печать на странице)
- Все остальные события
Более подробное описание последовательности событий можно посмотреть здесь.
В вычисляемом поле итоговые значения можно получить с помощью агрегатных функций.
Если нужны итоговые значения из разных узлов, то вычисляемое поле надо создавать в их узле-родителе.
Спасибо, ссылка немного помогла.
Решил получить и просуммировать Q потр в методе DataSourceDemanded. Нашел в примерах два варианта:
- Через обращение к “таблице данных отчета” и затем поиска по этой таблице - var DataSet = (DataSet) report.DataSource;
- Через работу с методом binded_value = DataSourceUtils.GetBindedValue(label_…);, где в label_… “притянуто” Qпотребл.
Помогите советом, как проще сделать. Дальше я эту сумму планирую получить через “GetValue” в вычисляемом поле и закончить со скриптами :sh_ok:
На мой взгляд лучше создать переменную, значение которой сформировать в событии DataSourceDemanded.
Потом использовать эту переменную для получения значения вычисляемого поля через скрипт GetValue.
Формирование значения переменной зависит от типа отчета и того, что понимается под Qпотр.
Я так и хочу сделать. Не получается отфильтровать данные в “DataTable”. Отчет типа “ведомость параметров для объекта учета”.
Подскажите, как правильно выбрать нужные строки с потреблением энергии например:
//Получаю таблицу потребления
var PotrebTable = dataSet.Tables["Теплоснабжение_Точка учета1 (Потребление)"];
if( PotrebTable != null);
{
//Нужно выбрать строку с потреблением энергии dQ
var rows = PotrebTable .Select("Q - теплопотребление" ????);
//Складываем потребление за период
for(int i = 0; i < rows.Length ; i++);
{
// складываем rows[i]["Q"]
}
}
Пока писал, сам догадался. Все тема закрыта.