Содержание:


Пустые строки в отчете

Вопрос:

Подскажите, как избавиться от пустых строк в отчете, который создан в Редакторе отчетов.


Ответ:

Отчеты, создаваемые в модуле "Редактор отчетов", часто имеют пустые строки наряду со строками, отображающими полезную информацию.

Избавиться от пустых строк несложно.

Но прежде, чем мы приступим к процессу избавления от пустот в отчетах, необходимо вспомнить известную мудрость о том, что "...отрицательный результат, тоже результат...". Зачастую отсутствие сигналов в скада-системе несет не менее важную информацию, чем наличие реальных значений сигналов. Нотации заканчиваем, и в полном осознании возможных последствий, приступаем к изничтожению надоедливых пустых строк в отчетах.

Предположим, что был создан отчет "Отчет периодический" из модуля "Редактор отчетов". И как показано на вышеприведенном рисунке, имеет несколько пустых строк в самом начале отчета.

Для избавления от пустых строк прибегнем к свойствам редактора отчета. А именно, в рабочем поле дизайнера отчетов выделив бэнд-данных "MasterData" (обозначен в дизайнере горчичным цветом), вызовем локальное меню с помощью правой клавиши мыши. В локальном меню следует выбрать первый пункт меню "Редактировать..."


На экране появится диалоговое окно "Источник данных". В этом окне в разделе "Фильтр" нажмем кнопку открытия окна создания фильтров данных отображаемых в бэнде-данных.

В открывшемся окне "Редактор выражений" создадим простой фильтр, который будет осекать пустые значения. Для этого, выберем наименование первого столбца нашего отчета. Произведите двойной щелчок левой клавишей мыши на строке "(Температура 1, Первое значение).ФорматированноеЗначение". Эта строка отобразится в панели "Выражение" с небольшим дополнением спереди. Теперь в конце этой текстовой конструкции в панели "Выражение" необходимо добавить условие для фильтра.

Это будет такая строка: > ''.

Приведем подробное описание строки: Пробел + УгловаяСкобкаВправо + Пробел + ОдинарнаяКавычка + ОдинарнаяКавычка. В вольном переводе с программистского на русский это звучит как "значение должно быть больше пустоты".

Осталось только нажать кнопку "ОК". Затем в редакторе отчетов необходимо нажать кнопку "Предварительный просмотр".

Формируется отчет. И в окне "Предварительный просмотр" хорошо видно, что в отчете теперь присутствуют только строки со значениями.

 

Осталось только сохранить произведенные изменения в отчете и выйти из редактора отчета. Оказавшись в окне модуле "Редактор отчетов" произведем контрольный запуск отчета, для того чтобы убедиться, что результат по избавлению от пустых строк достигнут в полной мере.


Внимательный читатель в этом месте должен воскликнуть: "Позвольте, но тут кроется ловушка...".

И он будет совершенно прав. Вышеописанный метод исключения пустых строк в отчете, проверяет значение только второго столбца, наименование которого "Температура 1 (первое значение)". То есть, может сложиться ситуация, когда в отдельной строке отчета значение второго столбца пустое, а значения третьего и четвертого не пусты. Но эта строка, все равно, будет удалена из отчета, поскольку проверка второго столбца на пустоту завершится получением логического значения "True", а значения других столбцов не проверяются.

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

То есть необходимо в "Редакторе выражений" создать не простой фильтр, а вовсе даже сложный. А именно, конструкция фильтра должна быть такой: (Условие1) AND (Условие2) AND (Условие3).

Итого, фильтр (для нашего конкретного отчета) будет выглядеть так:

(<ИсточникИсторииКаналов1."(Температура 1, Первое значение).ФорматированноеЗначение"> > '') AND
(<ИсточникИсторииКаналов1."(Температура 2, Первое значение).ФорматированноеЗначение"> > '') AND
(<ИсточникИсторииКаналов1."(Температура 3, Первое значение).ФорматированноеЗначение"> > '')