JS实现给填报控件赋值

  • 文档创建者:印然
  • 编辑次数:12次
  • 最近更新:Leo.Tsai 于 2020-08-20
  • 1. 概述

    1.1 应用场景

    编辑完一个控件的值后,自动给其他填报控件或单元格赋值。示例中编辑完姓名后性别默认赋值为女,如下图所示:

    01A1E80D-FD44-41D9-8A89-E7A173E41C6B.GIF

    1.2 实现思路

    给控件添加编辑结束事件动态地给其他控件或单元格赋值。

    不管是单元格还是控件,都是用contentPane.setCellValue([reportIndex], columnIndex, rowIndex, cv);或者contentPane.setCellValue("单元格",null, cv);来赋值。

    reportIndex指定单元格或控件所在的 sheet,从 0 开始。

    columnIndex指定单元格或控件所在的列,从 0 开始。

    rowIndex指定单元格或控件所在的行,从 0 开始。

    cv表示需要赋给单元格或控件的值。

    用法示例:contentPane.setCellValue(1,2,3,"abc");表示给 sheet2 的第 3 列第 4 行即单元格 C4 赋值 abc。

    注:给控件所在单元格赋值应该使用 setCellValue,不建议使用 setValue,这种方式要求填写时焦点必须在该单元格,否则会有赋值无效的情况。

    2. 示例

    2.1 设计报表

    设计填报表格,其中 B2、E2、E3 单元格添加文本控件,B3 单元格添加单选按钮组控件,B4 单元格添加文本域控件,如下图所示:

    Snag_2371411c.png

    2.2 设置填报属性

    设计器菜单栏选择模板>报表填报属性,新增一个内置 SQL 提交,设置如下图所示:

    1597887732163841.png

    2.3 添加事件

    选中 E2 单元格,给文本控件添加一个编辑后事件,实现该控件编辑后可以给 B3 单元格自动赋值,如下图所示:

    Snag_2379406a.png

    JavaScript 代码如下:

    var a = this.getValue();
    contentPane.setCellValue(0,0,a+"个人信息登记表");
    contentPane.setCellValue("B3",null,"女");

    注:在 702 版本以及 702 之前的版本,如果使用到 contentPane.curLGp.setCellValue(cell,null,cv)给单元格或控件赋值,需要修改成 contentPane.setCellValue()的方式来赋值,否则在提交的时候不会入库,即contentPane.curLGp.setCellValue(cell,null,cv)是赋显示值,而非实际值。

    2.4 预览效果

    1)PC 端

    保存报表,选择填报预览,效果如下图所示:

    01A1E80D-FD44-41D9-8A89-E7A173E41C6B.GIF

    2)移动端

    支持坐标赋值:contentPane.setCellValue([reportIndex], columnIndex, rowIndex, cv)

    不支持单元格赋值:contentPane.setCellValue("单元格",null, cv)

    3. 模板下载

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\47-JS给填报控件(单元格)赋值.cpt

    点击下载模板:47-JS给填报控件(单元格)赋值.cpt

    附件列表


    主题: 二次开发
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!