Создание отчета для FastReportLink to Создание отчета для FastReport

Создание любого отчёта состоит из двух частей: формирование набора данных и их представление в удобном виде для пользователя.

Создание ИА отчета возможно только в том случае, если при установке инсталлятором сервера функции отчетов была включена настройка Разрешить редактирование словарей. В противном случае, в файле IRReportsFSP.ini укажите MasterServer=1.

Формирование набора данныхLink to Формирование набора данных

Начнём с формирования набора данных. Для этого:

  1. В менеджерской r_keeper перейдите Расширения > Наборы данных ИО
  2. В открывшемся окне Создайте новый набор данных ИО в группе Прочие наборы для отчётов.
    Для ускорения процесса создания набора данных рекомендуется скопировать наиболее подходящий предустановленный набор и отредактировать его.

  3. Созданному набору данных задайте Название и Сист. имя
  4. В разделе Основное заполните SQL запрос своим вариантом выборки данных.
    SELECT
    r.NAME AS "NAME" 
    ,ol.DATETIME AS "DATETIME"
    ,ol.PARAMETER AS "PARAMETER"
    ,e.NAME AS "OPERATOR"
    ,e2.NAME AS "MANAGER"
    ,COUNT(ORDERS00.ORDERNAME) as "CNTORDERS"
    ,r.SIFR AS "SIFR" 
    ,r.GUIDSTRING AS "GUIDSTRING" 
    FROM OPERATIONLOG ol 
    left join VISITS v on v.SIFR=ol.VISIT and v.MIDSERVER=ol.MIDSERVER and v.ISTARTCOMMONSHIFT=ol.ICOMMONSHIFT
    left join EMPLOYEES e on e.SIFR = ol.OPERATOR
    left join EMPLOYEES e2 on e2.SIFR = ol.MANAGER
    left join CASHES c on c.SIFR = ol.STATION
    left join CASHGROUPS cg on cg.SIFR = c.CASHGROUP
    left join RESTAURANTS r on r.SIFR = cg.RESTAURANT
    left join ORDERS ORDERS00
    ON ORDERS00.VISIT=ol.VISIT AND ORDERS00.MIDSERVER=ol.MIDSERVER AND ORDERS00.ICOMMONSHIFT=ol.ICOMMONSHIFT AND ORDERS00.STARTSERVICE<=ol.DATETIME and ORDERS00.ENDSERVICE>=ol.DATETIME
    WHERE (r.GUIDSTRING IN (:RESTAURANT2)) AND (ol.DATETIME >= :date1) AND (ol.DATETIME <= :date2) and
    OPERATION=833
    group by
    ol.DATETIME
    ,ol.PARAMETER
    ,e.NAME
    ,e2.NAME
    ,r.NAME
    ,r.SIFR
    ,r.GUIDSTRING
    order by ol.DATETIME
    SQL


     Параметры в запросе помечаются двоеточием и последующим слитным написанием имени параметра на латинице. Например:     :RESTAURANT2
    Порядок полей в SQL-выборке определит и порядок полей в экранном отчёте. Если потребуется поменять порядок полей, то придётся создать новый набор данных с требуемым порядком полей.
  5. После сохранения запроса выйдет диалоговое окно, нажмите Да
  6. Выйдет окно с добавляемыми полями (в SQL-запросе в начале помечаются двоеточием, например, :DATE1 ), для них можно определить тип поля.
  7. После корректного указания SQL-запроса в наборе данных ИО создадутся соответствующие поля. В свойствах полей можно поменять отображаемое название/альт.название, включить/отключить сортировку и группировку данных.
  8. Свойства созданных параметров доступны на вкладке Параметры Набора данных ИО.
    С версии плагина 1.17.1 можно вносить подсказки для параметров, отображаемых в фильтре отчета. Для этого в поле Описание необходимо внести описание параметра.
    С версии плагина 1.23.1, для параметров с типом Дата, Дата время, Строковый  используется свойство Обязательный параметр. Если при открытии отчета обязательный параметр будет не заполнен, то при выполнении отчета появится предупреждение.


    Для параметра можно использовать свойство Список значений из SQL, что означает выбор значений из набора данных полученного с помощью SQL-запроса указанного в свойстве SQL запрос

    Пример SQL-запрос для параметра RESTAURANT2:

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

Создание отчетаLink to Создание отчета

