Печатные формы#

Описание раздела#

Скрипты для автоматизации работы с печатными формами: запуск отчётов по кнопке, формирование читаемых имён файлов при экспорте и другие операции на основе параметров документа (бизнес-объект, период, номер и др.).

Запуск печатной формы по кнопке#

Используется чтобы привязать вызов печатной формы (RPT-отчёта) к пользовательской кнопке через обозреватель проекта. При нажатии запускается построение отчёта с передачей идентификаторов текущего объекта.

Место применения: Сущности > Обозреватель проекта > [Объект] > Редактор операций > [JEXL-операция] > Вкладка "JEXL-скрипт".

Тип: JEXL-скрипт

var idvOrderClass = selection ("idClass"); 
var idvOrder = selection.getVar ("id");
var NLong= function (number) { // локальная функция для преобразования Long в NLong
    return new ("ru.bitec.app.gtk.lang.NLong", number);
                              };
var spReportName = "Stm_InvoiceOut"; 
var dpReportVersionDate = sysDate ();
var vPostBuildAction = session
.sbtClassLoader()
.loadClass('ru.bitec.app.gtk.gl.postbuildaction.PostBuildAction')
.design();
var propertyMap = {
                   "idSrcObject" : NLong (idvOrder),
                   "idSrcClass"  : NLong (idvOrderClass)
                   };
var idObjectTypePrintForm = null;
Rpt_Lib.createReportExJexl (
spReportName, 
dpReportVersionDate,
vPostBuildAction,
asScala (propertyMap), 
idpObjectTypePrintForm
);

Формирование имени файла печатной формы#

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

Место применения скрипта: Отчёты > Печатные формы > [Печатная форма] > Редактировать > Режим формирования имени файла: JEXL > Вкладка "JEXL для формирования имени файла".

Примечание

Все параметры, которые были переданы в отчёт для построения, доступны по соответствующим именам в верхнем регистре. Например, в файле отчёта (jasper, word, excel и др.) используется параметр idBisObj, если он был передан в отчёт, к нему можно обратиться из скрипта по тому же имени заглавными буквами - IDBISOBJ

Скрипт формирования имени отчёта при построении из отчётной формы Rpt_Entity. Не будет работать при формировании печатной формы из-за отсутствия в контексте IDENTITYEXEC!

var ropEntityExec = null;
if ((IDSRCCLASS) == Wf_DocApi.idClass()) {
  var gid = Wf_DocApi.getGidLastVer(IDSRCOBJECT);
  ropEntityExec = Rpt_EntityExecApi.getByGidDocVer(gid);
} else {
  ropEntityExec = Rpt_EntityExecApi.load(IDENTITYEXEC);
}
var jParams = toJObject(ropEntityExec.jParams);
var nvMonth = " ";
if (isNotNull(jParams.getLong("flt_dperiodmonth"))) {
   nvMonth = toString(Clr_MonthApi.load(jParams.getLong("flt_dperiodmonth")).sCode);
}
"СНГ-Р1_№" + nvl(jParams.getString("flt_snumref"), " ") + "_за_" + nvMonth + "_" + nvl(toString(jParams.getNumber("flt_dperiodyear")), " ") + "_для_" + nvl(jParams.getString("flt_idbisobjmc"), " ");