Table of Contents

Пересчет на произвольный отчетный период ранее рассчитанных данных за текущий и предыдущий месяц

[!IMPORTANT]

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

Для ранее рассчитанных значений текущий месяц определялся по дате формирования отчета.

Для пересчета на новый отчетный период ранее рассчитанных значений полей хранящихся в узле 'Потребления до конца текущего и предыдущего месяца рассчитанные по среднесуточным значениям' создайте для требуемых параметров потребления вычисляемые поля в узле 'Рассчитанные значения'.

Предварительно надо создать вычисляемое поле lastDateOfCurrentMonth для получения даты последнего дня месяца, которому принадлежит дата окончания отчетного периода.

Скрипт получения значения для lastDateOfCurrentMonth:

private void lastDateOfCurrentMonth_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e)
{
XtraReport report = (XtraReport)e.Report;
DateTime endDate = (DateTime)report.Parameters["DATE_END"].Value;
e.Value = new DateTime(endDate.Year, endDate.Month, DateTime.DaysInMonth (endDate.Year, endDate.Month));
}

Для пересчета полей с префиксом Current, например c расходом воды в подающей магистрали, создайте вычисляемое поле с выражением:

(DateDiffDay(?DATE_END, [lastDateOfCurrentMonth]) + 1) * [Потребления до конца текущего и предыдущего месяца рассчитанные по среднесуточным значениям].[CurrentM1 - рассчитанный в текущем месяце расход воды (тонны) в подающей магистрали] / [Потребления до конца текущего и предыдущего месяца рассчитанные по среднесуточным значениям].[CurrentDays - количество дней, за которые потребления текущего месяца рассчитывались по средним значениям]

Для пересчета полей с префиксом Previous, например c расходом воды в подающей магистрали, создайте вычисляемое поле с выражением:

(DateDiffDay(?DATE_END, [lastDateOfCurrentMonth]) + 1) * [Потребления до конца текущего и предыдущего месяца рассчитанные по среднесуточным значениям].[PreviousM1 - рассчитанный в предыдущем месяце расход воды (тонны) в подающей магистрали] / [Потребления до конца текущего и предыдущего месяца рассчитанные по среднесуточным значениям].[PreviousDays - количество дней, за которые потребления предыдущего месяца рассчитывались по средним значениям]

В вычисляемых полях значение DATE_END - это дата окончания отчетного периода, которая берется из узла Parameters.