抖音粉丝群1
『7x24小时有问必答』

Function DownloadRecipe()
      On Error Resume Next
      DownloadRecipe = False
      Dim ArchiveId, DMVarName(), RecipeName, RecipeVersion
      Dim list, tem1, tem2, tem3, tem4, i, obj1, sqlQuery
      Dim validFlag : validFlag = True  
      Set obj1 = HMIRuntime.Screens("Main.Center.Center2").ScreenItems("Sel")
      If obj1 Is Nothing Then
            LogError "DownloadRecipe错误:未找到控件Sel"
            validFlag = False
      Else
            RecipeName = obj1.SelText
            If RecipeName = "" Then
                  LogError "DownloadRecipe错误:配方名称为空"
                  validFlag = False
            End If
      End If
      RecipeVersion = HMIRuntime.Tags("CurrentRecipeVersion").Read
      If Err.Number <> 0 Then
            LogError "DownloadRecipe错误:读取标签失败 - " & Err.Description
            Err.Clear
            validFlag = False
      End If
      If Not validFlag Then Exit Function
      sqlQuery = "SELECT [ArchiveID] FROM [dbo].[UAArchive] WHERE name=N'Recipe'"
      tem1 = SQL(sqlQuery, 1, 0)(1)
      If Not IsArray(tem1) Or UBound(tem1, 2) < 0 Then
            LogError "DownloadRecipe错误:未查询到Recipe的Archive记录(SQL:" & sqlQuery & ")"
            Exit Function
      End If
      ArchiveId = tem1(0, 0, 1)
      If Not IsNumeric(ArchiveId) Then
            LogError "DownloadRecipe错误:ArchiveID不是有效数字 - " & ArchiveId
            Exit Function
      End If
      sqlQuery = "SELECT [DMVarName] FROM [dbo].[UAField] " & _
                     "WHERE [ArchiveID] = " & CLng(ArchiveId) & " ORDER BY position ASC"
      tem3 = SQL(sqlQuery, 1, 0)(1)
      If Not IsArray(tem3) Then
            LogError "DownloadRecipe错误:未查询到配方变量(SQL:" & sqlQuery & ")"
            Exit Function
      End If
      ReDim DMVarName(UBound(tem3, 1))
      For i = 0 To UBound(tem3, 1)
            DMVarName(i) = tem3(i, 0, 1)
      Next
      sqlQuery = "SELECT TOP 1 * FROM [dbo].[UARecipe] " & _
                     "WHERE RecipeName = N'" & EscapeSQL(RecipeName) & "' " & _
                     "AND recipeversion = " & RecipeVersion & " " & _
                     "ORDER BY RecipeVersion DESC"
      list = SQL(sqlQuery, 0, 0)(1)
      If Err.Number <> 0 Then
            LogError "DownloadRecipe错误:查询配方失败 - " & Err.Description & "(SQL:" & sqlQuery & ")"
            Err.Clear
            Exit Function
      End If
      If IsArray(list) And UBound(list) >= 0 Then
            Dim maxCol : maxCol = UBound(list, 2)
            If maxCol < 5 Then  
                  LogError "DownloadRecipe错误:配方表列数不足,无法赋值变量"
                  Exit Function
            End If
            For i = 4 To maxCol - 2
                  If i < UBound(DMVarName) And DMVarName(i) <> "" Then
                        Dim tagValue : tagValue = list(0, i + 1, 1)
                        HMIRuntime.Tags(DMVarName(i)).Write tagValue
                        If Err.Number <> 0 Then
                              LogError "DownloadRecipe错误:写入标签" & DMVarName(i) & "失败 - " & Err.Description
                              Err.Clear
                        End If
                  End If
            Next
            HMIRuntime.Tags("DownLoadRecipe").Write RecipeName
            HMIRuntime.Tags("DownLoadRecipeVersion").Write RecipeVersion
            Call ViewRecipe()  
      Else
            LogError "DownloadRecipe错误:未查询到匹配的配方(名称:" & RecipeName & ",版本:" & RecipeVersion & ")"
      End If
      If Err.Number <> 0 Then
            LogError "DownloadRecipe错误:未知异常 - " & Err.Description
            Err.Clear
      End If
End Function
1.gif
往期推荐

2.gif
您的「」、「」都会成为我继续更新的动力,快点击右下角「」、「」、转发给朋友吧

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码