Erik.Xue 发表于 2020-6-23 16:57:15

看完必恍然大悟的活字格内幕:四十四、使用服务端命令对主子表添加数据时的坑

本帖最后由 Erik.Xue 于 2020-6-23 16:59 编辑

活字格6.0版本至今已经发布有3个多月了哈~各位有没有觉得新版本新功能用起来很“舒爽”呢?
想必服务端命令大家一定都不陌生了,别说不知道,不知道的小伙伴小心我的四十米长刀~


再多问一嘴,知道服务端命令的小伙伴用的怎么样呢?6不6,当然啦,肯定大神一片一片的,必须6啊~!

各位在使用服务端命令时,如果选择数据包操作命令,有没有注意到有一个新纪录参数名,如图:


我们鼠标放在蓝色问好气泡上,可以看到:
最新插入的记录的值会保存到此参数中以备后续逻辑使用。

这是什么意思呢?有编程经验的小伙伴肯定都知道全局变量的概念,在活字格这里,可以认为这里就是生成一个新的全局变量。

在不断生成新的数据后,也在不停的更新全局变量的值。

问题背景:

按照以往的操作,设置好主表数据表操作命令后,接下来就是使用循环命令对子表数据进行添加操作。


那么,我们设置好之后,来看看效果哈~


有没有发现问题出现~!!!



按理说,子表对应的主表ID都应该是5,但是现在第一条数据是5,之后又从1开始了。。。

为什么呢?

这里为大家揭开谜底,因为在设置数据表操作命令时,主表数据表操作命令和子表数据表操作命令的新记录参数名设置的一模一样,如图:


因为参数名一样,刚才说的全局变量就相当于是在执行主表数据表操作命令时,全局变量NewRow被设置成了5,但是进行循环命令进行循环添加子表数据时,全局变量却又被赋值为1,所以就导致了上面情况的发生。

解决办法:

很简单,把全局变量变成局部变量就可以了呗~

改成两个不同的名字,这样一来,你主表的NewRow存主表的,你子表的NewRow存子表的,互不影响,也就没有错啦~~

再来看看效果:


怎么样,是不是恢复正常了呢?学会了吗?

附件中是工程文件,各位小伙伴可以试试哦~~


页: [1]
查看完整版本: 看完必恍然大悟的活字格内幕:四十四、使用服务端命令对主子表添加数据时的坑