以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  Combolist在表中生成的下拉选项,如何在窗口的表中同样显示  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=185127)

--  作者:采菊东篱下
--  发布时间:2023/2/5 22:31:00
--  Combolist在表中生成的下拉选项,如何在窗口的表中同样显示
这段代码在表中显示没问题,但在动态生成的表中不显示下拉选项了。
If DataTables("团体或个人分组").DataRows.Count = 0 Then
    Tables("棋赛名称管理").Cols("团体或个人分组").Combolist = ""
Else
    Tables("棋赛名称管理").Cols("团体或个人分组").Combolist = DataTables("团体或个人分组").GetComboListString("团体赛或个人赛") 
End If
If e.Row.IsNull("团体或个人分组") Then
    Tables("棋赛名称管理").Cols("分组").Combolist = ""
Else
    Tables("棋赛名称管理").Cols("分组").Combolist = DataTables("团体或个人分组").GetComboListString("分组", "[团体赛或个人赛] =\'" & e.Row("团体或个人分组") & "\'")    
End If

下面的是写在窗口中的代码:
Select Case e.Link.Text
Case "棋赛名称管理"
        Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
        tab.SelectedIndex = 3
        Dim dt As WinForm.Table
        Dim mc As String = "棋赛名称管理"
        If tab.TabPages.Contains(mc) = False Then
            tab.TabPages.Add(mc, mc)
            dt = Forms("主窗口").CreateSQLTable("Table\'" & mc & "\'", "Select * Fr om {棋赛名称管理}", "")
            Forms("主窗口").Controls("TabControl1").Tabpages(mc).AddControl(dt)
            Forms("主窗口").Controls("TabControl1").SelectedIndex = tab.TabPages.count + 1
        Else
            dt = Forms("主窗口").Controls("Table\'" & mc & "\'")
        End If
        dt.SetBounds(0, 0, 1150, 520)
        dt.Table.SetColVisibleWidth("棋赛名称|180|棋赛副名|180|团体或个人分组|60|分组|60|积分编排法|90")
        dt.Table.SetHeaderRowHeight(40)
        If DataTables("团体或个人分组").DataRows.Count = 0 Then
            dt.Table.Cols("团体或个人分组").Combolist = ""
        Else
            dt.Table.Cols("团体或个人分组").Combolist = DataTables("团体或个人分组").GetComboListString("团体赛或个人赛") 
        End If
        If e.Row.IsNull("团体或个人分组") Then
            dt.Table.Cols("分组").Combolist = ""
        Else
            dt.Table.Cols("分组").Combolist = DataTables("团体或个人分组").GetComboListString("分组", "[团体赛或个人赛] =\'" & e.Row("团体或个人分组") & "\'") 
        End If
End Select

红色代码报错,改为Tables("主窗口_" & mc & "\'").Row.IsNull("团体或个人分组")依然报错,请教应怎么写?

--  作者:有点蓝
--  发布时间:2023/2/5 22:46:00
--  
这种到全局表事件prepareedit事件处理,不应该在任务栏事件处理
--  作者:采菊东篱下
--  发布时间:2023/2/6 20:41:00
--  
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:全局表事件,PositionChanged
详细错误信息:
未将对象引用设置到对象的实例。


If Forms("主窗口").opened Then
    Dim fz As WinForm.TabPage = Forms("主窗口").Controls("TabControl1").TabPages("棋赛名称管理")
    Dim Str As String = fz.text 
    If Forms("主窗口").ExistControl("Table\'" & Str & "\'") Then
        Dim tbl As WinForm.Table = Forms("主窗口").Controls("Table\'" & Str & "\'") 
        If CurrentTable.DataTable.Name = tbl.Table.DataTable.Name Then
            If DataTables("团体或个人分组").DataRows.Count = 0 Then
                tbl.Table.Cols("团体或个人分组").Combolist = ""
            Else
                tbl.Table.Cols("团体或个人分组").Combolist = DataTables("团体或个人分组").GetComboListString("团体赛或个人赛") 
            End If
            If tbl.Table.Current.IsNull("团体或个人分组") Then
                tbl.Table.Cols("分组").Combolist = ""
            Else
                tbl.Table.Cols("分组").Combolist = DataTables("团体或个人分组").GetComboListString("分组", "[团体赛或个人赛] =\'" & tbl.Table.Current("团体或个人分组") & "\'") 
            End If
        End If
    End If
End If

--  作者:有点蓝
--  发布时间:2023/2/6 20:43:00
--  
http://www.foxtable.com/webhelp/topics/1485.htm
--  作者:采菊东篱下
--  发布时间:2023/2/6 20:52:00
--  
它是打开窗口未加载临时表时出现的提示,加载后就没问题了,应该是判断临时表是否存在的代码出了问题,我不是已经有判断了吗?
If Forms("主窗口").opened Then
    Dim fz As WinForm.TabPage = Forms("主窗口").Controls("TabControl1").TabPages("棋赛名称管理")
    Dim Str As String = fz.text 
    If Forms("主窗口").ExistControl("Table\'" & Str & "\'") Then
        Dim tbl As WinForm.Table = Forms("主窗口").Controls("Table\'" & Str & "\'") 
        If CurrentTable.DataTable.Name = tbl.Table.DataTable.Name Then

--  作者:有点蓝
--  发布时间:2023/2/6 21:01:00
--  
麻烦加调试代码,看是哪一句出错?