Foxtable(狐表)用户栏目专家坐堂 → 遍历各表的列


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

主题:遍历各表的列

帅哥哟,离线,有人找我吗?
ts9277
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:211 积分:1948 威望:0 精华:0 注册:2017/3/6 20:47:00
遍历各表的列  发帖心情 Post By:2019/1/11 20:31:00 [只看该作者]


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


图片点击可在新窗口打开查看此主题相关图片如下:2019-01-10_1.png
图片点击可在新窗口打开查看

老师请看下,这代码错在哪里,表的列无法显示

PrepareEdit代码

Dim nm1 As String

Dim nm2 As String


Select Case e.Col.name

    Case "表名"

        For Each tb As DataTable In DataTables

            If tb.name<>"统计" Then  '不包括统计表

                nm1=nm1 & "|" & tb.name

            End If

        Next

        

        e.Col.ComboList=nm1  '全部表名的列表内容

        


Case "列名"

    If e.Row.IsNull("表名")=False Then

        For Each cl As Col In Tables("'" & e.Row("表名") & " '").Cols  '遍历列名

            

            nm2=nm2 & "|" & cl.name

        Next

        e.Col.ComboList=nm2

        

    End If


    

End Select


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/11 20:48:00 [只看该作者]

afteropenproject事件

Dim str As String

For Each tb As DataTable In DataTables
    If tb.name <> "统计" Then  '不包括统计表
        str = str & "|" & tb.name
    End If
Next
Tables("统计").Cols("表名").ComboList = str.Trim("|")

PrepareEdit事件

If e.IsFocusCell Then
    If e.Col.Name = "列名" Then
        If e.Row.IsNull("表名") Then
            e.Col.Combolist = Nothing
        Else
            Dim str As String
            For Each cl As Col In Tables(e.Row("表名")).Cols  '遍历列名
                str=str& "|" & cl.name
            Next
            e.Col.Combolist = str.Trim("|")
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
ts9277
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:211 积分:1948 威望:0 精华:0 注册:2017/3/6 20:47:00
  发帖心情 Post By:2019/1/11 21:35:00 [只看该作者]

Case "列名"

    If e.Row.IsNull("表名")=False Then

        For Each cl As Col In Tables("'" & e.Row("表名") & " '").Cols  '遍历列名


已经找到问题点了,就出错在这个动态表名处,其实这里不需要表达式,直接写为

For Each cl As Col In Tables(e.Row("表名")).Cols  就能正常使用了,

老师我还想问下,你提供的代码中

  e.Col.Combolist = str.Trim("|")  

为什么要加TRIM ,这个取消也能正常使用的,加与不加有什么区别?


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/11 21:41:00 [只看该作者]

msgbox(str)
msgbox(str.Trim("|"))

自己看区别

 回到顶部