以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:窗口中,判断:复选框,后生成:组合框的下拉列表。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73675)

--  作者:yancheng
--  发布时间:2015/8/24 16:25:00
--  求助:窗口中,判断:复选框,后生成:组合框的下拉列表。


求助:窗口中,判断:复选框,后生成:组合框的下拉列表。

Dim skzt As WinForm.ComboBox = e.Form.Controls("收款状态")
Dim yjdk As WinForm.CheckBox = e.Form.Controls("有进度款")
Dim yyzbj As WinForm.CheckBox = e.Form.Controls("有压质保金")
Dim yyfk As WinForm.CheckBox = e.Form.Controls("有预付款")
If yjdk.Checked = True Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\'","编号")
End If

上面代码写在:窗口生成事件中,
如果把IF判断删除了,能正常的,生成下拉。
如果保留IF判断,下拉不生成。
是checked用得不对吗?

--  作者:大红袍
--  发布时间:2015/8/24 16:31:00
--  

呃,生成窗口的时候Checked明显是false。

 

你可以写到yjdk控件的click事件


--  作者:有点蓝
--  发布时间:2015/8/24 16:34:00
--  
你这个复选框到底有没有选中,这样用没问题
--  作者:yancheng
--  发布时间:2015/8/24 16:35:00
--  
哦明白了。哪,我可不可以写到:Dim skzt As WinForm.ComboBox = e.Form.Controls("收款状态")
的click控件中?来判断,复选框,是不是选中?


--  作者:有点蓝
--  发布时间:2015/8/24 16:40:00
--  
就是那意思
--  作者:yancheng
--  发布时间:2015/8/24 17:31:00
--  
我要通过判断,上面三个:选中,状态,来显示:收款状态的,下拉。思路应该怎么样?在哪里写代码?我又晕了。
图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2015/8/24 17:38:00
--  

下拉的enter事件

 

Dim skzt As WinForm.ComboBox = e.Form.Controls("收款状态")
Dim yjdk As WinForm.CheckBox = e.Form.Controls("有进度款")
Dim yyzbj As WinForm.CheckBox = e.Form.Controls("有压质保金")
Dim yyfk As WinForm.CheckBox = e.Form.Controls("有预付款")
If yjdk.Checked = True Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\'","编号")
End If

--  作者:yancheng
--  发布时间:2015/8/24 18:02:00
--  
我在ENTER输入了,下面的代码,可以用了。但是我感觉是不是写得挺笨的,是不是都应该这样写呢?有没有更好的写法?
Dim yyfk As WinForm.CheckBox = e.Form.Controls("有预付款")
Dim yjdk As WinForm.CheckBox = e.Form.Controls("有进度款")
Dim yyzbj As WinForm.CheckBox = e.Form.Controls("有压质保金")
Dim skzt As WinForm.ComboBox = e.Form.Controls("收款状态")
If yyfk.Checked And yjdk.Checked And yyzbj.Checked Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\'","编号")
ElseIf yyfk.Checked = False And yjdk.Checked = False And yyzbj.Checked = False Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\' and 取值列 <> \'有预付款\' and 取值列 <> \'有进度款\' and 取值列 <> \'有压质保金\'","编号")
ElseIf yyfk.Checked = False And yjdk.Checked  And yyzbj.Checked  Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\' and 取值列 <> \'有预付款\' ","编号")
ElseIf yyfk.Checked  And yjdk.Checked = False And yyzbj.Checked = False Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\'  and 取值列 <> \'有进度款\' and 取值列 <> \'有压质保金\'","编号")
ElseIf yyfk.Checked  And yjdk.Checked  And yyzbj.Checked = False Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\' and  取值列 <> \'有压质保金\'","编号")
ElseIf yyfk.Checked = False And yjdk.Checked  And yyzbj.Checked = False Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\' and 取值列 <> \'有预付款\' and  取值列 <> \'有压质保金\'","编号")
ElseIf yyfk.Checked = False And yjdk.Checked = False And yyzbj.Checked  Then
    skzt.ComboList = DataTables("字典").GetComboListString("取值列2","名称 = \'合同收款状态\' and 取值列 <> \'有预付款\' and 取值列 <> \'有进度款\'","编号")
End If

--  作者:大红袍
--  发布时间:2015/8/24 18:09:00
--  

 

[此贴子已经被作者于2015/8/24 18:09:35编辑过]

--  作者:大红袍
--  发布时间:2015/8/24 18:10:00
--  
Dim yyfk As WinForm.CheckBox = e.Form.Controls("有预付款")
Dim yjdk As WinForm.CheckBox = e.Form.Controls("有进度款")
Dim yyzbj As WinForm.CheckBox = e.Form.Controls("有压质保金")
Dim skzt As WinForm.ComboBox = e.Form.Controls("收款状态")
 
Dim Filter As String = "名称 = \'合同收款状态\'"
 

If yyfk.Checked  Then

    Filter &= " And 取值列 = \'有预付款\' "

End If

 

If yjdk.Checked  Then

    Filter &= " And 取值列 = \'有进度款\' "

End If

 

If yyzbj.Checked  Then

    Filter &= " And 取值列 = \'有压质保金\' "

End If

 

skzt.ComboList = DataTables("字典").GetComboListString("取值列2", filter,"编号")