Foxtable(狐表)用户栏目专家坐堂 → 数据引用的问题,希望大家能帮忙


  共有2416人关注过本帖树形打印复制链接

主题:数据引用的问题,希望大家能帮忙

帅哥哟,离线,有人找我吗?
jerry85618
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
数据引用的问题,希望大家能帮忙  发帖心情 Post By:2016/8/1 19:05:00 [只看该作者]

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
jerry85618
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By:2016/8/1 19:06:00 [只看该作者]


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

 回到顶部
帅哥哟,离线,有人找我吗?
jerry85618
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By:2016/8/1 19:06:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/1 19:09:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
jerry85618
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By:2016/8/1 19:21:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
jerry85618
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By:2016/8/1 20:32:00 [只看该作者]

在线等,研究了2个小时了,确实没有研究出来。

 回到顶部
帅哥哟,离线,有人找我吗?
jerry85618
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By:2016/8/1 23:15:00 [只看该作者]

在预计库存表中的DataColChanged代码写了代码,勉强实现了这个功能,但是,销售订单明细表中修改数据的话,这个代码就不起作用了。
大家能不能给个思路呢?



 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By:2016/8/2 14:56:00 [只看该作者]

已经成功了,很感谢,帮助看的不仔细,帮助里用了两个select case

 回到顶部