以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  逻辑列运用问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71837)

--  作者:bestorange
--  发布时间:2015/7/19 0:47:00
--  逻辑列运用问题

 


此主题相关图片如下:531.jpg
按此在新窗口浏览图片

以下是我窗口种按钮的事件命令:

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")

 

根据命令看 ,我将绑定表”钢琴课时统计表“中的数据 复制到”教师课时统计表“中。即我每次点击这个按钮都会复制表内指定列的所有行到数据接收表。

怎样可以实现不复制重复记录到数据接收表呢?

 

我试过 DataRows.Clear,但是效果不理想。想起之前专家教我用逻辑列来筛选统计。应该也可以用逻辑列解决当前问题。

我在"钢琴课时统计表"中增加了一个逻辑列。"已结算"

能否在上面的命令中同时实现:只复制"已结算“列下未选定的行的内容到"教师课时统计表",并将复制过的内容自动勾选呢??

最好能够一键实现。 实在不行只好再添加个按钮了


 


--  作者:bestorange
--  发布时间:2015/7/19 0:58:00
--  


For Each r As Row In Tables("钢琴课时统计表").Rows
    r("已结算") = True
    r.Locked = True
    r.Save
Next

这组命令提示错误


--  作者:czy
--  发布时间:2015/7/19 8:02:00
--  
  • ExcludeExistValue

    逻辑型,设为True,排除接收表中已经存在的内容。
Dim f As new Filler
f.SourceTable = DataTables("统计表1") \'指定数据来源
f.SourceCols = "教师姓名,授课内容,签到次数" \'指定数据来源列
f.DataTable = DataTables("教师课时统计表") \'指定数据接收表
f.DataCols = "教师姓名,授课内容,签到次数" \'指定数据接收列
f.ExcludeExistValue = true
f.Fill() \'填充数据

--  作者:czy
--  发布时间:2015/7/19 8:06:00
--  
代码执行没问题,提示什么错误?


--  作者:bestorange
--  发布时间:2015/7/19 12:55:00
--  

可是数据接收表是临时表哦


--  作者:大红袍
--  发布时间:2015/7/19 14:18:00
--  
以下是引用bestorange在2015/7/19 12:55:00的发言:

可是数据接收表是临时表哦

 

 什么表都可以。


--  作者:bestorange
--  发布时间:2015/7/19 14:27:00
--  

临时表关闭项目就会自动删除,下次打开项目我再执行操作,再次生成临时表。

 

我是用于统计签到次数,不会造成重复统计吗?


--  作者:bestorange
--  发布时间:2015/7/19 14:34: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")

 

红色部分,是从"钢琴课时统计表"复制到临时表"统计表1",就是这一部分,我需要根据逻辑列来控制不要重复复制数据。


--  作者:大红袍
--  发布时间:2015/7/19 14:36:00
--  
删除重新填充了啊,不会重复啊
--  作者:大红袍
--  发布时间:2015/7/19 14:36: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 & "\' and 逻辑列 = false"
g.Build(False)