以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]CurrentChanged  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76001)

--  作者:huhu
--  发布时间:2015/10/19 18:39:00
--  [求助]CurrentChanged

CurrentChanged

If e.Table.Current IsNot Nothing Then  
    Select Case e.Table.Current("订单状态")
        Case "已上线"
            Forms("产线2").Controls("CheckBox1").checked = True
            Forms("产线2").Controls("CheckBox1").Enabled = False
        Case "生产已完成"
            Forms("产线2").Controls("CheckBox1").checked = True
            Forms("产线2").Controls("CheckBox1").Enabled = False
            Forms("产线2").Controls("CheckBox2").checked = True
            Forms("产线2").Controls("CheckBox2").Enabled = False
            msgbox(e.Table.Current("订单编号"))
        Case "品管正在检验"
            Forms("产线2").Controls("CheckBox1").checked = True
            Forms("产线2").Controls("CheckBox1").Enabled = False
            Forms("产线2").Controls("CheckBox2").checked = True
            Forms("产线2").Controls("CheckBox2").Enabled = False
            Forms("产线2").Controls("CheckBox3").checked = True
            Forms("产线2").Controls("CheckBox3").Enabled = False
        Case "品管检验通过"
            Forms("产线2").Controls("CheckBox1").checked = True
            Forms("产线2").Controls("CheckBox1").Enabled = False
            Forms("产线2").Controls("CheckBox2").checked = True
            Forms("产线2").Controls("CheckBox2").Enabled = False
            Forms("产线2").Controls("CheckBox3").checked = True
            Forms("产线2").Controls("CheckBox3").Enabled = False
            Forms("产线2").Controls("CheckBox4").checked = True
            Forms("产线2").Controls("CheckBox4").Enabled = False
            Forms("产线2").Controls("CheckBox5").checked = False
            Forms("产线2").Controls("CheckBox5").Enabled = False
        Case "品管检验未过"
            Forms("产线2").Controls("CheckBox1").checked = True
            Forms("产线2").Controls("CheckBox1").Enabled = False
            Forms("产线2").Controls("CheckBox2").checked = True
            Forms("产线2").Controls("CheckBox2").Enabled = False
            Forms("产线2").Controls("CheckBox3").checked = True
            Forms("产线2").Controls("CheckBox3").Enabled = False
            Forms("产线2").Controls("CheckBox4").checked = False
            Forms("产线2").Controls("CheckBox4").Enabled = False
            Forms("产线2").Controls("CheckBox5").checked = True
            Forms("产线2").Controls("CheckBox5").Enabled = False
        Case "已入库"
            Forms("产线2").Controls("CheckBox1").checked = True
            Forms("产线2").Controls("CheckBox1").Enabled = False
            Forms("产线2").Controls("CheckBox2").checked = True
            Forms("产线2").Controls("CheckBox2").Enabled = False
            Forms("产线2").Controls("CheckBox3").checked = True
            Forms("产线2").Controls("CheckBox3").Enabled = False
            Forms("产线2").Controls("CheckBox4").checked = True
            Forms("产线2").Controls("CheckBox4").Enabled = False
            Forms("产线2").Controls("CheckBox5").checked = False
            Forms("产线2").Controls("CheckBox5").Enabled = False
            Forms("产线2").Controls("CheckBox6").checked = True
            Forms("产线2").Controls("CheckBox6").Enabled = False            
    End Select
End If

问题来了,checkbox的勾选不是根据所选择的行动态变化,而是不了选择哪一行,checkbo的勾选都是固定的。我知道代码有问题,可又不知道怎么实现这个功能。请帮忙。多谢。

--  作者:huhu
--  发布时间:2015/10/19 18:40:00
--  

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

--  作者:大红袍
--  发布时间:2015/10/19 19:15:00
--  

每一个判断里面,都要控制 checked 的 False 或 True,不能只控制 true


--  作者:huhu
--  发布时间:2015/10/20 12:10:00
--  
不是很懂。比如怎么改?
另外好像不是我问题的答案。
我的问题是选择了不同行,最上面的checkbox的好像没有变化。
按照我的思路,应该选择不同行,current行是变化的,那么最上面的checkbox也应该跟着我当前选择的行的情况而变化。

--  作者:大红袍
--  发布时间:2015/10/20 12:21:00
--  

如果

 

Forms("产线2").Controls("CheckBox1").checked = False

Forms("产线2").Controls("CheckBox2").checked = False

Forms("产线2").Controls("CheckBox3").checked = true

Forms("产线2").Controls("CheckBox4").checked = true


--  作者:huhu
--  发布时间:2015/10/20 19:26:00
--  
运行错误:
.NET Framework 版本:2.0.50727.8009
Foxtable 版本:2014.11.11.1
错误所在事件:临时版本跟踪表,CurrentChanged
详细错误信息:
未将对象引用设置到对象的实例。

难道蓝色的代码和红色的代码不能共存?还是什么原因?
If e.Table.Current IsNot Nothing Then
    If DataTables("需求明细表").Find("需求编号 = \'" & e.Table.Current("需求编号") & "\'") Is Nothing Then
        DataTables("需求明细表").AppendLoad("需求编号 = \'" & e.Table.Current("需求编号") & "\'")
    End If
    Select Case e.Table.Current("订单状态")
        Case "未开始生产",""
            Forms("产线2").Controls("CheckBox1").checked = False
            Forms("产线2").Controls("CheckBox2").checked = False
            Forms("产线2").Controls("CheckBox3").checked = False
            Forms("产线2").Controls("CheckBox4").checked = False
            Forms("产线2").Controls("CheckBox5").checked = False
            Forms("产线2").Controls("CheckBox6").checked = False
            Forms("产线2").Controls("CheckBox1").Enabled = True
            Forms("产线2").Controls("CheckBox2").Enabled = True
            Forms("产线2").Controls("CheckBox3").Enabled = True
            Forms("产线2").Controls("CheckBox4").Enabled = True
            Forms("产线2").Controls("CheckBox5").Enabled = True
            Forms("产线2").Controls("CheckBox6").Enabled = True
        Case "已上线"
            Forms("产线2").Controls("CheckBox1").checked = True
            Forms("产线2").Controls("CheckBox2").checked = False
            Forms("产线2").Controls("CheckBox3").checked = False
            Forms("产线2").Controls("CheckBox4").checked = False
            Forms("产线2").Controls("CheckBox5").checked = False
            Forms("产线2").Controls("CheckBox6").checked = False
            Forms("产线2").Controls("CheckBox1").Enabled = False
            Forms("产线2").Controls("CheckBox2").Enabled = True
            Forms("产线2").Controls("CheckBox3").Enabled = True
            Forms("产线2").Controls("CheckBox4").Enabled = True
            Forms("产线2").Controls("CheckBox5").Enabled = True
            Forms("产线2").Controls("CheckBox6").Enabled = True
end select
endif

--  作者:大红袍
--  发布时间:2015/10/20 19:29:00
--  
蓝色代码放在红色下面。
--  作者:huhu
--  发布时间:2015/10/20 19:48:00
--  
顺序换了一下还是报同样的错。
和顺序有关系吗?

--  作者:大红袍
--  发布时间:2015/10/20 19:51:00
--  
单独执行蓝色代码,如果报错,去看 需求明细表 的表事件,比如 AfterLoad等
--  作者:huhu
--  发布时间:2015/10/20 19:56:00
--  
单独执行蓝色代码没有报错,把select加上,就报错。