Ниже приведена сводная таблица самых частых элементов интерфейса. В колонке «Тип объекта» указано именно то значение, которое нужно подставлять в функцию
session.findById("wnd[0]").FindByName("Имя", "Тип")
а в последней колонке — главные свойства и методы для взаимодействия с ними.
| Префикс в рекордере | Тип объекта (для FindByName) | Что это такое? | Как взаимодействовать (Свойства / Методы) |
| txt | GuiTextField | Текстовое поле ввода | .Text = "Значение" — записать текст |
| .Text — прочитать текст | |||
| .SetFocus — установить курсор в поле | |||
| lbl | GuiLabel | Текстовая метка (название поля, заголовок) | .Text — прочитать текст (изменить нельзя) |
| Часто используется для проверки, загрузился ли нужный экран. | |||
| btn | GuiButton | Обычная кнопка на экране | .press — нажать кнопку |
| chk | GuiCheckBox | Галочка (Чекбокс) | .Selected = True — поставить галочку |
| .Selected = False — снять галочку | |||
| rad | GuiRadioButton | Радиокнопка (круглый переключатель) | .Selected = True — выбрать этот пункт (остальные радиокнопки в этой группе сбросятся автоматически) |
| cmb | GuiComboBox | Выпадающий список | .Key = "Ключ" — выбрать пункт по тех. ключу |
| .Value = "Текст" — выбрать по тексту | |||
| .Entries.Count — узнать количество пунктов | |||
| tabp | GuiTab | Вкладка на экране | .Select — кликнуть/открыть вкладку |
| tbl | GuiTableControl | Классическая таблица | .RowCount — количество строк |
| .Columns(x).Cells(y).Text — чтение/запись ячейки | |||
| .VerticalScrollbar.Position = i — прокрутка | |||
| .Rows(i).Selected = True — выделить строку | |||
| shell | GuiGridView | Современная таблица ALV Grid | .RowCount — количество строк |
| (или GuiShell) | .GetCellValue(i, "ИМЯ") — прочитать ячейку | ||
| .modifyCell i, "ИМЯ", "Текст" — изменить ячейку | |||
| .selectedRows = "i" — выделить строку | |||
| .pressToolbarButton "ID" — нажать кнопку на панели таблицы | |||
| wnd | GuiMainWindow | Окно (главное или всплывающее) | .maximize — развернуть на весь экран |
| (или GuiModalWindow) | .sendVKey 0 — нажать Enter | ||
| .sendVKey 11 — сохранить (Ctrl+S) | |||
| .sendVKey 12 — отмена (крестик) | |||
| sbar | GuiStatusbar | Строка состояния (внизу экрана) | .Text — получить текст системного сообщения |
| .MessageType — тип сообщения (E-ошибка, S-успех, W-предупреждение) | |||
| ctxt | GuiCTextField | Поле ввода с педалью поиска (F4) | Работает абсолютно так же, как обычное текстовое поле txt (.Text). Отличается только наличием кнопки вызова справочника. |
Несколько полезных советов по таблице:
- Как проверить доступность поля?
У большинства полей ввода (txt, ctxt, chk) есть свойство .Changeable.
Если myField.Changeable = True, макрос может вносить туда данные. Если False — поле заблокировано (серое), и попытка сделать .Text = "..." выдаст ошибку. - Чтение системных сообщений (sbar)
Это невероятно полезная вещь для контроля ошибок. После того как твой макрос нажал кнопку «Сохранить», ты можешь прочитать строку состояния:
Dim msg As String
msg = session.findById("wnd[0]/sbar").Text
Debug.Print "Система ответила: " & msg
Горячие клавиши (sendVKey)
Метод .sendVKey применяется ко всему окну wnd[0]. Вот самые популярные коды:
- 0 = Enter
- 3 = F3 (Назад)
- 8 = F8 (Выполнить)
- 11 = Ctrl+S (Сохранить)
- 12 = F12 (Отмена)