Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 4 von 4

Thema: Auf Rezepte in vb Script zugreifen

  1. #1
    Registriert seit
    04.02.2013
    Beiträge
    271
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallollo, ich benutze premium HMI von Asem.
    ich möchte mir nun eine kleine eigene Oberfläche für die Rezepte machen... Und diverse Daten aus mehreren Rezepten gleichzeitig anzeigen.
    gibt es dir Möglichkeit, dass man hier über ein Script direkt auf einzelne Zellen des Rezepts (also der Datenbank) zugreifen kann?
    also dass ich jeweils die gleiche Date von rezept 1 bis Rezept 10 in 10 Ausgabeelemente schreiben kann?
    möchte gerne direkt auf die Zellen zugreifen, damit ich nicht zwischen den Rezepten hin und her wechseln muss.

    Kann mir da jemand helfen? Danke schon mal.
    Zitieren Zitieren Auf Rezepte in vb Script zugreifen  

  2. #2
    SY50 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.02.2013
    Beiträge
    271
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also ich habe schon soviel herausgefunden, dass ich schon einmal auf eine Spalte des Rezepts komme... und zwar so:
    Code:
    Public Sub Main()
     Dim objDLR As DLRCmdTarget
     Set objDLR = GetDataLoggerRecipe("Rezept")
     If objDLR.IsRecipe Then
      Dim obj As DLRColumnCmdTarget
      Set obj = objDLR.GetColumn("Rezeptname")
      Debug.Print obj.Variable
     End If
    End Sub
    Der Befehl obj.Variable gibt mir den Namen der Spalte aus. das stimmt auch alles soweit, aber ich habe absolut keinen Plan, wie ich nun die Spalte in ihren einzelnen Elementen durchlaufen kann.
    Weis denn keiner eine Möglichkeit an die einzelnen werte dran zu kommen?

  3. #3
    SY50 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.02.2013
    Beiträge
    271
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe jetzt schon eine Möglichkeit gefunden die einzelnen Spalten des Rezepts heraus zu finden (ohne dass ich sie vorher mit Namen kennen muss)

    Komme nur einfach nicht drauf, wie ich die Daten aus den Spalten heraus bekomme (sie lesen kann).

    Hier der VB Code:

    Code:
    ' Versuch indirekt auf die Rezeptdaten zugreifen zu können
    
    Public Sub Main()
    
     ' System variablen
     Dim objDLR As DLRCmdTarget
     Dim obj As DLRColumnCmdTarget
    
     ' Konstanten
     Const MaxColumn = 10
    
     ' Hilfsvariablen
     Dim ColumnNameList As String
     Dim ColumnArray(MaxColumn) As String
     Dim ColumnCounter As Integer
     Dim Counter As Integer
     Dim Outputstring As String
    
     ' --------------------------------------------------------------------
     ' --------------------------------------------------------------------
     ' --------------------------------------------------------------------
    
     Set objDLR = GetDataLoggerRecipe("Rezept") ' Das Rezept auswählen
     Set obj = objDLR.GetColumn("Rezeptname") ' Einzelnen Spalten aus dem Rezept abfragen (Spaltenname notwendig)
    
     ' Alle Spalten des Rezepts abrufen und in der Debugzeile ausgeben
     ' Die Spaltennamen stehen nun in dem Array und können verwendet werden,
     ' ohne dass man vorher ihren Namen wissen muss
    
     ColumnNameList = objDLR.GetColumnNameList ' Es werden alle Spalten als String mit einem ", " getrennt ausgegeben
     For ColumnCounter = 0 To MaxColumn Step 1
      If InStr(ColumnNameList,", ") > 0 Then
       ColumnArray(ColumnCounter) = Left(ColumnNameList,InStr(ColumnNameList,",") - 1) ' Zuweisen des Spaltennamens (String bis zum Trennkoma)
       ColumnNameList = Right(ColumnNameList,Len(ColumnNameList) - InStr(ColumnNameList,",") - 1) ' Die aktuelle Spalte wird aus der Spaltenliste entfernt
      Else
       ColumnArray(ColumnCounter) = ColumnNameList
       Exit For
      End If
     Next
    
     ' Erzeugen des Ausgabestrings aus den einzelnen Spaltennamen (Bis zum vorletzten Element wird zur besseren
     Outputstring = "" ' String ablöschen                        Lesbarkeit ein " - " angehängt)
     For Counter = 0 To ColumnCounter Step 1
      If Counter < ColumnCounter Then
       Outputstring = Outputstring + ColumnArray(Counter) + " - "
      Else
       Outputstring = Outputstring + ColumnArray(ColumnCounter)
      End If
     Next
    
     Debug.Print Outputstring ' Ausgabe der Spaltennamen
    End Sub
    Wäre super, wenn mir jemand helfen könnte.

    Danke

    ............. Edit : Es darf natürlich auch jemand einen Tip geben, wo ich vielleicht mehr Infos dazu bekommen könnte
    Geändert von SY50 (05.04.2015 um 18:21 Uhr)

  4. #4
    SY50 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.02.2013
    Beiträge
    271
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe es raus bekommen. Mann muss ein Recordset anlegen und eine ADO Connection und kann dann die Daten wie folgt aus jedem einzelnen rezeptindex holen:

    Code:
    Spaltenwert = RecordSet.Fields("Spaltenname").Value

Ähnliche Themen

  1. Antworten: 11
    Letzter Beitrag: 02.01.2014, 20:44
  2. Antworten: 0
    Letzter Beitrag: 01.06.2012, 14:05
  3. Rezepte auf Netzwerkserver
    Von Markus14054 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.07.2011, 17:15
  4. Antworten: 6
    Letzter Beitrag: 12.04.2011, 10:33
  5. Antworten: 4
    Letzter Beitrag: 18.12.2009, 14:34

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •