【Stimulsoft Reports Flex教程】报表中的用户数据
程序员文章站
2022-04-07 20:57:37
...
此示例显示如何在报表中使用用户数据并从代码中注册它。
要使用XML数据,首先应加载XML文件并将其转换为XML对象。为此,您可以使用StiTypeConverter.stringToXml()静态方法。执行此操作后,您可以使用报表对象的regData()方法将XML数据注册到报表中。作为参数,您应该传递数据源名称和别名,以及此XML对象:
private var reportString: String;
private var xmlData: XMLNode;
private function onInitialize(): void
{
...
// Load XML data file
var request2: URLRequest = new URLRequest("reports/data/Demo.xml");
var loader2: URLLoader = new URLLoader();
loader2.addEventListener(Event.COMPLETE, onXmlLoadComplete);
loader2.load(request2);
}
private function onXmlLoadComplete(event: Event): void
{
var loader: URLLoader = event.target as URLLoader;
var data: String = loader.data as String;
xmlData = StiTypeConverter.stringToXml(data);
}
private function onRegDataXmlClick(): void
{
// Create new report object
var report: StiReport = new StiReport();
// Load report from XML string
report.loadReportFromString(reportString);
// Registration of XML data with same name "Demo"
report.regData("Demo", "Demo", xmlData);
// Show report in Viewer dialog window
report.showDialog();
}
您还可以使用DataSet,DataTable,DataColumn类来创建用户数据集。例如,使用一个CustomerName数据列和三个数据行创建一个Customers数据表。创建后,您可以使用报表对象的regData()方法:
private function onRegDataSetClick(): void
{
// Create new Data Table
var table: DataTable = new DataTable("Customers");
// Create new Data Column
var column: DataColumn = new DataColumn("CustomerName", StorageType.StringType);
// Add Data Column to Data Table
table.columns.add(column);
// Create new Data Rows
table.addNewRow().setValue("CustomerName", "John Smith");
table.addNewRow().setValue("CustomerName", "Antonio Moreno");
table.addNewRow().setValue("CustomerName", "Elizabeth Brown");
// Create new Data Set
var dataSet: DataSet = new DataSet("DataSetName");
// Add Data Table to Data Set
dataSet.tables.add(table);
// Create new report object
var report: StiReport = new StiReport();
// Registration of user Data Set
report.regData("DataSetName", "DataSetName", dataSet);
// Synchronize report dictionary
report.dictionary.synchronize();
// Design report in Designer dialog window
report.designDialog();
}
下面的屏幕截图中,您可以看到示例代码的结果。
转载于:https://my.oschina.net/u/3905944/blog/2998647