Foxtable(狐表)用户栏目专家坐堂 → 直接统计


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

主题:直接统计

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/20 16:51:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/20 17:39:00 [显示全部帖子]

以下是引用dansh在2018/6/20 17:30:00的发言:

菜鸟,看不懂,请教一下有项目需求找谁呀

 

改一下,如

 

http://www.foxtable.com/webhelp/scr/2946.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 11:04:00 [显示全部帖子]

模板里面写,如

 

[!期初余额]

 

[!期末余额]

 

在生成报表之前,先查询计算对应的值,如

 

vars("期初余额") = 100

vars("期末余额") = 900

 

查找表格数据参考 http://www.foxtable.com/webhelp/scr/0396.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 12:05:00 [显示全部帖子]

比如,你要查2月份期初,这样写

 

Dim rq As Date = "2018-02-01"

Dim fdr As DataRow = DataTables("表A").find("日期=#" & rq & "#", "_sortkey")

If fdr IsNot Nothing Then

    msgbox(fdr("余额")+fdr("支出")-fdr("收入"))

End If

[此贴子已经被作者于2018/6/22 12:06:02编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 14:22:00 [显示全部帖子]

写在你生成excel报表之前。你可以做一个按钮生成报表

 

http://www.foxtable.com/webhelp/scr/1145.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 15:29:00 [显示全部帖子]

模板改成

 

[!期初余额-人民市]

[!期初余额-东风中]

[!期初余额-羊城支行]

 

代码改成

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\银行日记账汇总.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim rq As Date = "2018-02-01"
Dim fdr As DataRow = DataTables("资金日记账").find("银行 = '现金-人民市' and 日期>=#" & rq & "#", "_sortkey")
If fdr IsNot Nothing Then
    vars("期初余额-人民市") = fdr("余额")+fdr("支出")-fdr("收入")
End If

fdr = DataTables("资金日记账").find("银行 = '银行存款-广发行-东风中' and 日期>=#" & rq & "#", "_sortkey")
If fdr IsNot Nothing Then
    vars("期初余额-东风中") = fdr("余额")+fdr("支出")-fdr("收入")
End If
Book.Build()

Book.Save("c:\reports\test.xls")

Dim Proc As New Process

Proc.File = "c:\reports\test.xls"
Proc.Start()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 17:13:00 [显示全部帖子]

思路要变一下:在foxtable里面,先分组统计生成数据

 

http://www.foxtable.com/webhelp/scr/0158.htm

 

然后逐行计算出期初、期末

 

最后根据这个统计表设计excel报表模板。

 

(如果不会做,请把foxtable项目发上来测试)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 18:27:00 [显示全部帖子]

1、生成统计表

 

Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("银行")
g.Groups.AddDef("月份")
g.Totals.AddDef("收入")
g.Totals.AddDef("支出")
g.Build()
Dim t As Table = Tables("统计表1")
MainTable = t
t.DataTable.DataCols.Add("期初", Gettype(Double))
t.DataTable.DataCols.Add("期末", Gettype(Double))
For Each r As Row In t.Rows
    Dim fdr As DataRow = DataTables("表a").find("银行 = '" & r("银行") & "' and 月份='" & r("月份") & "'", "_sortkey")
    If fdr IsNot Nothing Then
        r("期初") = fdr("余额")+fdr("支出")-fdr("收入")
    End If
    fdr = DataTables("表a").find("银行 = '" & r("银行") & "' and 月份='" & r("月份") & "'", "_sortkey desc")
    If fdr IsNot Nothing Then
        r("期末") = fdr("余额")
    End If
Next

 

2、模板

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:银行日记账汇总.xls


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/25 14:26:00 [显示全部帖子]

Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("日期", DateGroupEnum.None)
g.Groups.AddDef("银行")
g.Groups.AddDef("日期")
g.Totals.AddDef("收入")
g.Totals.AddDef("支出")
g.Build()
Dim t As Table = Tables("统计表1")
MainTable = t
t.DataTable.DataCols.Add("期初", Gettype(Double))
t.DataTable.DataCols.Add("期末", Gettype(Double))
For Each r As Row In t.Rows
    Dim fdr As DataRow = DataTables("表a").find("银行 = '" & r("银行") & "' and 日期='" & r("日期") & "'", "_sortkey")
    If fdr IsNot Nothing Then
        r("期初") = fdr("余额")+fdr("支出")-fdr("收入")
    End If
    fdr = DataTables("表a").find("银行 = '" & r("银行") & "' and 日期='" & r("日期") & "'", "_sortkey desc")
    If fdr IsNot Nothing Then
        r("期末") = fdr("余额")
    End If
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/25 16:38:00 [显示全部帖子]

同样也可以放在beforebuild里面,适当修改细节。你写在一起有什么问题?贴出所写全部代码。

[此贴子已经被作者于2018/6/25 16:43:59编辑过]

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