Пример скрипта Wincc 3: сортировка записей в контроле MSHFGrid по полям
Thread Content
Иногда нам также необходимо, чтобы операторы могли после нажатия на элемент управления MSHFGrid сортировать данные по полям. В этой статье описывается способ реализации этой функции. 1. Подготовительные работы: в WinCC создается новая внутренняя переменная типа 32-битного числа с плавающей точкой под названием Sort, предназначенная для обозначения порядка сортировки — возрастающего или убывающего. На странице WinCC вставьте статический текст; назовите его txt. В свойствах элемента установите параметр «Эффект» → «Глобальный цвет» на значение «Нет». Параметр «Цвет» → «Цвет фона» должен иметь значение прозрачности 100, а толщина рамки — 0.Для сортировки используйте следующий скрипт, который необходимо ввести в событие MSHFGrid → Объектные события → MouseUp:
```vba
Dim MSHFGrid, txt, sort
Set MSHFGrid = ScreenItems("MSHFGrid")
Set sort = HMIRuntime.Tags("Sort")
Set txt = ScreenItems("txt")
If MSHFGrid.TextMatrix(0, item.MouseCol) = "Дата/Время" Then
If sort.Read = 2 Then
MSHFGrid.Sort = 1 ‘ Сортировка по возрастанию чисел
sort.Write 1
txt.Text = "В настоящее время данные сортируются по полю “ & MSHFGrid.TextMatrix(0, item.MouseCol) & “ в порядке возрастания.”
Else
MSHFGrid.Sort = 2 ‘ Сортировка по убыванию чисел
sort.Write 2
txt.Text = "В настоящее время данные сортируются по полю “ & MSHFGrid.TextMatrix(0, item.MouseCol) & “ в порядке убывания.”
End If
Else If sort.Read = 2 Then
MSHFGrid.Sort = 5 ‘ Сортировка по возрастанию символов
sort.Write 1
txt.Text = "В настоящее время данные сортируются по полю “ & MSHFGrid.TextMatrix(0, item.MouseCol) & “ в порядке возрастания.”
Else
MSHFGrid.Sort = 6 ‘ Сортировка по убыванию символов
sort.Write 2
txt.Text = "В настоящее время данные сортируются по полю “ & MSHFGrid.TextMatrix(0, item.MouseCol) & “ в порядке убывания.”
End If
End Sub
```
После сохранения и запуска скрипта вы увидите желаемый результат. Этот скрипт разработан на основе проекта из предыдущего блога. Чтобы узнать, как подключить MSHFGrid к таблице данных, ознакомьтесь с рекомендациями, приведенными в других скриптах для WinCC.