Foxtable(狐表)用户栏目专家坐堂 → 报表代码咨询


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

主题:报表代码咨询

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/19 15:56:00 [显示全部帖子]

 发觉excel报表的公式识别有些问题,这个Bug还是没有改掉。

 当有多个公式的时候,再进行直接统计,会出现错乱。所以只能使用标记的方式一个一个写入excel报表了。

 太麻烦,我就不写了。希望狐爸能修改这个Bug。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/20 14:02:00 [显示全部帖子]

 代码这样写吧,测试过了。不过对于各年各月的对比表,自己想想办法吧,变的只是日期。

Dim dtb As New DataTableBuilder("工作量完成情况与上年同期对比")
dtb.AddDef("科室", Gettype(String), 32)
dtb.AddDef("项目", Gettype(String), 32)
dtb.AddDef("本年度人次", Gettype(Integer))
dtb.AddDef("上年度人次", Gettype(Integer))
dtb.AddDef("人次_增减数", Gettype(Integer), "本年度人次 -上年度人次", "增减数")
dtb.AddDef("人次_增减率", Gettype(Double), "本年度人次 / 上年度人次", "增减率")
dtb.AddDef("本年度金额", Gettype(Double))
dtb.AddDef("上年度金额", Gettype(Double))
dtb.AddDef("金额_增减数", Gettype(Double),"本年度金额 -上年度金额", "增减数")
dtb.AddDef("金额_增减率", Gettype(Double), "本年度金额 /上年度金额", "增减率")
dtb.Build()
MainTable = Tables("工作量完成情况与上年同期对比")
Tables("工作量完成情况与上年同期对比").AutoSizeCols()

For Each arys As String() In DataTables("工作量").GetUniqueValues("科别 is not null", "科别", "项目")
    Dim ff As String = "科别 = '" & arys(0) & "' And 项目 =  '" & arys(1) & "'"
    Dim ndr As DataRow = DataTables("工作量完成情况与上年同期对比").AddNew
    ndr("科室") = arys(0)
    ndr("项目") = arys(1)
    ndr("上年度人次") = DataTables("工作量").Compute("Sum(人次)", ff & " And  时间 >= #1/1/2011#  And 时间 < #1/1/2012# ")
    ndr("本年度人次") = DataTables("工作量").Compute("Sum(人次)", ff & "  And 时间 >= #1/1/2012#  And 时间 < #1/1/2013# ")
    ndr("上年度金额") = DataTables("工作量").Compute("Sum(金额)", ff & " And  时间 >= #1/1/2011#  And 时间 < #1/1/2012# ")
    ndr("本年度金额") = DataTables("工作量").Compute("Sum(金额)", ff & "  And 时间 > #1/1/2012#  And 时间 < #1/1/2013# ")
Next

DataTables("工作量完成情况与上年同期对比").DataCols("人次_增减率").SetFormat("#0.00%")
DataTables("工作量完成情况与上年同期对比").DataCols("金额_增减率").SetFormat("#0.00%")
    

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/21 17:12:00 [显示全部帖子]

 其实,楼主,你只需要修改日期范围,就可以统计不同的了。

    ndr("上年度人次") = DataTables("工作量").Compute("Sum(人次)", ff & " And  时间 >= #1/1/2011#  And 时间 < #1/1/2012# ")
    ndr("本年度人次") = DataTables("工作量").Compute("Sum(人次)", ff & "  And 时间 >= #1/1/2012#  And 时间 < #1/1/2013# ")
    ndr("上年度金额") = DataTables("工作量").Compute("Sum(金额)", ff & " And  时间 >= #1/1/2011#  And 时间 < #1/1/2012# ")
    ndr("本年度金额") = DataTables("工作量").Compute("Sum(金额)", ff & "  And 时间 > #1/1/2012#  And 时间 < #1/1/2013# ")

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/22 9:31:00 [显示全部帖子]

 把窗口设计一章看完,自己捣鼓一下怎么使用窗口。

http://www.foxtable.com/help/topics/0698.htm

 把统计表导出是很轻易的事情。

http://www.foxtable.com/help/topics/0559.htm

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/31 10:37:00 [显示全部帖子]

 大概是这样。

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



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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/31 12:12:00 [显示全部帖子]

以下是引用hch在2012-12-31 11:59:00的发言:

看了你在(按年份统计)按钮中的修订代码,经测试输入时间段,但仍统计不出所需数据,这是怎么回事呀?是不是修订的代码放置位置不对。


不是统计你设定的这个时间段的 今年 和 去年的数据么?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/31 14:58:00 [显示全部帖子]

 看是不是这样

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



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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/4 18:00:00 [显示全部帖子]

 你的意思懂了,但是,你最后生成的报表怎么填入数据?

 比如:我选择了2011至2013,那么生成的列是这样?

 2011人次,2012人次,2013人次,2012人数增减数,2012人数增减率,2013人数增减数,2013人数增减率,2011金额,2012金额,2012金额增减数,2012金额增减率………………?

 要生成这些列的数据?

 再有,如果你选择的是按月份统计2011-01至2013-12,这样是不是要生成几百列?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/5 11:03:00 [显示全部帖子]

 看不到图,请正确上传附件。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/7 11:54:00 [显示全部帖子]

以下是引用hch在2013-1-7 11:42:00的发言:
首先谢谢林老师,图的样式和所需测试用的Table文件现重新上传,请您在费心看一下。


明白了,下午弄给你。

 回到顶部
总数 14 1 2 下一页