Форум поддержки пользователей LibreOffice, Apache OpenOffice

Главная категория => Calc => Тема начата: TanaTiX от 17 марта 2022, 00:09

Название: Как ограничить автоввод для некоторых колонок?
Отправлено: TanaTiX от 17 марта 2022, 00:09
Как ограничить автоввод для некоторых колонок?
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: eeigor от 17 марта 2022, 00:10
Это не предусмотрено.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: TanaTiX от 17 марта 2022, 00:12
Жаль. Ок, возможно ли тогда при выключенном автовводе настроить его применение на некоторых колонках?
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: eeigor от 17 марта 2022, 08:14
https://wiki.documentfoundation.org/ReleaseNotes/7.3#General_improvements_2
См. "autocompletion for Calc autoinput was implemented".
Вы не можете настроить автоввод. Им надо пользоваться.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: sokol92 от 17 марта 2022, 14:31
Теоретически можно включать/выключать AutoInput при смене выделенной ячейки. Однако, в настоящий момент времени это сопряжено с большими техническими трудностями, поскольку включение / отключение AutoInput через сервис GlobalSheetSettings "глючит". Другой путь есть, но он очень тернист...
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: TanaTiX от 17 марта 2022, 20:19
Цитата: sokol92 от 17 марта 2022, 14:31Другой путь есть, но он очень тернист
Хоть направление? Вдруг оно того не стоит?
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: sokol92 от 18 марта 2022, 15:38
Цитата: TanaTiX от 17 марта 2022, 20:19Вдруг оно того не стоит?
Точно не стоит.
Это "нажатие кнопки" меню Tools / Autoinput c помощью интерфейсов семейства AccessibleContext (https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1accessibility_1_1AccessibleContext.html).
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: TanaTiX от 19 марта 2022, 19:30
К сожалению это не отвечает на вопрос, т.к. он (вопрос) был лишь про некоторые колонки.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: mikekaganski от 19 марта 2022, 19:40
Цитата: TanaTiX от 19 марта 2022, 19:30это не отвечает на вопрос, т.к. он (вопрос) был лишь про некоторые колонки

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

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

По-моему, вполне отвечает (правда, как и обещано, сопряжено с трудностями, но создав макрос, который по событию смены выделения отключает/включает автоввод в зависимости от положения, Вы можете получить нужный результат).
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: economist от 19 марта 2022, 19:40
Легко гуглится код:

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



Дальше остается вызывать нужный макрос по событию активации/выделения того или иного столбца. Гуглится тоже легко. Примеры макросов в зависимости от диапазона есть и на Форуме.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: sokol92 от 19 марта 2022, 19:45
 
Цитата: economist от 19 марта 2022, 19:40Легко гуглится код
Код легко гуглится, не не легко работает. :)
Проверьте, что указанный Вами код на самом деле влияет на автозавершение текста при вводе в ячейку (не верьте тому, что видите в меню Tools).

Как минимум в версии 7.3.1.3 Win 10 выполнение указанного макроса непосредственно не влияет на возможность автозавершения текста.
Не могу найти баг на эту тему, хотя, мне кажется, баг был.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: mikekaganski от 19 марта 2022, 19:53
Цитата: sokol92 от 19 марта 2022, 19:45Не могу найти баг на эту тему, хотя, мне кажется, баг был.

tdf#132145 (https://bugs.documentfoundation.org/show_bug.cgi?id=132145) об этом.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: sokol92 от 19 марта 2022, 19:58
Цитата: mikekaganski от 19 марта 2022, 19:53tdf#132145 об этом.
Михаил, про этот баг я помню.
Тут, мне кажется, чуть-чуть иная ситуация. Указанный в #9 код меняет состояние пункта меню Tools / AutoInput (то есть, результат работы макроса виден в UI), однако изменение состояния пункта меню не связано с вызовом команды, соответствующей этому пункту меню.
Могу и ошибаться.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: mikekaganski от 19 марта 2022, 20:03
Цитата: sokol92 от 19 марта 2022, 19:58Могу и ошибаться.

Точно можете ;)
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: economist от 19 марта 2022, 20:07
LO 7.2.5.2 Portable - после первого макроса AutoCompleteOff из #9 повторный ввод того же слова из столбца - не вызывает появление подсказки автодополнения. Я подумал что все работает как надо.

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

Однако многократный повтор показал что обе команды то работают, то нет. Пользоваться таким отключением нельзя.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: mikekaganski от 19 марта 2022, 20:11
Можно начиная с версии 7.4.
Название: Re: Как ограничить автоввод для некоторых колонок?
Отправлено: sokol92 от 19 марта 2022, 20:11
Спасибо!!