Для создания нового отчета:

  1. Откройте Расширения > Интерактивные отчеты (ИО)

  2. Выберите группу отчетов и Создайте новый интерактивный отчет (ИО).
    Для ускорения процесса создания отчета рекомендуется скопировать наиболее подходящий предустановленный отчет и отредактировать его.
  3. Для созданного отчёта укажите Тип отчета:
    • Grid Report — для отображения на экране
    • Fast Report — для печатной формы.
  4. Далее откройте отчет в списке и на вкладке Наборы данных ИО добавьте набор данных.
    Если вы копировали отчет с предустановленного, удалите скопированный набор данных и добавьте свой.

  5. Выберите группу данных и в ней ранее созданный набор данных и нажмите кнопку Добавить

  6. Для отчета с типом Grid Report надо в макете отчета указать GUID добавленного набора данных.
    GUID надо посмотреть в справочнике Наборы данных ИО.

    Через контекстное меню выберите Макет

    В отрывшемся XML-описание макета найдите OBJECT type="IR_DS" и укажите актуальный GUID набора данных, скопированный ранее.
  7. Далее в XML-описании укажите системные наименования полей, которые должны отобразиться в отчете.
Готово. Чтобы отчет отобразился в списке меню Интерактивные отчеты (ИО), нажмите кнопку

Создание макета печатной формы отчетаLink to Создание макета печатной формы отчета

Для создания макета печатной формы отчета:

  1. Откройте Расширения > Интерактивные отчеты (ИО)
  2. Выберите группу отчетов и Создайте новый интерактивный отчет (ИО) с типом Fast report (для печати).
    Для ускорения процесса создания отчета рекомендуется скопировать наиболее подходящий предустановленный отчет и отредактировать его.
  3. Далее откройте отчет в списке и на вкладке Наборы данных ИО добавьте набор данных.
    Если вы копировали отчет с предустановленного, удалите скопированный набор данных и добавьте свой.

  4. Выберите группу данных и в ней ранее созданный набор данных и нажмите кнопку Добавить

  5. Перейдите в свойство Макет. Откроется окно с запросом значений параметров, имеющихся в отчёте.
  6. После ввода параметров откроется окно редактирования печатной формы отчёта. Если не понятно как работать в этом окне, то следует обратиться к инструкции по дизайнеру отчётов FastReport 4. Дизайнер | FastReport VCL
  7. После завершения редактирования макета, можно открыть отчёт через меню Интерактивные отчеты (ИО).

Вызов печатной формы (Fast report) отчета из экранной формы (Grid report)Link to Вызов печатной формы (Fast report) отчета из экранной формы (Grid report)

  1. Скопируйте в Fast report отчете GUID отчета.
  2. В ранее созданном Grid report отчете откройте Макет
  3. В разделе <OBJECT type="IR_BUTTON" вставьте GUID Fast report отчета
Готово. Теперь в экранном отчете можно выбрать печатную форму отчета.

Создание экранной формы интерактивного отчётаLink to Создание экранной формы интерактивного отчёта

Описание действийLink to Описание действий

Воспользуемся ранее созданным датасетом. Т.к. датасет есть, то остаётся красиво вывести подготовленные данные на экран. Создаём новый отчёт и, дав ему название, указываем в свойстве «RepType» значение DesktopGrids (см. рис.16).

Рис. 16 - Выбор свойства отчета

Далее, открываем макет этого отчёта и видим абсолютно пустое текстовое поле, которое предстоит заполнить.

Описание макета придётся писать в ручную. Но для облегчения задачи можно взять за основу любой из доступных макетов экранного отчёта (см. рис. 17).

рис. 17 - Пример описания макета

Вот, что примерно должно получиться в макете:

XML

