反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

JS实现钻取到子页面进行填报

  • 文档创建者:狗叼蛤蟆
  • 历史版本:9
  • 最近更新:Alicehyy 于 2021-09-23
  • 1. 概述

    1.1 预期效果

    制作填报报表时,希望主模板只用来查看主要数据或基础信息,通过 超级链接-网络报表 的形式到子模板「预览」或「编辑」详细内容,预期效果如下:

    1618305045116158.gif

    1.2 实现思路

    在主模板中设置「复选按钮控件」和「按钮控件」,在「按钮控件」中添加「点击」事件,使用 JavaScript 获取被勾选的复选框对应的「雇员ID」作为动态参数,使用 FR.doHyperlinkByGet 超链接方法传递动态参数并打开相应子模板。

    2. 示例

    示例中要使用的子模板是在%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\自由填报报表.cpt 的基础上修改的,详情可参考:自由报表填报

    故示例中主模板的数据来源也为「雇员」表(也可为其他数据表,但表间需有关联字段。)

    2.1 设计主模板

    2.1.1 数据准备

    新建普通报表,新建数据库查询 ds1,SQL 查询语句为:SELECT * FROM 雇员

    1618284126357527.png

    2.1.2 设计报表

    1)将数据集中几个最基本的信息字段拖入表格,设计表格样式如下图所示:

    1618296580366199.png

    2)在「雇员ID」和「姓名」中间插入 4 列,表格样式如下图所示:

    单元格具体设置如下表:

    单元格
    内容
    左父格上父格扩展方向
    B2按钮控件默认
    默认不扩展
    B3复选按钮控件
    默认默认纵向扩展
    C2插入公式 C3不扩展
    C3插入公式 if(B3 = "true", A3, "")默认默认纵向扩展
    D2按钮控件默认
    默认不扩展
    D3复选按钮控件
    默认默认纵向扩展
    E2插入公式 E3不扩展
    E3插入公式 if(D3 = "true", A3, "")默认默认纵向扩展

    注:C3、E3 单元格的 IF 公式表示当「复选按钮」选中时,返回对应的「雇员ID」,否则返回空。C2、E2 单元格的公式表示获取返回的 C3、E3 单元格的值。

    3)隐藏 C 列、E 列。

    2.1.3 按钮控件设置

    1)设置 B2、D2 单元格的按钮控件名字分别为「预览」和「编辑」,也可自定义按钮图标。如下图所示:

    1618299422496073.png

    2)给 B2 按钮添加一个「点击」事件,输入 JavaScript 代码如下:

    var v1=contentPane.getCellValue(0,2,1);//获取 C2 单元格值
    var url= "${servletURL}?reportlet=/doc/Form/MultiFormReport/员工信息登记表.cpt";//子模板路径
    FR.doHyperlinkByGet(url,{A:v1},'REPORT','_dialog');//以超链形式打开子模板,并传递参数 A,值为 v1

    注:参数 A 为子模板数据集中定义的参数。

    Snag_68aa48e.png

    3)同理给 D2 单元格添加一个「点击」事件,其 JavaScript 代码如下所示:

    var v1=contentPane.getCellValue(0,4,1);//获取 E2 单元格值
    var url= "${servletURL}?reportlet=/doc/Form/MultiFormReport/员工信息登记表.cpt&op=write&__cutpage__=v";
    FR.doHyperlinkByGet(url,{A:v1},'REPORT','_dialog');

    注:子模板路径后的 &op=write 表示是「填报预览」,&__cutpage__=v 表示填报预览时分页显示。

    Snag_693b6b3.png

    2.1.4 填报页面设置

    当主模板只用来预览,钻取子模板时,可以将「模板>模板 Web 属性>填报页面设置」修改为「为该模板单独设置」,然后取消勾选「未提交离开提示」。

    1618304007844931.png

    2.1.5 保存报表

    将报表另存为:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiFormReport\员工基础信息表.cpt

    2.2 设计子模板

    2.2.1 准备模板

    打开内置模板 %FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\自由填报报表.cpt

    或点击下载模板:自由填报报表.cpt

    2.2.2 数据准备

    将数据库查询语句修改为:SELECT * FROM 雇员 where 雇员ID in ('${replace(A,",","','")}') 。如下图所示:

    注:这里的参数 A 对应主模板 JavaScript 代码中的参数 A。

    Snag_69f25e2.png

    2.2.3 报表设计

    将第一行空白行删除,选中除了「雇员ID」单元格以外所有有数据的单元格,将它们的「左父格」设置为「雇员ID」所在单元格 C3。如下图所示:

    Snag_6a73e26.png 

    2.2.4 设置分页

    设置分页后,在点击「预览」或「编辑」按钮打开的新页面中,子模板将以分页的形式展示。

    选中 B1 单元格,设置「单元格属性>其他>分页」为「行前分页」即可。

    Snag_6ab6449.png

    2.2.5 保存报表

    将报表另存为:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiFormReport\员工信息登记表.cpt

    注:子模板路径需与主模板 JavaScript 代码中所写路径保持一致。

    2.3 效果预览

    2.3.1 PC 端

    在主模板「员工基础信息表」中点击「填报预览」,效果与 1.1 节预期效果一致。

    注:不支持 IE 浏览器。

    2.3.2 移动端

    App 端和 HTML5 端均支持,效果如下图所示:

    94A66362-514C-4A59-8C7F-627C853EE5C4.GIF

    3. 模板下载

    已完成模板可参见:

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiFormReport\员工基础信息表.cpt

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiFormReport\员工信息登记表.cpt

    点击下载模板:

    员工基础信息表.cpt

    员工信息登记表.cpt

    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526