简体   繁体   English

Jasper 报告排除表中的列标题?

[英]Jasper Reports Exclude Column Headers in a Table?

I am using Jasper reports for a project that needs both PDF and CSV output and the majority of the data is the Detail section, within a table.我正在将 Jasper 报告用于需要 PDF 和 CSV output 的项目,并且大部分数据是表中的详细信息部分。 I know you can remove the pageHeader and columnHeader at the document level, but is it possible to remove, or only print once, the column headers within a table?我知道您可以在文档级别删除 pageHeader 和 columnHeader,但是是否可以删除或仅打印一次表中的列标题? If not the CSV outputs,如果不是 CSV 输出,

User Type,Time,Username,Event,IP Address,Student Name,Student Number
Admin,6/6/11 8:09 PM,admin,Uploaded a report file.,0:0:0:0:0:0:0:1,,
 ....[about 20 more lines of CSV then]....
User Type,Time,Username,Event,IP Address,Student Name,Student Number

This just looks very unprofessional and isn't very functional.这看起来很不专业,也不是很实用。 Like I said I know the page level headers can be removed with:就像我说的,我知道页面级标题可以通过以下方式删除:

        jasperPrint.getPropertiesMap().setProperty("net.sf.jasperreports.export.exclude.origin.band.1", "pageHeader");
        jasperPrint.getPropertiesMap().setProperty("net.sf.jasperreports.export.exclude.origin.band.2", "pageFooter");
        jasperPrint.getPropertiesMap().setProperty("net.sf.jasperreports.export.csv.exclude.origin.band.1", "columnHeader");
        jasperPrint.getPropertiesMap().setProperty("net.sf.jasperreports.export.csv.exclude.origin.band.2", "pageFooter");
        jasperPrint.getPropertiesMap().setProperty("net.sf.jasperreports.export.csv.exclude.origin.keep.first.band.1", "columnHeader");

but I am looking for a solution to remove them on table for CSV output only, not PDF.但我正在寻找一种解决方案,将它们从 CSV output 中删除,而不是 PDF。 Is this possible?这可能吗?

Any help would be greatly appreciated!任何帮助将不胜感激!

Thanks, Chuck谢谢,查克

Some useful properties to control report export for different formats.一些有用的属性来控制不同格式的报告导出。

net.sf.jasperreports.export.xls.exclude.origin.band.1=title net.sf.jasperreports.export.xls.exclude.origin.band.2=summary net.sf.jasperreports.export.xls.exclude.origin.band.3=pageHeader net.sf.jasperreports.export.xls.exclude.origin.band.4=pageFooter net.sf.jasperreports.export.xls.exclude.origin.keep.first.band.1=columnHeader net.sf.jasperreports.export.xls.collapse.row.span=false net.sf.jasperreports.export.xls.remove.empty.space.between.columns=true net.sf.jasperreports.export.xls.exclude.origin.band.1=标题 net.sf.jasperreports.export.xls.exclude.origin.band.2=摘要 net.sf.jasperreports.export.xls.exclude。 origin.band.3=pageHeader net.sf.jasperreports.export.xls.exclude.origin.band.4=pageFooter net.sf.jasperreports.export.xls.exclude.origin.keep.first.band.1=columnHeader net .sf.jasperreports.export.xls.collapse.row.span=false net.sf.jasperreports.export.xls.remove.empty.space.between.columns=true

net.sf.jasperreports.export.csv.exclude.origin.band.csvSummary=summary net.sf.jasperreports.export.csv.exclude.origin.band.1=title net.sf.jasperreports.export.csv.exclude.origin.band.2=pageFooter net.sf.jasperreports.export.csv.exclude.origin.keep.first.band.1=columnHeader net.sf.jasperreports.export.csv.exclude.origin.band.csvSummary=summary net.sf.jasperreports.export.csv.exclude.origin.band.1=title net.sf.jasperreports.export.csv.exclude. origin.band.2=pageFooter net.sf.jasperreports.export.csv.exclude.origin.keep.first.band.1=columnHeader

net.sf.jasperreports.export.xls.exclude.origin.band.1=title net.sf.jasperreports.export.xls.exclude.origin.band.2=summary net.sf.jasperreports.export.xls.exclude.origin.band.3=pageHeader net.sf.jasperreports.export.xls.exclude.origin.band.4=pageFooter net.sf.jasperreports.export.xls.exclude.origin.keep.first.band.1=columnHeader net.sf.jasperreports.export.xls.collapse.row.span=false net.sf.jasperreports.export.xls.remove.empty.space.between.columns=true net.sf.jasperreports.export.xls.exclude.origin.band.1=标题 net.sf.jasperreports.export.xls.exclude.origin.band.2=摘要 net.sf.jasperreports.export.xls.exclude。 origin.band.3=pageHeader net.sf.jasperreports.export.xls.exclude.origin.band.4=pageFooter net.sf.jasperreports.export.xls.exclude.origin.keep.first.band.1=columnHeader net .sf.jasperreports.export.xls.collapse.row.span=false net.sf.jasperreports.export.xls.remove.empty.space.between.columns=true

net.sf.jasperreports.export.html.using.images.to.align=false net.sf.jasperreports.export.html.remove.emtpy.space.between.rows=true net.sf.jasperreports.export.html.using.images.to.align=false net.sf.jasperreports.export.html.remove.emtpy.space.between.rows=true

net.sf.jasperreports.export.ignore.page.margins=true net.sf.jasperreports.export.ignore.page.margins=true

Full reference .完整参考

Column headers in the table component are meant to be repeated when the table overflows and cannot be hidden.表格组件中的列标题旨在在表格溢出且无法隐藏时重复。 To achieve what you want you could either:要实现您想要的,您可以:

move the contents of your columnHeader into the tableHeader so that only the table header prints once or filter out the elements when performing a specific export by adding sets of properties like these:将 columnHeader 的内容移动到 tableHeader 中,以便只有表 header 打印一次,或者在执行特定导出时通过添加如下属性集过滤掉元素:

<property name="net.sf.jasperreports.export.pdf.exclude.origin.keep.first.band.1" value="columnHeader"/>
<property name="net.sf.jasperreports.export.pdf.exclude.origin.keep.first.report.1" value="*"/>

More info on filtering elements at export time here and here .有关在此处此处导出时过滤元素的更多信息。

Maybe you should use different report definitions for each output.也许您应该为每个 output 使用不同的报告定义。 If not, then you could just recognise when you're printing to csv and only set those properties then.如果没有,那么您可以在打印到 csv 时识别出来,然后只设置这些属性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM