通过控制按钮跳转两个大同小异的画面

相同的画面信息,只有个别按钮不同时,通过拼接参数进行控制按钮的显示

由以上画面可以看到,通知书列印和通知书补印的区别是一个画面有批量下载按钮,而另一个无此按钮,这时如果不想写两个相同的画面增加劳动力,则可以通过以下方式来实现一个页面实现两个页面的效果。

第一步:在进行数据库菜单配置时,给两个画面的地址后拼接参数prtflag,其值为0或1.

第二步:input.jsp页面里面在html标签外部引入参数prtflag。

<%
    String prtflag = request.getParameter("prtflag");
%>

第三步:input.jsp页面给批量下载按钮添加id作为标志。

<input class=cssButton TYPE=button value="批量下載" id="download" onClick="Physicalhealthdownloads();">

第四步:input.jsp页面引入隐藏标签prtflag。

<input type="hidden" name="prtflag" id="prtflag" value="<%=prtflag%>"><%--打印標誌--%>

第五步:在init.jsp页面进行初始化页面的时候进行控制,如果参数为0则是列印画面,如果参数为1则是补印画面,补印画面需要对批量下载的按钮进行隐藏。

//初始化页面
function initForm(){
    try {
        //获取prtflag参数,如果他为0的话,则是列印,为1则为补印,需要隐藏批量下载按钮
        if($("#prtflag").val()==1){
            //此处使用的是jQuery的隐藏元素的方法:$("#test").hide() - 隐藏所有 id="test" 的元素,即这里指的是隐藏所有id="download"的元素
            $("#download").hide();
        }
        initPhysicalhealthGrid();
    }catch (ex){
        alert("界面初始化失敗")
    }
}

第六步:针对两个不同画面进行值的查询时将标志作为参数传入:

function queryPhysicalhealthGrid(){
    var date = document.getElementById('startDate').value;
    var date1= document.getElementById('enddate').value;
    if((date == "" && date1 != "" ) ||(date != "" && date1 == "")){
        alert("日期輸入不完整,請重新輸入。")
        return;
    }
    if(date > date1){
        alert("日期區間起期大於迄期,請重新輸入。");
        return;
    }
    var tcodeno = fm.contno.value;
    var tinsureid = fm.insureid.value;
    var tstartDate = fm.startDate.value;
    var tenddate = fm.enddate.value;
    var mySql=new SqlClass();
    mySql.setModule("ind_print_pa"); mySql.setResourceName("bq.PhysicalHealthSql"); mySql.setSqlId("PhysicalHealthSql1");
    mySql.addPara(tcodeno);
    mySql.addPara(tinsureid);
    mySql.addPara(tstartDate);
    mySql.addPara(tenddate);
 //此处将打印标志作为参数传入
 mySql.addPara($("#prtflag").val()); turnPageGrid.queryModal(mySql.getString(),PhysicalhealthGrid);
}

第七步:进入到controller层,执行查询方法,调用查询的sql,将查到的值返回到前端页面。

controller层
@ApiOperation("綜合列印-->保全列印-->身體健康檢查通知書列印-->查詢")
    @ResponseBody
    @PostMapping(value = "/bq/PhysicalHealthSql/Query/PhysicalHealthSql1")
    public String query(@RequestBody RequestInfo requestInfo, HttpSession session, HttpServletRequest request) {
        return super.query(requestInfo, session, request);
    }
sql层
@SQL(value = "select (select c.PRTSEQ from LIS.LOPRTMANAGER c where c.OTHERNO=b.EDORACCEPTNO and c.CODE='BQ105'),a.CONTNO,b.RISKNAME," +
            "    floor(months_between(b.MAKEDATE,a.CVALIDATE)/12) + 1 interval, (select ldcontstate.MAINSTATENAME from ldcontstate where ldcontstate.MAINSTATE=b.state) contstate," +
            "       b.appntname,b.INSUREDNAME,a.STARTCONTDATE,b.MAKEDATE from lcpol a ,lpchangePoltypedetail b where a.CONTNO=b.CONTNO and a.POLNO=b.POLNO and b.DEALFLAG is null" +
            "    @{0} @{1} @{2} @{3} @{4} order by a.CONTNO asc,b.MAKEDATE desc", clauses = {
            @Clause(key = 0, clause = "and a.contno='#{para0}'", expression = "#{para0} != empty"),
            @Clause(key = 1, clause = "and exists(select 1 from lcinsured d where d.CONTNO=a.contno and a.INSUREDNO=d.INSUREDNO and d.IDNO='#{para1}')", expression = "#{para1} != empty"),
            @Clause(key = 2, clause = "and b.MAKEDATE>= '#{para2}'", expression = "#{para2} != empty"),
            @Clause(key = 3, clause = "and b.MAKEDATE <='#{para3}'", expression = "#{para3} != empty"),
            @Clause(key = 4, clause = "and exists (select 1 from LIS.LOPRTMANAGER c where c.OTHERNO=b.EDORNO and c.CODE='BQ105' and nvl(PatchFlag,'0')='#{para4}')", expression = "${para4} != empty")})
    SSRS PhysicalHealthSql1(@Param("para0") String para0, @Param("para1") String para1, @Param("para2") String para2, @Param("para3") String para3, @Param("para4") String para4);

注意:

  • 其中查询的controller层的查询方法上面的@PostMapping里的值是sql类的存放路径,最后一个值是引用的sql名。如:/bq/PhysicalHealthSql/Query/PhysicalHealthSql1,其中PhysicalHealthSql1是sql类里面的查询方法名字。
  • nvl(ex1,ex2)函数,当ex1为空的时候,选择ex2作为值返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miracle8998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值