以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  新增行自动增加序号问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147468)

--  作者:15666282205
--  发布时间:2020/3/17 16:52:00
--  新增行自动增加序号问题
老师,我用下面的代码,新增行时自动增加序号,我用的筛选树显示内容,如果显示一部分内容时,序号是按显示的最大值增加1,这样不合适,而在另一个表里,同样的代码,是按所有数据最大值加1,这样才正确,为什么前一个表不正确呢?代码是一样的。序号也设置为不允许重复,可照样有重复的。

e.DataRow("编号") = e.DataTable.Compute("Max(编号)") + 1

[此贴子已经被作者于2020/3/17 16:53:30编辑过]

--  作者:有点蓝
--  发布时间:2020/3/17 17:01:00
--  
显示的一部分数据里如果包含最大值,当然就没有问题;如果没有当然就有问题。

e.DataRow("编号") = e.DataTable.sqlCompute("Max(编号)") + 1
e.DataRow.save

--  作者:15666282205
--  发布时间:2020/3/18 9:19:00
--  
老师,又出现一个问题,如果连续新增,代码读后台的序号,新增的是同一个序号,它不判断当前显示的最新序号,因为新增的没保存到后台,怎么解决?
--  作者:有点蓝
--  发布时间:2020/3/18 9:40:00
--  
2楼有保存的代码,自己写的代码自己加上保存即可。如果是批量新增的,第二行新增的可以直接取第一个新增的+1
--  作者:15666282205
--  发布时间:2020/3/18 9:47:00
--  
老师,我看了,我已经把2楼的代码放在表的datarowadding里,间隔时间长一点也是这个情况,加的同一个编码
--  作者:有点蓝
--  发布时间:2020/3/18 9:59:00
--  
请上传实例测试
--  作者:15666282205
--  发布时间:2020/3/18 10:00:00
--  
老师,需要新增一个手工点保存,才能正常继续新增序号
--  作者:有点蓝
--  发布时间:2020/3/18 10:10:00
--  
以下是引用15666282205在2020/3/18 9:47:00的发言:
老师,我看了,我已经把2楼的代码放在表的datarowadding里,间隔时间长一点也是这个情况,加的同一个编码

把代码改为放到datarowadded
--  作者:15666282205
--  发布时间:2020/3/18 10:53:00
--  
好了,老师,谢谢