ich habe ein Formular mit 15 Kombinationsfeldern, deren Inhalt an eine Tabelle gebunden ist. Wenn ich die Tabelle ändere (in einem sep. Formular) sollen die Kombinationsfelder den neuen Inhalt sofort übernehmen.
Wenn ich einen Butten mit der Aktion "Formular aktualisieren" erstelle, und diesen drücke funktioniert das auch.
Schöner wäre es allerdings, wenn ich keinen Button drücken müsste.
Nun habe ich ein Makro gemacht, welches ich allerdings für alle 15 Felder machen müsste - sehr umständlich:
Code: Alles auswählen
sub PosFelderAktualisieren
rem Wird ausgeloest bei Fokuserhalt auf die Positionsfelder, damit die Tabelleneinträge übernommen werden.
rem define variables
oFORM = thisComponent.Drawpage.Forms.getByName("Besitzer").getByName("SubFormRechnung")
oPos1 = oForm.getByname("Pos01")
oPos1.refresh
oPos2 = oForm.getByname("Pos02")
oPos2.refresh
end sub
Code: Alles auswählen
SUB Refresh
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Refresh", "", 0, Array())
end sub
LibreOffice 6.4.7.2, Win7/10