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


  共有2019人关注过本帖平板打印复制链接

主题:[求助] 优化代码

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


加好友 发短信
等级:小狐 帖子:312 积分:2477 威望:0 精华:0 注册:2018/11/22 20:30:00
[求助] 优化代码  发帖心情 Post By:2020/8/22 13:52:00 [只看该作者]

老师,请帮忙, 以下代码能否帮忙优化一下,运行起来很慢,谢谢。



DataTables("Pricelist").Load
Dim int As Integer = 0
For Each r As Row In Tables ("t_Purchasing")
    If r("FNeg") = True
        int = int+1
    End If
Next
If Int = 0
    msgbox ("         ...需先选择单号 !!!")
Else
   
    For Each rr As DataRow In DataTables("t_Purchasing").Se lect("[FNeg] = True")
            rr("FSupID") = Nothing
            rr("FName1") =  Nothing
            rr("FAuxPrice") =  Nothing
            rr("VATPrice") =  Nothing
            rr("Tax") =  Nothing
            rr("Currency") =  Nothing
       
        Dim dr As DataRow = DataTables("Pricelist").Find("FItemID1=" & rr("FItemID") & " and FUsed = true and FPrioritized = true and FStartQty<=" & rr("FAuxQty") &  " and FEndQty >= " & rr("FAuxQty") & "","FQuoteTime desc")
        If dr IsNot Nothing Then
            rr("FSupID") = dr("FSupID")
            rr("FName1") = dr("FName")
            rr("FAuxPrice") = dr("FPrice")
            rr("VATPrice") = dr("VATPrice")
            rr("Tax") = dr("FTax")
            rr("Currency") = dr("FName2")
            rr("FNeg") = False
        Else
           
            Dim drz As DataRow = DataTables("Pricelist").Find("FItemID1=" & rr("FItemID") & " and FUsed = true and FPrioritized = true and FStartQty = 0 And FEndQty = 0" ,"FQuoteTime desc")
            If drz IsNot Nothing Then
                rr("FSupID") = drz("FSupID")
                rr("FName1") = drz("FName")
                rr("FAuxPrice") = drz("FPrice")
                rr("VATPrice") = drz("VATPrice")
                rr("Tax") = drz("FTax")
                rr("Currency") = drz("FName2")
                rr("FNeg") = False
               
            End If
           
        End If
       
       

      Dim cmd As new SQLCommand
      cmd.CommandText = "Se lect F_103,F_102 From {t_Supplier} Where FItemID = '" & rr("FSupID") & "'"
     cmd.C
      Dim Values = cmd.ExecuteValues
    If Values.Count > 0 Then
        rr("Buyer") = Values("F_103")
        rr("SE") = Values("F_102")
          
      End If

       
       
        Dim cmd1 As new SQLCommand
        cmd1.C
        Dim dt As DataTable
        cmd1.CommandText = "Se lect * From {PORequestEntry}"
        dt = cmd1.ExecuteReader(True)
       
        Dim fdr As DataRow = dt.Find("FDetailID=" & rr("FDetailID") & "")
        If fdr IsNot Nothing Then
            fdr("FEntrySelfP0131") = rr("FAuxPrice")
            fdr("FSupplyID") = rr("FSupID")
            fdr("FEntrySelfP0132") = rr("VATPrice")
            fdr("FEntrySelfP0133") = rr("Tax")
            fdr("FEntrySelfP0134") = rr("Currency")
        End If
        dt.Save()
    Next
    msgbox ("         ...供应商以及价格核定完成 !!!")
End If

 回到顶部