<IR_FORM borderwidth="10">
<OBJECT type="IR_SQL" guid="{CFEACC30-A18E-4071-A0AA-69290DD6789F}" order="0"> </OBJECT>
<OBJECT type="IR_PANEL" borderwidth="10" order="0">
<OBJECT type="IR_PANEL" order="0">
<OBJECT type="IR_BUTTON" guid="{BEE1200A-A95D-4DDB-BD28-003A1D96A286}" order="0">
<TEXT>Остановка ресторана</TEXT>
<ANCHORS>akLeft, akTop</ANCHORS>
<IHEIGHT>35</IHEIGHT>
<IHEIGHT>195</IHEIGHT>
<ALIGNMENT>alRight</ALIGNMENT>
</OBJECT>
<ANCHORS>akLeft, akTop</ANCHORS>
<ALIGNMENT>alTop</ALIGNMENT>
<IHEIGHT>35</IHEIGHT>
</OBJECT>
<OBJECT type="IR_REPORTTITLE" order="1">
<TEXT>%REP_NAME%</TEXT>
<ANCHORS>akLeft, akTop</ANCHORS>
<ALIGNMENT>alTop</ALIGNMENT>
<IHEIGHT>30</IHEIGHT>
<IWIDTH>100</IWIDTH>
</OBJECT>
<OBJECT type="IR_REPORTFILTER" order="2">
<TEXT>Ресторан: %RESTAURANT2%
Дата: %date1% - %date2%</TEXT>
<ANCHORS>akLeft, akTop</ANCHORS>
<ALIGNMENT>alTop</ALIGNMENT>
<IHEIGHT>60</IHEIGHT>
<IWIDTH>100</IWIDTH>
</OBJECT>
<ANCHORS>akRight, akTop</ANCHORS>
<ALIGNMENT>alTop</ALIGNMENT>
<IHEIGHT>130</IHEIGHT>
<IWIDTH>1000</IWIDTH>
</OBJECT>
<OBJECT type="IR_PANEL" autosize="1" order="1">
<OBJECT type="IR_DS" guid="{48B8FE07-3EAE-4D48-B8A5-6D05623F6307}" order="5">
<ANCHORS>akLeft, akTop</ANCHORS>
<ALIGNMENT>alTop</ALIGNMENT>
<IHEIGHT>100</IHEIGHT>
<IWIDTH>1000</IWIDTH>
<COLMOVING>0</COLMOVING>
<AUTOSIZE>1</AUTOSIZE>
<EXPANDLEVEL>-1</EXPANDLEVEL>
<FIELDS>
<FIELD sysname="NAME" alignment="taLeftJustify">
<IMINWIDTH>150</IMINWIDTH>
</FIELD>
<FIELD sysname="DATETIME" alignment="taCenter">
<IMINWIDTH>80</IMINWIDTH>
</FIELD>
<FIELD sysname="PARAMETER" alignment="taRightJustify" allagregate="sum" format="%INTEGER%">
<IMINWIDTH>100</IMINWIDTH>
</FIELD>
<FIELD sysname="OPERATOR" alignment="taLeftJustify">
<IMINWIDTH>150</IMINWIDTH>
</FIELD>
<FIELD sysname="MANAGER" alignment="taLeftJustify">
<IMINWIDTH>150</IMINWIDTH>
</FIELD>
<FIELD sysname="CNTORDERS" alignment="taRightJustify" allagregate="sum" format="%INTEGER%">
<IMINWIDTH>100</IMINWIDTH>
</FIELD>
<FIELD sysname="SIFR" colvisible="0">
<IMINWIDTH>150</IMINWIDTH>
</FIELD>
<FIELD sysname="GUIDSTRING" colvisible="0">
<IMINWIDTH>150</IMINWIDTH>
</FIELD>
</FIELDS>
<FOOTER>1</FOOTER>
</OBJECT>
<ANCHORS>akRight, akTop</ANCHORS>
<ALIGNMENT>alTop</ALIGNMENT>
<IHEIGHT>130</IHEIGHT>
<IWIDTH>1000</IWIDTH>
<AUTOSIZE>1</AUTOSIZE>
</OBJECT>
</IR_FORM>
XML

А теперь важное пояснение к содержанию описания макета.

В строке

<IR_FORM borderwidth="10"> <OBJECT type="IR_SQL" guid="{CFEACC30-A18E-4071-A0AA-69290DD6789F}" order="0"> </OBJECT>

оставляем всё как есть, т.к. здесь происходит технический вызов пересчёта агрегатов для отчёта.

Строка ниже описывает кнопку, при нажатии которой откроется печатная форма отчёта.

<OBJECT type="IR_BUTTON" guid="{BEE1200A-A95D-4DDB-BD28-003A1D96A286}" order="0">

значение свойства guid берём из SQL-таблицы [PLG_IR_REPORTS] для нашего отчёта «Отчёт по приостановке работы ресторана»

Далее, в строке

  <OBJECT type="IR_DS" guid="{48B8FE07-3EAE-4D48-B8A5-6D05623F6307}" order="5">

значение свойства guid берём из SQL-таблицы [PLG_IR_DATASETS] для нашего отчёта «Приостановка работы ресторана 2»

Пример создания экранной формыLink to Пример создания экранной формы

Допустим необходимо сделать копию отчета "Продажи официантов" и удалить в макете поле "НСП".

Порядок действий будет следующий:

В справочнике "Расширения - ИА Наборы данных" создаем новый датасет как копию предустановленного (см. рис. 18).

Рис. 18 - Копирование Датасета

В свойстве "SQL запрос" меняем запрос, в результате чего будут пересозданы все поля и параметры.

SQL

SELECT
(case :USE_ALT_LANG when 0 then RESTAURANTS00.NAME else 
(case RESTAURANTS00.ALTNAME when '' then RESTAURANTS00.NAME 
else isnull(RESTAURANTS00.ALTNAME,RESTAURANTS00.NAME) 
end) 
end) AS "RESTAURANT",
(case :USE_ALT_LANG when 0 then EMPLOYEES00.NAME else 
(case EMPLOYEES00.ALTNAME when '' then EMPLOYEES00.NAME 
else isnull(EMPLOYEES00.ALTNAME,EMPLOYEES00.NAME) 
end) 
end) AS "WAITER",
CASE WHEN MENUITEMS00.CODE IS NULL THEN DISCOUNTS00.CODE ELSE MENUITEMS00.CODE END AS "CODE",
(case :USE_ALT_LANG when 0 then MENUITEMS00.NAME else 
(case MENUITEMS00.ALTNAME when '' then MENUITEMS00.NAME 
else isnull(MENUITEMS00.ALTNAME,MENUITEMS00.NAME) 
end) 
end) AS "DISH",
SUM(STAT_RK7_SHIFTS_COMPARISON.QUANTITY) AS "QUANTITY",
SUM(STAT_RK7_SHIFTS_COMPARISON.PAIDSUM) AS "PAIDSUM",
SUM(STAT_RK7_SHIFTS_COMPARISON.TAXSUM-STAT_RK7_SHIFTS_COMPARISON.TAXESADDED) AS "TAXSUM"
,SUM(STAT_RK7_SHIFTS_COMPARISON.TAXESADDED) AS "nsp"
FROM STAT_RK7_SHIFTS_COMPARISON
LEFT JOIN RESTAURANTS RESTAURANTS00
ON (RESTAURANTS00.GUIDSTRING = STAT_RK7_SHIFTS_COMPARISON.RESTAURANTGUID)
LEFT JOIN MENUITEMS MENUITEMS00 ON MENUITEMS00.GUIDSTRING=STAT_RK7_SHIFTS_COMPARISON.DISHGUID
LEFT JOIN DISCOUNTS DISCOUNTS00 ON STAT_RK7_SHIFTS_COMPARISON.DISHGUID=DISCOUNTS00.GUIDSTRING
LEFT JOIN EMPLOYEES EMPLOYEES00 ON EMPLOYEES00.GUIDSTRING=STAT_RK7_SHIFTS_COMPARISON.WAITERGUID
WHERE (STAT_RK7_SHIFTS_COMPARISON.VOID IS NULL) AND (STAT_RK7_SHIFTS_COMPARISON.RESTAURANTGUID IN (:RESTAURANT)) AND (STAT_RK7_SHIFTS_COMPARISON.SHIFTDATE >= :date1) AND (STAT_RK7_SHIFTS_COMPARISON.SHIFTDATE <= :date2)
--... и так далее
SQL

Появится окно с подтверждением. Соглашаемся ( см. рис. 19) и сохраняем изменения. В результате поле "НСП" исчезнет из структуры Датасета.

Рис. 19 -  Сохранение изменений

Создаем копию ИА отчета, переименовываем его и добавляем датасет, созданный в п.1. Старый датасет из привязок удаляем.

Рис.  20 - Привязка датасета к отчету

Создаем копию Печатной формы, переименовываем её и добавляем датасет, созданный в п.1(см. рис. выше). Старый датасет удаляем. Редактируем макет - удаляем мемо-поля с ссылкой на несуществующий параметр, иначе в предварительном просмотре увидим предупреждение (см. рис. 21).

Рис. 21 - Предупреждение

