高级自定义 > 业务逻辑自定义 > Windchill 中的 Jasper 报告自定义 > Jasper 报告的已保存报告和排程支持
  
Jasper 报告的已保存报告和排程支持
您可以为 Jasper 报告创建与报告模板类似的“已保存报告”。这些“已保存报告”可用于通过创建数据监控器来安排报告的执行。预设情况下,不提供支持已安排执行的报告。可对 Jasper 报告进行自定义,以配置已安排执行。
您可以使用以下方法之一创建已保存报告:
仅需排程的 Jasper 报告:可通过右击菜单操作“查看报告”来创建已保存报告。选择条件后,将生成已保存报告,并在“报告”页面上列出。这些报告没有满足条件的输入 JSP。
需要输入 JSP 条件的 Jasper 报告:需要创作类似的更新条件 JSP 来创建带有参数的已保存报告。
使用上述任一选项创建已保存报告后,创建基于数据监控器的排程,此排程与报告排程相同。有关详细信息,请参阅新建数据监控器
自定义基于条件的报告
PTC 提供了可重用组件 Create a Saved Report,该组件可集成在任何输入 JSP 中以保存带有条件的报告。
先决条件
报告加载程序应具有一个名为 csvCriteriaPage 的附加字段,以在其中包含自定义 criteriaPage JSP 的路径。此 JSP 可以是 HTML、JS、Core-UI 或基于 Ext JS 的 JSP。报告加载程序文件应与为这些报告创作的输入 JSP 类似。
1. 要使用可重用组件,请导入以下标记并将其添加到要显示按钮的输入 JSP:
<%@taglib uri="http://www.ptc.com/windchill/taglib/saveCriteria" prefix="r"%>
<r:saveCriteria savedReportName="SampleReportCriteria" prefix="r"%></r:saveCriteria>
成功将标记添加到输入 JSP 后,即会出现 Save 按钮。
2. 单击 Save 时,mainform (名称值) 对中的所有输入值都将被视为已保存报告的条件,并会创建已保存报告。如果使用了 reportViewPort 标记,则该标记中的所有输入字段都将被视为条件。如果输入 JSP 不包含 reportViewPort 标记,则 HTML 的表单名称应与 mainform 相同。
3. 如果需要在没有 reportViewPort 标记的情况下编写输入 JSP,则在 mainform 中添加所有输入。
4. 要重新定义或查看条件,需创作一个新的 JSP 并将其包含在加载程序 (criteriaPage) 中。
5. 提供了 API,以基于 SaveReportOid 获取条件。您的请求参数中提供了保存报告 oid。
请求参数示例:String criteriaObjectOid=request.getParameter("saveReportOROid"); HashMap inputParams=SaveReportHelper.getReportCriteria(criteriaObjectOid);
6. 下表提供了 Prog-Example:
报告名称
JRXML 位置
加载程序位置
输入 JSP 位置
必需的 Reporttemplate QML 位置
Criteriapage 位置
ReportTemplateReportTask
<$WT_HOME> /prog_examples/JasperIntegration /JasperReports/Sample /ReportTemplateReportTask.jrxml
<$WT_HOME> /prog_examples/JasperIntegration /loadFiles/reports/jasper /loadReportTemplateReportTask.xml
<$WT_HOME> /prog_examples/JasperIntegration /netmarkets/jsp/report/jasper /ReportTemplateReportTask.jsp
<$WT_HOME>/prog_examples/JasperIntegration/loadFiles /reports/jasper/ ReportTemplateReportTask.qml
<$WT_HOME>/prog_examples/JasperIntegration /netmarkets/jsp/report/jasper/criteriaReportTemplateReportTask.jsp
7. 获取条件后,对输入 JSP 进行清理、编码和显示。
更新 Report Object Model 并添加新列 criteriaPage
8. 单击已保存报告时,如果为报告对象定义了报告条件,则会显示已定义的 criteriaPage,否则会显示输入页面。
9. 要更新条件页面中的条件,请使用以下标记:
<%@taglib uri="http://www.ptc.com/windchill/taglib/modifyCriteria" prefix="m"%>
<m:modifyCriteria savedReportName="SampleReportCriteria_SR" divId="saveReportButtonDiv" ></m:modifyCriteria>
10. 对于 UI 的任何进一步修改,您都需要根据业务需求执行自定义。