浏览式报表如何删除当前行数据

用户在使用润乾报表时,经常遇到希望删除某一条数据的需求,润乾报表的行式填报中有插入,追加,删除行的功能,但对于普通报表,就需要另想办法了。下面主要介绍下如何在报表中删除一条数据。

实现思路

通过在报表单元格中添加一个删除的超链接,超链接中调用一个 js 方法,同时传递删除数据所用到的参数以及删除后页面重定向的链接地址。Js 方法中调用一个 jsp,jsp 中实现接收参数,执行 sql 语句,最后重定向到指定页面。

实现步骤

1.创建报表模板,设置超链接

数据源使用润乾自带的 demo

数据集为:SELECT 订单. 订单 ID, 订单. 客户 ID, 订单. 订购日期, 订单. 货主地区, 订单. 运货商, 订单. 运货费 FROM 订单

超链接表达式为:“javascript:delData_jade(‘showReport.jsp?rpx=/order.rpx’,‘订单’,‘订单 ID’,’”+A2+“’)”

注意:删除一个订单只需要 table 名称,字段名称,订单 ID 即可,订单 ID 即为 A2 单元格中数据。

2. 在 showReport.jsp 中增加 JS

function delData_jade(refreshUrl,table,column,value)

{

       if( table==null || table=='' ){

              alert("删除数据表为空,请联系数据管理员");

              return false;

       }

       if( refreshUrl==null || refreshUrl=='' ){

              alert("刷新url为空,请联系系统管理员");

              return false;

       }

       if( confirm('确认删除吗?') ){

                     window.location.href = "deleteusejs.jsp?refreshUrl="+refreshUrl+"&table="+table+"&column="+column+"&value="+value;

       }

}

JavaScript 中调用 deleteusejs.jsp,同时传递参数给 jsp。

3. 定义 deleteusejs.jsp

<%@ page contentType="text/html;charset=UTF-8" %>

<%@ page import="java.io.*"%>

<%@ page import="java.net.*"%>

<%@ page import="java.util.*"%>

<%@ page import="javax.servlet.*"%>

<%@ page import="javax.servlet.http.*"%>

<%@ page import="javax.naming.*,java.sql.*" %>

<%@ page import="com.raqsoft.report.usermodel.Context"%> 

<%

//获取各参数值

String tableName1=request.getParameter("table");

String colmn1=request.getParameter("column");

String value1=request.getParameter("value");

 String refreshUrl = request.getParameter("refreshUrl");

 Connection con = null;

Statement stmt = null;

try{

//获取context对象

Context ct = new Context();

    con = ct.getConnectionFactory( ct.getDefDataSourceName() ).getConnection();

    stmt = con.createStatement();

    if(tableName1!=null&&colmn1!=null&&value1!=null&&tableName1!=""&&colmn1!=""&&value1!=""){undefined

//定义删除sql语句

           String sql="delete from "+tableName1+" where "+colmn1+"='"+value1+"'";

//执行sql语句

               stmt.executeUpdate(sql);

    }

       //提交

   con.commit();

//重定向url

   response.sendRedirect(refreshUrl);

}catch(Exception e){undefined

   e.printStackTrace();

}finally{

//关闭流

    if( stmt != null ) stmt.close();

    if( con != null ) con.close();

}

%>

页面效果

报表访问的 url:

http://localhost:6868/demo/reportJsp/showReport.jsp?rpx=/order.rpx

总结

利用此种做法不仅可实现删除功能,也可以实现添加数据,更新数据的功能。

以下是广告时间

对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅



嗯,还不太了解好多乾?
猛戳这里
玩转好多乾