Вывод нескольких показателей в отчет из лабораторного журнала на python.

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

Рис. 1 Уникальные параметры лабораторного журнала по ГОСТ 10900 на python
Рис. 2 Форма ввода результатов для лабораторного журнала по ГОСТ 10900

Параметры, которые необходимо вывести в качестве результата, отмечаются флагом (рис. 1) в уникальных параметрах лабораторного журнала, созданного с помощью метода ввода данных «python». В форме ввода результатов они выделены жирным (рис. 2).

Часто возникает задача вывести данные нескольких параметров в отчет (протокол). Для этого требуется дополнительная настройка шаблона на печать.

Инструкция настройки шаблона на печать

На рисунке 3 представлен стандартный генерируемый программой шаблон протокола. На его примере мы добавим возможность вывода данных из многопараметрового журнала на python. Для того чтобы его открыть, необходимо зайти в программу под учетной записью суперадминистратора в журнал «Протоколы». Нажать на меню журнала и выбрать раздел «Настройка шаблонов», предварительно сгенерировав шаблон кнопкой печати. Нажимаем кнопку «Редактировать данные».

Рис. 3 Стандартный шаблон протокола

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

Рис. 4 Настройка бэндов.

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

Рис. 5 Редактор бэнда «Данные»

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

Рис. 6 Добавление фильтра данных

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

Рис.7 Активация свойства «Может расти».

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

Рис. 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;
Рис. 9 Привязка к событию BeforePrint

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

Рис. 10 Привязка к событию BeforePrint

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

index = 1;
Рис. 11.

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

Рис. 12

Сохраняем шаблон.

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

Рис. 13 Шаблон на печать после выполнения инструкции.