以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 模拟关联如何实现同步引用数据? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59156) |
||||
-- 作者:everybody -- 发布时间:2014/10/30 9:50:00 -- 模拟关联如何实现同步引用数据? 有表a、b、c 三个表,a是主表。a和b,a和c通过做了模拟关联,具体是表a的 [_Identify] 和表b,表c的 “任务ID”关联,为了今后效率考虑仅作模拟关联。
现在想实现,在窗口中,随着表a的数据行变化,同步调用显示表b、c相同“任务ID”的数据。而且,由于与表a [_Identify] 关联的表有10多个,如何提高调用效率?
想来简单,但本人完全小白,高手勿见怪。
[此贴子已经被作者于2014-10-30 10:08:49编辑过]
|
||||
-- 作者:Bin -- 发布时间:2014/10/30 9:52:00 -- 在表的CUrrentChanged事件 为窗口控件赋值即可 |
||||
-- 作者:everybody -- 发布时间:2014/10/30 9:57:00 -- 道理我懂,但不会搞代码,而且窗口非常多,3百多个,分别来自十多个明细表,咋整? |
||||
-- 作者:有点甜 -- 发布时间:2014/10/30 10:01:00 -- 明细表的意义是,主表一行数据,对应子表的多行数据啊。
显示子表数据的时候,应该是显示一个具体表格啊
http://www.foxtable.com/help/topics/2222.htm
|
||||
-- 作者:everybody -- 发布时间:2014/10/30 10:12:00 -- 老师批评的对,概念不清,这个不是明细表。修改了问题表述。
其实,就是想实现在窗口中 ,当前行变化的话,自动find出 表bcdef 中 与“任务ID”=当前行[_Identify] 的数据,并显示,就是这个意思。
这个显示还不方便用table控件来模拟关联表,否则就会抄帮助那个案例了
窗口控件太多,像下面的代码,岂不是写死人?
If Tables("表A").Current IsNot Nothing Then [此贴子已经被作者于2014-10-30 10:15:04编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2014/10/30 10:18:00 -- 1、控件绑定到表列;
2、用findrow定位各表的行http://www.foxtable.com/help/topics/0553.htm
3、用数组+循环去查找定位 |
||||
-- 作者:everybody -- 发布时间:2014/10/30 10:58:00 -- 老大,我这不是小白么,不会写代码,呵呵,不好意思脸皮厚 |
||||
-- 作者:有点甜 -- 发布时间:2014/10/30 11:02:00 -- 1、绑定 http://www.foxtable.com/help/topics/0704.htm
2、用findrow定位各表的行http://www.foxtable.com/help/topics/0553.htm
|
||||
-- 作者:everybody -- 发布时间:2014/11/7 13:26:00 -- Dim xj As WinForm.TextBox = e.Form.Controls("TextBox1")
上述代码,有错误 ,提示“无法在 System.Int32 和 System.String 上执行“=”操作。” 应该是这样有错,请指教!
dr = DataTables("表b").Find("[任务ID] = \'xj\'", "日期 Desc") |
||||
-- 作者:有点甜 -- 发布时间:2014/11/7 14:04:00 -- Dim xj As WinForm.TextBox = e.Form.Controls("TextBox1") Dim dr As DataRow dr = DataTables("表b").Find("[任务ID] = \'" & xj & "\'", "日期 Desc") If dr IsNot Nothing Then Dim wz As Integer = Tables("表b").FindRow(dr) If wz >= 0 Then Tables("表b").Position = wz End If End If |