以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  锁定订单明细  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=104611)

--  作者:实话实说
--  发布时间:2017/8/1 19:41:00
--  锁定订单明细

以下是帮助的代码,我的需求是:订单表有一排产的逻辑,勾选排产,不锁定订单表,只锁定订单明细表,字体颜色变灰,取消勾选,解锁。字体颜色恢复。订单表与订单明细表通过订单单号关联。代码如何修改?

For Each dr As DataRow In e.DataRow.GetChildRows("订单明细")

    dr.Locked = e.DataRow.Locked

Next

[此贴子已经被作者于2017/8/1 19:41:31编辑过]

--  作者:2900819580
--  发布时间:2017/8/1 19:44:00
--  
假定订单和订单明细表都有一个名为“审核”的列,逻辑型,要求某订单的所有订单明细全部审核通过后,才能审核订单。
为此可以将订单表的PrepareEdit事件代码设置为:

If e.Col.name = "审核" Then
    For Each dr As DataRow In e.Row.DataRow.GetChildRows("订单明细")
        If dr("审核") = False Then
           
e.Cancel = True
            Exit For
        End If
   
Next
End
If


--  作者:实话实说
--  发布时间:2017/8/1 19:59:00
--  
只有订单表有排产列,订单明细表没有,我的需求是不锁订单表,只锁订单明细表,并且字体颜色变灰。
--  作者:有点蓝
--  发布时间:2017/8/1 20:27:00
--  
datacolchanged事件

If e.DataCol.name = "审核" Then
    For Each dr As DataRow In e.DataRow.GetChildRows("订单明细")
        dr.Locked = e.DataRow("审核")
    Next
End If

--  作者:实话实说
--  发布时间:2017/8/1 21:10:00
--  
取消锁定呢?
--  作者:有点蓝
--  发布时间:2017/8/1 21:17:00
--  
一样适用,代码不变。
--  作者:实话实说
--  发布时间:2017/8/5 8:47:00
--  
在4楼的代码中,能锁定明细表的关联行,如何控制关联行不能新增?
--  作者:有点蓝
--  发布时间:2017/8/5 9:02:00
--  
参考:http://www.foxtable.com/webhelp/scr/0463.htm
--  作者:实话实说
--  发布时间:2017/8/5 9:43:00
--  
以下是关联表的【新增】按钮,如何根据父表的排产是否勾选来确定是否能新增行。

If Tables("销售订单.销售明细").AllowEdit = True Then
    Tables("销售订单.销售明细").AddNew() \'指定的表
Else
    e.Cancel = True \'取消默认动作
End If


--  作者:有点蓝
--  发布时间:2017/8/5 10:00:00
--  
if Tables("销售订单").Current("排产") = true
  Tables("销售订单.销售明细").AddNew()
end if