Wincc-Skriptbeispiel 3 – Sortierung von Datensätzen nach Feldern mit dem MSHFGrid-Kontrollelement
Thread Content
Manchmal müssen wir auch sicherstellen, dass der Benutzer nach dem Klicken auf das MSHFGrid-Element die Daten nach bestimmten Feldern sortieren kann. In diesem Artikel wird erklärt, wie diese Funktion umgesetzt werden kann. 1. Vorbereitungen: In Wincc wird eine neue interne Variable vom Typ 32-Bit-Fließkommazahl namens Sort erstellt, um anzuzeigen, ob die Sortierung in aufsteigender oder absteigender Reihenfolge erfolgen soll. Fügen Sie auf der WinCC-Seite einen statischen Text ein. Geben Sie diesem Text den Namen „txt“. Setzen Sie in den Eigenschaften unter „Effekt“ die Einstellung „Globale Farbe“ auf „Nein“. Unter den Eigenschaften „Farbe“ setzen Sie die Einstellung „Hintergrundfarbe“ auf eine Transparenz von 100. Die Dicke des Rahmens soll 0 sein.**Sortierungs-Skript:** Schreiben Sie das folgende Skript in die Ereignisbeschreibung „Object Event – Mouseup“ des Kontrollelements MSHFGrid:
```vba
Dim MSHFGrid, txt, sort
Set MSHFGrid = ScreenItems("MSHFGrid")
Set sort = HMIRuntime.Tags("Sort")
Set txt = ScreenItems("txt")
If MSHFGrid.TextMatrix(0, item.MouseCol) = “Datum/Uhrzeit” Then
If sort.Read = 2 Then
MSHFGrid.Sort = 1 ‘Sortieren nach steigenden Werten
sort.Write 1
txt.Text = “Derzeit wird nach dem Feld “ & MSHFGrid.TextMatrix(0, item.MouseCol) & “ in aufsteigender Reihenfolge sortiert.”
Else
MSHFGrid.Sort = 2 ‘Sortieren nach absteigenden Werten
sort.Write 2
txt.Text = “Derzeit wird nach dem Feld “ & MSHFGrid.TextMatrix(0, item.MouseCol) & “ in absteigender Reihenfolge sortiert.”
End If
Else If sort.Read = 2 Then
MSHFGrid.Sort = 5 ‘Sortieren nach alphabetischer Reihenfolge
sort.Write 1
txt.Text = “Derzeit wird nach dem Feld “ & MSHFGrid.TextMatrix(0, item.MouseCol) & “ in alphabetischer Reihenfolge sortiert.”
Else
MSHFGrid.Sort = 6 ‘Sortieren nach absteigender alphabetischer Reihenfolge
sort.Write 2
txt.Text = “Derzeit wird nach dem Feld “ & MSHFGrid.TextMatrix(0, item.MouseCol) & “ in absteigender alphabetischer Reihenfolge sortiert.”
End If
End Sub
```
Speichern und ausführen Sie das Skript – dann werden Sie das Ergebnis sehen. Dieses Skript basiert auf den Projekten aus dem vorherigen Blogbeitrag. Wie man MSHFGrid mit Tabellen verbindet, finden Sie in anderen Artikeln zu WinCC-Skripten.