Foxtable(狐表)用户栏目专家坐堂 → IF语句是否可以这样写,期待指导


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

主题:IF语句是否可以这样写,期待指导

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
IF语句是否可以这样写,期待指导  发帖心情 Post By:2018/10/18 16:34:00 [只看该作者]

  If fr("盘点类型") = "日盘" OrElse fr("盘点类型") = "抽盘" Then  ‘如果盘点类型为日盘或抽盘时执行代码1
  代码1
else    否则其他类型执行代码2
代码2
end IF




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


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

可以,有什么问题?

 

http://www.foxtable.com/webhelp/scr/0223.htm

 


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
加IF盘点语句后报错  发帖心情 Post By:2018/10/18 17:16:00 [只看该作者]

我有个代码仅修改了IF的一部分就报错了

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


报错代码如下:修改为蓝色字体


     Dim syms As List(of DataRow) = DataTables("溯源码").SQLSelect("当前所在部门 = '" & yh("所属部门") & "' And 是否可用 = 1") '找到本部门可用溯源码的行
     For Each sym As DataRow In syms
            fr = DataTables("盘点单据").Find("[溯源码] = '" & sym("子溯源码") & "'")  '溯源码表中的溯源码是否存在与盘点单据
                If fr IsNot Nothing Then 
                   sym("是否可用") = 1
                   fr("审核人") = dr("姓名")
                   fr("审核日期") = Date.Now
                Else
                      If fr("盘点类型") = "日盘" OrElse fr("盘点类型") = "抽盘" Then
                          If fr("商品编码") = sym("商品编码") Then
                 Dim wb As Row = Tables("外部出库").AddNew()
                 sym("是否可用") = 0
                 wb("溯源码" ) = sym("子溯源码")
                 wb("出库部门") = sym("当前所在部门")
                 wb("出库时间") = Date.Now
                 wb("单据类型") = "销售单"
                 wb("是否拆箱") = sym("是否拆箱")
                 wb("出库人") = yh("姓名")
                 wb("核销人") = dr("姓名")
                          End If
                      Else
                          Dim wb As Row = Tables("外部出库").AddNew()
                           sym("是否可用") = 0
                           wb("溯源码" ) = sym("子溯源码")
                           wb("出库部门") = sym("当前所在部门")
                           wb("出库时间") = Date.Now
                           wb("单据类型") = "销售单"
                           wb("是否拆箱") = sym("是否拆箱")
                           wb("出库人") = yh("姓名")
                           wb("核销人") = dr("姓名")
                     End If 
              End If
        Next
        DataTables("溯源码").SQLUpdate(syms)   '更新数据库溯源码表中的是否可用状态      
        DataTables("外部出库").Save()
        DataTables("盘点单据").Save()
        MessageBox.Show("核销成功!", "提示")
        Dim btn As WinForm.Button = Forms("盘点核销").Controls("Button1")
        btn.PerformClick()
         e.Form.Close
     Else
       Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
     End If
End If


还有因为数据量较大,执行速度比较慢,请问有无办法优化上面代码

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/10/18 17:17:00 [只看该作者]

修改前,可执行代码:
    If fr IsNot Nothing Then 
                 sym("是否可用") = 1
                Else
                 Dim wb As Row = Tables("外部出库").AddNew()
                 sym("是否可用") = 0
                 wb("溯源码" ) = sym("子溯源码")
                 wb("出库部门") = sym("当前所在部门")
                 wb("出库时间") = Date.Now
                 wb("单据类型") = "销售单"
                 wb("是否拆箱") = sym("是否拆箱")
                 wb("出库人") = yh("姓名")
                 wb("核销人") = dr("姓名")
              End If

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/10/18 17:29:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文本文档 (2).txt

文本有代码的上半部分;

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


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

改成

 

For Each sym As DataRow In syms
    fr = DataTables("盘点单据").Find("[溯源码] = '" & sym("子溯源码") & "'")  '溯源码表中的溯源码是否存在与盘点单据
    If fr IsNot Nothing Then
        sym("是否可用") = 1
        fr("审核人") = dr("姓名")
        fr("审核日期") = Date.Now
       
        If fr("盘点类型") = "日盘" OrElse fr("盘点类型") = "抽盘" Then
            If fr("商品编码") = sym("商品编码") Then
                Dim wb As Row = Tables("外部出库").AddNew()
                sym("是否可用") = 0
                wb("溯源码" ) = sym("子溯源码")
                wb("出库部门") = sym("当前所在部门")
                wb("出库时间") = Date.Now
                wb("单据类型") = "销售单"
                wb("是否拆箱") = sym("是否拆箱")
                wb("出库人") = yh("姓名")
                wb("核销人") = dr("姓名")
            End If
        End If
    Else
        Dim wb As Row = Tables("外部出库").AddNew()
        sym("是否可用") = 0
        wb("溯源码" ) = sym("子溯源码")
        wb("出库部门") = sym("当前所在部门")
        wb("出库时间") = Date.Now
        wb("单据类型") = "销售单"
        wb("是否拆箱") = sym("是否拆箱")
        wb("出库人") = yh("姓名")
        wb("核销人") = dr("姓名")
    End If
Next


 回到顶部