以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口动态绑定指定的表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99002)

--  作者:jyh7081
--  发布时间:2017/4/10 22:04:00
--  [求助]窗口动态绑定指定的表

用窗口中的组合框选定当前表,表控件动态显示当前表的指定列,帮忙看看哪里不对?

 

1、\'窗口的afterload事件
Dim bm As String     \'获取表名下拉框
For Each dt As DataTable In DataTables
    If bm ="" Then
        bm = dt.Name
    Else
        bm = bm & "|" & dt.Name
    End If
Next
Dim cmb As WinForm.ComboBox = e.form.Controls("ComboBox1")
cmb.ComboList = bm

---------------------------------

2、\'组合框的TextChanged事件
If Tables.Contains(e.Sender.Text) Then   \'该表作为选中表
    Dim t As Table = Tables(e.Sender.text)
    MainTable = t
    t.Focus
    Tables("窗口1_Table1").DataSource = t

    Tables("窗口1_Table1").SetColVisibleWidth("第一列|90|第二列|120")
End If


 


此主题相关图片如下:gif.gif
按此在新窗口浏览图片

 

附件:


 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:动态绑定表.table

[此贴子已经被作者于2017/4/10 22:15:04编辑过]

--  作者:有点蓝
--  发布时间:2017/4/10 22:19:00
--  
If Tables.Contains(e.Sender.Text) Then   \'该表作为选中表,TextChanged事件
    Dim t As Table = Tables(e.Sender.text)
    MainTable = t
    t.Focus
    Tables("窗口1_Table1").DataSource = t.DataTable
    Tables("窗口1_Table1").SetColVisibleWidth("第一列|90|第二列|120")
End If

--  作者:jyh7081
--  发布时间:2017/4/11 9:21:00
--  
窗口的afterload事件,获取表名列表时,怎样排除窗口表?就是不让“窗口1_Table1”这类表出现在列表框。
--  作者:有点色
--  发布时间:2017/4/11 9:23:00
--  

 

[此贴子已经被作者于2017/4/11 9:24:00编辑过]

--  作者:有点色
--  发布时间:2017/4/11 9:28:00
--  

参考代码

 

Dim bm As String     \'获取表名下拉框
Dim obj As object = basemainform.controls("mainpages")
For Each pg As object In obj.tabpages
    If bm ="" Then
        bm = pg.Name
    Else
        bm = bm & "|" & pg.Name
    End If
Next
Dim cmb As WinForm.ComboBox = e.form.Controls("ComboBox1")
cmb.ComboList = bm

 


--  作者:jyh7081
--  发布时间:2017/4/11 10:06:00
--  
我在项目afteropenproject 事件里设定了隐藏表,当组合框选定当前表时,表又显示了,怎样选定当前表时,仍然隐藏。

For Each t As Table In Tables
    t.Visible = False
Next

--  作者:有点色
--  发布时间:2017/4/11 10:11:00
--  

修改一下代码

 

If Tables.Contains(e.Sender.Text) Then   \'该表作为选中表,TextChanged事件
    Dim t As Table = Tables(e.Sender.text)
    If t.Visible Then
        MainTable = t
        t.Focus
    End If
    Tables("窗口1_Table1").DataSource = t
    Tables("窗口1_Table1").SetColVisibleWidth("第一列|90|第二列|120")
End If