实用例子
实用例子
本例子将分别打印出insert语句与update语句。代码如下:
package test;import com.runqian.report4.usermodel.input.AbstractInputListener;import com.runqian.report4.usermodel.input.InputSQL;public class PrintSQLInputListener extends AbstractInputListener {public void beforeSave()throws Exception {}public void afterSave()throws Exception {InputSQL[] abc = this.getInputSql();for(int i=0;i<this.getInputSql().length;i++){String sql = abc[i].getSql();if(sql.matches("insert.*")){//这里过滤出来insert语句,取得的语句可以在本类中执行,或用作其它。System.out.println("这是insert语句"+sql);}else{System.out.println("这是update语句"+sql);}}}}
使用8.2.jsp发布报表8.2.raq,内容如下:
<%@ page contentType="text/html;charset=GBK" %><%@ taglib uri="/WEB-INF/runqianReport4.tld" prefix="report"%><html> <head><title>润乾报表4.5</title></head><body><report:html name="report1" reportFileName="填报专题/8.2.raq"funcBarLocation="top"needPageMark="yes"inputListener="test.PrintSQLInputListener"saveDataByListener="yes"/></body></html>
其中saveDataByListener是指由预处理类来执行数据更新,这里的预处理类仅仅是作为示例,取得sql后并没有执行。
发布报表后,对页面中已经存在的数据进行修改,对没有数据的单元格添加数据,点击提交后,在控制台将分别打印出insert语句与update语句,如下图。