如何将多个 json 对象数组传递给 Javascript 中的 stimulsoft 报告

How can I pass multiple json object array to stimulsoft report in Javascript

我在 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 对象数组传递给报表。 谢谢。

DataSet With Two Tables 解决了我的问题。 我已将两个 JSON 对象数组合并为一个 JSON 对象并注册数据集。

现在,reportData 就像:

let reportData = {
  items: [],
  descriptions: [],
};

Stimulsoft 设计器中的数据集设计是:

这部分代码对我有用。

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");