永洪社区

标题: 填报表导入excel后提交不生效的问题 [打印本页]

作者: yhdata_guqbuSJt    时间: 2024-6-7 16:10
标题: 填报表导入excel后提交不生效的问题
提交不是用填报提交的方式   是编辑了提交脚本提交的   在填报参数报表插入更新删除数据后点击提交生效  导入excel再提交就不生效 请问是什么原因呢

作者: yhdata_lyaa    时间: 2024-6-7 16:31
后来导入excel的数据没有更新删除吗
作者: yhdata_guqbuSJt    时间: 2024-6-7 16:34
yhdata_lyaa 发表于 2024-6-7 16:31
后来导入excel的数据没有更新删除吗

有插入有更新 没有删除   不过我刚看了一下帮助文档  用excel导入数据的话是不是不能用脚本的方式提交   只有设置填报参数用填报提交的方式才能提交呢   
作者: yhdata_guqbuSJt    时间: 2024-6-7 16:41
yhdata_lyaa 发表于 2024-6-7 16:31
后来导入excel的数据没有更新删除吗

版本是8.6
作者: yhdata_guqbuSJt    时间: 2024-6-7 16:47
yhdata_lyaa 发表于 2024-6-7 16:31
后来导入excel的数据没有更新删除吗

我说的脚本是连接数据库那种方式的JavaScript脚本
作者: yhdata_guqbuSJt    时间: 2024-6-7 16:48
yhdata_lyaa 发表于 2024-6-7 16:31
后来导入excel的数据没有更新删除吗

var conn = null;
try {
conn = createConnection(SQL, "test/sql 数据库 / 学生表 ");
  /*
通过 SQL 查询创建数据库连接,其中 SQL 表示查询类型, "test/sql 数据库 / 学生表 " 表示查询的路径,也可以通过数据源创建数据库连接,也 conn = createConnection(CONNECTION, "test/ 数据源 /SQLSERVER_ 数据源 ")
*/
var fgrid = getData(" 填报参数 1"); // " 填报参数 1" 表示填报参数组件的名称
var rowsOld = fgrid.rows(ORIGINAL); // 无变化的数据行
var rowsAdded = fgrid.rows(ADDED); // 增加的数据行
var rowsChanged = fgrid.rows(MODIFIED); // 更改数据行
var rowsDeleted = fgrid.rows(DELETED); // 删除数据行
if(rowsAdded != null){
var pstmt = conn.prepareStatement("insert into stu (stuName, stuAge, stuSex) values (?,?,?)");
/*
将数据插入数据库中,其中 stu 是要插入数据库的表名,stuName, stuAge, stuSex 是表 stu 中的列,分别与后面的问号相对应
*/
for(var i = 0; i < rowsAdded.length; i++){
pstmt.setString (1, rowsAdded.stuName);
pstmt.setInt (2, rowsAdded.stuAge);
pstmt.setString (3, rowsAdded.stuSex);
pstmt.executeUpdate();
  }
}
/*
遍历所有行并更新数据库 , stuName, stuAge, stuSex 是填报参数中的列名分别与 values 中的问号相对应, string, int 分别表示对应列的数据类型
*/
if(rowsDeleted != null) {
var pstmt = conn.prepareStatement("delete from stu where stuId=?");
// 删除某一行, stu 是数据库中表的名字, stuId 是表的主键
   for(var i = 0; i < rowsDeleted.length; i++){
pstmt.setInt(1, rowsDeleted.stuId);
pstmt.executeUpdate();
   }
}
/*
遍历所有行并更新数据库 , stuId 是表格 stu 的主键,与 where 条件中的问号对应, int 表示 stuId 的数据类型
*/
if(rowsChanged != null){
var pstmt = conn.prepareStatement("update stu set stuName=?, stuAge=?, stuSex=? where stuId=?");
/*
更新数据库中数据,其中 stu 是要更新数据库的表名, stuName, stuAge, stuSex 是表 stu 中的列, stuId 是表的主键
*/
   for(var i = 0; i < rowsChanged.length; i++) {
pstmt.setString(1, rowsChanged.stuName);
pstmt.setInt(2, rowsChanged.stuAge);
pstmt.setString(3, rowsChanged.stuSex);
pstmt.setInt(4, rowsChanged.stuId);
pstmt.executeUpdate();
  }
}
}
/*
遍历所有行并更新数据库 , stuName, stuAge, stuSex 是填报参数中的列名分别与上面语句中的问号相对应, string, int 分别表示对应列的数据类型
*/
catch(e){
try {
   if(conn != null) {
      conn.rollback();
    }
}
catch(e1) {
}
debug("Update DataBase Error: " + e);
}
finally {
  if(conn != null) {
     try {
             conn.commit();
             fgrid.updateFlag();
             conn.close();
     }
     catch(e2) {
     }
  }
}
作者: yhdata_guqbuSJt    时间: 2024-6-7 16:49
yhdata_lyaa 发表于 2024-6-7 16:31
后来导入excel的数据没有更新删除吗

不是那种insert() update() remove()的脚本
作者: yhdata_lyaa    时间: 2024-6-7 16:57
yhdata_guqbuSJt 发表于 2024-6-7 16:34
有插入有更新 没有删除   不过我刚看了一下帮助文档  用excel导入数据的话是不是不能用脚本的方式提交    ...

是的,你设置填报参数用填报提交的方式可以提交导入的excel吗




欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4