以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]临时表可以做关联表吗  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122573)

--  作者:积水成渊
--  发布时间:2018/7/28 11:30:00
--  [求助]临时表可以做关联表吗
求教一下,临时表可以设置关联表不,这是我写的代码,麻烦看下,改如何改进下:
If Relations.Contains("po") = True Then
    Relations.Delete("po")
Else
    Dim cmd  As new SQLCommand
    Dim dt_临时表 As DataTable
    cmd.C
    cmd.CommandText = "S elect \'201706\' as 核算月份,工号,保底工资 f rom {GZ_基础薪酬设置} where 保底工资 is not null and 停止核算 =0"
    dt_临时表 = cmd.ExecuteReader
    Dim dt_工资明细 As DataTable = DataTables("GZ_工资明细")
    
    Dim ParentCol(1) As DataCol
    Dim ChildCol(1) As DataCol
    ParentCol(0) = dt_临时表.DataCols("工号")
    ParentCol(1) = dt_临时表.DataCols("核算月份")
    
    ChildCol(0) = dt_工资明细.DataCols("工号")
    ChildCol(1) = dt_工资明细.DataCols("核算月份")
    Relations.Add("po", ParentCol, ChildCol)
    
    If dt_工资明细.DataCols.Contains("保底工资") = False Then
        dt_工资明细.DataCols.Add("保底工资", Gettype(String),"Parent(po).保底工资")
    End If
    
End If
[此贴子已经被作者于2018/7/28 11:32:32编辑过]

--  作者:积水成渊
--  发布时间:2018/7/28 11:34:00
--  
代码报错:
---------------------------
版本:2018.3.9.1
---------------------------
代码执行出错,错误信息:



System.Data.InvalidConstraintException: 如果父列或子列不在 DataSet 中,则无法创建 DataRelation。

   在 System.Data.DataRelation.Create(String relationName, DataColumn[] parentColumns, DataColumn[] childColumns, Boolean createConstraints)

   在 System.Data.DataRelation..ctor(String relationName, DataColumn[] parentColumns, DataColumn[] childColumns, Boolean createConstraints)

   在 Foxtable.DataRelationCollection.Add(String RelationName, DataCol[] ParentCols, DataCol[] ChildCols, Boolean Visible, RelationPathEnum RelationTable)

   在 Foxtable.DataRelationCollection.Add(String RelationName, DataCol[] ParentCols, DataCol[] ChildCols)

   在 UserCode.Test()
---------------------------
确定   
---------------------------


--  作者:有点蓝
--  发布时间:2018/7/28 11:38:00
--  
临时表不能关联,如果要关联,先把临时表绑定一个窗口表控件
--  作者:积水成渊
--  发布时间:2018/7/28 11:45:00
--  
没有听的太懂,可以教下吗,或者在我的代码上改下图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2018/7/28 13:16:00
--  
http://www.foxtable.com/webhelp/scr/1909.htm

Tables("窗口1_Table1").DataSource = dt_临时表
ParentCol(0) = Tables("窗口1_Table1").datatable.DataCols("工号")
    ParentCol(1) = Tables("窗口1_Table1").datatable.DataCols("核算月份")


--  作者:积水成渊
--  发布时间:2018/7/28 16:30:00
--  
感谢。我理解错了,我想弄成不要打开窗口就能实现临时表关联的效果
[此贴子已经被作者于2018/7/28 16:30:49编辑过]

--  作者:有点蓝
--  发布时间:2018/7/28 16:46:00
--  
不可以