以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何子表锁定父表某列  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=30492)

--  作者:SZDVYE
--  发布时间:2013/3/29 1:04:00
--  如何子表锁定父表某列

代码如下,想改成子表“结算表”中“出账单”列= True, 只锁定父表("操作登记表")中“确认”“复核”,“审结”对应三列,代码怎么写?

 

If e.DataCol.Name = "出账单" Then
    If e.DataRow("出账单") = True Then
        Dim pr As DataRow = e.DataRow.GetParentRow("操作登记表")
        If pr IsNot Nothing Then
            pr.Locked = True
        End If
    End If
End If

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:锁定父表列.table

[此贴子已经被作者于2013-3-29 1:14:58编辑过]

--  作者:SZDVYE
--  发布时间:2013/3/29 21:36:00
--  

老大:

谢谢你。

可能是我表达没有清楚,我是想锁定该列,而不是让该列为TRUE 或者FALSE


--  作者:e-png
--  发布时间:2013/3/29 22:28:00
--  

DataTables("操作登记表").DataCols("确认").AllowEdit = True

--  作者:SZDVYE
--  发布时间:2013/3/31 0:03:00
--  

这样吗?不行耶。

 

If e.DataRow("出账单") = True Then
        DataTables("操作登记表").DataCols("确认").AllowEdit = False
        DataTables("操作登记表").DataCols("复核").AllowEdit = False
        DataTables("操作登记表").DataCols("审结").AllowEdit = False
    Else
        DataTables("操作登记表").DataCols("确认").AllowEdit = True
        DataTables("操作登记表").DataCols("复核").AllowEdit = True
        DataTables("操作登记表").DataCols("审结").AllowEdit = True
    End If


--  作者:狐狸爸爸
--  发布时间:2013/4/1 8:57:00
--  

思路不对,用这个事件:

 

http://www.foxtable.com/help/topics/0605.htm

 

 

设置在父表的PrepareEdit事件中:

 

Select Case e.col.name
    Case "确认","复核","审结"
        Dim r As Row = Tables("操作登记表.操作结算表").current
        If r IsNot Nothing AndAlso r("出账单") = True Then
            e.cancel = True
        End If
End Select

 

 

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:锁定父表列.table


--  作者:SZDVYE
--  发布时间:2013/4/2 23:54:00
--  
谢谢狐爸,问题终于解决了。