Foxtable(狐表)用户栏目专家坐堂 → 统计非常慢


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

主题:统计非常慢

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


加好友 发短信
等级:小狐 帖子:390 积分:4650 威望:0 精华:0 注册:2016/4/30 10:41:00
统计非常慢  发帖心情 Post By:2024/12/17 10:46:00 [只看该作者]

下边这段代码运行时比较慢,请教大师如何修改
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Selec  t  接单日期,{接单登记}.接单单号,客户名称,产品名称,规格型号,单位,单价,销售数量,发货数量 as 已发货数量,(销售数量 - 发货数量) AS 未发货数量 Fro  m ({接单登记} Inner JOIN {接单明细} ON {接单明细}.[接单单号] = {接单登记}.[接单单号]) ORDER BY 接单日期"
Dim sql As DataTable = cmd.ExecuteReader()
cmd.CommandText = "Selec  t  发货日期,{发货表}.发货单号,{发货表}.接单单号,{发货表}.客户名称,产品名称,规格型号,单位,发货数量,接单日期 Fro  m ({发货表} Inner JOIN {发货明细} ON {发货明细}.[发货单号] = {发货表}.[发货单号]) inner join {接单登记} on {接单登记}.接单单号 = {发货表}.接单单号 ORDER BY 发货日期"
Dim sqlf As DataTable = cmd.ExecuteReader()

Dim bd1 As New CrossTableBuilder("统计表1", sql) 
Dim dt1 As fxDataSource
bd1.HGroups.AddDef("接单日期", DateGroupEnum.none)
bd1.HGroups.AddDef("接单单号")
bd1.HGroups.AddDef("客户名称")
bd1.HGroups.AddDef("产品名称") '添加客户列用于水平分组
bd1.HGroups.AddDef("规格型号") '添加客户列用于水平分组
bd1.HGroups.AddDef("单位") '添加客户列用于水平分组
bd1.HGroups.AddDef("销售数量")
bd1.HGroups.AddDef("已发货数量")
bd1.HGroups.AddDef("未发货数量")
dt1 = bd1.BuildDataSource()

Dim bd2 As New CrossTableBuilder("统计表2", sqlf )
Dim dt2 As fxDataSource
bd2.HGroups.AddDef("接单日期", DateGroupEnum.none)
bd2.HGroups.AddDef("接单单号")
bd2.HGroups.AddDef("客户名称")
bd2.HGroups.AddDef("产品名称") '添加客户列用于水平分组
bd2.HGroups.AddDef("规格型号") '添加客户列用于水平分组
bd2.HGroups.AddDef("单位") '添加客户列用于水平分组
bd2.VGroups.AddDef("发货日期", DateGroupEnum.none)
bd2.Totals.AddDef("发货数量")
dt2 = bd2.BuildDataSource()

Dim nms As String() = {"接单日期", "接单单号", "客户名称", "产品名称", "规格型号", "单位" }
dt1.Combine(nms, dt2, nms)
Tables("统计汇总_Table3").DataSource = dt1

Tables("统计汇总_Table3").cols("接单日期").width = 120
Tables("统计汇总_Table3").cols("接单单号").width = 100
Tables("统计汇总_Table3").cols("客户名称").width = 220
Tables("统计汇总_Table3").cols("产品名称").width = 220
Tables("统计汇总_Table3").cols("规格型号").width = 180
Tables("统计汇总_Table3").cols("单位").width = 50
For Each cl As Col In Tables("统计汇总_Table3").Cols
    cl.TextAlign = TextAlignEnum.Center
Next

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


加好友 发短信
等级:超级版主 帖子:111397 积分:567055 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/17 10:58:00 [只看该作者]

Dim sql As string = "Selec  t  接单日期,{接单登记}.接单单号,客户名称,产品名称,规格型号,单位,单价,销售数量,发货数量 as 已发货数量,(销售数量 - 发货数量) AS 未发货数量 Fro  m ({接单登记} Inner JOIN {接单明细} ON {接单明细}.[接单单号] = {接单登记}.[接单单号]) ORDER BY 接单日期"
Dim sqlf As string "Selec  t  发货日期,{发货表}.发货单号,{发货表}.接单单号,{发货表}.客户名称,产品名称,规格型号,单位,发货数量,接单日期 Fro  m ({发货表} Inner JOIN {发货明细} ON {发货明细}.[发货单号] = {发货表}.[发货单号]) inner join {接单登记} on {接单登记}.接单单号 = {发货表}.接单单号 ORDER BY 发货日期"

Dim bd1 As New CrossTableBuilder("统计表1", sql,"数据源名称") 
……
dt1 = bd1.BuildDataSource()

Dim bd2 As New CrossTableBuilder("统计表2", sqlf ,"数据源名称")
……

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


加好友 发短信
等级:小狐 帖子:390 积分:4650 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/12/17 11:16:00 [只看该作者]

提示"找不到列接单日期"

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


加好友 发短信
等级:超级版主 帖子:111397 积分:567055 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/17 11:26:00 [只看该作者]

完整代码放到记事本里发上来

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


加好友 发短信
等级:小狐 帖子:390 积分:4650 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/12/17 11:30:00 [只看该作者]

代码如下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建 文本文档.txt



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


加好友 发短信
等级:超级版主 帖子:111397 积分:567055 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/17 11:44:00 [只看该作者]

bd1.HGroups.AddDef("销售数量")
bd1.HGroups.AddDef("已发货数量")
bd1.HGroups.AddDef("未发货数量")
改为
bd1.VGroups.AddDef("销售数量")
bd1.VGroups.AddDef("已发货数量")
bd1.VGroups.AddDef("未发货数量")

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


加好友 发短信
等级:小狐 帖子:390 积分:4650 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/12/17 11:56:00 [只看该作者]

不行啊,还是有提示

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


加好友 发短信
等级:超级版主 帖子:111397 积分:567055 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/17 13:31:00 [只看该作者]

请上传实例测试

 回到顶部