Рис. 22 - Редактирование макета

В свойствах печатной формы копируем гуид (guid)

Рис. 23 - Свойства печатной формы

В свойстве "Макет" отчета прописываем для тега <OBJECT type="IR_BUTTON" guid="{289E795E-05B4-49A8-93F3-BB8C123BA47C}" order="0"> гуид печатной формы:

Рис.  24 - Вызов контекстного меню интерактивного отчета

Рис. 25 - Свойство Макет отчета

В свойстве "Макет" отчета прописываем также аналогично для тега <OBJECT type="IR_DS" guid="{48B8FE07-3EAE-4D48-B8A5-6D05623F6307}" order="5"> значение свойства guid, которое берём (копируем) из свойств ИА набора данных для этого отчёта.

Механизм ссылок в ИА отчетахLink to Механизм ссылок в ИА отчетах

Существует возможность вызывать экранную форму связанного отчета из уже открытого ИА отчета, с автозаполнением параметров (см. рис. 26).


Рис. 26 – Вызов экранной формы связанного ИА отчета

Для создания экранной формы необходимо:

В датасете исходного отчета выбрать поле, из которого необходимо получить связанный отчет. По нажатию правой кнопки мыши вызвать выпадающее меню. Выбрать пункт «Создать новую ИА связь» (см. рис. 27).


Рис. 27 - Создание новой ИА связи

В свойстве созданной ИА связи «ИА отчет» выбрать отчет, который необходимо вызывать (см. рис. 28).


Рис. 28 – Выбор связанного ИА отчета

Для ограничения запуска связанного отчета необходимо воспользоваться свойством «Value». Запуск вызываемого отчета будет выполняться только в том случае, если значение в вызывающем поле (не котором кликнули для запуска отчета) равно значению «Value». Этот механизм предназначен для возможности вызова разных связанных отчетов из одного и того же поля исходного отчета.

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

В настройках детализации ИА связи необходимо заполнить следующие свойства: «Параметр грида», «Поле источник», «Параметр источник».

«Параметр грида» - системное имя параметра фильтра, в который нужно передать значение из поля исходного отчета (см. рис. 29);


Рис. 29 – Системное имя параметра фильтра

«Поле источник» - это GUID поля в исходном отчете, значение из которого (поля) нужно передать в фильтр вызываемого отчета (см. рис. 30);


Рис. 30 - GUID поля в исходном отчете

«Параметр источник» - это системное имя параметра в исходном отчете, по аналогии с «Параметром грида» (поле, не обязательное к заполнению). Это поле, позволяющее передать значение какого-либо параметра из фильтра исходного отчета в фильтр вызываемого отчета.

Использование скриптов для изменения внешнего вида интерактивных отчетов (Desktop/FastCube)Link to Использование скриптов для изменения внешнего вида интерактивных отчетов (Desktop/FastCube)


Скрипт позволяет управлять форматированием как отдельной ячейки, так и всей строки. Для форматирования отдельной ячейки скрипт задается у ячейки. Для форматирования строки, скрипт задается у датасета. Список переменных, которые используются для форматирования:
 
Для обычной ячейки:

FONT_COLOR - цвет текста;
FONT_NAME - шрифт;
FONT_SIZE - размер шрифта;
FONT_STYLE - стиль текста;
FIELD_COLOR - цвет ячейки.

Для промежуточного итога:

FONT_COLOR_GR_SUM - цвет текста;
FONT_NAME_GR_SUM - шрифт;
FONT_SIZE_GR_SUM - размер шрифта;
FONT_STYLE_GR_SUM - стиль текста;
FIELD_COLOR_GR_SUM - цвет ячейки.

Для итога:

FONT_COLOR_SUM - цвет текста;
FONT_NAME_SUM - шрифт;
FONT_SIZE_SUM - размер шрифта;
FONT_STYLE_SUM - стиль текста;
FIELD_COLOR_SUM - цвет ячейки.

Для получения значения ячейки в скрипте необходимо использовать:

FIELD_VALUE - обычная ячейка;
FIELD_VALUE_GR_SUM - промежуточный итог;
FIELD_VALUE_SUM - итог.

Пример простого скрипта для ячейки (см. рис. 31):

Рис. 31 - Пример скрипта для изменения параметров ячейки
 

