美文网首页
2019-10-15

2019-10-15

作者: 来个摩卡 | 来源:发表于2020-12-19 23:39 被阅读0次

    报表

    1. 首先ctrl+shift+R,先找到报表所在文件夹

    2. 右键新建报表

    3. 在如图所示菜单中设置数据集和参数

      ![img](file:///C:/Users/Administrator.NEU-20160926CDQ/Desktop/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/img/%E9%A3%9E%E9%B8%BD%E6%88%AA%E5%9B%BE20180612165328.png?lastModify=1528793657)

      先设置参数:参数为整张报表所需要的所有参数

      再设置数据集:这里数据集为报表中所要显示的数据,数据集可以多个

      注意:

      1. 在设置数据集时需要编写sql语句,sql语句查询出的列要有伪列名,伪列为报表中每一个单元格的值

      2. 当sql语句中有参数时,我们上一步所设置的参数就起作用了,参数书写形式为$ac01_aac001

        select ac01.aac001 aac001,ac02.aae140 aae140,ac02.aac008 aac008,ab01.aab004 aab004
        from ac01,ac02,ab01
        where ac01.aac001 = ac02.aac001
        and ac02.aab001 = ab01.aab001
        and ac01.aac001 = $ac01_aac001 
        and ac02.aae140 = $ac02_aae140
        
    4. 往报表模板中传入sql语句

      按住数据集中的伪列,如AAC001,拖拽到个人编号下(想显示的位置)

      选择查询,点击确定,注意:刚画好的报表要发布!

    5. 接下来就是前台页面,在前台中,报表是附着在html控件上的,因此要在前台中放置html控件

      设置html代码

      <iframe id="reportiframe" src="" style="height: 480px;width:700px; position: relative;">
      </iframe>
      

      在打印报表按钮的点击事件中编写传参的代码,这里我以个人编号和险种类型两个参数为例

      var ac01_aac001 = trim(unieap.byId("AC01_AAC001").getValue());
      var ac02_aae140 = "41";
      

      接下来就是将查询到的值显示到报表上

      document.getElementById(unieap.getRealId("reportiframe")).src =
        unieap.WEB_APP_NAME+"/Report-ResultAction.do?reportId=d0993d99-3400-4e7e-8dbc-9fb26b645dd4&newReport=true&encode=true&ac01_aac001="+encodeto64(ac01_aac001)
          +"&ac02_aae140="+encodeto64(ac02_aae140);
      

      还有一种写法:

      var reportID="d0993d99-3400-4e7e-8dbc-9fb26b645dd4";
      var condition ="&ac01_aac001=" + encodeto64(ac01_aac001) +"&ac02_aae140=" + encodeto64(ac02_aae140);
      document.getElementById(unieap.getRealId("reportiframe")).src = unieap.WEB_APP_NAME
               + "/Report-ResultAction.do?reportId="
               + reportID
               + "&newReport=true&encode=true" + condition;
      

      注意:这里document.getElementById(unieap.getRealId("reportiframe")).src中的id不同于标准的js写法

    报表的一些方法

    序号

    =seqNum()

    自增序列,需要依赖行,比如aac001,有一条aac001就有一个序列号

    =get( 'ds1', 'ROWNUM')

    随sql语句中rownum产生的序号

    =offSet('D4'+1)

    这种序号在做分页时,每一页的第一条数据的序号都从1开始

    相关文章

      网友评论

          本文标题:2019-10-15

          本文链接:https://www.haomeiwen.com/subject/fdwsmctx.html