Отчёты
Разработка

Не выводятся поля из датасета в шаблон WORD

Добрый день. При выводе отчета в word происходит некорректная замена текстовых меток в шаблоне. Шаблон хранится в разделе "Библиотека". Скрипт вывода отчета:

function Item5OnExecute(ScriptItem, IsComplete) {
        var ParentDiagram = GetDiagramByItem(ScriptItem);
        var AccCSCSID = WFGetParamValue(ParentDiagram, 'AccCSCSID');
        ShowInstallAct(AccCSCSID);
}
function ShowInstallAct(AccCSCSID){
//var ContractID = GetDatasetFieldValueByID('ds_AccCSniping', AccCSnipingID, 'ContractID');
        var WordRecord = new Object(); 
        WordRecord = OpenWordTemplate('InstallActTest');               
        var Datasets = InitBankClientReportDatasets(AccCSCSID);
                if (!ReplaceWordBookmarks(WordRecord, Datasets, false, false, null, null)) {
                        WordRecord.word.Visible = true;
                        return;
                }      
}

function InitBankClientReportDatasets(AccCSCSID) {
        var Datasets = GetNewDictionary();
        if (!IsEmptyValue(AccCSCSID)) {
                var dsBankClientReport =  GetSingleItemByCode('ds_BankClienReport','ds_BankClienReport1');
                dsBankClientReport.Close();
                ApplyDatasetFilter(dsBankClientReport, 'ID', AccCSCSID, true);
                dsBankClientReport.Open();
                AddDatasetToDictionaryByUSI(Datasets, 'ds_BankClienReport',
                        dsBankClientReport);           
        }
        return Datasets;
}

В результате открывается файл шаблона, но вместо меток нет ничего. Отладчик показал, что при замене меток добавляется "from text" и дальше идет текст метки: ds_BankClienReport.OrgName.

Нравится

3 комментария

пожалуйста, уточните версию (к примеру 3.4.1.105) и продукт

XRM Bank (ver. 3.3.2.260)

Здравствуйте.

А что это у Вас за функции замены меток? Самописные? Т.к. не встречал таких в "коробке".

Нужно смотреть их код.
А вообще лучше переделать, ведь есть стандартные методы, которые оттестированы и 100% работают.

[javascript]
case rstWord:
var ReportData = GetFieldValueFromDisabledField(Dataset, 'ReportData');
if (IsEmptyValue(ReportData)) {
ShowWarningDialog(NoTemplateAvailableForThisReport);
return;
}
var QueryID = GetFieldValueFromDisabledField(Dataset, 'QueryID');
var ReportID = Dataset.Values('ID');
var WorkspaceWindow = Self.ParentContainer.ParentWindow;
ProcessPrepareWordReport(ReportID, QueryID, WorkspaceWindow);
break;
[/javascript]

Показать все комментарии