BEGIN
  FONT_COLOR:=0;
  FONT_NAME:='Verdana';
  FONT_SIZE:=8;
  IF (FIELD_VALUE > 20) THEN BEGIN
    FONT_SIZE:=18;
    FONT_COLOR:=10485760;
    FONT_NAME:='Vijaya';
  END;
END.


где

FONT_COLOR - цвет шрифта;
FONT_SIZE - размер шрифта;
FONT_NAME - шрифт;
FIELD_VALUE - значение ячейки.

Так же в скрипте (только для простой ячейки) можно использовать значения всех полей отчета. Для этого к системному имени поля необходимо дописать "FIELD_". Аналогичным образом можно создавать скрипты для форматирования строки (обычной строки отчета).

Важно: в скрипте для строки нельзя использовать "FIELD_VALUE" (значение текущей ячейки), только обращение к полям отчета (см. рис. 32).
 

Рис. 32 - Использование значений другого поля отчета.


Так же есть возможность задавать форматирование в FastCube, используя внешние параметры. Для этого скрипт задается у датасета, но в скрипте указывается, какое поле необходимо форматировать.
 
Пример скрипта:

BEGIN
  IF (FIELD_NAME = 'IBASICCURRENCY') THEN BEGIN
    IF (FIELD_VALUE > FIELD_SCRPARAM) THEN BEGIN
      FIELD_COLOR := 64000;
    END;
  END;
END.


Где SCRPARAM - имя поля, которое выступает в качестве параметра скрипта,
FIELD_NAME - имя поля на котором необходимо выполнить скрипт
 
Список полей, которые передаются в виде параметров в скрипт, задаются в макете отчета. Пример макета:

<IR_FORM borderwidth="5">
    <OBJECT type="IR_FASTCUBE" name="IR_FASTCUBE2" guid="{642EC34D-D8E0-428D-92E2-FBBD333D280E}" order="0">
        <ANCHORS>akLeft, akTop</ANCHORS>
        <ALIGNMENT>alClient</ALIGNMENT>
        <AUTOSIZE>0</AUTOSIZE>
          <SCRIPTPARAMS>
            <PARAM name = "SCRPARAM"/>
          </SCRIPTPARAMS>
    </OBJECT>
</IR_FORM>

Использование скриптов для функционального изменения фильтров отчетаLink to Использование скриптов для функционального изменения фильтров отчета

Внимание!

Изменения доступны с версии плагина 1.22.3.

Изменения недоступны для отчетов для рассылки.

Для более удобной работы с фильтрами отчета возможны следующие изменения в зависимости от выбора параметров:

 - изменение видимости параметра фильтра;

- включение свойства параметра "только для чтения";

- изменение цвета текста параметра.

Для вышеуказанных изменений необходимо в свойствах отчета в зоне "Основное" - "Скрипт фильтра" в стандартном редакторе Fast script ввести соответствующую информацию (см. рис. 33).

Рис. 33 - Свойство "Скрипт фильтра"

 В скрипте доступны переменные:

[ИМЯ_ПАРАМЕТРА]_VALUE - значение параметров из фильтра:

- значения для списков представлены в виде значений выбранных пунктов, записанных через запятую;
- значения логических параметров представлены в виде значений 0 и 1, где 0 - это false, 1 - true;
- значение параметров формата дата/время представлены в виде "yyyy-mm-ddThh:nn:ss".

[ИМЯ_ПАРАМЕТРА]_VISIBLE - видимость параметра в фильтре.

[ИМЯ_ПАРАМЕТРА]_READ_ONLY - свойство параметра "только для чтения".

[ИМЯ_ПАРАМЕТРА]_FONT_COLOR - цвет текста, задается в виде числа.

[ИМЯ_ПАРАМЕТРА] - системное имя параметра в фильтре.

Пример скрипта представлен на рис. 34.

Рис. 34 - Пример скрипта для изменения фильтра отчета


BEGIN
  if((Pos('{FB5F2F0F-C65C-45EB-8858-22037ABC2B85}',RESTAURANT_VALUE))>0) then
    DATE1_VISIBLE := true
  else DATE1_VISIBLE := false;

  if not(DATE1_VISIBLE) then
    DATE2_FONT_COLOR := 700
  else  DATE2_FONT_COLOR := 0;

  if(DATE2_FONT_COLOR = 700) then
    STATION_READ_ONLY := false
  else STATION_READ_ONLY := true;
END.