此主题相关图片如下:3.png
报表格式如图,后面二月三月四月.......十二月的我就没有接图了,都是一样的
受狐鸟兄弟们作品的启发,想改为第一副图中的格式
此主题相关图片如下:4.png
图二效果代码
DataTables("销售类别报表").DataRows.Clear()
Dim Lbl As WinForm.Label = e.Form.Controls("Label1")
Lbl.Text = "销售类别报表"
Lbl.ForeColor=Color.DodgerBlue
dim f As New Filler
f.SourceTable = DataTables("销售定单") '指定数据来源
f.SourceCols = "类别" '指定数据来源列
f.DataTable = DataTables("销售类别报表") '指定数据接收表
f.DataCols = "销售类别" '指定数据接收列
f.Fill() '填充数据
For Each dc As DataCol In DataTables("销售类别报表").DataCols
If dc.Name.EndsWith("月") Then
For Each dr As DataRow In DataTables("销售类别报表").DataRows
dr(dc.name) = DataTables("销售定单").Compute("Sum(已收款金额)","收款月份 = '" & dc.Name & "' And 类别= '" & dr("销售类别") & "'")
Next
End If
Next
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.DataTable = DataTables("销售类别报表")
dst.Build()
Vars("s3") = True
Vars("s2") = False
Vars("s1") = False
Vars("s4") = False想到达到第一副图的效果,需要改动的代码
If dc.Name.EndsWith("月") Then
For Each dr As DataRow In DataTables("销售类别报表").DataRows
dr(dc.name) = DataTables("销售定单").Compute("Sum(已收款金额)","
收款月份 = '" & dc.Name & "' And 类别= '" & dr("销售类别") & "'")
Next
End If
销售定单 表中的
收款月份 是:“一月,二月,三月,四月。。。。”都是通过
dr("收款月份") = MonthName(dr("收款日期").Month)此代码计算出来
现在报表中的月份列名是
此主题相关图片如下:5.png
以
采购金额列为例
那么我要将
销售定单 表中的
收款月份 改成:“一月采购,二月采购,三月采购,四月采购。。。。”这样才能达到图一的效果。
如果用此方法,我要在销售定单表中增加三列,采购月份(一月采购,二月采购,三月采购。。。),已付款月份(一月已付款,二月已付款,三月已付款。。。),开piao月份(一月开piao,二月开piao,三月开piao。。。。。)
照此方法将增加数据量,不利于文件打开与数据处理。
知道能改正成为这种方法
销售定单表中设置一个
收款月份列(一月.二月.三月.),
在使用此代码之前 dr(dc.name) = DataTables("销售定单").Compute("Sum(已收款金额)","
收款月份 =
'" & dc.Name & "' And 类别= '" & dr("销售类别") & "'") 让
'" & dc.Name & "' 的值自动加上 采购,已付款 或 开piao
如;
For Each dc As DataCol In DataTables("销售类别报表").DataCols
If dc.Name.EndsWith("购") Then (采购最后字符,购)
For Each dr As DataRow In DataTables("销售类别报表").DataRows
dr(dc.name) = DataTables("销售定单").Compute("Sum(已收款金额)","收款月份 = '"
& dc.Name & "' And 类别= '" & dr("销售类别") & "'") “收款月份列中原来值(一月.二月.三月...)
变为(一月采购,二月采购,三月采购)后,在参与计算”
Next
End If
Next
For Each dc As DataCol In DataTables("销售类别报表").DataCols
If dc.Name.EndsWith("款") Then (已付款最后字符,款)
For Each dr As DataRow In DataTables("销售类别报表").DataRows
dr(dc.name) = DataTables("销售定单").Compute("Sum(已收款金额)","收款月份 = '"
& dc.Name & "' And 类别= '" & dr("销售类别") & "'") “收款月份列中原来值(一月.二月.三月...)
变为(一月已付款,二月已付款,三月已付款)后,在参与计算”
Next
End If
Next
讲这么多不知道各位明白意思吗?????