Копировать ссылку на страницу

Для запроса параметров отчетов, сценариев, действий, фильтрации справочников в системе DIRECTUM могут использоваться прикладные диалоги. Чтобы эти диалоги отображались в веб-доступе, их нужно дополнительно вызывать. В настоящем разделе приведены примеры вызова прикладных диалогов для отчетов, справочников, действий и сценариев.

Отчеты

Если отчет запускается с закладки «Запустить» или по ссылке (ссылка копируется из desktop-клиента и вставляется в браузер), то для вызова диалога укажите его имя в XML-файле веб-модуля:

 

<Reports>
<Report name="ReportName" getparams="fromdialog" dialogname="DialogName"/>
</Reports>

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

Если отчет запускается по кнопке на ленте, то для показа диалога в веб-доступе воспользуйтесь функциями клиентской объектной модели:

для аналитических отчетов:

 

WebAccess.factories.reports("ReportName").execute('DialogName').done(function(report) { report.open();
});

для интегрированных отчетов:

 

var referenceRecord = new WA.Link(132632, OBJECT_TYPE.REFERENCE_RECORD, 'RRCAssignments'); WebAccess.factories.reports('ReportName').showDialogAndExecuteIntegrated(referenceRecord, 'DialogName').done(function(report) { report.open();
})

При разработке расчетов отчетов с вызовом диалогов используйте прикладную функцию ShowDialog, использование функции объектной модели IS-Builder Dialog.Show невозможно.

Справочники

Если нужно открыть отфильтрованный справочник, запросив параметры фильтрации в диалоге, укажите в XML-файле веб-модуля javascript-функцию, которая сработает перед открытием справочника:

 

<RunTree>
  <TreeNode type="Reference"
  refcode="ПОЛ"
  caption="ACTUAL_WORKERS"
  filter='[Состояние]="Д"'  
  jsaction="return doWhatIWant(this);"/>
</RunTree>

 

function doWhatIWant(data) {
 WA.FC.dialogs.getDialogByName('DialogName').done(function (dialog) {
   dialog.show();
   dialog.bind(dialog['class'].EVENT.AFTER_ACTION, function () {
     data.filter = '[Состояние]="' + dialog.form.requisites["State"].getValue() +'"';
     data.continueDefaultAction();
  });
});
return false;
}

Файл с текстом функции следует размещать в подкаталоге js корневого каталога веб-сайта.

Также для вызова диалога можно воспользоваться функцией showDialogAndExecuteAction. В этом случае нет необходимости создавать новую функцию. В XML-файле веб-модуля укажите:

 

<RunTree>
<TreeNode type="Reference"
refcode="ПОЛ"
caption="ACTUAL_WORKERS"
filter='[Состояние]="Д"'
jsaction="WebAccess.current.showDialogAndExecuteAction('ActionName','DialogName')"/>
</RunTree>

Действия

Для показа диалога вызовите функцию showDialogAndExecuteAction у текущего объекта:

 

WebAccess.current.showDialogAndExecuteAction('ActionName','DialogName')

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

Сценарии

Для показа диалога вызовите у указанного сценария функцию showDialogAndExecute:

 

WebAccess.factories.scripts("ScriptName").showDialogAndExecute('DialogName').done(function(data) { console.log(data);
});

© 2016 Компания DIRECTUM Сообщество пользователей DIRECTUM