此主题相关图片如下:无标题_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
帮助里有这种用法的
b.Totals.Addexp("未达成", "iif(达成=false, 1, 0)")
b.Totals.Addexp("达成", "iif(达成=true, 1, 0)")
此主题相关图片如下:无标题_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
[此贴子已经被作者于2024/6/4 13:36:23编辑过]
老师,用内部表是可以了,但用在我自己的实例中就不可以,会不会是因为我的数据是加载进来的呀。全部代码如下:
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
此主题相关图片如下:无标题_20240604.1.png
老师,还有另一个问题,我想要的是不管有没有未达成(或达成)的,都要有未达成(或达成)的相关列。