Универсальные
программные комплексы
Воскресенье, 22.12.2024, 07:35
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: dimuhametov, kostanaysoft, Татьяна  
Часть 3. Редактирование шаблона Excel.
dimuhametovДата: Четверг, 26.12.2019, 09:13 | Сообщение # 1
Группа: Администраторы
Сообщений: 204
Репутация: 1
Статус: Offline
Переменные поля блока

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

Переменные поля могут содержать имена
полей таблицы, связанной с блоком, имена переменных, функцию или любое
выражение Visual FoxPro. Допускаются также имена полей других таблиц, взглядов,
курсоров (они должны быть предварительно открыты и могут быть связанны
отношениями с таблицей блока, которая в данном случае тоже должна быть открыта
до вызова генератора). Переменные, используемые в полях блока, должны быть
определены в вызывающей программе командами PUBLIC или PRIVATE. Функция пользователя, использованная в переменном
поле, не должна менять текущую запись в таблице блока (если, конечно, этого не
требует логика построения отчета).

Переменные поля допускают также агрегатные
функции, которые используются в команде CALCULATE (то есть, функции SUM, CNT, MIN, MAX, AVG, STD, NPV,
VAR). Имя агрегатной функции должно быть самым первым в переменном поле (сразу
после открывающей квадратной скобки). При вычислении агрегатной функции
фильтруются только те записи таблицы блока, которые соответствуют группе, в
полосе которой встретилось поле с агрегатной функцией. При этом в случае
обычного блока учитываются только группы строк, а в случае перекрестного блока
– группы строк и группы колонок.

Наконец, имеются еще две агрегатные
функции: FST(expr)  и LST(expr), где expr – имя поля или выражение с именами полей таблицы
блока. Функция FST вычисляет значение выражения expr для первой записи группы, а функция LST – для последней записи группы.

Если агрегатная функция используется в
полосе детализации обычного блока, то при ее вычислении фильтруются все записи
таблицы блока от первой до текущей записи (то есть, функции SUM будет
соответствовать накопительное суммирование, функции CNT – номер записи и т.д.).
Нет смысла использовать агрегатную функцию одновременно в полосе детализации
строк и полосе детализации колонок перекрестного блока, поскольку в этом случае
фильтроваться будет только одна запись таблицы блока, соответствующая этим двум
полосам. Но агрегатная функция в полосе детализации строк (колонок) и любой
полосе колонок (строк), отличной от полосы детализации, конечно же, имеет
смысл.
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright ТОО "KostanaySoft" © 2024