Seite 1 von 1

Formular = Hauptmenue

Verfasst: Fr, 20.01.2017 23:20
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) 150-mal heruntergeladen

Re: Formular = Hauptmenue

Verfasst: Sa, 21.01.2017 09:48
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

Re: Formular = Hauptmenue

Verfasst: Sa, 21.01.2017 10:50
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

Re: Formular = Hauptmenue

Verfasst: Sa, 21.01.2017 17:28
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

Re: Formular = Hauptmenue

Verfasst: Sa, 21.01.2017 21:08
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

Re: Formular = Hauptmenue

Verfasst: Sa, 21.01.2017 21:25
von RobertG
Hallo Manfred,

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

Gruß

Robert

Re: Formular = Hauptmenue

Verfasst: So, 22.01.2017 12:22
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

Re: Formular = Hauptmenue

Verfasst: So, 22.01.2017 15:40
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

Re: Formular = Hauptmenue

Verfasst: So, 22.01.2017 16:21
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