以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教跨表引用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=25122)

--  作者:秦胜雄
--  发布时间:2012/10/31 20:19:00
--  请教跨表引用
If e.DataCol.Name = "规格" OrElse e.DataCol.Name = "管制号" Then
    Dim dr As DataRow
    dr = DataTables("车床").Find("[姓名] = \'" & e.DataRow("车床") & "\'")
    If dr IsNot Nothing Then
        e.DataRow("车床") = dr("姓名")
            Else
        e.DataRow("车床") = Nothing
            End If
End If
想实现在订单明细表编辑规格,从车床表提取姓名到订单明细表车床列(管制号和规格两列相同),在输入规格时车床表还没数据,要审核完成后才复制到车床表,车床表审核后的数据不加载,请指导怎么写代码,谢谢!!!!

--  作者:czy
--  发布时间:2012/10/31 20:24:00
--  

就你要求的代码而言应该是下面的这样。

dr = DataTables("车床").Find("[规格] = \'" & e.DataRow("规格") & "\' And 管制号 = \'" & e.DataRow("管制号") & "\'")

 

但你所说的输入规格时车床没数据,这个就不知道怎么查找了。


--  作者:秦胜雄
--  发布时间:2012/10/31 20:36:00
--  
因订单明细表要经过审核(逻辑列)才将数据复制到车床表的,车床表是管控那个员工来加工订单明细表里的零件,意思是在车床表姓名列输入操作员的姓名,要在订单明细表车床列(相对应管制号和规格行)显示操作员的姓名,以便查询是谁在做这个零件。请指教,谢谢!!!
--  作者:unverse
--  发布时间:2012/10/31 22:06:00
--  
路过没有理解
--  作者:狐狸爸爸
--  发布时间:2012/11/1 8:54:00
--  

我也理解不了,做个例子发上来看看。


--  作者:秦胜雄
--  发布时间:2012/11/1 13:39:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:lin_hailun
--  发布时间:2012/11/1 13:54:00
--  
 楼主是不是想说,点击明细表的审核列,就把该行数据新增到车床表;点击车床表的审核列,就把该行的姓名写到明细表对应的行?
[此贴子已经被作者于2012-11-1 13:54:46编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/1 14:04:00
--  
 如果如楼上所说,你把两个表关联一下,然后明细表的车床列用表达式就可以了。

 至于审核后的数据不加载,设置一下Filter不久可以了?

 Tables("车床").Filter = "审核 = False"

--  作者:秦胜雄
--  发布时间:2012/11/1 14:53:00
--  
是想在车床表姓名列输入操作员姓名,就把该行的姓名写到明细表对应的行。不知可否有代码可以实现,因用表达式又要使用关联,数据不能隐蔽,运行时间长了可能对系统有影响,不知还有其它办法没有。 

--  作者:lin_hailun
--  发布时间:2012/11/1 15:01:00
--  
 用代码就这样写吧。

select case e.datacol.name
    case "审核"
        dim dr as datarow = Datatables("订单明细").Find([规格] = \'" & e.DataRow("规格") & "\' And 管制号 = \'" & e.DataRow("管制号") & "\'")
        dr("车床") = e.DataRow("姓名")
        DataTables("车床").LoadFilter = "审核 = False"
        DataTables("车床").Load
end select