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

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

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

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как запустить событие макросом  (Прочитано 1503 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Kadet
Форумчанин
***
Offline Offline

Сообщений: 698


« Ответ #59295: 7 Август 2021, 14:58 »

В общем, долго объяснять. Легче показать.

Допустим есть поле-чекбокс "cbВорота1". Оно параллелится сразу в трёх субформах и во всех трёх должно иметь одинаковое значение, вне зависимости от того в какой из субформ происходили манипуляции с ним. При изменении этого поля в ЛЮБОЙ из трёх субформ, происходит следующее.
Код:
Sub SetParam(oEvent)
Dim oForms, oForm, sName
'******************************************
oForms = oEvent.Source.getModel().getParent().getParent()
sName = oEvent.Source.getModel().Name
'******************************************
Select Case sName
Case "cbВорота1"
oForm = oForms.getByName("ТОРЕЦ")
oForm.getByName("cbВорота1").State = oEvent.Source.State
oForm = oForms.getByName("ВОРОТА")
oForm.getByName("cbВорота1").State = oEvent.Source.State
oForm = oForms.getByName("ОБЩИЕ")
oForm.getByName("cbВорота1").State = oEvent.Source.State
End Select
End Sub

Т.е. - я уже не заморачиваюсь из какой субформы вызван этот макрос и даже какое значение приобрело поле, вызвавшее его. Я просто по oEvent беру его имя и значение и присваиваю его всем смежным полям во всех субформах.

Для списков, текстовых полей, цифровых код немного отличается, потому как у них нет метода - oEvent.Source.State.

Вот почему это для меня очень удобно использовать oEvent. И не хочу это сильно менять.
« Последнее редактирование: 7 Август 2021, 15:14 от Kadet » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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