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


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

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

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


加好友 发短信
等级:五尾狐 帖子:1028 积分:7191 威望:0 精华:0 注册:2016/6/16 15:23:00
  发帖心情 Post By:2017/8/12 18:45:00 [只看该作者]

谢谢老师指点。

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


加好友 发短信
等级:五尾狐 帖子:1028 积分:7191 威望:0 精华:0 注册:2016/6/16 15:23:00
  发帖心情 Post By:2017/8/12 20:01:00 [只看该作者]

Dim d As Date = Date.Today
If Forms("导航").Opened
    Dim trv As WinForm.TreeView = Forms("导航").Controls("TreeView1")
    If trv.SelectedNode IsNot Nothing Then
        Dim dr As DataRow = trv.SelectedNode.DataRow
        d = new Date(dr("年"),dr("月"),1)
    End If    
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      '写入打印时间
Book.Build() '生成报表
'Book.Save(fl)
'Dim Proc As New Process
'Proc.File = fl
'Proc.Start()



'Dim Book As New XLS.Book(ProjectPath & "Attachments\月工资打印模板.xls") '打开模板
'Dim fl As String = ProjectPath & "Reports\月工资打印模板.xls"
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()

老师:出现如下问题
.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.8.3.1
错误所在事件:
详细错误信息:
对象不能从 DBNull 转换为其他类型。


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


加好友 发短信
等级:五尾狐 帖子:1028 积分:7191 威望:0 精华:0 注册:2016/6/16 15:23:00
  发帖心情 Post By:2017/8/13 9:36:00 [只看该作者]

老师 ,用以上代码导出数据到一个EXCEL中出错,请帮忙看看,谢谢??

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:五尾狐 帖子:1028 积分:7191 威望:0 精华:0 注册:2016/6/16 15:23:00
  发帖心情 Post By:2017/8/13 13:21:00 [只看该作者]

Dim dt As DataTable
Dim b As New SQLGroupTableBuilder("统计表1","工资库")
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


谢谢老师:我将数据源转成了外部数据源,以上代码就又出错了,请指点为谢!!!

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


加好友 发短信
等级:五尾狐 帖子:1028 积分:7191 威望:0 精华:0 注册:2016/6/16 15:23:00
  发帖心情 Post By:2017/8/13 13:48:00 [只看该作者]

ACCDB数据源统计不到_identify吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1028 积分:7191 威望:0 精华:0 注册:2016/6/16 15:23:00
  发帖心情 Post By:2017/8/13 14:47:00 [只看该作者]

谢谢老师。

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


加好友 发短信
等级:五尾狐 帖子:1028 积分:7191 威望:0 精华:0 注册:2016/6/16 15:23:00
  发帖心情 Post By:2017/8/13 15:07:00 [只看该作者]

老师:按27楼方法改了,但还是代码有错。

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


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

报什么错。

 回到顶部
总数 37 上一页 1 2 3 4 下一页