以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据填充代码,重复数据填充问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160365)

--  作者:18310172639
--  发布时间:2021/1/30 17:05:00
--  数据填充代码,重复数据填充问题

老师:我做了出库明细表及站点安装明细,用意是考察出库的物料是比对出库物料与安装物料之间的差异,另外做了一张施工结余物料,采用了数据填充代码,发现,多次出库的物料,代码有的能填充,有的不能填充,请教老师应该如何解决?

代码如下:

 

’数据填充

Dim A As New Filler

DataTables("施工结余物料").DataRows.Clear() \'清除原有数据

A.SourceTable = DataTables("出库明细表")

A.SourceCols = "工单编号,站点名称,领料人员,物料编码,物料简称,单位,出库日期,出库数量"

A.DataTable = DataTables("施工结余物料")

A.DataCols = "工单编号,站点名称,领料人员,物料编码,物料简称,单位,出库日期,出库数量"

a.ExcludeExistValue = True

a.ExcludeNullValue = True

A.Fill()

 

 

Dim Cols1() As String = {"实际安装日期","新装数量"}\'指定数据来源列

Dim Cols2() As String = {"实际安装日期","新装数量"}\'指定数据接收列

 

For Each dr1 As DataRow In DataTables("站点安装明细").Select("")

    Dim dr2 As DataRow = DataTables("施工结余物料").Find("站点名称 = \'" & dr1("站点名称") & "\' and 工单编号 = \'" & dr1("工单编号") & "\'and 物料简称 = \'" & dr1("物料简称") &"\'")

    If dr2 Is Nothing Then

        dr2 = DataTables("施工结余物料").AddNew()

    End If

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

        dr2(Cols2(i)) = dr1(Cols1(i))

    Next

Next

 

‘同表计算

Dim  exp As  String = "[出库数量] - [新装数量] "

 Dim drs As List(of  DataRow) = DataTables("施工结余物料").Select("")

 For Each  dr As  DataRow In drs

     dr("结余物料") = Eval(exp,dr)

[此贴子已经被作者于2021/1/30 17:05:38编辑过]

--  作者:18310172639
--  发布时间:2021/1/30 17:06:00
--  

我上传的图片怎么看不到

 


--  作者:有点蓝
--  发布时间:2021/1/30 17:15:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78,重复多上传几次
--  作者:18310172639
--  发布时间:2021/1/30 17:22:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:求助问题.zip

老师,原图片总是上传不了,我把两张图片压缩了,后缀-1的图片是执行的结果,后缀-2的图片是原始出库明细表,里面有一个物料简称是:光跳线-FC/SC-3 这个物料是出库了两次,每次出库5条,但是执行结果只有一次,5条,我查看了其它站点出库的物料,也有重复的物料多次出库,物料简称和数量都重复的,但是有的能填充上,有的不能填充上。
--  作者:有点蓝
--  发布时间:2021/1/30 17:31:00
--  
设置了a.ExcludeExistValue = True,不就是排除已经存在的记录吗,如果要保留重复就去掉这句代码
--  作者:18310172639
--  发布时间:2021/1/30 17:41:00
--  我试过了,去这句代码也不行

老师:我试过了,去掉这个代码也不行。

我发现,凡时同一天重复出库的物料,数量一样的,都没有填充,不是在同一天出库的重复物料是可以填充的,这是为什么?

还有,我现在的代码,并不能得到我想要的结果,还有什么更好的解决办法吗?

在实际工作中:有的站点出库的物料,并非一定会安装在这个站点,比如:A站点出库了:光跳线物料,没用完,施工人员直接就安装在B站点上,相应地B站点就没有出库这种物料,

我想要的结果是:A站点出库的物料具体安装在了哪个站点上,还结余了哪些物料。而B站点所使用的物料,具体来源于哪个站点出库的物料。

想请教老师,用什么样的代码能实现这个功能。


--  作者:有点蓝
--  发布时间:2021/1/31 20:15:00
--  
请上传实例测试