<< Click to Display Table of Contents >> Navigation: Проект > Документы объектов > Генератор отчетов > Проектирование отчетов > События > Примеры использования |
В методических материалах рассматривается в том числе использование событий для работы с данными.
В качестве примера также можно рассмотреть использование события для работы с элементами формируемого отчета.
Постановка задачи.
В течении смены в печь может быть загружено до 3 деталей. Для каждого цикла отжига нужно вывести параметры процесса - температуру отжига, а также параметры каждой детали - название, материал и вес. В конце смены нужно вывести параметры всех процессов.
Решение.
Проблема в том, что деталей может быть 1, 2 или 3. Таким образом, если выводить параметры в виде таблицы, могут остаться свободные ячейки (если деталей было меньше 3). Чтобы избежать этого, мы сделаем, чтобы не нужные ячейки автоматически скрывались.
Дерево объектов содержит следующие элементы:
С помощью переменной Количество деталей, мы будем определять сколько деталей было загружено печь в каждом процессе.
Опустим процесс создания отчета и источника данных. Источник должен выглядеть так:
У колонки КоличествоДеталей включено свойство "Основной", у остальных колонок оно выключено.
Сформируем следующую таблицу в бэнде Данные:
Теперь сделаем чтобы не нужные ячейки скрывались, а высота ячеек времени и температуры автоматически менялась.
На вкладке свойств, перейдем в раздел событий, и выберем событие Перед печатью.
Ячейки таблицы имеют следующие обозначения:
Теперь напишем код, который будет скрывать ячейки и уменьшать их размер.
if (Данные.КоличествоДеталей==1)
{
Text9.Enabled=Text10.Enabled=Text11.Enabled=false; //скрываем верхнюю строку
Text6.Enabled=Text7.Enabled=Text8.Enabled=false; //скрываем вторую строку
Text1.Height=Text4.Height; //меняем высоту поля
Text2.Height=Text4.Height; //меняем высоту поля
DataДанные.Height=Text4.Height+0.2; //меняем высоту бэнда + зазор
}
if (Данные.КоличествоДеталей==2)
{
Text9.Enabled=Text10.Enabled=Text11.Enabled=false;
Text6.Enabled=Text7.Enabled=Text8.Enabled=true;
Text1.Height=Text4.Height*2;
Text2.Height=Text4.Height*2;
DataДанные.Height=Text4.Height*2+0.2;
}
if (Данные.КоличествоДеталей==3)
{
Text9.Enabled=Text10.Enabled=Text11.Enabled=true;
Text6.Enabled=Text7.Enabled=Text8.Enabled=true;
Text1.Height=Text4.Height*3;
Text2.Height=Text4.Height*3;
DataДанные.Height=Text4.Height*3+0.2;
}
Данный код обращается к свойствам бэнда и текстовых полей, меняет их высоту или размер, в зависимости от количества деталей.
Итоговый отчет:
Если необходимо поменять свойство какого-либо элемента, но вы не знаете как называется данное свойство в коде, можно поступить следующим методом.
Выделите элемент, и на вкладке Свойства вызовите контекстное меню и сбросьте настройку "Переводить имена свойств":
Теперь все названия будут по английски - по ним и нужно обращаться к свойствам элемента.