以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  动态创建关联表错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=86452)

--  作者:nblwar
--  发布时间:2016/6/17 15:41:00
--  动态创建关联表错误
If Relations.Contains("HR_人事档案_个人档案") = False Then
    Dim ParentCol As DataCol = DataTables("HR_人事档案").DataCols("WorkID")
    Dim ChildCol As DataCol = DataTables("HR_个人档案").DataCols("WorkID")
    Relations.Add("HR_人事档案_个人档案",ParentCol,ChildCol,False,RelationPathEnum.One)
End If

If Tables.Contains("HR_人事档案.HR_个人档案") Then
    Dim tbl As WinForm.Table
    tbl = e.Form.CreateTable("Table1", "HR_人事档案.HR_个人档案", False)
    tbl.Dock = System.Windows.Forms.DockStyle.Fill
    Dim sp1 As WinForm.SplitContainer = e.Form.Controls("SplitContainer1")
    sp1.Panel2.AddControl(tbl)
Else
    MessageBox.Show("没有个人档案表")
End If

窗口里创建的关联表是个大大的红×

--  作者:nblwar
--  发布时间:2016/6/17 15:57:00
--  
搞定了
--  作者:大红袍
--  发布时间:2016/6/17 16:01:00
--  

我这样测试没问题

 

If Relations.Contains("test") Then
    Relations.Delete("test")
End If
Dim ParentCol As DataCol = DataTables("表A").DataCols("第二列")
Dim ChildCol As DataCol = DataTables("表B").DataCols("第二列")
Relations.Add("test",ParentCol,ChildCol,True,RelationPathEnum.One)

If Tables.Contains("表A.表B") Then
    Dim tbl As WinForm.Table
    tbl = e.Form.CreateTable("Table1", "表a.表B", False)
    tbl.Dock = System.Windows.Forms.DockStyle.Fill
    Dim sp1 As WinForm.SplitContainer = e.Form.Controls("SplitContainer1")
    sp1.Panel2.AddControl(tbl)
Else
    MessageBox.Show("没有个人档案表")
End If


--  作者:nblwar
--  发布时间:2016/6/17 16:12:00
--  
嗯,是的