如果不想使用“新建 EGL 报告处理程序向导”来创建报告处理程序,可手工创建报告处理程序。
可针对您的应用程序复制此代码并修改它。
样本代码,它将显示用于手工创建报告处理程序的语法
handler handlerName type jasperReport // Use Declarations (optional) use usePartReference; // Constant Declarations (optional) const constantName constantType = literal; // Data Declarations (optional) identifierName declarationType; // Pre-defined Jasper callback functions (optional) function beforeReportInit() ... end function afterReportInit() ... end function beforePageInit() ... end function afterPageInit() ... end function beforeColumnInit() ... end function afterColumnInit() ... end function beforeGroupInit(stringVariable string) ... end function afterGroupInit(stringVariable string) ... end function beforeDetailEval() ... end function afterDetailEval() ... end // User-defined functions (optional) function myFirstFunction() ... end function mySecondFunction() ... end end
显示如何获取报告参数的示例
handler myReportHandler type jasperReport // Data Declarations report_title String; // Jasper callback function function beforeReportInit() ... report_title = getReportTitle(); ... end ... // User-defined function function getReportTitle() Returns (String) return (getReportParameter("ReportTitle")); end end
显示如何设置和获取报告变量的示例
handler myReportHandler type jasperReport // Data Declarations employee_serial_number int; // Jasper callback function function afterPageInit() ... employee_serial_number = getSerialNumberVar(); ... end ... // User-defined function function getSerialNumberVar() Returns (int) employeeName String; employeeName = "Ficus, Joe"; setReportVariableValue("employeeNameVar", employeeName); return (getReportVariableValue("employeeSerialNumVar")); end end
显示如何在报告处理程序中获取字段值的示例
handler myReportHandler type jasperReport // Data Declarations employee_first_name String; // Jasper callback function function beforeColumnInit() ... employee_first_name = getFirstNameField(); ... end ... // User-defined function function getFirstNameField() Returns (String) fldName String; fldName = "fname"; return (getFieldValue(fldName)); end end
显示如何在报告处理程序中添加报告数据灵活记录的示例
handler myReportHandler type jasperReport // Data Declarations customer_array customerRecordType[]; c customerRecordType; // Jasper callback function function beforeReportInit() customer ReportData; datasetName String; //create the ReportData object for the Customer subreport c.customer_num = getFieldValue("c_customer_num"); c.fname = getFieldValue("c_fname"); c.lname = getFieldValue("c_lname"); c.company = getFieldValue("c_company"); c.address1 = getFieldValue("c_address1"); c.address2 = getFieldValue("c_address2"); c.city = getFieldValue("c_city"); c.state = getFieldValue("c_state"); c.zipcode = getFieldValue("c_zipcode"); c.phone = getFieldValue("c_phone"); customer_array.appendElement(c); customer.data = customer_array; datasetName = "customer"; addReportData(customer, datasetName); end end
显示 XML 设计文档如何从报告处理程序获取报告数据记录的示例
<jasperReport name="MasterReport" scriptletClass="subreports.SubReportHandler"> ... <subreport> <dataSourceExpression> <![CDATA[(JRDataSource)(((subreports.SubReportHandler) $P{REPORT_SCRIPTLET}).getReportData( new String("customer")))]]> </dataSourceExpression> <subreportExpression class="java.lang.String"> <![CDATA["C:/RAD/workspaces/Customer.jasper"]]> </subreportExpression> </subreport> ... </jasperReport>
相关概念
EGL 报告概述
EGL 报告创建过程概述
相关任务
创建 EGL 源文件
创建 EGL 报告处理程序
使用报告模板
相关参考
EGL 报告库
EGL 报告处理程序
预定义报告处理程序函数
其它 EGL 报告处理程序函数