以文本方式查看主题

-  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”关联,为了今后效率考虑仅作模拟关联。

 
图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

 

 

现在想实现,在窗口中,随着表a的数据行变化,同步调用显示表b、c相同“任务ID”的数据。而且,由于与表a [_Identify] 关联的表有10多个,如何提高调用效率?

 


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

 

想来简单,但本人完全小白,高手勿见怪。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb

[此贴子已经被作者于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
    e.Form.Controls("TextBox1").text=Tables("表A").Current("第一列")
    e.Form.Controls("ComboBox2").text=Tables("表A").Current("第二列")
    e.Form.Controls("ComboBox1").text=Tables("表A").Current("第三列")
    If Tables("表A").Current.Isnull("第四列")=False Then
        e.Form.Controls("DateTimePicker1").Value=Tables("表A").Current("第四列")
    End If
End If

[此贴子已经被作者于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")
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

 

 

上述代码,有错误  ,提示“无法在 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