Foxtable(狐表)用户栏目专家坐堂 → 如何在代码中组合条件


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

主题:如何在代码中组合条件

美女呀,离线,留言给我吧!
DLW77
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:188 积分:1699 威望:0 精华:0 注册:2018/2/26 13:15:00
如何在代码中组合条件  发帖心情 Post By:2018/6/1 22:35:00 [只看该作者]

有个代码没想明白,请老师指点一下。
上传的是表“出入库成本表",表中的生产入库单+成品仓的行,我从”入库成本表“中提取了”结存单价“
但表中的生产入库单+现场仓的行,如果我在代码这里加入生产入库单If dr("单据类型") = "退料单" OrElse dr("单据类型") = "领料单" OrElse dr("单据类型") = "出库单" OrElse dr("单据类型") = "入库单" OrElse dr("单据类型") = "调整单"  OrElse dr("单据类型") = "调拨单"  OrElse dr("单据类型") = "委外送料单"  OrElse dr("单据类型") = "委外退料单"  OrElse dr("单据类型") = "退货单"  OrElse dr("单据类型") = "销货单"  OrElse dr("单据类型") = "销退单" OrElse dr("单据类型") = "生产入库单" Then
前面从”入库成本表“中提取了”结存单价“,就会给这个代码算出来的复盖。我用什么代码区分,”生产入库单+成品“  及 ”生产入库单+现场仓“  这两个条件并能提取到相应的”结存单价“
图片点击可在新窗口打开查看此主题相关图片如下:%2)na1jfx9qwf(ofub8kyy.png
图片点击可在新窗口打开查看

Select Case e.DataCol.Name
    Case "品号","单号"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        Dim filter1 As String
        filter1 = "品号 = '" & dr("品号") & "' And 单号 = '" & dr("单号") & "' And 入库数量 = '" & dr("入库数量") & "'"
        pr = DataTables("入库成本表").Find(filter1)
        If pr IsNot Nothing Then
            dr("结存单价") = pr("结存单价")
        End If
End Select
msgbox(123)
Select Case e.DataCol.Name
    Case "品号","单据类型", "单号"
        Dim dr As DataRow = e.DataRow
        If dr("单据类型") = "退料单" OrElse dr("单据类型") = "领料单" OrElse dr("单据类型") = "出库单" OrElse dr("单据类型") = "入库单" OrElse dr("单据类型") = "调整单"  OrElse dr("单据类型") = "调拨单"  OrElse dr("单据类型") = "委外送料单"  OrElse dr("单据类型") = "委外退料单"  OrElse dr("单据类型") = "退货单"  OrElse dr("单据类型") = "销货单"  OrElse dr("单据类型") = "销退单" Then
            Dim pr = DataTables("出入库成本表").Find("品号 = '" & dr("品号") & "' and _Identify < " & dr("_Identify"), "_Identify desc")
            If pr IsNot Nothing Then
                dr("结存单价") = pr("结存单价")
            End If
        End If
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110562 积分:562700 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/1 22:51:00 [只看该作者]

Select Case e.DataCol.Name
    Case "品号","单号","单据类型","仓库名称"
        Dim dr As DataRow = e.DataRow
        Dim filter1 As String
        Dim pr As DataRow
        If dr("仓库名称") = "成品" Then
            filter1 = "品号 = '" & dr("品号") & "' And 单号 = '" & dr("单号") & "' And 入库数量 = '" & dr("入库数量") & "'"
            pr = DataTables("入库成本表").Find(filter1)
            If pr IsNot Nothing Then
                dr("结存单价") = pr("结存单价")
            End If
        ElseIf dr("仓库名称") = "现场仓" Then
            If dr("单据类型") = "退料单" OrElse dr("单据类型") = "领料单" OrElse dr("单据类型") = "出库单" OrElse dr("单据类型") = "入库单" OrElse dr("单据类型") = "调整单"  OrElse dr("单据类型") = "调拨单"  OrElse dr("单据类型") = "委外送料单"  OrElse dr("单据类型") = "委外退料单"  OrElse dr("单据类型") = "退货单"  OrElse dr("单据类型") = "销货单"  OrElse dr("单据类型") = "销退单" Then
                Dim pr = e.DataTable.Find("品号 = '" & dr("品号") & "' and _Identify < " & dr("_Identify"), "_Identify desc")
                If pr IsNot Nothing Then
                    dr("结存单价") = pr("结存单价")
                End If
            End If
        Else 
            '其它类型
        End If
End Select


 回到顶部
美女呀,离线,留言给我吧!
DLW77
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:188 积分:1699 威望:0 精华:0 注册:2018/2/26 13:15:00
出现错误信息  发帖心情 Post By:2018/6/2 9:35:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:3klk_3xwd_tf__ukzw070w.png
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

Dim pr = e.DataTable.Find("品号 = '" & dr("品号") & "' and _Identify < " & dr("_Identify"), "_Identify desc")

改为

pr = e.DataTable.Find("品号 = '" & dr("品号") & "' and _Identify < " & dr("_Identify"), "_Identify desc")

 回到顶部
美女呀,离线,留言给我吧!
DLW77
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:188 积分:1699 威望:0 精华:0 注册:2018/2/26 13:15:00
可以了,谢谢  发帖心情 Post By:2018/6/2 10:01:00 [只看该作者]

老师太利害了,昨天想了几个小时都没想明白,老师一出手就搞定了,看来我也要好好再学习学习,希望到时能有您的水平图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
DLW77
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:188 积分:1699 威望:0 精华:0 注册:2018/2/26 13:15:00
我再测试了一下,还不行。  发帖心情 Post By:2018/6/2 10:37:00 [只看该作者]

老师,我刚看错了,代码还是不行。因为设定了提取“入库成本表”只能仓库是“成品”的,所以其他仓库的都没办法提取, If dr("仓库名称") = "成品" Then。本表中设定了只有现场仓的,其他仓库就没办法显示出来ElseIf dr("仓库名称") = "现场仓" Then。但我只是想,如果通过“生产入库单+现场仓”这个条件,就可以提取上一个相同品号的结存单价。
图片点击可在新窗口打开查看此主题相关图片如下:nezor1p$h7j06z1oyg~t8sh.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/6/2 10:37:19编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110562 积分:562700 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/2 11:10:00 [只看该作者]

去掉这个判断:If dr("单据类型") = "退料单" OrElse.......

或者增加一个类型

 回到顶部