Как ограничить автоввод для некоторых колонок?

Автор TanaTiX, 17 марта 2022, 00:09

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

TanaTiX

Как ограничить автоввод для некоторых колонок?

eeigor

Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

TanaTiX

Жаль. Ок, возможно ли тогда при выключенном автовводе настроить его применение на некоторых колонках?

eeigor

https://wiki.documentfoundation.org/ReleaseNotes/7.3#General_improvements_2
См. "autocompletion for Calc autoinput was implemented".
Вы не можете настроить автоввод. Им надо пользоваться.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Теоретически можно включать/выключать AutoInput при смене выделенной ячейки. Однако, в настоящий момент времени это сопряжено с большими техническими трудностями, поскольку включение / отключение AutoInput через сервис GlobalSheetSettings "глючит". Другой путь есть, но он очень тернист...
Владимир.

TanaTiX

Цитата: sokol92 от 17 марта 2022, 14:31Другой путь есть, но он очень тернист
Хоть направление? Вдруг оно того не стоит?

sokol92

Цитата: TanaTiX от 17 марта 2022, 20:19Вдруг оно того не стоит?
Точно не стоит.
Это "нажатие кнопки" меню Tools / Autoinput c помощью интерфейсов семейства AccessibleContext.
Владимир.

TanaTiX

К сожалению это не отвечает на вопрос, т.к. он (вопрос) был лишь про некоторые колонки.

mikekaganski

Цитата: TanaTiX от 19 марта 2022, 19:30это не отвечает на вопрос, т.к. он (вопрос) был лишь про некоторые колонки

Цитата: sokol92 от 17 марта 2022, 14:31можно включать/выключать AutoInput при смене выделенной ячейки

Цитата: sokol92 от 18 марта 2022, 15:38c помощью интерфейсов семейства AccessibleContext

По-моему, вполне отвечает (правда, как и обещано, сопряжено с трудностями, но создав макрос, который по событию смены выделения отключает/включает автоввод в зависимости от положения, Вы можете получить нужный результат).
С уважением,
Михаил Каганский

economist

Легко гуглится код:

Sub AutoCompleteOff
srv = createUnoService("com.sun.star.sheet.GlobalSheetSettings")
srv.DoAutoComplete = False
End Sub

Sub AutoCompleteOn
srv = createUnoService("com.sun.star.sheet.GlobalSheetSettings")
srv.DoAutoComplete = True
End Sub



Дальше остается вызывать нужный макрос по событию активации/выделения того или иного столбца. Гуглится тоже легко. Примеры макросов в зависимости от диапазона есть и на Форуме.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

sokol92

#10
 
Цитата: economist от 19 марта 2022, 19:40Легко гуглится код
Код легко гуглится, не не легко работает. :)
Проверьте, что указанный Вами код на самом деле влияет на автозавершение текста при вводе в ячейку (не верьте тому, что видите в меню Tools).

Как минимум в версии 7.3.1.3 Win 10 выполнение указанного макроса непосредственно не влияет на возможность автозавершения текста.
Не могу найти баг на эту тему, хотя, мне кажется, баг был.
Владимир.

mikekaganski

Цитата: sokol92 от 19 марта 2022, 19:45Не могу найти баг на эту тему, хотя, мне кажется, баг был.

tdf#132145 об этом.
С уважением,
Михаил Каганский

sokol92

#12
Цитата: mikekaganski от 19 марта 2022, 19:53tdf#132145 об этом.
Михаил, про этот баг я помню.
Тут, мне кажется, чуть-чуть иная ситуация. Указанный в #9 код меняет состояние пункта меню Tools / AutoInput (то есть, результат работы макроса виден в UI), однако изменение состояния пункта меню не связано с вызовом команды, соответствующей этому пункту меню.
Могу и ошибаться.
Владимир.

mikekaganski

С уважением,
Михаил Каганский

economist

LO 7.2.5.2 Portable - после первого макроса AutoCompleteOff из #9 повторный ввод того же слова из столбца - не вызывает появление подсказки автодополнения. Я подумал что все работает как надо.

А после второго макроса AutoCompleteOn - автодополнения флаг появился, но оно не работало до перезапуска LO.

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