Foxtable(狐表)用户栏目专家坐堂 → DataTableBuilder


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

主题:DataTableBuilder

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


加好友 发短信
等级:童狐 帖子:266 积分:2309 威望:0 精华:0 注册:2016/6/3 8:28:00
  发帖心情 Post By:2020/8/8 21:23:00 [只看该作者]

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

老师能帮我看看嘛  这个统计是没有问题  但是打开非常卡,卡个好几秒才出来,能帮我优化一下吗?

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


加好友 发短信
等级:超级版主 帖子:106884 积分:543633 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/9 20:15:00 [只看该作者]

  gcmd.CommandText="select * from 产品_应收账清单 where 1=2"
Dim dtb2 As DataTable= gcmd.ExecuteReader
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("公司", Gettype(String), 32)
dtb.AddDef("单位名称", Gettype(String), 32)
Dim prds As List(of String) = dtb2.SQLGetValues("convert(nvarchar(7),开piao日期,120)")
For Each s As String In prds 
    dtb.AddDef(s.replace("-","_") & "月_开piao金额", Gettype(String), 32)
    dtb.AddDef(s.replace("-","_") & "月_回款金额", Gettype(String), 32)
Next
dtb.AddDef("应收账款", Gettype(Double), 32)
dtb.Build()

For Each  nm() As String In dtb2.SQLGetValues("开piao公司|单位名称")
    Dim dr As DataRow = DataTables("统计").AddNew()
    dr("公司") =  nm(0)
    dr("单位名称")= nm(1)
    For Index As Integer = 0 To prds.Count -1
        dr(prds(Index).replace("-","_") & "月_开piao金额") = dtb2.SQLCompute("sum(开piao金额)","编号 Like '%CKB%' and 单位名称='" & nm(1) & "'  and 开piao公司='" & nm(0) & "' and 开piao日期 >='" & prds(Index) & "-01' And 开piao日期 <='" & prds(Index) & "-" & Date.DaysInMonth(prds(Index).SubString(0,4),prds(Index).SubString(6,1)) &"'")
        dr(prds(Index).replace("-","_") & "月_回款金额") = dtb2.SQLCompute("sum(开piao金额)","编号 Like '%CKH%' and 单位名称='" & nm(1) & "'  and 开piao公司='" & nm(0) & "' and 开piao日期 >='" & prds(Index) & "-01' And 开piao日期 <='" & prds(Index) & "-" & Date.DaysInMonth(prds(Index).SubString(0,4),prds(Index).SubString(6,1)) &"'")
    Next
dr("应收账款")=dtb2.SQLCompute("sum(开piao金额)","编号 Like '%CKB%' and 单位名称='" & nm(1) & "'  and 开piao公司='" & nm(0) & "' ")-dtb2.SQLCompute("sum(开piao金额)","编号 Like '%CKH%' and 单位名称='" & nm(1) & "'  and 开piao公司='" & nm(0) & "' ")
Next
MainTable= Tables("统计")


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


加好友 发短信
等级:超级版主 帖子:106884 积分:543633 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/9 20:15:00 [只看该作者]

应该是可以使用交叉统计+合并查询结果的方式直接统计的:http://www.foxtable.com/webhelp/topics/2320.htm,方便的话上传实例看看

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