我希望使用JSP创建一个动态报告网页,主要包括以下部分:
JasperReport的HTML导出功能会生成一个带有许多硬编码和相当随意配置选项的HTML文件。例如,它默认创建一个白色背景的表格(
当然我可以使用JSP实现html输出,但这意味着我必须设计两次输出(一次在jrxml中用于JasperReports,一次在JSP中),并且我必须重新实现报告功能(例如小计计算,总计算,分组...),这违反了DRY原则。
那么如何最好地实现呢?是否可能使用JasperReports创建更好的HTML导出?
- 筛选器:用户可以指定筛选条件并按下筛选按钮。
- HTML输出:筛选结果会显示在此处。它是一个较大的HTML页面(如果一页太大,则可能有多个页面)。它可能包含到系统其他部分的链接。
- PDF输出:用户应该能够保存报告的PDF版本以进行打印或归档。
JasperReport的HTML导出功能会生成一个带有许多硬编码和相当随意配置选项的HTML文件。例如,它默认创建一个白色背景的表格(
<table style="... bgcolor="white" ... ">
),可以使用IS_WHITE_PAGE_BACKGROUND
选项关闭,但是cellpadding="0" cellspacing="0" border="0"
在table
标记中被硬编码。另外,与其使用跨度类,HTML文件包含了<span style="font-family: sansserif; color: #000000; font-size: 10.0px;">
来表示所有字段,这很奇怪(并且使CSS样式设置变得困难)。当然我可以使用JSP实现html输出,但这意味着我必须设计两次输出(一次在jrxml中用于JasperReports,一次在JSP中),并且我必须重新实现报告功能(例如小计计算,总计算,分组...),这违反了DRY原则。
那么如何最好地实现呢?是否可能使用JasperReports创建更好的HTML导出?