Foxtable(狐表)用户栏目专家坐堂 → [求助]AFTERLOAD窗体中的代码,实现在加载树显示统计数据


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

主题:[求助]AFTERLOAD窗体中的代码,实现在加载树显示统计数据

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


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

参考

 

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

 

不会做上传实例。


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


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

 

 

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


图片点击可在新窗口打开查看此主题相关图片如下:123456.png
图片点击可在新窗口打开查看

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


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

If Forms("导航").Opened Then
    Dim d As Date = Date.Today
    Dim trv As WinForm.TreeView = Forms("导航").Controls("TreeView1")
    If trv.SelectedNode IsNot Nothing Then
        Dim dr As DataRow = trv.SelectedNode.DataRow
        If dr IsNot Nothing Then
            d = new Date(dr("年"),dr("月"),1)
        Else
            msgbox("不能选择全部数据")
            Return ""
        End If
    Else
        msgbox("请选择年月")
        Return ""
    End If
    Dim Book As New XLS.Book(ProjectPath & "Attachments\月工资打印模板.xls") '打开模板
    Dim fl As String = ProjectPath & "Reports\月工资打印模板.xls"
    Dim Sheet2 As XLS.Sheet = Book.Sheets(1)
    Sheet2(2,4).Value = "第" & Format(d,"MM") & "月份"
    Sheet2(2,7).Value = d      '写入打印时间
   
    Dim Sheet1 As XLS.Sheet = Book.Sheets(0)
    Sheet1(2,7).Value = "第" & Format(d,"MM") & "月份"
    Sheet1(2,14).Value = d      '写入打印时间
    Book.Build() '生成报表
    Book.Save(fl)
    Dim Proc As New Process
    Proc.File = fl
    Proc.Start()
End If

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


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

b.Totals.AddDef("_Identify",AggregateEnum.Count,"人数") '根据主键列来统计记录数,也就是人数

 

改成

 

b.Totals.AddDef("发薪年月",AggregateEnum.Count,"人数") '根据主键列来统计记录数,也就是人数

[此贴子已经被作者于2017/8/13 14:07:08编辑过]

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


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

报什么错。

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


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

不应该,具体做个例子发上来测试。


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


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

Dim dt As DataTable
Dim b As New SQLGroupTableBuilder("统计表1","工资库")
b.ConnectionName = "test"
b.Groups.AddDef("发薪年月",DateGroupEnum.Year,"年")
b.Groups.AddDef("发薪年月",DateGroupEnum.Month,"月")
b.Totals.AddDef("_Identify",AggregateEnum.Count,"人数") '根据主键列来统计记录数,也就是人数
dt = b.Build(True) '参数设置为True,生成一个临时表,不在主界面显示
'然后根据统计表生成目录树
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Dim Year As Integer = nd.DataRow("年")
    Dim Month As Integer = nd.DataRow("月")
    Select Case nd.Level
        Case 0
            nd.Text = nd.text & "年(" & dt.Compute("Sum(人数)","年 = " & Year) & "人)"
        Case 1
            nd.Text = nd.text & "月(" & dt.Compute("Sum(人数)","年 = " & Year & " And 月 = " & Month) & "人)"
    End Select
Next
trv.Nodes.Insert("加载所有数据","加载所有数据(" & dt.Compute("Sum(人数)") & "人)",0)
trv.ResumeRedraw

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


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

以下是引用evolymft在2017/8/13 21:08:00的发言:
谢谢老师,就是??

 

 

b.ConnectionName = "指定你的数据源的名字"


 回到顶部