发布时间 : 2018-11-07 13:48:03.000|阅读 542 次
概述:此示例显示如何在不同报表之间复制相同组件StiPage,StiHeader等。
相关链接:
此示例显示如何在不同报表之间复制相同组件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*", "")));
}购买Stimulsoft正版授权,请点击“咨询在线客服”哟!
渝ICP备12000582号-15/渝公网安备 50010702501010号