Foxtable(狐表)用户栏目专家坐堂 → [求助]统计问题


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

主题:[求助]统计问题

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助]统计问题  发帖心情 Post By:2024/6/4 0:18:00 [显示全部帖子]


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


老师,像上面照片的数据,要如何做成照片下面的统计表,代码应该 怎么改。

Dim tbCj As Table = Tables(e.Form.Name & "_TabProjectSchedule_Cj")
Dim b As New CrossTableBuilder("Cj1", dt)
b.HGroups.AddDef("负责人") '添加客户列用于水平分组
b.HGroups.AddDef("年周") '添加客户列用于水平分组
b.VGroups.AddDef("异常分类", "异常分类_{0}") '添加产品列用于垂直分组
b.VGroups.AddDef("达成") '添加产品列用于垂直分组

b.Totals.AddDef("sl") '添加数量列用于统计
tbcj.DataSource = b.BuildDataSource

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/4 8:44:00 [显示全部帖子]

未达成和达成呢?应该怎么做。

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/4 11:32:00 [显示全部帖子]


此主题相关图片如下:无标题_202406041.png
按此在新窗口浏览图片

老师,还是不行,

Dim tbCj As Table = Tables(e.Form.Name & "_TabProjectSchedule_Cj")
Dim b As New CrossTableBuilder("Cj1", dt)
b.HGroups.AddDef("负责人") '添加客户列用于水平分组
b.HGroups.AddDef("年周") '添加客户列用于水平分组
b.VGroups.AddDef("异常分类", "异常分类_{0}") '添加产品列用于垂直分组
b.VGroups.AddDef("达成") '添加产品列用于垂直分组
b.Totals.AddDef("sl") '添加数量列用于统计
b.Totals.Addexp("未达成""iif(达成=false, 1, 0)")
b.Totals.Addexp("达成""iif(达成=true, 1, 0)")
tbcj.DataSource = b.BuildDataSource

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/4 13:35:00 [显示全部帖子]

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


[此贴子已经被作者于2024/6/4 13:36:23编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/4 21:02:00 [显示全部帖子]

老师,用内部表是可以了,但用在我自己的实例中就不可以,会不会是因为我的数据是加载进来的呀。
全部代码如下:
Dim tb As Table = Tables(e.Form.Name & "_TabProjectSchedule_Mx")
Dim dt As DataTable = tb.DataTable
Dim cmd As New SQLCommand
cmd.C
cmd.Comm andText = "se lect  负责人,PlWeek as 年周,异常分类,ReYq as 达成 from {ProjectSchedule_View}  " '类型 = '库存'"  
tb.DataSource = cmd.ExecuteReader
dt.DataCols.Add("sl", GetType(Integer))
dt.ReplaceFor("sl", 1)

Dim tbCj As Table = Tables(e.Form.Name & "_TabProjectSchedule_Cj")
Dim b As New CrossTableBuilder("Cj1", dt)
b.HGroups.AddDef("负责人") '添加客户列用于水平分组
b.HGroups.AddDef("年周") '添加客户列用于水平分组
b.VGroups.AddDef("异常分类", "异常分类_{0}") '添加产品列用于垂直分组
b.VGroups.AddExp("达成", "iif(达成 = true,'达成','未达成')") '添加产品列用于垂直分组
b.Totals.AddDef("sl") '添加数量列用于统计
b.VerticalTotal = True

tbcj.DataSource = b.BuildDataSource

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/4 21:08:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:无标题_20240604.1.png
图片点击可在新窗口打开查看
老师,还有另一个问题,我想要的是不管有没有未达成(或达成)的,都要有未达成(或达成)的相关列。

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/4 21:57:00 [显示全部帖子]

老师,按11楼的方法,显示如5楼的结果一样。

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/4 22:28:00 [显示全部帖子]

老师,更改为sqlCrossTableBuilder,
1、如果保留b.VGroups.AddExp("达成", "iif(达成 = true,'达成','未达成')") 会提示【无法完成延迟准备,无法预定义语句,‘=’附近有语法错误】
2、如果删除b.VGroups.AddExp("达成", "iif(达成 = true,'达成','未达成')") 会提示【无法完成延迟准备,无法预定义语句,From附近有语法错误】

Dim b As New sqlCrossTableBuilder("Cj1", "sel ect  负责人,PlWeek as 年周,异常分类,ReYq as 达成,1 as sl from {ProjectSchedule_View}  ", "ZC_Data")
b.HGroups.AddDef("负责人") '添加客户列用于水平分组
b.HGroups.AddDef("年周") '添加客户列用于水平分组
b.VGroups.AddDef("异常分类", "异常分类_{0}") '添加产品列用于垂直分组
b.VGroups.AddExp("达成", "iif(达成 = true,'达成','未达成')") '添加产品列用于垂直分组
b.Totals.AddDef("sl") '添加数量列用于统计
b.VerticalTotal = True
Dim tbCj As Table = Tables(e.Form.Name & "_TabProjectSchedule_Cj")
tbcj.DataSource = b.BuildDataSource

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/5 20:35:00 [显示全部帖子]

老师,ProjectSchedule_View 是个视图来的,更改为以下代码,还是会出现以下错误,但是同样的语句在SQL进而执行又没有问题。
老师,还有10楼那个问题,麻烦也帮忙一起看一下。
第一次弹窗:会提示【无法完成延迟准备,无法预定义语句,From附近有语法错误】
关闭后第二次弹窗:生成的SQL语句错误,无法继续统计。
关闭后第三次弹窗:关键字‘GROUP’附近有语法错误。


Dim cmdstr As String 
cmdstr = "sele ct  (Sel ect TOP 1 UseName From dbo.DUSE As U Where (U.Itid = a.PICUid)) As 负责人,a.PlWeek as 年周,  (Sel ect TOP 1 名称 From dbo.基础表 As b Where (b.Itid = a.AnomalousID)) As 异常分类,a.ReYq as 达成,1 as sl from {ProjectSchedule} as a  "  
Dim b As New sqlCrossTableBuilder("Cj1", cmdstr, "ZC_Data")
b.HGroups.AddDef("负责人") '添加客户列用于水平分组
b.HGroups.AddDef("年周") '添加客户列用于水平分组
b.VGroups.AddDef("异常分类", "异常分类_{0}") '添加产品列用于垂直分组
b.VGroups.AddExp("达成", "case when 达成 = 1 then '达成' else '未达成' end") '添加产品列用于垂直分组

b.Totals.AddDef("sl") '添加数量列用于统计
b.VerticalTotal = True
Dim tbCj As Table = Tables(e.Form.Name & "_TabProjectSchedule_Cj")
tbcj.DataSource = b.BuildDataSource
[此贴子已经被作者于2024/6/5 20:36:21编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/6 11:34:00 [显示全部帖子]

老师,我试过视图不行,才改这样的,
我之前的代码就是用视图的{ProjectSchedule_View}。

但错误还是一样的。
[此贴子已经被作者于2024/6/6 11:35:25编辑过]

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