【Stimulsoft Reports Java教程】复制报表之间的组件

下载Stimulsoft Reports Java最新版本

此示例显示如何在不同报表之间复制相同组件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*", "")));
}

查看原文,下载示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值