我目前正在使用iReports 5.1.0。
我一直在尝试使用格式导出属性来根据导出的内容修改报告。
属性类似于......
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.phase" value="groupHeader"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.group.phase" value="Phase"/>
我想出了如何根据运行时的导出来处理报表中的每个波段。但是,我无法弄清楚如何使用细节带来做到这一点。
如果我有一个细节乐队,我可以这样做......
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.detail1" value="detail"/>
但是,我有3个不同的细节带。我需要在导出到excel时排除第一个细节带。然后我需要只显示第一个细节带2。我查看了整个文档,似乎无法找到任何有关使用上述方法实现此目的的信息。
我知道我可以在表达时使用print,但如果有可能,我更喜欢这种方法。
以下是我的报告属性...
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>
<property name="net.sf.jasperreports.export.xls.freeze.row" value="0"/>
<property name="net.sf.jasperreports.export.xls.freeze.column" value="0"/>
<property name="net.sf.jasperreports.export.xls.remove.empty.space.between.columns" value="true"/>
<property name="net.sf.jasperreports.export.xls.remove.empty.space.between.rows" value="true"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.title" value="title"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.group" value="groupHeader"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.group.group" value="Group"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.phase" value="groupHeader"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.group.phase" value="Phase"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.detail1" value="detail"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.footer" value="pageFooter"/>
<property name="net.sf.jasperreports.export.xls.white.page.background" value="true"/>
<property name="net.sf.jasperreports.export.xls.image.border.fix.enabled" value="true"/>
<property name="net.sf.jasperreports.export.xls.column.width.ratio" value="1.10f"/>
<property name="net.sf.jasperreports.export.xls.ignore.graphics" value="false"/>
<property name="ireport.database" value="jdbc/DriverB"/>
<property name="ireport.displayTitle" value="CDP Follow Up"/>
<property name="ireport.category" value="test"/>
<property name="ireport.defaultExport" value="pdf"/>
我的问题是,如何根据导出类型有条件地打印特定细节带而不是在细节带上表达时使用打印?
答案 0 :(得分:1)
这个的语法是:
net.sf.jasperreports.export.{format}.exclude.origin.{suffix}.{arbitrary_name}
在此处阅读更多详情: JasperReports - Configuration Reference
具体例子如下:
net.sf.jasperreports.export.xls.exclude.origin.band.1=pageHeader
net.sf.jasperreports.export.xls.exclude.origin.band.2=detail1
答案 1 :(得分:0)
将导出类型(例如:csv,pdf)作为参数传递给.jrxml文件。在jrxml中为传递的参数创建一个字段。在“打印表达式”部分中,添加条件以排除不需要为请求的导出类型导出的详细信息带 例如:
parameterMap.put("type","xls");
表达时打印:!$F{type}.equals("xls")