以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据表的竖向计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157074)

--  作者:朱女士
--  发布时间:2020/9/30 11:00:00
--  数据表的竖向计算

老师您好!

   我要有一个计算表,属于跨表计算,有15个客户,由于计算内容多,需要将表竖起来计算,所以我将客户名作为列名,将每一个计算内容为一行,有68行,我的计算公式没有问题,自己能写,就是用通用代码怎么将数据写入每一行中,不会循环。我下面计算了两行,第二行hs(2) 是不对的。麻烦给予指教!

Dim hs(68) As Double
Dim je1,je2 As Double
For Each nm As String In DataTables("ddpsb").GetValues("客户")
 Dim dr As DataRow = DataTables("ddpsb").find("客户=\'" & nm & "\'")

For Each r As Row In Tables("盈亏计算总表").rows
   
    Dim xm As String = r("项目名称")

  hs(1)=DataTables("ddpsb").Compute("Sum(净重)", "[发货日期]<= #" & dt3 & "# and [客户]=\'" & nm & "\'And 发货日期 Is Not null")

  je1=DataTables("ddpsb").Compute("Sum(含税金额)", "[发货日期]<= #" & dt3 & "# and [客户]=\'" & nm & "\'And 发货日期 Is Not null")
  je1=DataTables("ddpsb").Compute("Sum(不开票金额)", "[发货日期]<= #" & dt3 & "# and [客户]=\'" & nm & "\'And 发货日期 Is Not null")
hs(2)=je1+je2

If xm="累计总产量"  
 r(nm)=hs(1)
End If
If xm="累计总产值"  
r(nm)=hs(2)
End If
Next 
Next   


图片点击可在新窗口打开查看此主题相关图片如下:盈亏表.png
图片点击可在新窗口打开查看

--  作者:y2287958
--  发布时间:2020/9/30 11:13:00
--  
上实例,应该有更好的方法
--  作者:朱女士
--  发布时间:2020/9/30 11:28:00
--  
因为每一行一个公式,本人迷茫,请指教!
--  作者:有点蓝
--  发布时间:2020/9/30 11:31:00
--  
请上传实例说明
--  作者:朱女士
--  发布时间:2020/9/30 11:43:00
--  

我没写完,就写了两行就卡这里了。

以下是计算部分

Dim hs(68) As Double
Dim je1,je2 As Double
For Each nm As String In DataTables("ddpsb").GetValues("客户")
 Dim dr As DataRow = DataTables("ddpsb").find("客户=\'" & nm & "\'")

For Each r As Row In Tables("盈亏计算总表").rows
   
    Dim xm As String = r("项目名称")

  hs(1)=DataTables("ddpsb").Compute("Sum(净重)", "[发货日期]<= #" & dt3 & "# and [客户]=\'" & nm & "\'And 发货日期 Is Not null")

  je1=DataTables("ddpsb").Compute("Sum(含税金额)", "[发货日期]<= #" & dt3 & "# and [客户]=\'" & nm & "\'And 发货日期 Is Not null")
  je1=DataTables("ddpsb").Compute("Sum(不开票金额)", "[发货日期]<= #" & dt3 & "# and [客户]=\'" & nm & "\'And 发货日期 Is Not null")
hs(2)=je1+je2

If xm="累计总产量"  
 r(nm)=hs(1)
End If
If xm="累计总产值"  
r(nm)=hs(2)
End If
Next 
Next   
MainTable= Tables("盈亏计算总表")


--  作者:有点蓝
--  发布时间:2020/9/30 11:48:00
--  
不知道这些表表结构、表数据都是怎么样的,所以看不懂这些代码,请上传实例说明
--  作者:朱女士
--  发布时间:2020/9/30 15:51:00
--  
这是我的ddpsb结构,我要计算的表是盈亏表。
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:盈亏表.png
图片点击可在新窗口打开查看

--  作者:朱女士
--  发布时间:2020/9/30 15:53:00
--  
累计数和选取月份的数据。总产量是净重之和,总产值是含税金额和不开票金额之和。
--  作者:有点蓝
--  发布时间:2020/9/30 16:10:00
--  
ddpsb表数据和这些项目名称有什么关系?还是说只需要计算累计总产量和累计总产值2个项目?
--  作者:朱女士
--  发布时间:2020/9/30 17:01:00
--  

累计总产量就是ddpsb中的净重总和,累计总产值就是ddpsb 的含税金额和不开票金额的累计值。其他项目还有其他表的数据计算而来,您就给我解决这两行数据就行,我可以依次类推算。