以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据引用的问题,希望大家能帮忙  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88371)

--  作者:jerry85618
--  发布时间:2016/8/1 19:05:00
--  数据引用的问题,希望大家能帮忙
查了很多帮助,基本都是操作字表时候引用父表的数据,希望大家能帮忙实现一下。
需求1:订单明细表进行操作的时候,预计库存表里能引用到。   预计库存表以后会做成帮助例子里的流水账。
需求2:销货单增加一行的时候,销货单明细能引用到关联的销售订单的父子表信息。父表引用我靠帮助完成了,字表的部分不会写

实例上传,请大家帮忙图片点击可在新窗口打开查看

--  作者:jerry85618
--  发布时间:2016/8/1 19:06:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:屏幕截图(1).png
图片点击可在新窗口打开查看

--  作者:jerry85618
--  发布时间:2016/8/1 19:06:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:foxtable0731.rar


--  作者:大红袍
--  发布时间:2016/8/1 19:09:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/2490.htm

 


--  作者:jerry85618
--  发布时间:2016/8/1 19:21:00
--  
我刚刚测试了一下,日期,存货名称确实按照这种方法可以引用,但数量上引用不了,请帮忙再看一看。
[此贴子已经被作者于2016/8/1 21:17:39编辑过]

--  作者:jerry85618
--  发布时间:2016/8/1 19:26:00
--  
这里是DataColChanged代码
Select Case e.DataCol.name
    Case "存货名称"
        If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空
            e.DataRow("单价") = Nothing \'那么清空此行单价列的内容
        Else
            Dim dr As DataRow
            \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
            dr = DataTables("存货").Find("[存货名称] = \'" & e.NewValue & "\'")
            If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
                e.DataRow("销售单位") = dr("销售常用单位")
                e.DataRow("税率")=dr("税率")
                \'e.DataRow("交货日期")
            End If
        End If
        
        \'销售订单日期赋值到销售订单明细表
        Dim pr As DataRow=e.DataRow.getparentrow("销售订单")
        e.DataRow("交货日期")= pr("交货日期")
    
    Case "数量","单价","税率"
        Dim dr1 As DataRow = e.DataRow
        dr1("金额")=  dr1("单价") * dr1("数量")
        dr1("含税单价")=dr1("单价")*(1+dr1("税率")/100)
        dr1("含税金额")=dr1("含税单价")*dr1("数量")

    Case "存货名称","交货日期"
        Dim dr3 As DataRow = DataTables("预计库存表").AddNew()
        dr3("相关单据编号") = e.DataRow("单据编号")
        dr3("日期") =e.DataRow("交货日期")
        dr3("存货名称") =e.DataRow("存货名称")

    Case "数量"
        Dim dr4 As DataRow = DataTables("预计库存表").Find("相关单据 = \'" & e.DataRow("单据编号") & "\'")
        If dr4 IsNot Nothing Then
            dr4("预计出库") = e.DataRow("数量")
        End If
        
    
        
 End Select

--  作者:jerry85618
--  发布时间:2016/8/1 20:32:00
--  
在线等,研究了2个小时了,确实没有研究出来。
--  作者:jerry85618
--  发布时间:2016/8/1 23:15:00
--  
在预计库存表中的DataColChanged代码写了代码,勉强实现了这个功能,但是,销售订单明细表中修改数据的话,这个代码就不起作用了。
大家能不能给个思路呢?



--  作者:Hyphen
--  发布时间:2016/8/2 10:52:00
--  
case 里的数量重复,只会执行第一个

Select Case e.DataCol.name
    Case "存货名称"
        If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空
            e.DataRow("单价") = Nothing \'那么清空此行单价列的内容
        Else
            Dim dr As DataRow
            \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
            dr = DataTables("存货").Find("[存货名称] = \'" & e.NewValue & "\'")
            If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
                e.DataRow("销售单位") = dr("销售常用单位")
                e.DataRow("税率")=dr("税率")
                \'e.DataRow("交货日期")
            End If
        End If
        
        \'销售订单日期赋值到销售订单明细表
        Dim pr As DataRow=e.DataRow.getparentrow("销售订单")
        e.DataRow("交货日期")= pr("交货日期")
        
    Case "数量","单价","税率"
        Dim dr1 As DataRow = e.DataRow
        dr1("金额")=  dr1("单价") * dr1("数量")
        dr1("含税单价")=dr1("单价")*(1+dr1("税率")/100)
        dr1("含税金额")=dr1("含税单价")*dr1("数量")
        
    Case "存货名称","交货日期"
        Dim dr3 As DataRow = DataTables("预计库存表").AddNew()
        dr3("相关单据编号") = e.DataRow("单据编号")
        dr3("日期") =e.DataRow("交货日期")
        dr3("存货名称") =e.DataRow("存货名称")
        
End Select

If e.DataCol.name = "数量" Then
    Dim dr4 As DataRow = DataTables("预计库存表").Find("相关单据 = \'" & e.DataRow("单据编号") & "\'")
    If dr4 IsNot Nothing Then
        dr4("预计出库") = e.DataRow("数量")
    End If
End If

--  作者:jerry85618
--  发布时间:2016/8/2 14:56:00
--  
已经成功了,很感谢,帮助看的不仔细,帮助里用了两个select case