参数组件填报脚本举例

<< Click to Display Table of Contents >>

当前位置:  制作可视化报告 > 数据填报 

参数组件填报脚本举例

Previous pageReturn to chapter overviewNext page

不同于章节界面化设置"源字段"和"目标字段"之间的对应关系,为了满足客户的多样性的需求,参数组件的数据填报还支持用纯脚本的方式实现数据填报,可以回填的数据库依然是:oracle、MySQL、DB2、SQLServer、PostgreSQL、Derby、Gbase、Hana

 

参数组件脚本填报

例如:需要通过界面将学生基本信息的数据提交到数据库中,设计如下图所示的界面:

clip1021

首先,需要在报表中添加组件:

 姓名的输入框: "文本参数1"

 年龄的输入框:"文本参数2"

 性别的选择框:"列表参数1",在列表参数组件中绑定已经存在的数据列"性别" 或者 手动录入选项数据,并将列表参数组件设置修改为单选。

 提交按钮:"提交1"

 

选中提交按钮,设置按钮"提交时允许"的脚本:

var conn = null;

try {

  conn = createConnection(SQL, "test/sql 数据库 / 学生表 ");

/*

通过 SQL 查询创建数据库连接,其中 SQL 表示查询类型,"test/sql数据库/学生表" 表示查询的路径,也可以通过数据源创建数据库连接,如可以写成 conn = createConnection(CONNECTION, "test/ 数据源 /SQLSERVER_ 数据源 ")

*/

  var stuName = 文本参数1.value;// 获取 文本参数1 中输入的值

  var stuAge = 文本参数2.value;// 获取 文本参数2 中输入的值

  var stuSex = 列表参数1.getSelectedObjects()[0];// 获取 列表参数1 中选中的值

   var pstmt = conn.prepareStatement("insert into stu (stuName, stuAge, stuSex) values (?,?,?)");

/*

将数据插入数据库中,其中 stu 是要插入数据库的表名, stuName, stuAge, stuSex 是表 stu 中的列,分别与后面的问号相对应

*/

  pstmt.setString (1,stuName);

  pstmt.setInt (2, stuAge);

  pstmt.setString (3, stuSex);

  pstmt.executeUpdate();

  conn.commit();

  }

// 将获取到的 stuName, stuAge, stuSex 值插入到数据库中并更新数据库

catch(e){

  try {

     if(conn != null) {

        conn.rollback();

     }

  }

  catch(e1) {

        }

  debug("Update DataBase Error: " + e);

}

finally {

    if(conn != null) {

     try {

         conn.close();

     }

     catch(e2) {

            }

  }  

}

 

编辑完成后进入预览模式或者查看报告中查看报表,在界面中依次输入 "黄晓明"、27、"男",点击提交后数据入库,等价于直接在数据库执行sql:insert into stu (stuName, stuAge, stuSex) values ("黄晓明",27,"男");