2019-10-15

报表

  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代码

    
    

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

    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)