以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于删除时回收单据编号的难题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=40776)

--  作者:zpx_2012
--  发布时间:2013/9/29 11:21:00
--  关于删除时回收单据编号的难题
设计了删除时会将所删除行的单据编号回收到{编号记录表}中使其状态变为未启用,下次新增单据时可以再使用这个编号,

现在的问题是:删除时已经更新了编号记录表,但用户在最后关闭窗口时又选择不保存。下次新增时会自动使用回收的那个编号造成编号重复(因为删除的单据没保存依然存在)。

系统的Syscmd.Row.Delete()命令可否在后面括号中加个false实现直接删除,无需保存。或者还有没有其他办法让不保存时把刚刚回收的编号状态又在编号记录表变更回来?

谢谢!

--  作者:狐狸爸爸
--  发布时间:2013/9/29 11:23:00
--  

你删除的时候,就直接保存,避免不同步。


--  作者:Bin
--  发布时间:2013/9/29 11:26:00
--  
不保存的话,你移动到 {编号记录表} 的数据也不会保存的啊, 自然也就没有冲突的可能性了.
--  作者:zpx_2012
--  发布时间:2013/9/29 11:42:00
--  
谢谢BIN,因为编号记录表是通过update语句更新的,即使加载了因为用户可切换到不同的窗口操作很多表,也不能因为一个表没保存就让编号记录表不保存,会影响到其他表的编号记录。
所以按狐爸的方式可能比较好,但怎么才能删除的时候,就直接保存保存啊?

DataRowDeleting,还是DataRowDeleted加句 e.datatable.save吗?还是Syscmd.Row.Delete(true)?


--  作者:狐狸爸爸
--  发布时间:2013/9/29 11:45:00
--  

Tables("某个表").Current.Delete
DataTables("某个表").Save

update语句代码


--  作者:zpx_2012
--  发布时间:2013/9/29 12:01:00
--  
因为代码全部都写在全局事件中,不能在全局事件的 DataRowDeleted加句 e.datatable.save吗? 这样比写在删除按钮简单些。好象这个 DataRowDeleted事件都没用过。
--  作者:Bin
--  发布时间:2013/9/29 12:03:00
--  
既然你可以获取到删除行的编号,自然可以获取到删除的表, 把该表保存一下即可.
--  作者:zpx_2012
--  发布时间:2013/9/29 12:12:00
--  
那是,只是感觉这样每删除一行也要去保存一下有点那个。只好先这样了,谢谢BIN.
--  作者:程兴刚
--  发布时间:2013/9/29 13:46:00
--  
一点不难,??这个: http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=26913&replyID=&skin=1