图表生成器Stimulsoft Reports.Java示例:在报告之间复制组件

发布时间 : 2021-08-20 09:24:15.970|阅读 124 次

概述:此示例演示如何复制相同的组件StiPage,StiHeader并且不同的报表之间等。例如,让我们使用两个报表 OriginalReport 和 CustomReport。

Stimulsoft Ultimate是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。

Stimulsoft Reports不仅拥有强大的报表导出系统,而且还支持多种报表导出格式,拥有简单且强大的报表引擎。Stimulsoft Reports基本原则是,用简单常规的方法创建报表,将不同的技术应用于应用程序。Stimulsoft Reports.Java是一个专为在Java应用程序中的报表进行交互和处理的报表工具。

点击下载Stimulsoft Reports.Java v2021.3.1最新版

此示例演示如何复制相同的组件StiPage,StiHeader并且不同的报表之间等。例如,让我们使用两个报表 OriginalReport 和 CustomReport。

首先,您需要从文件中反序列化报告:

...

StiReport originalReport = StiSerializeManager.deserializeReport(
	StiResourceUtil.getStream("/com/stimulsoft/samples/OriginalReport.mrt"));
StiReport customerReport = StiSerializeManager.deserializeReport(
	StiResourceUtil.getStream("/com/stimulsoft/samples/CustomReport.mrt"));

...

然后您可以复制组件。为此,可以使用序列化:

...

StiHeaderBand originalHeader = (StiHeaderBand) originalReport.getComponents().get("HeaderBand1");
int originalIndex = originalHeader.getPage().getComponents().indexOf(originalHeader);
originalHeader.getPage().getComponents().remove(originalIndex);

StiHeaderBand customerHeader = (StiHeaderBand) customerReport.getComponents().get("HeaderBand1");
String originalHeaderStr = StiSerializerControler.serializedObjectAsString(customerHeader);
StiHeaderBand newCustomerHeader = new StiHeaderBand();
StiDeserializerControler.deserializeFromString(originalHeaderStr, newCustomerHeader);
newCustomerHeader.setPage(originalReport.getPages().get(0));
originalReport.getPages().get(0).getComponents().add(originalIndex, newCustomerHeader);
newCustomerHeader.setName(StiNameCreation.createName(originalReport, "HeaderBand"));
for (StiComponent component : newCustomerHeader.getComponents()) {
	component.setPage(originalReport.getPages().get(0));
	component.setParent(newCustomerHeader);
	component.setName(StiNameCreation.createName(originalReport, component.getName().replaceAll("\\d*", "")));
}

...


Aspose、E-iceblue、FastReport、Stimulsoft等文档/报表图表类开发工具享超低折扣,如有需要可直接联系在线客服


在线
客服
微信
QQ 电话
023-68661681
返回
顶部