[РЕШЕНО]Список. Base. Как выделить один из элементов списка программно?

Автор Ириминаге, 6 июня 2022, 14:38

0 Пользователи и 1 гость просматривают эту тему.

Ириминаге

Здравствуйте! Есть Форма в Base. В Форме есть поле ввода и список. Данные в список добавляются SQL-запросом в свойствах. Надо выделить конкретный пункт в списке в зависимости от данных в поле ввода. Допустим, я напишу "5" и пятый пункт в списке должен отобразиться. Питоньяк ответа не дал, а xray тоже не знает, как это делать, даже про озвученную на форуме конструкцию getcurretcontroller не знает. Может, кто-нибудь подскажет, как это можно сделать?
Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...

economist

Способ без макросов: в Combobox (Поле со списком) вводим элементы (или пишем запрос), возвращающий пронумерованные элементы:
1. Земля
2. Луна
...
5. Нептун

Теперь пишем "5" и сразу получаем отображение и выделение нужного элемента в поле со списком.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ириминаге

Ах, если б мне нужен был только миллион(С) Граф Монте-Кристо.
На самом деле, я вспомнил про фокусы с фокусом и мне это помогло. Даже проще получилось: прежде я находил нужную позицию в списке и не мог это передать списку. Поэтому так сформулировал задачу. Решение получилось такое:

cAdr = cForm.getByName("PrnAdr")
cControl=  ThisComponent.CurrentController
ccAdr=cControl.getcontrol(cAdr)
ccAdr.selectItem(cRes.getstring(4),true)


вместо cRes.getstring(4) может быть любой текст, из того же поля ввода.
Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...