历史版本2 :JS实现钻取到子页面进行填报 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本JAR 包版本App 版本
10.02020-03-25


1.2 预期效果

    在主模板中使用复选框选中需要预览\填报的子模板,点击按钮打开选定的子模板进行预览\填报,在子模板中执行相应的操作。

    主子模板可不同。

01.gif

1.3 实现思路

      在主模板中设置复选框按钮,使用js获取勾选后值作为动态参数,使用FR.doHyperlinkByGet超链接方法传递动态参数并打开相应子模板。

2. 示例编辑

2.1 模板设计

主模板设计

数据准备:新建数据集ds1:SELECT * FROM 雇员(使用内置数据连接FRDemo,下同)

模板设计:

模板布局如上图。

C2单元格设置公式:=C3

E2单元格设置公式:=E3;

C2、E2单元格扩展方式均为不扩展或默认。


B3、D3单元格设为复按钮控件。扩展方式均为默认。


C3单元格设置公式:=if(B3 = "true", A3, "")

E3单元格设置公式:=if(D3 = "true", A3, "")

C3、E3单元格扩展方式均为默认。


B2、D2设为按钮控件,设为按钮控件设置好按钮图标,文字(B2进行分页预览动作,D2进行填报分页预览动作);


B2按钮添加点击事件:

无标题1.png

注:var v1=contentPane.getCellValue(0,2,1); 表示获取C2单元格值。

      var url= "${servletURL}?reportlet=/doc/Advanced/PrintReport/动态预览-填报子模板.cpt";加粗部分表示子模板路径;

     FR.doHyperlinkByGet(url,{A:v1},'REPORT','_dialog');表示以超链方式打开模板,传递参数为A,值为v1;

代码如下:

var v1=contentPane.getCellValue(0,2,1);
var url= "${servletURL}?reportlet=/doc/Advanced/PrintReport/动态预览-填报子模板.cpt";
FR.doHyperlinkByGet(url,{A:v1},'REPORT','_dialog');



D2按钮添加点击事件:

var v1=contentPane.getCellValue(0,4,1);
var url= "${servletURL}?reportlet=/doc/Advanced/PrintReport/动态预览-填报子模板.cpt&op=write&__cutpage__=v";
FR.doHyperlinkByGet(url,{A:v1},'REPORT','_dialog');

注:var v1=contentPane.getCellValue(0,4,1); 表示获取E2单元格值。

   var url= "${servletURL}?reportlet=/doc/Advanced/PrintReport/动态预览-填报子模板.cpt&op=write&__cutpage__=v";加粗部分表示子模板以分页填报方式打开模板;

     FR.doHyperlinkByGet(url,{A:v1},'REPORT','_dialog');表示以超链方式打开模板,传递参数为A,值为v1;


最后,隐藏C、E两列。

完成的模板命名为动态预览-填报主模板.cpt

保存在\webapps\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport目录下


子模板设计

    数据准备:新建数据集ds1:SELECT * FROM 雇员 where 雇员ID in ('${replace(A,",","','")}') (使用内置数据连接FRDemo

    按上图方式设计好子模板,第一行设置为重复标题行。并设置好模板填报属性;

    按下图将A2单元格设置好分页显示条件格式。

无标题.2png.png

注:公式(row() - 1) % 1 = 0 表示每行分页。


     完成的模板命名为动态预览-填报子模板.cpt

    保存在\webapps\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport目录下

2.2 效果预览

    PC端效果预览见1.2章节。

    HTML5端已验证通过(略)。

    均支持以IP直接访问数据决策系统的方式打开预览。

3. 模板下载编辑

点击下载模板:

动态预览-填报主模板.cpt

动态预览-填报子模板.cpt


     注:应将上述模板置于:\webapps\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport下进行预览。

4. 注意事项编辑

      提示:FR.doHyperlinkByGet(url,{A:v1},'REPORT','_dialog');中,A参数名称,非为字段名,很容易被误导,其对应的是子模板引用的数据集参数。