Foxtable(狐表)用户栏目专家坐堂 → 盘点核销代码优化


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

主题:盘点核销代码优化

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
盘点核销代码优化  发帖心情 Post By:2018/9/25 10:58:00 [显示全部帖子]

以下是我这边盘点核销的部分代码逻辑。盘点单据的数据量 上万行;syms中符合条件的数据也有几万行。 这样我再执行下列代码是速度非常非常慢。请问有无优化 方案?
pd = DataTables("盘点单据").SQLFind("[盘点部门] = '" & yh("所属部门") & "'and [盘点单号] = '" & txt & "'")  '找出本次盘点单据的盘点数据
     DataTables("盘点单据").SQLReplaceFor("审核人", dr("姓名"), "[盘点部门] = '" & yh("所属部门") & "'and [盘点单号] = '" & txt & "'")  
     DataTables("盘点单据").SQLReplaceFor("审核日期", Date.Now, "[盘点部门] = '" & yh("所属部门") & "'and [盘点单号] = '" & txt & "'")  
     Dim syms As List(of DataRow) = DataTables("溯源码").SQLSelect("当前所在部门 = '" & yh("所属部门") & "' And 是否可用 = 1") '找到本部门可用溯源码的行
     For Each sym As DataRow In syms
            fr = DataTables("盘点单据").SQLFind("[溯源码] = '" & sym("子溯源码") & "'")  '溯源码表中的溯源码是否存在与盘点单据
                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
        Next


 回到顶部