Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共13 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:[求助]统计关联数据

1楼
狐哥 发表于:2009/2/21 14:21:00
因家网络有问题,在网巴询:

当前表如下三列:
列名:USD    HKD   RMB

关联表有如下三列:
列名:        收付   币制    金额
第一行:     应收  USD    100
第二行:     应付  USD      50
第三行:     应收  RMB    100
第四行:     应付  RMB      50
第五行:     应收  USD     200

因自己搞的代码太长,没有充分利用关联,如何用关联关系在当前表统计关联表的当前列名的利润:

例如:
当前表的三列当前行显示:
USD     HKD    RMB
250                   50

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

[此贴子已经被作者于2009-2-23 10:18:26编辑过]
2楼
狐狸爸爸 发表于:2009/2/21 14:28:00
你这不是关联,你应该重新设计表结构。
如果一定要这么计算,在项目事件MainTableChanged事件中设置:
If MainTable.Name = "表1"
   Dim dt1  As DataTable = DataTables("表1")
   Dim dt2  As DataTable = DataTables("表2").
   dt1.DtaRows(0)("USD") = dt2.Compute("Sum(金额)","币制= 'USD' And 收付 = '应收'") -dt2.Compute("Sum(金额)","币制= 'USD' And 收付 = '应父'")

.....
End If

这样每次选择表1,就可以看到结果。
[此贴子已经被作者于2009-2-21 14:30:53编辑过]
3楼
狐哥 发表于:2009/2/21 14:33:00
你好,狐爸,我是通过行号关联的,只是没写出来而已。
我做的公式也是你这个公式,只是太长。

当前表是计算当前业务的利润。
关联表是应收应付的费用清明细。
[此贴子已经被作者于2009-2-21 14:33:50编辑过]
4楼
狐狸爸爸 发表于:2009/2/21 14:54:00

你的设计很奇怪,没有文件,看不明白的。

5楼
狐哥 发表于:2009/2/21 15:08:00
以下是引用狐狸爸爸在2009-2-21 14:54:00的发言:

你的设计很奇怪,没有文件,看不明白的。

不好意思:

比如:

表A:
行号    USD    HKD    RMB
1         50      130         20        (此为计算结果)

关联表  (表A.表B):
关联列  收付      币制       金额
1         收入      USD      100
1         支出      USD        50
1         收入      RMB      100
1         支出      RMB        80
1         收入      HKD      150
1         支出      HKD        20

呵,不好意思,开始没有注明(表A.表B)


6楼
狐狸爸爸 发表于:2009/2/21 15:44:00

最好设计一个表格上来,输入一点数据,然后我们帮你想想办法。
因为我们也要测试的,要帮你,还得先建立一个项目的。

7楼
czy 发表于:2009/2/22 18:05:00
以下是引用狐哥在2009-2-21 15:08:00的发言:

不好意思:

比如:

表A:
行号    USD    HKD    RMB
1         50      130         20        (此为计算结果)

关联表  (表A.表B):
关联列  收付      币制       金额
1         收入      USD      100
1         支出      USD        50
1         收入      RMB      100
1         支出      RMB        80
1         收入      HKD      150
1         支出      HKD        20

呵,不好意思,开始没有注明(表A.表B)



这种要求表达式是不能完成的,有关联也不行,因为没有一个聚合函数是可以带比较条件进行计算的,所以你只能用代码。

8楼
狐哥 发表于:2009/2/23 10:21:00

各位老师:
附件已在一楼.

帮我看一下内的公式,如何设置才是合理.

另询一下中括号的问题:
Compute("Sum(金额)", "[收付] = '应收' AND [币制] = 'USD' and [费用关联] = '" & e.datarow("_Identify") & "'") .....
列名我用[]也能计算正确,不用也能.帮助中有的有[]有的没有,有什么区别吗??

9楼
狐狸爸爸 发表于:2009/2/23 10:41:00
原来的代码虽然结果正确,但是效率太低,计算代码会重复执行,改正这样才好:

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

10楼
狐哥 发表于:2009/2/23 10:44:00
以下是引用狐狸爸爸在2009-2-23 10:41:00的发言:
原来的代码虽然结果正确,但是效率太低,计算代码会重复执行,改正这样才好:

 下载信息  [文件大小:448.0 KB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:跨表统计.table

非常感谢!

共13 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03516 s, 4 queries.