以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  统计代码使用?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=158983)

--  作者:bluev
--  发布时间:2020/12/9 10:32:00
--  统计代码使用?
统计代码的使用
以下内容为程序代码:

1 Dim y As String = e.Form.Controls("ComboBox1").value
2 Dim sql As String = "selec t 日期,名称,收入金额, 0 as 借方金额,支出金额,0 as 贷方金额 fro m {电子单} where year(日期) = \'"& y & "\' union all selec t 日期, 名称,0 as 收入金额,借方金额,0 as 支出金额,贷方金额 fro m {日记账}where year(日期) = \'"& y & "\'"
3 Dim b As New CrossTableBuilder("统计表1",sql,"db")
4 Dim dt1 As fxDataSource
5 b.C
6 b.HGroups.AddDef("银行名称") \'添加客户列用于水平分组
7 b.VGroups.AddDef("日期", "{0}月") \'添加产品列用于垂直分组,并设置了Pattern参数
8 b.Totals.AddDef("借方金额", "收入金额_日记账")
9 b.Totals.AddDef("收入金额", "收入金额_电子")
10 b.Totals.AddDef("贷方金额", "支出金额_日记账")
11 b.Totals.AddDef("支出金额", "支出金额_电子")
12 dt1 = b.BuildDataSource()
13 Tables("统计窗口_Table3").DataSource = dt1

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

请教用这个代码出的统计表,为什么 每个月的【收入金额】和【支出金额】不在一起呢?请教如何更改?
[此贴子已经被作者于2020/12/9 10:33:24编辑过]

--  作者:有点蓝
--  发布时间:2020/12/9 11:02:00
--  
麻烦以后直接发代码,不要使用这种添加行号的方式

试试调换位置

6 b.HGroups.AddDef("银行名称") \'添加客户列用于水平分组
7 b.VGroups.AddDef("日期", "{0}月") \'添加产品列用于垂直分组,并设置了Pattern参数
8 b.Totals.AddDef("借方金额", "收入金额_日记账")
10 b.Totals.AddDef("贷方金额", "支出金额_日记账")
9 b.Totals.AddDef("收入金额", "收入金额_电子")
11 b.Totals.AddDef("支出金额", "支出金额_电子")
12 dt1 = b.BuildDataSource()

--  作者:bluev
--  发布时间:2020/12/9 11:40:00
--  
感谢回复,
Dim y As String  = e.Form.Controls("ComboBox1").value
Dim sql As String = "selec t 日期,名称,收入金额, 0 as 借方金额,支出金额,0 as 贷方金额 fro m {银行电子对账单} where year(日期) = \'"& y & "\' union all selec t 日期, 名称,0 as 收入金额,借方金额,0 as 支出金额,贷方金额 fro m {银行存款日记账}where year(日期) = \'"& y & "\'"
Dim b As New CrossTableBuilder("统计表1",sql,"db")
Dim dt1 As fxDataSource
b.C
b.HGroups.AddDef("名称") \'添加客户列用于水平分组
b.VGroups.AddDef("日期", "{0}月") \'添加产品列用于垂直分组,并设置了Pattern参数
b.Totals.AddDef("借方金额", "收入金额_日记账")
b.Totals.AddDef("贷方金额", "支出金额_日记账")
b.Totals.AddDef("收入金额", "收入金额_电子")
b.Totals.AddDef("支出金额", "支出金额_电子")
dt1 = b.BuildDataSource()
Tables("统计窗口_Table3").DataSource = dt1

调整成这样也是不行,显示也是不行

--  作者:有点蓝
--  发布时间:2020/12/9 11:52:00
--  
只能手工移动列了:http://www.foxtable.com/webhelp/topics/0587.htm
--  作者:bluev
--  发布时间:2020/12/9 14:20:00
--  
但是月份不是固定的,如何用代码?
1-12遍历一遍?

--  作者:有点蓝
--  发布时间:2020/12/9 14:28:00
--  
当然是遍历所有列处理。具体代码请上传实例测试