以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  填充器不能排除已有值  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=5527)

--  作者:xl
--  发布时间:2009/12/17 10:40:00
--  填充器不能排除已有值
如题
[此贴子已经被作者于2009-12-17 17:02:09编辑过]

--  作者:yangming
--  发布时间:2009/12/17 11:20:00
--  
dim f As New Filler
f.SourceTable = DataTables("表A") \'指定数据来源
f.DataTable = DataTables("表B") \'指定数据接收表
f.ExcludeExistValue= True
f.Append=False
f.Fill() \'填充数据

--  作者:xl
--  发布时间:2009/12/17 11:23:00
--  
杨大姐,请将2楼文件测试一下,结果不能排除已有值。是BUG吧?
[此贴子已经被作者于2009-12-17 11:24:06编辑过]

--  作者:yangming
--  发布时间:2009/12/17 11:25:00
--  
以下是引用xl在2009-12-17 11:23:00的发言:
杨大姐,请将2楼文件测试一下,结果不能排除已有值。是BUG吧?
[此贴子已经被作者于2009-12-17 11:24:06编辑过]

我测试了,可以啊,只是如果表B的行数大于表A的行数,那就会只填充到表A的行数,而大于的行还是原数据,你可以在填充前先清空表B,然后再执行此代码

[此贴子已经被作者于2009-12-17 11:27:31编辑过]

--  作者:xl
--  发布时间:2009/12/17 11:34:00
--  
奇怪,我这里根本无法排除填入表中的值。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:填充问题.table

[此贴子已经被作者于2009-12-17 15:22:39编辑过]

--  作者:程兴刚
--  发布时间:2009/12/17 12:17:00
--  

我这里是这样的,不知与您的思路有什么不同,自己对比一下:(应用于项目属性的MainTableChanged事件)


If MainTable.Name = "人材机汇总" Then
    DataTables("人材机汇总").DataRows.Clear()
    if DataTables("人材机").DataRows.Count > 1
        dim f As New Filler
        f.SourceTable = DataTables("人材机") \'指定数据来源
        f.SourceCols = "定额类别,费用类别,子目编号,子目名称,子目单位" \'指定数据来源列
        f.ExcludeExistValue = true
        f.ExcludeNullValue = true
        f.Distinct = true
        f.DataTable = DataTables("人材机汇总") \'指定数据接收表
        f.DataCols = "定额类别,费用类别,子目编号,子目名称,子目单位" \'指定数据接收列
        f.Filter = "[配比子目] is null or [配比子目] <> \'+\' + [子目编号]"
        f.Fill()
    end if
end if

[此贴子已经被作者于2009-12-17 12:16:56编辑过]

--  作者:xl
--  发布时间:2009/12/17 14:17:00
--  
大家研究一下,看问题出在哪里?(文件见5楼):
dim zkf As New Filler
zkf.SourceTable = DataTables("表一")
zkf.SourceCols = "班级"
zkf.DataTable = DataTables("流水表")
zkf.DataCols = "正课_姓名"
zkf.ExcludeExistValue = true
zkf.ExcludeNullValue = true
zkf.Distinct = true
zkf.Append=false
zkf.Fill()
[此贴子已经被作者于2009-12-17 15:24:09编辑过]

--  作者:yangming
--  发布时间:2009/12/17 16:25:00
--  
dim zkf As New Filler
zkf.SourceTable = DataTables("表一")
zkf.SourceCols = "班级"
zkf.DataTable = DataTables("流水表")
zkf.DataCols = "正课_姓名"
zkf.Distinct = true
zkf.Append=false
zkf.Fill()

其实Distinct就是重复内容,已有内容和空白值三者都能排除的,有了它,就不再要那两条了

[此贴子已经被作者于2009-12-17 16:27:25编辑过]

--  作者:xl
--  发布时间:2009/12/17 17:08:00
--  
杨姐细看一下,将代码执行结果:在流水表填充列中有"重复记录".
[此贴子已经被作者于2009-12-17 17:10:09编辑过]

--  作者:xl
--  发布时间:2009/12/18 9:01:00
--  
看贺老师了?