普通报表的删除功能

    xiaoxiao2021-12-14  17

    

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

    一:实现思路

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

    二:实现步骤

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

    数据源使用润乾自带的demo

    数据集为:SELECT 产品.产品ID,产品.产品名称,产品.单价,产品.单位数量,产品.库存量 FROM 产品

    超链接表达式为:"javascript:delData_jade('showReportDJ.jsp?raq=/deleteusejs/deleteusejs.raq','产品','产品ID','"+A2+"')"

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

    2:定义JavaScript

    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:定义jsp

    <%@ page contentType="text/html;charset=gb2312" %>

    <%@ 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.runqian.report4.usermodel.*"%>

     

    <%

    //获取各参数值

    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对象

        com.runqian.report4.usermodel.Context ct = new com.runqian.report4.usermodel.Context();

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

        stmt = con.createStatement();

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

    //定义删除sql语句

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

    //执行sql语句

                   stmt.executeUpdate(sql);

        }

           //提交

       con.commit();

    //重定向url

       response.sendRedirect(refreshUrl);

    }catch(Exception e){

       e.printStackTrace();

    }finally{

    //关闭流

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

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

    }

    %>

    三:执行效果。

    四:总结

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

    转载请注明原文地址: https://ju.6miu.com/read-965484.html

    最新回复(0)