Добрый день. Есть отчет по балансовой группе. В нем нужно посчитать разницу двух ячеек, которые сами уже являются вычислением сводки “сумма по отчету”. Затем нужно еще посчитать процент. Я обозначил через X и Y ячейки и что нужно сделать.
В редакторе это выглядит вот так.
С помощью скриптов не получилось просто получить значения в CellX_BeforePrint и CellY_BeforePrint.
Просуммировать данные в запросе источника BaseReport_DataSourceDemanded, просканировав таблицы не вышло. Все имена row.Table.Columns
я получил, проблема не в написании названий.
Если обычное потребление посчиталось
double heatQSumGroup = 0;
if (dataSet.Tables.Contains(“BalanceGroupHeatChildParametersCollection”))
{
var table = dataSet.Tables[“BalanceGroupHeatChildParametersCollection”];
foreach (DataRow row in table.Rows)*
if (row[“HeatQ”] != DBNull.Value && row[“HeatQ”] != null)*
heatQSumGroup += Convert.ToDouble(row[“HeatQ”]);*
}
То договорное почему то нет, как будто оно не заполено.
HeatQ_contract
double heatQSumGroup_calc = 0;*
if (dataSet.Tables.Contains(“BalanceGroupHeatChildParametersCollection”))
{
var table = dataSet.Tables[“BalanceGroupHeatChildParametersCollection”];
foreach (DataRow row in table.Rows)*
if (row[“HeatQ_contract”] != DBNull.Value && row[“HeatQ_contract”] != null)
heatQSumGroup_calc += Convert.ToDouble(row[“HeatQ_contract”]);
}
Через DataSourceUtils.GetBindedValue() данные тоже получить не удалось, не понятно кстати почему( такое поведение замечено при наличии вложенных отчетов )
Отчетную форму прикладываю.
Баланс по балансовой группе Отопление cучетом договорной нагрузки.zip (5,4 КБ)

