Для запроса параметров отчетов, сценариев, действий, фильтрации справочников в системе 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 |