以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在单据保存时,这样判断正在新建的销售订单中的销售明细记录数是否为空对吗  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26801)

--  作者:jinruan
--  发布时间:2012/12/14 14:40:00
--  在单据保存时,这样判断正在新建的销售订单中的销售明细记录数是否为空对吗
Dim dr As DataRow
dr = DataTables("销售明细").Find("销售订单id = " &  Tables("销售订单").Current("销售订单id"))
If dr IsNot Nothing Then \'如果找到的话
    DataTables("销售订单").Save
    DataTables("销售明细").Save
Else
    MessageBox.Show("单据明细不可为空")
End If

图片点击可在新窗口打开查看此主题相关图片如下:99999.jpg
图片点击可在新窗口打开查看



[此贴子已经被作者于2012-12-14 14:46:06编辑过]

--  作者:lin_hailun
--  发布时间:2012/12/14 14:48:00
--  
 只是保存当前行吗?

 如果是,可以这样写。

--  作者:jinruan
--  发布时间:2012/12/14 15:15:00
--  
对,这是一张新单,只保存下  销售订单 当前行,与销售明细  的这10行
--  作者:jinruan
--  发布时间:2012/12/14 15:16:00
--  
DataTables("XXX") 中的记录是否包含了未保存的记录?
--  作者:lin_hailun
--  发布时间:2012/12/14 15:20:00
--  
以下是引用jinruan在2012-12-14 15:16:00的发言:
DataTables("XXX") 中的记录是否包含了未保存的记录?


包含了的。代码没有问题,你现在出错了么?

--  作者:狐狸爸爸
--  发布时间:2012/12/14 15:21:00
--  

如果建立了关联,这样判断简单:

If Tables("销售订单").Current.Datarow.GetChildRows(“销售明细”) > 0 Then

Else

End if


--  作者:jinruan
--  发布时间:2012/12/14 15:24:00
--  
没有出错

是想再理下:
如果是网络版,别一台电脑上的用户,是否能这样
DataTables("销售明细").Find("销售订单id = " &  Tables("销售订单").Current("销售订单id"))
查找到未保存的这台电脑上正在编辑中的的单据记录?
[此贴子已经被作者于2012-12-14 15:24:56编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/12/14 15:29:00
--  
没有保存的话,其他电脑肯定差不多的,即使保存了的话,也需要用sql语句才能查的,DataTable中的数据是已经加载的,查询后台的数据不能通过DataTable的。
--  作者:lin_hailun
--  发布时间:2012/12/14 15:29:00
--  
以下是引用jinruan在2012-12-14 15:24:00的发言:
没有出错

是想再理下:
如果是网络版,别一台电脑上的用户,是否能这样
DataTables("销售明细").Find("销售订单id = " &  Tables("销售订单").Current("销售订单id"))
查找到未保存的这台电脑上正在编辑中的的单据记录?
[此贴子已经被作者于2012-12-14 15:24:56编辑过]


可以。

--  作者:jinruan
--  发布时间:2012/12/14 15:34:00
--  
以下是引用狐狸爸爸在2012-12-14 15:29:00的发言:
没有保存的话,其他电脑肯定差不多的,即使保存了的话,也需要用sql语句才能查的,DataTable中的数据是已经加载的,查询后台的数据不能通过DataTable的。
可以这样理解吧:
DataTable中的数据是已经加载的----包含了新建未保存的记录;
要看到实时的记录,就用SQL查出来