Formular per Button mit SQL Abfrage öffnen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Wendigo
Beiträge: 3
Registriert: Sa, 22.08.2009 19:19

Formular per Button mit SQL Abfrage öffnen

Beitrag von Wendigo »

Hallo Community,
ich bin dabei von Access auf OO Base umzusteigen
Leider stoße ich schon zu Beginn auf ein Problem das mir seid zwei Tagen den Kopf zerbricht.

Ich habe zwei Formulare (Frm1 und Frm2)
In Frm1 gibt es eine Combobox und einen Button über den ich Frm2 öffnen lasssen möchte.
Das Ganze mit dem in der Combobox ausgewählten Wert als Abfragekriterium für Frm2.

Ich lade Frm2 ohne Parameter aktuell so:

Code: Alles auswählen

Sub OpenForm2
Dim prop(1) as New com.sun.star.beans.PropertyValue
Dim dbContext As Object
Dim oDataSource As Object
Dim oForms as Object

dbContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDataSource = dbContext.GetByName("Datenbank")
oForms = oDataSource.DatabaseDocument.FormDocuments
oForms.loadComponentFromURL("frm2","_blank",63,prop()) 
End Sub
Kann ich vor dem Aufruf von Frm2 noch irgendwie einen SQL String für die Abfrage (Eigenschaft "Inhalt" von Frm2) mit übergeben?
z.B. SELECT * FROM tblXY WHERE Spalte1 = [ausgewählter Wert der Combobox]

Schon mal vielen Dank für eure Mühe :D
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Formular per Button mit SQL Abfrage öffnen

Beitrag von eBayer »

Hallo, eine gute Entscheidung, aber mit einiger Umgewöhnung verbunden.
Du kannst für Dein Problem folgenden Weg gehen:
1. definiere eine globale Variable in der Du Deinen SQL-String hinterlegst (genauer eine Filterbedingung).
2. Rufe dann das 2. Formular auf nachdem Du beim 2. Formular dem Ereignis "Dokument öffnen" ein Makro zuordnest.
In dem Makro würde ich abfragen, ob die globale Variable einen SQL-String enthält und dann ggf. im Formular eine Filterbedingung mit dem SQL-String setzen.
Über das Ereignis "Dokument öffnen" wird nun jedes mal bei Aufruf des Formulars der gewünschte Datensatz gesucht.

Um das Ereignis mit dem Makro zu verbinden gehst Du im bearbeitungsmodus des 2. Formulars auf: Extras - Anpassen - Ereignisse - Dokument öffnen
Das Makro muß sich im 2. Formular befinden.
Wenn Du weitere Fragen haben solltest helfe ich Dir gerne.
Viel Erfolg
eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Wendigo
Beiträge: 3
Registriert: Sa, 22.08.2009 19:19

Re: Formular per Button mit SQL Abfrage öffnen

Beitrag von Wendigo »

Danke für die schnelle Antwort, hat mit der globalen Variablen und dem Filter super geklappt :)
Allerdings scheint bei dem Formularaufruf per Button die im zweiten Formular angegebene Datenquelle nicht gebunden zu werden. Die Tabelle bleibt leer.
Rufe ich das Fromular Manuell auf funktioniert es tadellos, auch mit dem Filter.

Noch eine andere Sache:
An die Kombobox in Formular1 habe ich sowohl einen Unique Identifier als auch dessen Bezeichner gebunden. Angezeigt wird dem User nur letzterer (so beabsichtigt).
Gibt es eine Möglichkeit den zum Bezeichner zugehörigen UI zu ermitteln damit ich ihn anstelle des Bezeichners für den Filter verwenden kann?

PS:
Ja eine ziemliche Umgewöhnung ist es wirklich, was mir besonders fehlt ist das Intellisense ^^
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Formular per Button mit SQL Abfrage öffnen

Beitrag von eBayer »

Hallo Wendigo,
ich habe mir in der letzten Zeit Stück für Stück ein Testszenario aufgebaut....
Eine kleine Anwendung mit einer Anzahl von Lösungsmöglichkeiten zu diversen Problemstellungen.
Unter anderem ist auch der Aufruf einen Formulars mit Filtersetzung über eine globale Variable realisiert.
Schau Dir das beiliegende Programm mal an und klicke die verschiedenen Möglichkeiten durch.
Das Hauptmodul ist übrigens "Adressen".... von dort aus kommst Du an alle Funktionen.
Dieses Testmodul ist unter 3.1 lauffähig - wenn Du 3.0 einsetzt, kann ich Dir auch eine 3.0 - Version schicken.
Die Makros erklären sich weitgehend selbst und sind soweit notwändig, dokumentiert.
Wenn Du Fragen zu Makros und allgemeinen ooThemen haben solltest, kann ich Dir den folgenden Link empfehlen:
http://www.dannenhoefer.de/faqstarbasic/index.html
Viel Spaß beim üben!
Gruß eBayer
Dateianhänge
Wendigo.odb
(127.46 KiB) 218-mal heruntergeladen
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Wendigo
Beiträge: 3
Registriert: Sa, 22.08.2009 19:19

Re: Formular per Button mit SQL Abfrage öffnen

Beitrag von Wendigo »

Danke Dir, werd ich mir gleich mal ansehn :)
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Formular per Button mit SQL Abfrage öffnen

Beitrag von eBayer »

vergiß nicht die DB bei OO zu registrieren..... sonst klappt das nicht!
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Antworten