Formular = Hauptmenue

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Eupendiver
**
Beiträge: 22
Registriert: Mi, 02.03.2016 10:05

Formular = Hauptmenue

Beitrag von Eupendiver »

Hallo Zusammen,
ich möchte ein Formular haben, das als Hauptmenue dient und von dem ich auf verschiedene
Tabellen, Abfragen und Bericht per Button zugreifen kann.
(siehe Beispiel)
MenueTest.odb
(70.65 KiB) 138-mal heruntergeladen
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Formular = Hauptmenue

Beitrag von RobertG »

Hallo Eupendiver,

ein Ansatz mit einem Makro:

Code: Alles auswählen

SUB Navigation(oEvent AS OBJECT)
	DIM stTag AS String
	stTag = oEvent.Source.Model.Tag
	aOpen() = Split(stTag, ",")
	SELECT CASE Trim(aOpen(0))
		CASE "form"
			ThisDatabaseDocument.FormDocuments.getByName(Trim(aOpen(1))).open
		CASE "report"
			ThisDatabaseDocument.ReportDocuments.getByName(Trim(aOpen(1))).open
		CASE "query"
	END SELECT	
END SUB
Du schreibst in jeden der Buttons in die Zusatzinformation form,Formularname bzw. report,Berichtsname. Das Makro startest Du über das Ereignis "Aktion ausführen" des jeweiligen Buttons.

Für Abfragen kann ich Dir nicht helfen. Das sind keine separaten Dokumente, die in dem Datenbankcontainer liegen. Die können also nicht so einfach geöffnet werden. Ich würde einfach die Abfragen als Tabellenkontrollfeld in Formulare packen.

Gruß

Robert
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Formular = Hauptmenue

Beitrag von F3K Total »

Guten Morgen Robert
RobertG hat geschrieben: Sa, 21.01.2017 09:48 Für Abfragen kann ich Dir nicht helfen.
Anbei dein Code, etwas erweitert, und ein zusätzliches Makro. Damit kann man, ausgehend von der Zusatzinformation einer Schaltfläche auch Abfragen und Tabellen öffnen. Ansichten werden wie Tabellen behandelt, Beispiele für die Zusatzinformation:
  • form,fMeinFormular
  • report,rMeinBericht
  • query,qMeineAbfrage
  • table,tMeineTabelle
  • table,vMeineAnsicht

Code: Alles auswählen

SUB Navigation(oEvent AS OBJECT)
	DIM stTag AS String
	stTag = oEvent.Source.Model.Tag
	aOpen() = Split(stTag, ",")
	SELECT CASE Trim(aOpen(0))
		CASE "form"
			ThisDatabaseDocument.FormDocuments.getByName(Trim(aOpen(1))).open
		CASE "report"
			ThisDatabaseDocument.ReportDocuments.getByName(Trim(aOpen(1))).open
		CASE "query"
		    nType = 1
		    Open_Table_Query_View(Trim(aOpen(1)),nType)
		CASE "table"
		    nType = 0
		    Open_Table_Query_View(Trim(aOpen(1)),nType)
	END SELECT	
END SUB

Sub Open_Table_Query_View(sName,nType)
    oController = ThisDatabasedocument.CurrentController
    if not oController.isconnected then oController.connect
    Dim URL as New com.sun.star.util.URL
    Dim Args(5) as New com.sun.star.beans.PropertyValue
    oConnetion = oController.ActiveConnection
    URL.Complete = ".component:DB/DataSourceBrowser"
    Dispatch = StarDesktop.queryDispatch(URL,"_Blank",8)
    Args(0).Name = "ActiveConnection" 
    Args(0).Value = oConnetion
    Args(1).Name = "CommandType"
    Args(1).Value = nType   '0=Table 1=SQL_Query 2=Command
    Args(2).Name = "Command"
    Args(2).Value = sName
    Args(3).Name = "ShowMenu"
    Args(3).Value = True
    Args(4).Name = "ShowTreeView"
    Args(4).Value = False
    Args(5).Name = "ShowTreeViewButton"
    Args(5).Value = False
    Dispatch.dispatch(URL, Args)
End Sub
Gruß R
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Formular = Hauptmenue

Beitrag von RobertG »

Hallo R.,

Danke, übernehme ich natürlich gleich für das Handbuch. Ich schaue mir nur noch einmal an, ob es unbedingt 5 Optionen sein müssen, mit denen das Array gefüttert wird.

Gruß

Robert
Eupendiver
**
Beiträge: 22
Registriert: Mi, 02.03.2016 10:05

Re: Formular = Hauptmenue

Beitrag von Eupendiver »

Hallo Robert, Hallo R,
habe Roberts Makro eingebunden, in den Button bei Zusatzinformation den Formularnamen eingetragen und bei dem Ereigniss "Aktion ausführen" das Makro angegeben.
Ferner hab ich das Makro von R als Makro "Navigation2" eingebunden und ebenfalls die Zusatzinformation und "aktion ausführen" ergänzt mit dem Makro Navigation2.
Beides klappt nicht.
Mein Sohn meinte, von der Syntax der Makros müsste es klappen.
Muss ich bei den Eigenschaften der Schaltfläche / Allgemein / Action noch was eingeben/Auswählen ?

mfG
Manfred Bartsch
Dateianhänge
MenueTest.odb
(71.8 KiB) 124-mal heruntergeladen
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Formular = Hauptmenue

Beitrag von RobertG »

Hallo Manfred,

ich habe das einmal in Deine erste DB eingebaut. Schau Dir einmal an, was unter den Zusatzinformationen steht.

Gruß

Robert
Dateianhänge
MenueTest.odb
(73.11 KiB) 130-mal heruntergeladen
Eupendiver
**
Beiträge: 22
Registriert: Mi, 02.03.2016 10:05

Re: Formular = Hauptmenue

Beitrag von Eupendiver »

Hallo, vielen Dank,
habe meinen Fehler verstanden!
Ich gehe davon aus, dass die Anwahl der Formulare bei Dir funktioniert.
Bei mir nicht.

Kann es sein, dass bei meinen oo noch irgend ein AddOn fehlt??

mfG
Manni
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Formular = Hauptmenue

Beitrag von RobertG »

Hallo Manni,

hast Du vielleicht die Ausführung von Makros unterbunden? Wenn sich gar nichts tut, dann dürfte das der Fall sein.
Extras > Optionen > ...Office > Sicherheit > Makrosicherheit > Mittel
... dann wirst Du gefragt, ob Du Makros ausführen lassen willst.
Ich habe da ein Verzeichnis angegeben, in dem die Dateien liegen, von denen die Makros immer ausgeführt werden dürfen. Dann entfällt die Nachfrage.

Ich nehme an, dass die Pfade von AOO und LO sich hier nicht unterscheiden. Wenn Du AOO benutzt musst Du sonst gegebenenfalls etwas suchen.

Gruß

Robert
Eupendiver
**
Beiträge: 22
Registriert: Mi, 02.03.2016 10:05

Re: Formular = Hauptmenue

Beitrag von Eupendiver »

klar,
wenn man die Meldung beim Öffnen der DB nicht liest, kommt das dabei raus.
Vielen Dank für Deine Mühen und Geduld.
Manni
Dateianhänge
Test Menue Meldung.jpg
Test Menue Meldung.jpg (35.64 KiB) 4893 mal betrachtet
Antworten