以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【请教】关于设置录入窗口控件是否可用问题!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153363)

--  作者:狐表(小白)
--  发布时间:2020/8/8 22:02:00
--  【请教】关于设置录入窗口控件是否可用问题!
老师,你好!现有个销售订单表,用录入窗口(木门销售订单三级)进行每行数据录入,在修改事件对录入窗口选择不同产品时对不同控件是否可用进行限制。datacolchanged代码如下;
问题:当后期对某行数据进行修改时,点击修改按钮打开录入窗口时,控件的可用状态始终停留在最后一次录入的状态,必须退出系统,重新进入才行,即使选择其它行,对应的控件还是灰色的,想实现修改不同行时,控件的可用权限如何做到随着当前行已经录入的产品来变化,怎么解决?谢谢!
datacolchanged代码:
Dim dr As DataRow = e.DataRow
For Each r As Row In Tables("销售订单").Rows
    r("序") = r.index+1
Next
Tables("销售订单").save
Select Case e.DataCol.Name
    Case "木门","垭口","单门"
        If e.NewValue = True Then
            Dim nms() As String = {"木门","垭口","单门"}
            For Each nm As String In nms
                If nm <> e.DataCol.Name AndAlso dr(nm) = True Then
                    dr(nm) = False
                End If
            Next
        End If
        If dr("木门") = True Then  \'变动后的值是True(已勾选)
            Forms("木门销售订单三级").controls("型号Label").enabled = True
            Forms("木门销售订单三级").controls("型号_button").enabled = True
            Forms("木门销售订单三级").controls("型号").Enabled = True
            Forms("木门销售订单三级").controls("塔线型号Label").enabled = False
            Forms("木门销售订单三级").controls("塔线型号").Enabled = False
            Forms("木门销售订单三级").controls("套板型号Label").enabled = False
            Forms("木门销售订单三级").controls("套板型号_button").enabled = False
            Forms("木门销售订单三级").controls("套板型号").Enabled = False
        ElseIf dr("垭口") = True Then
            Forms("木门销售订单三级").controls("型号Label").enabled = False
            Forms("木门销售订单三级").controls("型号_button").enabled = False
            Forms("木门销售订单三级").controls("型号").Enabled = False
            Forms("木门销售订单三级").controls("塔线型号Label").enabled = True
            Forms("木门销售订单三级").controls("塔线型号").Enabled = True
            Forms("木门销售订单三级").controls("套板型号Label").enabled = True
            Forms("木门销售订单三级").controls("套板型号_button").enabled = True
            Forms("木门销售订单三级").controls("套板型号").Enabled = True
        ElseIf dr("单门") = True Then
            Forms("木门销售订单三级").controls("型号Label").enabled = False
            Forms("木门销售订单三级").controls("型号_button").enabled = False
            Forms("木门销售订单三级").controls("型号").Enabled = False
            Forms("木门销售订单三级").controls("塔线型号Label").enabled = True
            Forms("木门销售订单三级").controls("塔线型号").Enabled = True
            Forms("木门销售订单三级").controls("套板型号Label").enabled = False
            Forms("木门销售订单三级").controls("套板型号_button").enabled = False
            Forms("木门销售订单三级").controls("套板型号").Enabled = False
        End If
End Select


修改按钮代码:
Dim f As new foxtools.form(Tables(eform.name & "_Table1").current)
    f.showdialog() \'模式窗口

--  作者:有点蓝
--  发布时间:2020/8/9 20:19:00
--  
datacolchanged代码所在的表格 是在模式窗口里面?还是模式窗口外面?

注意模式窗口是阻塞式的窗口打开后,在关闭之前后面的其它代码都不会执行的

--  作者:狐表(小白)
--  发布时间:2020/8/9 20:53:00
--  
表格在模式窗口外面
--  作者:有点蓝
--  发布时间:2020/8/9 21:05:00
--  
不要使用第三方的组件,新建一个foxtable的模式窗口测试有没有问题?