#javascript #stimulsoft
#javascript #stimulsoft
Вопрос:
У меня есть этот код на javascript:
var viewer = new window.Stimulsoft.Viewer.StiViewer(
null,
"StiViewer",
false
);
var report = new window.Stimulsoft.Report.StiReport();
const { data: reportData } = await GetRequestFromStore(
this.state.reportDate,
this.state.storeId
);
var json = {
DataSet: reportData.requestItems,
};
var dataSet = new window.Stimulsoft.System.Data.DataSet("JSON");
dataSet.readJson(json);
report.regData("JSON", "JSON", dataSet);
report.loadFile(this.state.reportName);
report.dictionary.variables.getByName(
"requestDate"
).valueObject = this.state.jalaaliReportDate;
viewer.report = report;
viewer.renderHtml("viewer");
и этот дизайн источника данных в stimulsoft designer
все работает хорошо. Но я хочу передать в отчет несколько массивов объектов json. что-то вроде этого.
Как я могу передать массив объектов Items и массив объектов Descriptions в отчет в коде. Спасибо.
Ответ №1:
Набор данных с двумя таблицами решил мою проблему. Я объединил два массива объектов JSON в один объект JSON и зарегистрировал набор данных.
теперь данные отчета выглядят так:
let reportData = {
items: [],
descriptions: [],
};
и дизайн набора данных в Stimulsoft designer:
и эта часть кода сработала для меня.
var viewer = new window.Stimulsoft.Viewer.StiViewer(null, "Viewer", false);
var report = new window.Stimulsoft.Report.StiReport();
const { data: reportData } = await GetRequestFromStore(
this.state.reportDate,
this.state.storeId
);
var dataSet = new window.Stimulsoft.System.Data.DataSet("DS1");
dataSet.readJson(JSON.stringify(reportData));//one JSON object
//this line of code added,too.
report.dictionary.databases.clear();
report.regData("DS1", "DS1", dataSet);
//this line of code is also required.
report.dictionary.synchronize();
report.loadFile(this.state.reportName);
report.dictionary.variables.getByName(
"requestDate"
).valueObject = this.state.jalaaliReportDate;
viewer.report = report;
viewer.renderHtml("viewer");