tdsuperman 发表于 2024-4-24 14:13:58

如何实现在流程表单里查询自建数据表内的数据并赋值

请问,如何在流程表单里实现查询自建数据表内的数据并赋值。
数据中心里有个 自建数据表A

No(编号)Name(姓名)Age(年龄)
1张三29
2李四33
3王二32
举例:在ProjectNo输入1,通过查询数据表A,把对应Name的值“张三”赋值给ProjectName

xadmin 发表于 2024-4-24 15:18:52

在第一个输入字段的change事件里可以写脚本,查询自建表数据,并将返回的数据通过this.data.xxx = "值"的方式赋值给另一个字段
查询自建表数据的方法如下:



tdsuperman 发表于 2024-4-25 09:46:43

xadmin 发表于 2024-4-24 15:18
在第一个输入字段的change事件里可以写脚本,查询自建表数据,并将返回的数据通过this.data.xxx = "值"的方 ...

ProjectNo字段里change事件里可以写脚本,查询字段projectNo等于TX2024-001的数据:

var table = new this.Table("ProjectStatisticsTable");
table.listRowSelect( "o.projectNo = 'TX2024-001'", function(data){
   this.data.ProjectName = data.data.projectName;
},function(xhr){});

然后再ProjectNo字段输入任何东西,ProjectName字段里不会出现任何字符,完全没有反应
但是我数据表查询里通过 SELECT o.projectName FROM ProjectStatisticsTable o where o.projectNo = 'TX2024-001',是可以正常查询到 projectName : ”测试项目3“这个数据的

问题1、是不是我脚本写错了?
问题2、table.listRowSelect( "o.projectNo = 'TX2024-001'", function(data)   这段脚本中,如何把TX2024-001 这个直接赋值,换成this.data.ProjectNo输入赋值?

tdsuperman 发表于 2024-4-25 16:38:57

xadmin 发表于 2024-4-24 15:18
在第一个输入字段的change事件里可以写脚本,查询自建表数据,并将返回的数据通过this.data.xxx = "值"的方 ...

var table = new this.Table("ProjectStatisticsTable");
var C = "o.projectNo = " + "'" + this.data.ProjectNo + "'";
var X = table.listRowSelect( C, function(data){});
this.data.ProjectName = X.data.projectName;

上面这段脚本 写在表单 ProjectNochange事件里,没用,ProjectName 不会被赋值
但是 写在流程 的里面的 活动执行后 环节,流程表单提交后,打开相关流转中工作,可以看到ProjectName 会被正确赋值
这要怎么解决?

论坛管理员 发表于 2024-4-26 09:44:02

F12跟踪一下,看看有没有报错,数据有没有正确拿到

tdsuperman 发表于 2024-4-26 10:37:56

论坛管理员 发表于 2024-4-26 09:44
F12跟踪一下,看看有没有报错,数据有没有正确拿到

是这样吗?

论坛管理员 发表于 2024-4-28 09:43:48

不要在表单预览界面调试脚本,实际发起一个流程实例去测试

tdsuperman 发表于 2024-4-28 10:17:18

论坛管理员 发表于 2024-4-28 09:43
不要在表单预览界面调试脚本,实际发起一个流程实例去测试

实际发起一个流程实列也是一的


tdsuperman 发表于 2024-4-28 12:00:36

论坛管理员 发表于 2024-4-28 09:43
不要在表单预览界面调试脚本,实际发起一个流程实例去测试

在脚本里 加了一条 “console.log(X);”



var table = new this.Table("ProjectStatisticsTable");
var C = "o.projectNo = '" + this.data.ProjectNo + "'";
var X = table.listRowSelect( C, function(data){});
console.log(X);
this.data.ProjectName = X.data[0].projectName;


调试的时候 数据已经查询出来了,但是赋值 报错了

页: [1]
查看完整版本: 如何实现在流程表单里查询自建数据表内的数据并赋值