Foxtable(狐表)用户栏目专家坐堂 → 关于动态捆绑表的几个问题请教专家!《开发版用户》


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

主题:关于动态捆绑表的几个问题请教专家!《开发版用户》

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


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2013/3/3 19:53:00 [显示全部帖子]

我用的是外部数据源,原先也是用一个父表,N个子表单向关联,绑定到Table,父表表名为“关联”,一个数据列:“关联ID”,内容包含所有子表关联列的不重复的数据,开始测试时也没什么问题,后来导入大量数据后(父表有12万行数据,有些子表行数近三万),选择不同的子表时打开速度太慢(10多秒),后来找到了原因:tables("关联").load 加载时间太长!

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


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2013/3/3 21:51:00 [显示全部帖子]

当然是分别捆绑,不过我现在没用关联表捆绑了,我现在所有窗口的Table都是动态绑定的.

建议你Var变量,如Vars("btname"),要打开什么表,只要将此变量赋值你要打开的表的表名即可


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


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2013/3/3 22:27:00 [显示全部帖子]

GlobalVariableChanged事件可参考下面的代码:

If e.Name = "mtb" Then ‘var变量名
    If Forms("主窗口").Opened Then
        Dim btn As WinForm.Button = Forms("主窗口").Controls("加载") '动态加载"主窗口_Table1"的按扭,设为不可见
        btn.PerformClick
        If Vars("mtb") > "" Then
            Dim tbl As WinForm.Table = Forms("共有窗口").Controls("Table1") 

            Dim tb As Table = tbl.Table        ‘代替父表,设为不可见
            Dim cmd As new SQLCommand
            cmd.ConnectionName = "数据库名称"
            cmd.CommandText = "Select DISTINCT 关联ID From {" & Vars("mtb") & "} order by 关联ID"
            dim dtb as datatable = cmd.ExecuteReader
            tb.DataSource = dtb
        End If
    End If
    If Forms("共有窗口").Opened Then
        Dim btn As WinForm.Button = Forms("共有窗口").Controls("加载")
        btn.PerformClick
    End If
End If

[此贴子已经被作者于2013-3-3 22:35:05编辑过]

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


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2013/3/4 13:24:00 [显示全部帖子]

var变量(表名)发生变化后,tables("主窗口_Table1")跟着发生变化,tables("共有窗口_Table1)根据datables(vars("mtb")).datacols("关联ID")提取不重复的值加载,代替父表,tables("主窗口_Table1")代替主表,双击打开编辑窗口(另做),根据tables("共有窗口_Table1).current("关联ID")的值动态加载子表的行,相当于入库单,出库单等,而tables("主窗口_Table1")相当于入库明细表,出库明细表等,不管你建了多少个主表,我用一个主窗口一网打尽!

 


 回到顶部