以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  相同的产品不同的客户不同的单价,如何求平均价格、提前适用的单价  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=37891)

--  作者:tj-pacer
--  发布时间:2013/7/14 15:14:00
--  相同的产品不同的客户不同的单价,如何求平均价格、提前适用的单价

有三个产品表、产品分客户表和开票列表,

 

产品表

产品编码      产品名称      单价

                                  要求等于“产品分客户表”内相同产品的平均值

 

产品分客户表

产品编码      客户            单价

 

 

 

开票列表

产品编码     客户            单价       交货数量         开票金额

                                  产品客户的实际单价

 

请问如何实现上述“产品表”单价计算和“开票列表”中单价的获取?见附件例子。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目0714.table


--  作者:lsy
--  发布时间:2013/7/14 15:56:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:价格、金额自动计算.table

[此贴子已经被作者于2013-7-14 16:02:50编辑过]

--  作者:tj-pacer
--  发布时间:2013/7/14 16:24:00
--  
谢谢了,产品表的平均单价是如何算的?我看不到代码/表达式
--  作者:lsy
--  发布时间:2013/7/14 16:33:00
--  

分客户产品表的DataColChanged事件:

Dim price As Double = e.DataTable.Compute("Sum(单价)","产品编号 = \'" & e.DataRow("产品编号") & "\'")  \'算出相同产品的价格之和
Dim i As Integer = e.DataTable.Compute("Count(产品编号)","产品编号 = \'" & e.DataRow("产品编号") & "\'")  \'算出这种产品的个数
Dim dr As DataRow = DataTables("产品表").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")  \'在产品表中找到这种产品对应的行
dr("单价") = price / i  \'价格之和除以产品个数。

[此贴子已经被作者于2013-7-14 16:33:42编辑过]

--  作者:tj-pacer
--  发布时间:2013/7/14 16:52:00
--  

我还以为写在产品表的事件中。感谢!


--  作者:tj-pacer
--  发布时间:2013/7/15 11:22:00
--  

还有问题,“产品表”中的每个产品都是唯一的,“分客户产品表”中的产品可已有重复,想实现录入产品信息时从“分客户产品表”录入,自动添加到“产品表中”如何实现?如附件,在“分客户产品表”中增加了三条eee产品的记录,如何自动添加到“产品表”中?谢谢!


--  作者:Bin
--  发布时间:2013/7/15 11:31:00
--  
DataColChanged的时候利用Find查询一下另外一个表是否有对应行,没有就增加一行 把值复制过去.
--  作者:tj-pacer
--  发布时间:2013/7/15 11:51:00
--  

能否帮忙在例子上做一下。谢谢!


--  作者:Bin
--  发布时间:2013/7/15 12:00:00
--  
你的意思是自动添加3条EEE还是一条呢?
--  作者:tj-pacer
--  发布时间:2013/7/15 13:02:00
--  
已经在一张表上添加了三条eee了,由于该产品给三个客户,所以在“分客户产品表”有三条记录,自动将该eee产品添加到“产品表”中