以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口控件列表项目  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172549)

--  作者:实话实说
--  发布时间:2021/10/19 9:23:00
--  窗口控件列表项目
1、帮助中的示例

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
2、我的控件

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
3、下拉列表

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看
4、我的代码错在哪?
Dim cmb As WinForm.ComboBox = e.Sender
If cmb.Items.Count > 0 Then \'如果已经设置了项目
    Return \'则返回
End If
Dim t As Table = cmb.BindTable \'获得绑定的Table
Dim c As Col = cmb.BindCol \'获得绑定的Col
Dim dr As DataRow = DataTables("下拉列表").Find("[下拉项目] = \'" & t.Name & "\' And [下拉内容] = \'" & c.Name & "\'")
If dr IsNot Nothing Then \'如果在项目表找到对应的行
    cmb.Combolist = dr("列表项目1") \'则设置列表项目
End If

--  作者:有点蓝
--  发布时间:2021/10/19 9:32:00
--  
Dim cmb As WinForm.ComboBox = e.Sender
msgbox(cmb.Items.Count)
If cmb.Items.Count > 0 Then \'如果已经设置了项目
    Return \'则返回
End If
Dim t As Table = cmb.BindTable \'获得绑定的Table
Dim c As Col = cmb.BindCol \'获得绑定的Col
msgbox("[下拉项目] = \'" & t.Name & "\' And [下拉内容] = \'" & c.Name & "\'")
Dim dr As DataRow = DataTables("下拉列表").Find("[下拉项目] = \'" & t.Name & "\' And [下拉内容] = \'" & c.Name & "\'")
If dr IsNot Nothing Then \'如果在项目表找到对应的行
    cmb.Combolist = dr("列表项目1") \'则设置列表项目
msgbox(dr("列表项目1") )
End If

--  作者:实话实说
--  发布时间:2021/10/19 10:33:00
--  

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

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


--  作者:有点蓝
--  发布时间:2021/10/19 10:36:00
--  
调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

控件有没有绑定表格?

--  作者:实话实说
--  发布时间:2021/10/19 10:36:00
--  

PrepareEdit表事件可以,窗体控件还是不行

If e.Col.Name = "机台" Then
    If e.Row("工序") = Nothing Then
        e.Col.Combolist = DataTables("下拉列表").GetComboListString("下拉内容","下拉项目=\'机台\'")
    Else
        Dim fdr = DataTables("下拉列表").find("下拉项目 = \'工序\' and 下拉内容=\'" & e.Row("工序") & "\'")
        If fdr IsNot Nothing
            e.Col.Combolist = fdr("列表项目1")
        Else
            e.Col.Combolist = Nothing
        End If
    End If
End If


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


--  作者:实话实说
--  发布时间:2021/10/19 12:45:00
--  
这段代码为什么不行呢?
Dim cmb As WinForm.ComboBox = e.Sender
Dim dr As DataRow = DataTables("下拉列表").Find("[下拉项目] = \'工序\' and [下拉内容] = \'机台 \'")
If dr IsNot Nothing Then \'如果在项目表找到对应的行
    cmb.Combolist = dr("列表项目1") \'则设置列表项目
End If

--  作者:有点蓝
--  发布时间:2021/10/19 13:52:00
--  
Dim dr As DataRow = DataTables("下拉列表").Find("[下拉项目] = \'工序\' and [下拉内容] = \'机台 \'") 有个空格
--  作者:实话实说
--  发布时间:2021/10/19 14:02:00
--  
还是不行,选择工序后,机台下拉是空的
1楼帮助文件中,绑定表和绑定列怎么理解?

[此贴子已经被作者于2021/10/19 14:03:33编辑过]

--  作者:有点蓝
--  发布时间:2021/10/19 14:31:00
--  
绑定指这个:http://www.foxtable.com/webhelp/topics/0704.htm,组合框有没有使用绑定?
--  作者:实话实说
--  发布时间:2021/10/19 14:50:00
--  
没有绑定。试了一下,绑定也不行。