[gelöst] Menü basteln mit Listenfeld?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

[gelöst] Menü basteln mit Listenfeld?

Beitrag von Noebian »

Moin, moin
ich habe diverse Berichte, die von einem Formular aus aufgerufen werden - jeder Bericht hat eine Schaltfläche, über die er geöffnet wird. Allmählich wird das ein bißchen unübersichtlich.
Nun überlegte ich folgendes: ein Listenfeld, das als Menü dient. Es enthälte eine Werteliste "Bericht1, Bericht2,..", und ist verknüpft mit einem Makro, das auf "Feld modifiziert" anspringt, dahinter dann der Code, der je nach Feldinhalt den entsprechenden Bericht aufruft. Klappt aber noch nicht, denn ich bekomme den aktuell ausgewählten Inhalte nicht zu fassen.
Problem wohl: Listenfeld ist mit keinem Datenfeld verknüpft.
Kann man trotzdem irgendwie den aktuellen Wert per Makro greifen? Oder gibt es einen besseren Weg?
Zuletzt geändert von Noebian am Sa, 21.04.2012 00:29, insgesamt 1-mal geändert.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Menü basteln mit Listenfeld?

Beitrag von Noebian »

Sorry, jetzt habe ich es gefunden.
Es geht natürlich mit ".CurrentValue"
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
PerSHN
Beiträge: 1
Registriert: Mi, 13.06.2012 15:05

Re: Menü basteln mit Listenfeld?

Beitrag von PerSHN »

Noebian hat geschrieben:Sorry, jetzt habe ich es gefunden.
Es geht natürlich mit ".CurrentValue"
Hallo!

Sowas würde ich gerne auch erstellen. Meine Suche bei google ergab leider nicht viel, bzw. zu Kompliziertes, da ich noch ein Laie bin. Wie ist denn die exakte Vorgehensweise?
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Menü basteln mit Listenfeld?

Beitrag von RobertG »

PerSHN hat geschrieben: Sowas würde ich gerne auch erstellen.
Geht natürlich nur per Makro. Also zuerst einmal ein Modul für Makros anlegen, wenn nicht schon vorhanden. Dort dann das folgende Makro hineinkopieren:

Code: Alles auswählen

SUB Drucken
	DIM oDoc AS OBJECT
	DIM oDrawpage AS OBJECT
	DIM oFeld AS OBJECT
	DIM stTag AS STRING
	oDoc=thisComponent
	oDrawpage=oDoc.Drawpage
	REM Lage des Feldes in dem entsprechenden Formular aufsuchen
	oForm=oDrawpage.Forms.getByName("MainForm")	'Name des Formulars einsetzen - zu sehen im Formularnavigator
	oFeld=oForm.getByName("Listenfeld")	'Name des Listenfeldes einsetzen
	stTag=oFeld.getCurrentValue()	
	ThisDatabaseDocument.ReportDocuments.getByName( stTag ).open
END SUB
Ich habe das Makro einfach einmal "Drucken" genannt, da Berichte ja in der Hauptsache dafür erstellt werden.
Jetzt das Makro an das Listenfeld binden. Hier die Eigenschaft entsprechend wählen, z.B. "Modifiziert". Sobald jetzt die Einstellung im Listenfeld geändert wird, wird der Bericht mit dem entsprechenden Namen geöffnet.

Gruß

Robert
Antworten