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

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

22 Май 2019, 20:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как в макросе определить строку элемента управления  (Прочитано 4985 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Abell
Участник
**
Offline Offline

Сообщений: 7


« Стартовое сообщение: 5 Май 2014, 09:40 »

Доброго времени!
Прошу прощения за ламерский вопрос.
В таблице Calc есть несколько элементов управления "Флажок", все они вызывают один макрос. Макрос обрабатывает две ячейки в одной строке.

Вопрос, как в макросе определить строку таблицы, в которой находится вызывающий элемент?
Или, в общем случае, где найти и как определить все свойства и методы вызывающего макрос элемента?

Заранее спасибо!

P.S. Вариант с перебором всех элементов и обработкой всех строк рассматривал, но получается очень неэффективно Грустный
P.P.S. Свойства и методы очень удобно было видеть в Delphi - там после точки сразу был список всего, или по Ctrl+Space выпадал, здесь такого нет, и документации никак не найду Грустный
« Последнее редактирование: 5 Май 2014, 10:18 от Abell » Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 5 Май 2014, 11:51 »

Попробуй почитать файл из этого сообщения
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Abell
Участник
**
Offline Offline

Сообщений: 7


« Ответ #2: 5 Май 2014, 12:12 »

К сожалению, такого у меня нет. Возможно, другая версия или не знаю где искать, но ничего подобного не нахожу.
У меня OpenOffice 3.2.1
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 5 Май 2014, 12:22 »

Это ты про "события листа"? Я не о том, я о параметре oEvent в макросе и о способе посмотреть его состав
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Abell
Участник
**
Offline Offline

Сообщений: 7


« Ответ #4: 5 Май 2014, 12:29 »

Спасибо, поизучаю внимательней, о результатах сообщу.

Пока обошелся следующим корявым кодом:

DIM tSheet As Object
rem Задаем начальную строку и количество строк
bRow=4
cRow=65
rem Получаем активный лист
tSheet=ThisComponent.GetCurrentController().GetActiveSheet()
For i=bRow To cRow
 If tSheet.GetCellByPosition(1,i).GetString Then
  tSheet.GetCellByPosition(3,i).Value=tSheet.GetCellByPosition(2,i).Value
 Else
  tSheet.GetCellByPosition(3,i).Value=0
 EndIf
Next
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #5: 5 Май 2014, 13:19 »

Кинул бы образец листа - уже нарисовали бы пристойное решение. Впрочем, если решение кажется корявым, но работает, значит не такое уж оно и корявое
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Abell
Участник
**
Offline Offline

Сообщений: 7


« Ответ #6: 5 Май 2014, 15:05 »

Да, радоваться рано... Когда уже думал, что закончил, появился ряд глюков. Самый серьезный и непонятный - макрос устойчиво вызывается только из первого элемента. Один раз каким-то чудом сработал из восьмого. Грустный
Наверное, придется перелопачивать вручную все заново, потому что видимых причин такого поведения офиса я не наблюдаю.
События элементов у всех одинаковые, макрос один. По первому элементу срабатывает, по остальным нет. Сам макрос, когда все-таки вызывается, работает устойчиво.
В общем, голову сломал, но так и не понял.  Непонимающий
Вот этот чудесный файл вложил, завтра буду разбираться  В замешательстве

* Тест.ods (14.67 Кб - загружено 15 раз.)
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 711


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #7: 5 Май 2014, 19:40 »

Если я правильно вас понял, должно быть так, как я сделал с 5 по 30 строчку. У вас были "двухэтажные скворечники". Один "этаж" вы отредактировали, а другой все были копия первого элемента.

* Тест исправленный.ods (17.69 Кб - загружено 13 раз.)
Записан

Abell
Участник
**
Offline Offline

Сообщений: 7


« Ответ #8: 6 Май 2014, 05:04 »

Спасибо, я уже тоже исправил Улыбка Так и не нашел в среде разработки инспектора объектов и событий, так что делаю все методом проб и, естественно, ошибок.
Записан
Yakov
Администратор
**
Offline Offline

Сообщений: 2 397


WWW
« Ответ #9: 6 Май 2014, 08:07 »

Так и не нашел в среде разработки инспектора объектов и событий
Это можно сделать с помощью расширения
http://myooo.ru/content/view/155/99/
Записан

Abell
Участник
**
Offline Offline

Сообщений: 7


« Ответ #10: 6 Май 2014, 08:18 »

Огромное всем спасибо! Думаю, теперь у меня есть вся необходимая информация и инструменты, так что буду осваивать этот офисный пакет на должном уровне Улыбка
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #11: 6 Май 2014, 09:47 »

Ну, вообще-то, все необходимые инструменты для решения этой конкретной задачи были под рукой с самого начала. И макрос для её решения был не обязателен.

* Тест без макросов.ods (17.9 Кб - загружено 25 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Abell
Участник
**
Offline Offline

Сообщений: 7


« Ответ #12: 6 Май 2014, 10:07 »

JohnSUN, круто  Шокирован Действительно, не стоило мне так усложнять, уперся в эти красивые флажки  Да уж... Буду знать, спасибо Улыбка
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!