Foxtable(狐表)用户栏目专家坐堂 → [求助]有条件的跨表引用


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

主题:[求助]有条件的跨表引用

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]有条件的跨表引用  发帖心情 Post By:2014/11/2 17:18:00 [只看该作者]

假定表A有字段 销售日期 产品名称 销售单价 成本单价 单位毛利
假定表B有字段 月份 产品名称 成本单价
我希望在表A中 输入销售日期、产品名称与销售单价后,成本单价自动从表B中引用过来,再通过表达式算出毛利
不带条件的引用我根据帮助文件已经会用,但带条件的就用不来了,我希望达到的效果是1月份的产品销售对应此产品1月份的成本,一一对应。
求老师帮助!!!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/2 17:22:00 [只看该作者]

 方法一:表A加入月份列,A、B表用月份和产品名称关联,表A直接引用父表数据;

 

 方法二:用find函数查找 http://www.foxtable.com/help/topics/1451.htm

 


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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/11/2 18:54:00 [只看该作者]

问题解决了,说下之前失败原因供有需要的朋友参考
在EXCEL中,遇到这个问题我常用的办法就是把表A中日期先转换成年月的字符串,然后把这个年月字符串与产品名连起来作为一个查找匹配码,在表B中同样的方法生成年月产品名的匹配码,然后用Vlookup函数引用。
在FOXTABLE中,我一开始也是用这思路进行操作,但失败了,原因在于我通过了表达式的方式生成了匹配码,然后用这匹配码进行跨表引用的自动更新,设置的条件就是表A与表B的匹配码一致,这个表达式就是问题所在,因为不能用表达式进行匹配引用的,要在表事件中生成表A与表B的匹配码数据列,用数据列中的匹配码就能正常进行跨表引用了,
这是跨表引用的网址:http://www.foxtable.com/help/index.html?n=1451.htm 
我参考的代码就是:
上一节提到,如果在订单表的DataColChanged事件中加入如下代码:

If e.DataCol.Name = "品名" Then '如果内容发生变动的是品名列
    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("单价"
        End
 If
    End
 If
End
 If


 回到顶部