Вывод нескольких показателей в отчет из лабораторного журнала на python.
LIMS myLab поддерживает создание многопараметровых лабораторных журналов. К примеру, гранулометрический состав ионитов по ГОСТ 10900, фракционный состав нефти по ГОСТ 2177 и другие характеристики и показатели.


Параметры, которые необходимо вывести в качестве результата, отмечаются флагом (рис. 1) в уникальных параметрах лабораторного журнала, созданного с помощью метода ввода данных «python». В форме ввода результатов они выделены жирным (рис. 2).
Часто возникает задача вывести данные нескольких параметров в отчет (протокол). Для этого требуется дополнительная настройка шаблона на печать.
Инструкция настройки шаблона на печать
На рисунке 3 представлен стандартный генерируемый программой шаблон протокола. На его примере мы добавим возможность вывода данных из многопараметрового журнала на python. Для того чтобы его открыть, необходимо зайти в программу под учетной записью суперадминистратора в журнал «Протоколы». Нажать на меню журнала и выбрать раздел «Настройка шаблонов», предварительно сгенерировав шаблон кнопкой печати. Нажимаем кнопку «Редактировать данные».

Нажимаем на кнопку «Настроить бэнды». Добавляем дочерний бэнд «Данные» для бэнда «Результаты» (рис. 4).

Далее нужно привязать данный бэнд к таблице «Компоненты». Для этого два раза кликаем по нему и редакторе бэнда в разделе «Источник данных» выбираем «Компоненты» (рис. 5).

Переходим в раздел «Фильтр» редактора бэнда и создаем фильтр: [Компоненты.IS_RESULT], который позволяет выводить результаты с флагом в лабораторных журналах на python (рис. 6).

Далее активируем свойство «Может расти», вызвав кликом правой кнопки мыши по бенду «Данные» (рис. 7). Данное свойство позволяет расти данному бэнду вместе с ячейками, при увеличении количества выводимой информации в них.

Далее создаем необходимые для шаблона новые текстовые объекты и привязываем к ним данные (рис. 8).

Для порядкового номера следует использовать [index++] вместо [Row#]. Вносим данный код в соответствующий текстовый блок.
Переключаемся на вкладку «Код» и объявляем переменную index у класса ReportScript (рис. 10)
int index;
У бэнда «Данные», который привязан к таблице «Результаты», осуществляем привязку к событию BeforePrint (рис. 9) и указываем следующий код (рис. 11):
DataBand masterBand = sender as DataBand;
DataBand detailBand = masterBand.Bands[0] as DataBand;
DataSourceBase detailData = Report.GetDataSource("Компоненты");
detailData.Init(masterBand.DataSource, "Компоненты.IS_RESULT", new SortCollection());
masterBand.Visible = detailData.RowCount <= 1;
detailBand.Visible = detailData.RowCount > 1;

Далее переключаемся на страницу отчета, выбираем объект заголовок данных бэнда «Данные» и в окне «Свойства» выбираем «События» (значок молнии), после этого щелкаем мышью два раза по событию BeforePrint (рис. 10).

Добавляем следующий код в новый метод (рис. 11):
index = 1;

Для бэнда «Данные»: Data3 (Результаты) свойство PrintIfDetailEmpty выставляем True (рис.12).

Сохраняем шаблон.
Пример вывода на печать созданного шаблона представлен на рисунке 13.
