皕杰报表自定义扩展~自定义事件监听类

在报表进行某些操作的过程中,有时候需要在任务前后执行一系列操作,这就需要对任务进行一系列监听,并通过一个自编java类来实现任务前或后所要进行的操作。
皕杰报表自定义监听包含以下几种:
一、IDataSetEventListener
接口说明
数据集计算和加载过程中的事件监听接口bios.report.api.events.IDataSetEventListener
方法说明
onLoadData
用途:在数据集进行数据加载(查询、计算等)之前,触发该事件
语法:boolean onLoadData(ReportDataSet dataSet)
参数:dataSet - 将要进行加载的数据集
返回值:返回false时,该数据不进行数据加载;返回true时,正常加载。
onLoadDataFinished
用途:数据集完成加载之后,触发该事件
语法:void onLoadDataFinished(ReportDataSet dataSet)
参数:dataSet - 完成加载的数据集
使用操作
设计器端:
选择【工具栏】->【窗口】->【首选项】->【通用配置】->【类加载配置】,在【自定义接口实现类配置】中添加自定义类,添加方式有两种,
在这里插入图片描述

一是将编译好的.class文件打成jar包, 点击【添加JAR】,将jar包导入;
在这里插入图片描述

二是点击【添加文件夹】,将包含.class文件的文件夹添加进来。
在这里插入图片描述

然后在报表中创建数据集时,在数据加载监听事件里写上监听类的全路径
在这里插入图片描述

