Foxtable(狐表)用户栏目专家坐堂 → [求助]求助代码


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

主题:[求助]求助代码

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]求助代码  发帖心情 Post By:2015/12/16 16:34:00 [只看该作者]

Dim drs As List(of DataRow) = DataTables("商务发货明细单").Select("发货单号 = '" & vars("fhdh") & "'")
If drs.Count > 0 Then
    For Each dr As DataRow In drs
        If dr("产品态") = "通用态" Then
            Dim drss As List(of DataRow) = DataTables("库位数量统计").Select("产品态 = '通用态' And 物料编码 = '" & dr("物料编码") & "'")


后面怎么写?
希望实现把满足DataTables("库位数量统计").Select("产品态 = '通用态' And 物料编码 = '" & dr("物料编码") & "'")的行filter出来。不会在新增表来实现把。

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/16 17:40:00 [只看该作者]

DataTables("物理位置分布表").DataRows.Clear
Dim drs As List(of DataRow) = DataTables("商务发货明细单").Select("发货单号 = '" & vars("fhdh") & "'")
If drs.Count > 0 Then
    For Each dr As DataRow In drs
        If dr("产品态") = "通用态" Then
            Dim drss As List(of DataRow) = DataTables("库位数量统计").Select("产品态 = '通用态' And 物料编码 = '" & dr("物料编码") & "'")
            If drss.Count > 0 Then                
                For Each  ddr As DataRow In drss                    
                    Dim lr As DataRow = DataTables("物理位置分布表").AddNew()
                    lr("物料编码") = ddr("物料编码")
                    lr("库位编码") = ddr("库位编码")
                    lr("数量") = ddr("数量")
                    lr("型号") = ddr("产品型号")
                    lr("产品态") = ddr("产品态")                    
                Next
            End If
        ElseIf dr("产品态") = "特殊态" Then
            Dim drss As List(of DataRow) = DataTables("库位数量统计").Select("产品态 = '特殊态' and 产品型号 = '" & dr("型号") & "' And 物料编码 = '" & dr("物料编码") & "'")
            If drss.Count > 0 Then                
                For Each  ddr As DataRow In drss                    
                    Dim lr As DataRow = DataTables("物理位置分布表").AddNew()
                    lr("物料编码") = ddr("物料编码")
                    lr("库位编码") = ddr("库位编码")
                    lr("数量") = ddr("数量")
                    lr("型号") = ddr("产品型号")
                    lr("产品态") = ddr("产品态")                    
                Next
            End If
        End If
    Next
End If

还是通过增加表来实现的,有没有更简单的办法做?代码简洁点的。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/17 8:48:00 [只看该作者]


1.参考fill:http://www.foxtable.com/help/topics/1929.htm
类似:
DataTables("物理位置分布表").Fill( "Sel ect b.* fr om {商务发货明细单} a,{库位数量统计}  b wh ere a.物料编码=b.物料编码 an d b.产品态 = '通用态' ",true)


类似:
Dim q As new QueryBuilder
q.TableName = "物理位置分布表"
q.SelectString = "Se lect b.* fro m {商务发货明细单} a,{库位数量统计} b wh ere a.物料编码=b.物料编码 an d b.产品态 = '通用态' "
q.Build
MainTable = Tables("物理位置分布表")


 回到顶部