Foxtable(狐表)用户栏目专家坐堂 → 填充数据


  共有3112人关注过本帖树形打印复制链接

主题:填充数据

帅哥哟,离线,有人找我吗?
北狐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:135 积分:1380 威望:0 精华:0 注册:2013/8/7 18:14:00
填充数据  发帖心情 Post By:2019/5/20 16:23:00 [只看该作者]

Dim f1 As New Filler

f1.SourceTable = DataTables("成品入库与领料出库复核检查1") '指定数据来源

f1.SourceCols = "供应商名称,本单日期,成品入库单号,领料出库单号,成品入库成色,领料出库成色" '指定数据来源列

f1.DataTable = DataTables("成品入库与领料出库复核检查") '指定数据接收表

f1.DataCols = "供应商名称,本单日期,成品入库单号,领料出库单号,成品入库成色,领料出库成色" '指定数据接收列

f1.ExcludeExistValue=True

f1.Fill() '填充数据



接收表还有其他字段(这些字段会修改),这样会导致填充过来的数据有重复,如何避免?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/20 16:42:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
北狐
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:135 积分:1380 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2019/5/20 17:18:00 [只看该作者]

换成以下代码了,还是不行
Dim Vals As List(of String())
Vals = DataTables("查询表1").GetValues("供应商名称|本单日期|成品入库单号|领料出库单号|成品入库成色|领料出库成色")
For i As Integer = 0 To Vals.Count - 1
    Dim dr As DataRow = DataTables("成品入库与领料出库复核检查").AddNew()
    dr("供应商名称") = Vals(i)(0)
    dr("本单日期") = Vals(i)(1)
    dr("成品入库单号") = Vals(i)(2)
    dr("领料出库单号") = Vals(i)(3)
    dr("成品入库成色") = Vals(i)(4)
    dr("领料出库成色") = Vals(i)(5)
