Foxtable(狐表)用户栏目专家坐堂 → Combolist在表中生成的下拉选项,如何在窗口的表中同样显示


  共有4815人关注过本帖树形打印复制链接

主题:Combolist在表中生成的下拉选项,如何在窗口的表中同样显示

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
Combolist在表中生成的下拉选项,如何在窗口的表中同样显示  发帖心情 Post By:2023/2/5 22:31:00 [只看该作者]

这段代码在表中显示没问题,但在动态生成的表中不显示下拉选项了。
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("团体或个人分组")依然报错,请教应怎么写?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110571 积分:562745 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/5 22:46:00 [只看该作者]

这种到全局表事件prepareedit事件处理,不应该在任务栏事件处理

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By: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

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110571 积分:562745 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/6 20:43:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By: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

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110571 积分:562745 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/6 21:01:00 [只看该作者]

麻烦加调试代码,看是哪一句出错?

 回到顶部