服务器端:
一是将编译好的.class文件打成jar包,将jar包放到WEB-INF/lib目录下;
二是将. class文件放到WEB-INF/classes。
二、IExportEventListener
接口说明
导出报表时触发的事件。bios.report.api.events.IExportEventListener
方法说明
onExportExcel
用途:导出excel时触发该事件,可在该方法中对工作表模型进行修改
语法:void onExportExcel(ReportMark rptMark,org.apache.poi.hssf.usermodel.HSSFWorkbook workbook)
参数:rptMark - 正在运行的报表标识
workbook - 报表导出的excel工作表模型
使用操作
这个监听只用于web项目端:
1、将设计好的监听类加载到web项目上
一是将编译好的.class文件打成jar包,将jar包放到WEB-INF/lib目录下;
二是将. class文件放到WEB-INF/classes。
2、然后在WEB-INF\resources\congfig.xml里修改<exportEventListener>节点值为监听类的全路径
<!-- 用户自定义接口配置,包括工厂、事件等 --><userDef>
<!-- <reportFactory></reportFactory> --> <!-- 报表工厂,用于自定义报表加载和计算等 -->
<!-- <dataSourceFactory></dataSourceFactory>–> <!-- 自定义数据源工厂,用于通过自定义的方式获取报表数据源 -->
<!-- <toolbarFactory></toolbarFactory> --> <!-- 工具条工厂,用于自定义html工具条 -->
<!-- <toolbarButtonFactory></toolbarButtonFactory> --> <!-- 工具条按钮工厂,用于替换html工具条上的一些按钮 -->
<!-- <printEventListener></printEventListener> --> <!-- 打印事件监听器 -->
<!-- <fillinEventListener></fillinEventListener> --> <!-- 填报事件监听器 -->
<!-- <exportEventListener></exportEventListener> --> <!-- 报表导出事件监听器 --></userDef>
三、IFillinEventListener
接口说明
填报报表在进行数据提交录入时的事件监听接口。bios.report.api.events.IFillinEventListener
方法说明
onCommitData
用途:填报报表将要进行数据提交前,触发该事件
语法:java.lang.String onCommitData(ReportMark rptMark)
参数:rptMark - 正在运行的报表标识
返回:返回值为null时,正常执行;返回值不为null时,不提交数据,返回值将做为错误提示信息
onCommitDataFinished
用途:填报报表中所有填报操作都执行完毕,数据提交完成后,触发该事件
语法:void onCommitDataFinished(ReportMark rptMark)
参数:rptMark - 正在运行的报表标识
onUpdateData
用途:填报报表中的某个填报操作进行数据更新前,触发该事件
语法:java.lang.String onUpdateData(ReportMark rptMark, FillinDatas fillinDatas)
参数:rptMark - 正在运行的报表标识
fillinDatas - 填报数据对象,包含了填报操作信息和来自客户端的数据
返回:返回值为null时,正常执行;返回值不为null时,不提交数据,返回值将做为错误提示信息
onUpdateDataFinished
用途:填报报表中的某个填报操作执行完毕后,触发该事件
语法:void onUpdateDataFinished(ReportMark rptMark, FillinDatas fillinDatas)
参数:rptMark - 正在运行的报表标识
fillinDatas - 填报数据对象,包含了填报操作信息和来自客户端的数据
使用操作
这个监听只用于web项目端:
1、将设计好的监听类加载到web项目上
一是将编译好的.class文件打成jar包,将jar包放到WEB-INF/lib目录下;
二是将. class文件放到WEB-INF/classes。
2、然后在WEB-INF\resources\congfig.xml里修改<fillinEventListener>节点值为监听类的全路径
<!-- 用户自定义接口配置,包括工厂、事件等 --><userDef>
<!-- <reportFactory></reportFactory> --> <!-- 报表工厂,用于自定义报表加载和计算等 -->
<!-- <dataSourceFactory></dataSourceFactory>–> <!-- 自定义数据源工厂,用于通过自定义的方式获取报表数据源 -->
<!-- <toolbarFactory></toolbarFactory> --> <!-- 工具条工厂,用于自定义html工具条 -->
<!-- <toolbarButtonFactory></toolbarButtonFactory> --> <!-- 工具条按钮工厂,用于替换html工具条上的一些按钮 -->
<!-- <printEventListener></printEventListener> --> <!-- 打印事件监听器 -->
<!-- <fillinEventListener></fillinEventListener> --> <!-- 填报事件监听器 -->
<!-- <exportEventListener></exportEventListener> --> <!-- 报表导出事件监听器 --></userDef>
四、IPrintEventListener
接口说明
报表打印事件监听接口。bios.report.api.events.IPrintEventListener
方法说明
onPrintBegin
用途:打印开始前事件触发
语法:java.lang.String onPrintBegin(ReportMark rptMark, javax.servlet.http.HttpServletRequest request)
参数:rptMark - 正在运行的报表标识
request - HttpServlet请求
返回:验证通过时返回null,执行打印;否则向用户返回错误提示信息,不执行打印
onPrintEnd
用途:打印结束后事件触发
语法:java.lang.String onPrintEnd(ReportMark rptMark, javax.servlet.http.HttpServletRequest request, java.lang.String errorMessage)
参数:rptMark - 正在运行的报表标识
request - HttpServlet请求
errorMessage - 客户端打印出错时抛出的异常信息;打印正常执行完毕时为null
返回:报表打印完成或失败时,向用户返回的提示信息,为null时不提示
使用操作
这个监听只用于web项目端:
1、将设计好的监听类加载到web项目上
一是将编译好的.class文件打成jar包,将jar包放到WEB-INF/lib目录下;
二是将. class文件放到WEB-INF/classes。
2、然后在WEB-INF\resources\congfig.xml里修改<printEventListener>节点值为监听类的全路径
<!-- 用户自定义接口配置,包括工厂、事件等 --><userDef>
<!-- <reportFactory></reportFactory> --> <!-- 报表工厂,用于自定义报表加载和计算等 -->
<!-- <dataSourceFactory></dataSourceFactory>–> <!-- 自定义数据源工厂,用于通过自定义的方式获取报表数据源 -->
<!-- <toolbarFactory></toolbarFactory> --> <!-- 工具条工厂,用于自定义html工具条 -->
<!-- <toolbarButtonFactory></toolbarButtonFactory> --> <!-- 工具条按钮工厂,用于替换html工具条上的一些按钮 -->
<!-- <printEventListener></printEventListener> --> <!-- 打印事件监听器 -->
<!-- <fillinEventListener></fillinEventListener> --> <!-- 填报事件监听器 -->
<!-- <exportEventListener></exportEventListener> --> <!-- 报表导出事件监听器 --></userDef>
五、QueryEventListener
接口说明
查询表单提交后、报表查询前触发的事件,可在该事件中对提交的参数进行加工处理。bios.report.api.events.QueryEventListener
字段说明
protected javax.servlet.http.HttpServletRequest request 当前的http请求
构造方法
public QueryEventListener()
方法说明
init
用途:初始化方式,系统自动调用。(已过时)
语法:public final void init(javax.servlet.http.HttpServletRequest request, java.util.Map<java.lang.String,java.lang.String> paramsMap, java.util.Map<java.lang.String,java.lang.String> varsMap)
getParamNames
用途:获取报表中所有参数的名称
语法:protected final java.lang.String[] getParamNames()
getParamValue
用途:获取某个报表参数的值
语法:protected final java.lang.String getParamValue(java.lang.String paramName)
参数:paramName - 报表参数名称
setParam
用途:设置报表参数值,可用来完成修改或新增操作
语法:protected final void setParam(java.lang.String paramName, java.lang.String paramValue)
参数:paramName - 报表参数名称
paramValue - 新的参数值
getVarNames
用途:获取报表中所有变量的名称
语法:protected final java.lang.String[] getVarNames()
getVarValue
用途:获取某个报表变量的值
语法:protected final java.lang.String getVarValue(java.lang.String varName)
参数:varName - 报表变量名称
setVar
用途:设置报表变量值,可用来完成修改或新增操作
语法:protected final void setVar(java.lang.String varName, java.lang.String varValue)
参数:varName - 报表变量名称
varValue - 新的变量值
onQuery
用途:用户需要实现该方法,可以在该方法中对报表参数和变量进行加工处理
语法:public abstract void onQuery()
使用操作
设计器端:
选择【工具栏】->【窗口】->【首选项】->【通用配置】->【类加载配置】,在【自定义接口实现类配置】中添加自定义类,添加方式有两种,
一是将编译好的.class文件打成jar包, 点击【添加JAR】,将jar包导入;
二是点击【添加文件夹】,将包含.class文件的文件夹添加进来。
然后在报表中查询表单设计时,点击查询事件监听按钮,在查询监听事件设置中写上监听类的全路径
在这里插入图片描述
在这里插入图片描述

web应用端:
一是将编译好的.class文件打成jar包,将jar包放到WEB-INF/lib目录下;
二是将. class文件放到WEB-INF/classes。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值