Next
接收表已有的数据,但还是会从来源表那边接收相同的数据过来
接收表中还有正确领料成色,是否忽略错误这两列,其内容分别由表达式和手动编辑得出
[此贴子已经被作者于2019/5/20 17:21:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/20 17:27:00 [只看该作者]

Dim Vals As List(of String())
Vals = DataTables("查询表1").GetValues("供应商名称|本单日期|成品入库单号|领料出库单号|成品入库成色|领料出库成色")
For i As Integer = 0 To Vals.Count - 1
    Dim dr As DataRow = DataTables("成品入库与领料出库复核检查").find("供应商名称 = '" & Vals(i)(0) & "' and 本单日期 = '" & Vals(i)(1) & "'")
    If dr Is Nothing Then dr = DataTables("成品入库与领料出库复核检查").addnew
    dr("供应商名称") = Vals(i)(0)
    dr("本单日期") = Vals(i)(1)
    dr("成品入库单号") = Vals(i)(2)
    dr("领料出库单号") = Vals(i)(3)
    dr("成品入库成色") = Vals(i)(4)
    dr("领料出库成色") = Vals(i)(5)
Next

 回到顶部
帅哥哟,离线,有人找我吗?
北狐
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:135 积分:1380 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2019/5/20 18:11:00 [只看该作者]

专门建了与来源表结构一样的接收表进行测试,但还是没排除接收表中已经存在的内容。 (即f1.ExcludeExistValue= True  无效),之前是有效的
Dim f1 As New Filler
f1.SourceTable = DataTables("成品入库与领料出库复核检查1") '指定数据来源
f1.SourceCols = "供应商名称,本单日期,成品入库单号,领料出库单号,成品入库成色,领料出库成色" '指定数据来源列
f1.DataTable = DataTables("测试") '指定数据接收表
f1.DataCols = "供应商名称,本单日期,成品入库单号,领料出库单号,成品入库成色,领料出库成色" '指定数据接收列
f1.ExcludeExistValue= True  
f1.Fill()  '填充数据

[此贴子已经被作者于2019/5/20 18:31:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/20 20:21:00 [只看该作者]

只能排除与主键一致的数据。非主键,只能手工排除http://www.foxtable.com/webhelp/scr/1533.htm

 回到顶部
帅哥哟,离线,有人找我吗?
北狐
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:135 积分:1380 威望:0 精华:0 注册:2013/8/7 18:14:00
填充数据  发帖心情 Post By:2019/5/21 12:21:00 [只看该作者]

Dim cmd As New SQLCommand

Dim dt As DataTable

Dim sCols() As String = {"供应商名称","本单日期","成品入库单号","领料出库单号","成品入库成色","领料出库成色"}

Dim dCols() As String = {"供应商名称","本单日期","成品入库单号","领料出库单号","成品入库成色","领料出库成色"}

cmd.Cfont-size: 9pt; font-family: 宋体;">龙域"

cmd.CommandText = "过长就不显示,查询结果为{"供应商名称","本单日期","成品入库单号","领料出库单号","成品入库成色","领料出库成色"}这几个字段"

dt = cmd.ExecuteReader()

For Each dr As DataRow In dt.DataRows

    If DataTables("成品入库与领料出库复核检查").Find("供应商名称 = '" & dr("供应商名称") & "' and 本单日期= '" & dr("本单日期") & "' and 成品入库单号= '" & dr("成品入库单号") & "' and 领料出库单号= '" & dr("领料出库单号") & "' and 成品入库成色= '" & dr("成品入库成色") & "' and 领料出库成色= '" & dr("领料出库成色") & "'") Is Nothing  Then

        Dim nr As DataRow = DataTables("成品入库与领料出库复核检查").AddNew()

        For i As Integer =0 To sCols.Length -1

            nr(dCols(i)) = dr(sCols(i))

        Next

    End If

Next

使用以上代码后,成品入库与领料出库复核检查中已存在相同的{供应商名称,本单日期,成品入库单号,领料出库单号,成品入库成色,领料出库成色},但合并数据的时候没跳过,还合并进来

需求:1、当成品入库与领料出库复核检查中已存在完全相同的{供应商名称,本单日期,成品入库单号,领料出库单号,成品入库成色,领料出库成色}的行,但合并数据则跳过此行,不合并进来:

2、该行{供应商名称,本单日期,成品入库单号,领料出库单号,成品入库成色,领料出库成色}只要有其中一个字段不同,就合并进来

3、成品入库与领料出库复核检查表中还存在其他列

求老师帮看下,上述代码是哪里有问题?谢谢

[此贴子已经被作者于2019/5/21 12:48:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/21 13:17:00 [只看该作者]

1、请确保你各列的值都不为空,弹出条件看看

 

output.show("供应商名称 = '" & dr("供应商名称") & "' and 本单日期= '" & dr("本单日期") & "' and 成品入库单号= '" & dr("成品入库单号") & "' and 领料出库单号= '" & dr("领料出库单号") & "' and 成品入库成色= '" & dr("成品入库成色") & "' and 领料出库成色= '" & dr("领料出库成色") & "'")

 

2、如果你有一些列的值为空,需要这样合成条件,如

 

Dim filter As string = "1=1"

If dr("供应商名称") = nothing Then

    filter &= " and 供应商名称 is null"

Else

    filter &= " and 供应商名称 = '" & dr("供应商名称")  & "'"

End If

If dr("本单日期") = nothing Then

    filter &= " and 本单日期 is null"

Else

    filter &= " and 本单日期 = '" & dr("本单日期")  & "'"

End If

 

msgbox(filter)


 回到顶部
帅哥哟,离线,有人找我吗?
北狐
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:135 积分:1380 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2019/5/21 14:03:00 [只看该作者]

output.show了,各列都不为空
发现出错的地方了
 If DataTables("成品入库与领料出库复核检查").Find("供应商名称 = '" & dr("供应商名称") & "' and 本单日期= '" & dr("本单日期") & "' and 成品入库单号= '" & dr("成品入库单号") & "' and 领料出库单号= '" & dr("领料出库单号") & "' and 成品入库成色= '" & dr("成品入库成色") & "' and 领料出库成色= '" & dr("领料出库成色") & "'") Is Nothing  Then
上述代码去掉and 本单日期= '" & dr("本单日期") & "'后就能正常了,
如果一定要判断本单日期,本单日期列的数据不能为日期时间类型,只能列的数据类型改成字符类型。
[此贴子已经被作者于2019/5/21 14:38:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/21 14:51:00 [只看该作者]

1、msgbox(dr("本单日期")) 弹出什么?

 

2、改成这样呢?

 

本单日期= #" & dr("本单日期") & "#


 回到顶部
总数 12 1 2 下一页