以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口按钮事件命令问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71617)

--  作者:bestorange
--  发布时间:2015/7/15 0:15:00
--  窗口按钮事件命令问题

我在窗口中的按钮控件上 编写了事件命令:

Dim g As New CrossTableBuilder("统计表1", DataTables("陪练课时统计表"))
g.Caption = "课时结算"
g.HGroups.AddDef("教师姓名")
g.VGroups.AddDef("签到时间", "{0}月")
g.VGroups.AddDef("授课内容")
g.Totals.AddDef("授课内容", AggregateEnum.Count, "累计课时")
g.VerticalTotal = True
g.Subtotal = True
g.Filter = "教师姓名 = \'" & e.Form.Controls("ComboBox1").Text & "\'"
g.Build()
MainTable = Tables("统计表1")

DataTables("教师课时统计表").DataRows.Clear
Dim f As new Filler
f.SourceTable = DataTables("统计表1") \'指定数据来源
f.SourceCols = "教师姓名,授课内容,累计课时" \'指定数据来源列
f.DataTable = DataTables("教师课时统计表") \'指定数据接收表
f.DataCols = "教师姓名,授课内容,累计课时" \'指定数据接收列
f.Fill() \'填充数据

MainTable = Tables("教师课时统计表")
DataTables.Unload("统计表1")

 

 

单击执行 错误提示 无法找到列 授课内容


--  作者:bestorange
--  发布时间:2015/7/15 0:29:00
--  

应该是错在 临时表的多层表头这个问题上了

[此贴子已经被作者于2015/7/15 0:39:44编辑过]

--  作者:bestorange
--  发布时间:2015/7/15 1:15:00
--  

我把命令改成:

Dim g As New GroupTableBuilder("统计表1", DataTables("陪练课时统计表"))
g.Groups.AddDef("教师姓名")
g.Groups.AddDef("授课内容")
g.Totals.AddDef("授课内容", AggregateEnum.Count,"签到次数")
g.Filter = "教师姓名 = \'" & e.Form.Controls("ComboBox1").Text & "\'"
g.Build(False)

DataTables("教师课时统计表").DataRows.Clear
Dim f As new Filler
f.SourceTable = DataTables("统计表1") \'指定数据来源
f.SourceCols = "教师姓名,授课内容,签到次数" \'指定数据来源列
f.DataTable = DataTables("教师课时统计表") \'指定数据接收表
f.DataCols = "教师姓名,授课内容,签到次数" \'指定数据接收列
f.Fill() \'填充数据

MainTable = Tables("教师课时统计表")
DataTables.Unload("统计表1")

 

 就可以执行了,执行后数据导入下表如图


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

问题一,按月统计教师课时数的功能怎样才能实现??

问题二,

前三列的数据是单击控件代入的,后面课时费列能否根据授课内容自动代入,分成比例根据教师姓名自动代入。这样课程收费列就可以按照表达式直接算出结果。

我分别建了 关于课程价格 和教师分成比例的表,是用表关联就可以实现吗?

[此贴子已经被作者于2015/7/15 1:16:34编辑过]

--  作者:大红袍
--  发布时间:2015/7/15 9:19:00
--  

1、设置分组统计,然后查看代码

 

http://www.foxtable.com/help/topics/2670.htm

 


--  作者:大红袍
--  发布时间:2015/7/15 9:20:00
--  

2、参考 http://www.foxtable.com/help/topics/1451.htm

 


--  作者:bestorange
--  发布时间:2015/7/15 14:45:00
--  

Dim g As New GroupTableBuilder("统计表1", DataTables("钢琴课时统计表"))
g.Groups.AddDef("教师姓名")
g.Groups.AddDef("授课内容")
g.Totals.AddDef("授课内容", AggregateEnum.Count,"签到次数")
g.Filter = "教师姓名 = \'" & e.Form.Controls("ComboBox1").Text & "\'"
g.Build(False)

DataTables("教师课时统计表").DataRows.Clear
Dim f As new Filler
f.SourceTable = DataTables("统计表1") \'指定数据来源
f.SourceCols = "教师姓名,授课内容,签到次数" \'指定数据来源列
f.DataTable = DataTables("教师课时统计表") \'指定数据接收表
f.DataCols = "教师姓名,授课内容,签到次数" \'指定数据接收列
f.Fill() \'填充数据

MainTable = Tables("教师课时统计表")
DataTables.Unload("统计表1")

 

我现在是这么写的命令


--  作者:bestorange
--  发布时间:2015/7/15 14:47:00
--  

Dim g As New CrossTableBuilder("统计表1", DataTables("陪练课时统计表"))
g.Caption = "课时结算"
g.HGroups.AddDef("教师姓名")
g.VGroups.AddDef("签到时间", "{0}月")

这样可以出 月份  但是第二步就找不到列明了

 


--  作者:大红袍
--  发布时间:2015/7/15 14:49:00
--  

1、用分组统计,不要用交叉统计;

 

2、看4楼5楼


--  作者:bestorange
--  发布时间:2015/7/15 15:44:00
--  
明白了,还有一个问题 多个窗口共用(控件绑定表)一张表的数据,我想打开单一窗口时,窗口中绑定的表只显示指定行的内容 (比如我在教师一览表中设计了每一名教师都有一个专属资料窗口,窗口中都绑定了工资结算表,我打开窗口时,只显示该名教师的工资)可以实现吗?
--  作者:大红袍
--  发布时间:2015/7/15 15:55:00
--  

 AfterLoad事件加入筛选代码

 

Tables("表A").Filter = "第一列 = \'1234\'"