我正在使用 BIRT 报告,以 xml 格式生成它,我正在编写发射器(BIRT 插件)。我需要一个 xml 报告,其中包含基于同一报告中某些部分的一些重复部分。我为此使用 subReports。所以报告结构就像
List--
Header--
Table---(No header and footer)
details---
Cell----
Text(Multiple text here) Some static section and dynamic data
List Details ----
Table--(No header and footer)(This table will be repeated for every record in the header part)
Details--
Cell --
Multiple Text elements ()`
List Footer---- Empty
在编写发射器时,我需要提取主要在 Cell 元素中的所有文本元素的内容。现在以下是我的发射器中 sartCell 方法的代码。
public void startCell(ICellContent arg0) {
System.out.println("text in Cell:: ");
System.out.println("text in Cell:: " + arg0.getInstanceID());
for(Object ie : arg0.getChildren())
{
if(ie instanceof LabelContent)
{
LabelContent lc = (LabelContent)ie;
stringBuilder.append(lc.getText());
System.out.println(lc.getText());
}
else if(ie instanceof ForeignContent)
{
ForeignContent fc = (ForeignContent)ie;
stringBuilder.append(fc.getRawValue());
System.out.println(fc.getRawValue());
}
}
}
我可以使用此逻辑访问 Cell 及其所有文本内容。但是我想对 List 的 Details 部分中的 Table 的所有单元格做同样的事情。问题是细节部分中的单元格在 ICellContent.getChildren() 上给出了 null。
是的,我的 startText 方法根本没有被调用。以下是我的委托人的声明,
公共类 XmlEmittor 扩展 ContentEmitterAdapter {...}
以下是 rptDesign 结构,
<List>
<Header>
<Table><Detail><Cell><Text>...DynamicText....</Text>.....</Table>
</Header>
<Detail>
<Table><Detail><Cell><Text>...DynamicText....</Text>.....</Table>
</Detail>
</List>
在上述结构中,我的文本元素本身具有我想要生成报告的 XML 结构。所以我只想附加我的 xml 的所有内容并将其写入输出流。请建议,提前谢谢