Szukam pomocy w sprawie pewnego makra.
Stworzyłem pusty dokumnt na którym utworzyłem Przycisk (nie bedzie on drukowany)
Po nacisnieciu przycisku otwieram makrem Dialog1 na którym jest pole CheckBox1 i trzy pola OptionButton w FrameControl1 oraz przycisk CommandButton1
Przycisk w dokumencie otwiera Dialog1 za pomocą makra
Sub Dialog1Show
DialogLibraries.LoadLibrary( “Standard” )
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
oDialog1.Execute()
End Sub
Na dialogu są pola CheckBox1 i OptionBox (3x) w FrameControl1 oraz CommandButton1.
Aby wstawiać określony tekst nagrałem marko wstawiające tekst, które jest poniżej
Sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
dokument = “file://F:basicddd.odt”
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = “Text”
args1(0).Value = "jeden dwa i trzy. "
dispatcher.executeDispatch(document, “.uno:InsertText”, “”, 0, args1())
End Sub
Po przypisaniu tego makra do CheckBox1 i wykonywaniu programu odrazu wstawia tekst do Writera. Nie ma znaczenia czy jest wartość prawda czy fałsz.
Mój najwiekszy problem to skorzystanie z instrukcji If… Then… Else…
Ponieważ nie potrafię przypisać tego makra do przycisku na dialogu.
Próbowałem makro dla przycisku na Dialog1 następujące
Sub Wykonaj
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
dim ChecBox as Boolean
If CheckBox1 = true then
rem ----------------------------------------------------------------------
rem get access to the document
dokument = “file://F:basicddd.odt”
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = “Text”
args1(0).Value = "jeden dwa i trzy. "
dispatcher.executeDispatch(document, “.uno:InsertText”, “”, 0, args1())
End If
End Sub
I tu jest najwiekszy problem nie wiem jak wprowadzić warunek aby, wykonywał co należy.