пытаюсь построить следующую схему работы - на фронте загружается дизайнер к которому автоматически подгружается небольшой набор данных в формате json нужной структуры. Пользователь строит отчет, сохраняет его. Позже на беке открывается данный шаблон и вместо указанного источника данных подставляются данные с большим количество объектов в той же структуре что и данные для фронта, рендерится и сохраняется отчет на большой выборке данных.
Удалось сделать следующее - на фронте подключить пустой дизайнер, добавить мышкой json файл как источник данных, построить отчет, сохранить. А потом на беке(nodejs) следующим кодом заменить данные на массив данных большей структуры и построить отчет.
Код: Выделить всё
var report = new Stimulsoft.Report.StiReport();
report.loadFile("r1.mrt");
report.dictionary.databases.clear();
var dataSet = new Stimulsoft.System.Data.DataSet("data");
dataSet.readJson(JSON.stringify(fullData));
report.dictionary.databases.clear();
report.regData("data", "data", dataSet);
report.renderAsync(function () {
report.saveDocumentFile("r_1.mdc");
});
Я попробовал на фронте действовать в таком же духе как и на фронте:
Код: Выделить всё
var report = new Stimulsoft.Report.StiReport();
var dataSet = new Stimulsoft.System.Data.DataSet("JSON");
dataSet.readJson(JSON.stringify(demoData));
report.regData("JSON", "JSON", dataSet);
Напрашивается еще один способ - как-то на фронте имитировать действия пользователя и подключить програмно json как файл. Поискал на форуме, попробовал безуспешно использовать такие функции
Код: Выделить всё
var dataSet = Stimulsoft.Base.StiJsonToDataSetConverter.GetDataSetFromFile(textFile);
var dataSet = Stimulsoft.Base.StiJsonToDataSetConverter.GetDataSet(json);
Возможно также есть какой-то другой способ "собрать" такую связку с рендерингом отчета на беке.
Заранее спасибо!