Rss & SiteMap

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

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

标题:报表代码请求帮助

1楼
卟离卟弃 发表于:2009/10/7 14:13:00

图片点击可在新窗口打开查看此主题相关图片如下: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




讲这么多不知道各位明白意思吗?????图片点击可在新窗口打开查看

2楼
卟离卟弃 发表于:2009/10/8 10:33:00
难道各位狐兄还在国庆。。。。。。。。
3楼
狐狸爸爸 发表于:2009/10/8 11:23:00
估计各位和我一样,一下子理解不了
共3 条记录, 每页显示 10 条, 页签: [1]

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

Powered By Dvbbs Version 8.3.0
Processed in .02979 s, 2 queries.