以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  CrossTableBuilder中使用Filter的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=154073)

--  作者:lovepisss
--  发布时间:2020/9/2 23:04:00
--  CrossTableBuilder中使用Filter的问题

如图相对“办理记录表”使用CrossTableBuilder进行分组统计,并使用Filter对“环节名称”进行筛选。
筛选条件:筛选出在“环节类型表中”,类别为手续准备的“环节名称”。
请问Filter的代码该怎么写?谢谢

图片点击可在新窗口打开查看此主题相关图片如下:办理记录表.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:环节类型表.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/9/3 9:04:00
--  

Dim 
sql As String = "Select * FROM {办理记录表}  where 环节名称 in ( select 环节名称 from {环节类型表} where 类别=\'手续准备\')"
Dim 
b As New CrossTableBuilder("统计表1",sql"Sale"
……

--  作者:lovepisss
--  发布时间:2020/9/3 11:24:00
--  回复:(有点蓝)参考:http://www.foxtable.com/webh...
非常感谢蓝大!
--  作者:lovepisss
--  发布时间:2020/9/3 23:54:00
--  回复:(有点蓝)参考:http://www.foxtable.com/webh...
按照蓝大的指导,实现了如图效果,现在想给这个表最右边增加一列,用来显示当前待办理的环节
1.如何增加一列?我想的是可以再插入一个table控件,显示这一列信息。
2.如何获得每个车型的当前待办理环节?请问蓝大,是从“办理记录表”获取方便,还是从如图中获取更方便?谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:办理进度表.png
图片点击可在新窗口打开查看


--  作者:lovepisss
--  发布时间:2020/9/3 23:58:00
--  
实现上图效果的代码如下:
Dim sql As String = "Sele ct * FR OM {办理记录}  where 环节名称 in ( se lect 环节名称 fro m {工作环节} whe re 类别=\'手续准备\')"

Dim bd1 As New CrossTableBuilder("办理记录",sql)
Dim dt1 As fxDataSource

bd1.HGroups.AddDef("车型") \'添加客户列用于水平分组
bd1.HGroups.AddDef("分车单位") \'添加客户列用于水平分组
bd1.VGroups.AddDef("环节名称") \'添加产品列用于垂直分组
bd1.Totals.AddDef("办理数量") \'添加数量列用于统计
dt1 = bd1.BuildDataSource()


Dim bd2 As New GroupTableBuilder("统计表2",DataTables("车辆分配记录"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("车型") \'根据型号分组
bd2.Groups.AddDef("分配单位") \'根据型号分组
bd2.Totals.AddDef("分配数量") \'对数量进行统计
dt2 = bd2.BuildDataSource()


Dim s1() As String = {"车型","分车单位"}
Dim s2() As String = {"车型","分配单位"}

dt2.Combine(s2,dt1,s1) \'将销售统计数据组合到进货统计数据
Tables("新车记录_Table1").DataSource = dt2 \'将统计结果绑定到Table

With Tables("新车记录_Table1")
    .MergeMode = MergeModeEnum.Standard \'标准合并模式
    .MergeCols.Clear() \'清除原来的合并列
    .MergeCols.Add("车型") \'加入要合并的列
    \'.MergeSort = "客户,雇员" \'设置合并模式下的排序方式
    .AllowMerge = True \'启用合并模式
End With

Tables("新车记录_Table1").AutoSizeCols()

--  作者:lovepisss
--  发布时间:2020/9/4 0:02:00
--  
另外蓝大,我还想给4楼图中,加上每个车型的总数量,请问有好的办法实现吗?
在另一张表里有数据,但是不知道怎么对应过来。
或者可以考虑把每个车型下,分配给各单位的车数量加在一起吗?谢谢!

--  作者:有点蓝
--  发布时间:2020/9/4 9:36:00
--  
添加临时列:http://www.foxtable.com/webhelp/topics/1428.htm

加上每个车型的总数量,做个汇总即可:http://www.foxtable.com/webhelp/topics/3298.htm

--  作者:lovepisss
--  发布时间:2020/9/4 13:41:00
--  回复:(有点蓝)添加临时列:http://www.foxtable.co...
蓝大,还是有点问题:
1.我想增加临时列的表,是窗口中的Tables("新车记录_Table1"),我看帮助里,只有datatable有“Add”方法,table没有。
2.在4楼提到的“如何获得每个车型的当前待办理环节”,能再指教一下吗?
谢谢!

--  作者:有点蓝
--  发布时间:2020/9/4 13:50:00
--  
1、Tables("新车记录_Table1").datatable.xxxxx
或者:dataTables("新车记录_Table1").datacols.add............

2、怎么样才算是“当前待办理环节”?

--  作者:lovepisss
--  发布时间:2020/9/4 14:44:00
--  回复:(有点蓝)1、Tables("新车记录_Table1").datat...
1.谢谢!
2.在“环节类型表里”的1-20项环节,是需要次第完成的,完成环节1,再办理环节2,以此类推。
在“办理记录表”中,会记录每个车型已经办理的环节。
“当前待办理环节”指的是每个车型已经办理的“最后一个环节”的“下一个环节”。