Foxtable(狐表)用户栏目专家坐堂 → 报表代码请求帮助


  共有14258人关注过本帖树形打印复制链接

主题:报表代码请求帮助

帅哥哟,离线,有人找我吗?
卟离卟弃
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
报表代码请求帮助  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2009/10/8 10:33:00 [只看该作者]

难道各位狐兄还在国庆。。。。。。。。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47509 积分:251469 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/10/8 11:23:00 [只看该作者]

估计各位和我一样,一下子理解不了

 回到顶部