Как получить значение текстового поля - LibreOffice Base

То, что я хочу сделать, довольно просто.

У меня есть форма в LibreOffice Base с текстовым полем для ввода некоторых данных и кнопкой для запуска макроса. Теперь я хочу получить с помощью макроса на кнопке введенное значение текстового поля и распечатать его с помощью функции Печать ("...").

Это то, что я получил так далеко. Не очень, но, возможно, начало:

Sub TestMacro
   dim oForm as object
   dim oTextbox as object
   dim content as object

   oForm = thisComponent.drawpage.forms.getByName("form_a")
   oTextbox = oForm.getByName("testbox")
   content = oTextbox.getText()

   Print(content)
End Sub

Любая помощь приветствуется!

2 ответа

Решение

Я нашел ответ самостоятельно. Ключ должен был позволить подпрограмме иметь параметр, поскольку макрос используется при выполнении на кнопке. В случае события вы можете получить Parent, который является формой, с этого момента вы можете получить текстовое поле и его текущее значение. Работает просто отлично для меня.

Вот код

Sub TestMacro(oEvent as object)

   DIM oForm AS OBJECT
   DIM oField as object
   DIM oTField as object

   'gets the button
   oTField = oEvent.Source.Model
   'gets the parent of the button which is the form
   oForm = oTField.Parent
   'gets the text field based on its name
   oField = oForm.getByName("testbox")
   'prints the value of the textfield
   Print(oField.getCurrentValue)

End Sub

Использование Access2Base API упростит эту задачу.

Другие вопросы по тегам