以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  模拟关联  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=119285)

--  作者:cd_tdh
--  发布时间:2018/5/22 9:52:00
--  模拟关联

老师,模拟关联LoadChildren这个语法多列能否建立关联呢?

DataTables("订单").LoadChildren("订单明细", "订单编号", "订单编号")

 

 


--  作者:有点甜
--  发布时间:2018/5/22 9:54:00
--  

比如

 

DataTables("S征地记录").LoadChildren("S征地明细", "协议书编号]+[第几期结算", "[协议书编号]+[第几期结算]")


--  作者:cd_tdh
--  发布时间:2018/5/22 10:37:00
--  
模拟关联后,我用窗口显示,上面Table绑定主表,下面绑定子表,怎么让子表只显示主表选定行呢?
--  作者:有点甜
--  发布时间:2018/5/22 10:48:00
--  
以下是引用cd_tdh在2018/5/22 10:37:00的发言:
模拟关联后,我用窗口显示,上面Table绑定主表,下面绑定子表,怎么让子表只显示主表选定行呢?

 

CurrentChanged事件写筛选代码,如

 

If Forms("窗口1").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("窗口1_Table1")
    With Tables("产品")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "产品编号 = " & .Current("产品编号")
        End IF
    End With
End If


--  作者:cd_tdh
--  发布时间:2018/5/22 11:49:00
--  

老师变通了一下这样写报错?

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.9.1
错误所在事件:加载[进项票录入]失败!
详细错误信息:
\'FoxTempaX\' 附近有语法错误。


If Forms("进项票审核管理窗口").Opened()
    Dim t As Table =Tables("进项票录入")
    If e.Table.Current IsNot Nothing Then
        Dim filter As String = "发票号码= \'" & e.Table.Current("发票号码") & "\'"
        If t.DataTable.find(filter) Is Nothing Then
            t.DataTable.appendload(filter)
        End If
        t.filter =filter
    End If
End If


--  作者:有点甜
--  发布时间:2018/5/22 11:54:00
--  

试试改成

 

If Forms("进项票审核管理窗口").Opened()
    Dim t As Table =Tables("进项票录入")
    If e.Table.Current IsNot Nothing Then
        Dim filter As String = "发票号码= \'" & e.Table.Current("发票号码") & "\'"
        If t.DataTable.find(filter) Is Nothing Then

t.DataTable.LoadFilter = ""

\'t.DataTable.Load
            t.DataTable.appendload(filter)
        End If
        t.filter =filter
    End If
End If

 

不然做个例子发上来测试。


--  作者:cd_tdh
--  发布时间:2018/5/22 12:11:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:模拟关联.table


事例做的内部表,不报错,但子表也没加载。

[此贴子已经被作者于2018/5/22 12:20:46编辑过]

--  作者:有点甜
--  发布时间:2018/5/22 12:21:00
--  

afterLoad事件代码删除,或者写成

 

DataTables("进项票审核").LoadChildren("进项票录入","发票号码]+[合同编码]+[计量期数]+[税价合计金额","[发票号码]+[合同编码]+[计量期数]+[税价合计金额]")


--  作者:cd_tdh
--  发布时间:2018/5/22 12:45:00
--  
以下是引用有点甜在2018/5/22 12:21:00的发言:

afterLoad事件代码删除,或者写成

 

DataTables("进项票审核").LoadChildren("进项票录入","发票号码]+[合同编码]+[计量期数]+[税价合计金额","[发票号码]+[合同编码]+[计量期数]+[税价合计金额]")

老师,我外部表,子表数据默认不加载的,还是不行呢?

 

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.9.1
错误所在事件:加载[进项票录入]失败!
详细错误信息:
从数据类型 nvarchar 转换为 float 时出错。

 

 

[此贴子已经被作者于2018/5/22 12:49:10编辑过]

--  作者:有点甜
--  发布时间:2018/5/22 15:22:00
--  

那你就删除这句代码啊

 

DataTables("进项票审核").LoadChildren("进项票录入","发票号码]+[合同编码]+[计量期数]+[税价合计金额","[发票号码]+[合同编码]+[计量期数]+[税价合计金额]")