Здравствуйте, уважаемые гуру. Сразу отмечу, что в деле ?...

Автор ForumOOo (бот), 9 февраля 2019, 15:07

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

ForumOOo (бот)

Компонент: Calc
Версия продукта: 5.x
Сборка:
ОС: Win 7, Домашняя

Здравствуйте, уважаемые гуру. Сразу отмечу, что в деле написания макросов я абсолютный чайник. И вот в свои юные годы (всего-то 68) сподобился написать свой
первый макрос. В принципе, у меня всё получилось, макрос работает и я уже начинаю извращаться, пытаясь предоставить пользователю максимум удобств. Вопрос в
следующем.
LO v6.0.7.3, Calc, Win7 Home. Таблица Calc заполняется ежемесячно и построчно в течение каждого дня. Каждая очередная строка заполняется с помощью выпадающего
диалогового окна. Окно большое, состоит из 15 различных элементов управления (поля со списком, числовые поля, зависимые выпадающие списки и т.д.) и занимает
около половины площади таблицы в нижней её части. По мере увеличения количества заполненных строк выпадающее окно начинает перекрывать заполненные строки и
пользователь должен поднимать заполненную часть таблицы вверх с помощью полосы прокрутки, чтобы иметь возможность контролировать ввод данных не только в окне, но
и в текущей строке. Можно ли автоматизировать этот процесс таким образом, чтобы при получении команды на ввод новой строки программа поднимала заполненные строки
на одну вверх, оставляя в зоне видимости только последние, к примеру 5 (или N), заполненных строк. P.S. Большое спасибо разработчикам за программу и вам, как
специалистам, за помощь в её освоении. Конечно, таким чайникам, как я, освоить всё практически нереально, но даже поняв основы, начинаешь получать удовлетворение
, увидев результаты своего творения.

--
Подпись: Дед

bigor

Как вариант скрыть верхние строки, затем после закрытия формы - показать.
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

rami

"Прокрутить" таблицу Calc можно помощью кода:
ThisComponent.CurrentController.FirstVisibleRow = n
например, если n=50, то самая первая видимая строка будет 51 (в коде счёт строк и столбцов начинается с нуля), нужно по номеру последней заполненной строки вычислить номер первой видимой строки.