Seite 1 von 1

Mit Button anderes Formular öffnen und schliessen

Verfasst: So 13. Mai 2018, 19:16
von PeterMo
Hallo,

möchte in einem Formular mittels Button ein anderes Formular öffnen und mittels eines Buttons im neu geöffneten Formulars
wieder schließen.
Da ich neu in Libre bin, benötige ich Hilfe !

LG
Peter

Re: Mit Button anderes Formular öffnen und schliessen

Verfasst: So 13. Mai 2018, 19:58
von RobertG
Hallo Peter,

das Öffnen und Schließen von Formularen mit einem Button geht nur über Makros:

Code: Alles auswählen

SUB Formular_oeffnen
ThisDatabaseDocument.FormDocuments.getByName( "Neues Formular" ).open
END SUB
Willst Du gleichzeitig das Formular schließen, von dem aus der Button betätigt wurde:

Code: Alles auswählen

SUB Formularwechsel
ThisDatabaseDocument.FormDocuments.getByName( "Neues Formular" ).open
ThisDatabaseDocument.FormDocuments.getByName( "Altes Formular" ).close
END SUB
Steht alles im Handbuch, Makrokapitel, Navigation von einem Formular zum anderen.

Gruß

Robert

Re: Mit Button anderes Formular öffnen und schliessen

Verfasst: Do 5. Mär 2020, 17:34
von Freischreiber
Hallo,

ich habe ein ähnliches Problem: Gibt es eine Möglichkeit, das Base-Hauptfenster zu minimieren, sobald eines der Formulare per Doppelklick aufgerufen wurde?

Viele Grüße
Freischreiber

Re: Mit Button anderes Formular öffnen und schliessen

Verfasst: Do 5. Mär 2020, 19:53
von RobertG
Hallo Freischreiber,

eigentlich passt der Themenzusammenhang nicht, aber dennoch:
Das könnte ähnlich funktionieren wie das Umschalten auf FullScreen. Ich kann da mangels Erfahrung aber auch nur raten:

Code: Alles auswählen

FUNCTION Fullscreen(boSwitch AS BOOLEAN)
DIM oDispatcher AS OBJECT
DIM Props(0) AS NEW com.sun.star.beans.PropertyValue
oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Props(0).Name = "FullScreen"
Props(0).Value = boSwitch
oDispatcher.executeDispatch(ThisComponent.CurrentController.Frame,
".uno:FullScreen", "", 0, Props())
END FUNCTION
Wenn jetzt statt FullScreen Minimized (habe ich aus der slots.ods) eingesetzt würde und die Function mit Fullscreen(true) aus einer Prozedur heraus gestartet würde ...

Alternativ wäre auch möglich, die Sichtbarkeit des Dokumentes ganz auszuschalten:

Code: Alles auswählen

oDocView = oDocument.CurrentController.Frame.ContainerWindow
oDocView.Visible = False
Gruß

Robert