Datenbankausgabe in Formularen mit Makros filtern

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

Moderator: Moderatoren

sr-ice
Beiträge: 2
Registriert: Mi, 26.05.2004 08:11

Datenbankausgabe in Formularen mit Makros filtern

Beitrag von sr-ice »

Hallo,

ich habe eine einfache AdressDB als DBase-Tabelle (ca. 550 Eintäge).
Zugriff erfolgt einmal von einem Access-Formular (mit Filterschaltern etc.) und einmal über ein Formular von OOo. Den Umstieg auf OOo bruchen wir um den wechsel zu Linux zu vollziehen.
Das OOo Formular zeigt alle Daten an, und ich kann auch alles machen (einfügen, löschen, etc).

Was noch fehlt sind Makros mit den ich entweder den Formularfilter "Programmiern" kann (ein-/ausschalten geht), oder den Datenbestand mit einer Abfrage Filtern kann.
Die Makros sollen dann mit Schaltflächen verknüpft werden um schnell mal z.B. alle Adressen wo der Nachname mit A anfängt anzuzeigen.

danke für eure Hilfe

Stefan
sr-ice
Beiträge: 2
Registriert: Mi, 26.05.2004 08:11

Beitrag von sr-ice »

Hallo nochmal,

Dank der Hilfe von Marc von der Mailingliste users-de von openoffice.org
habe ich eine Lösung für mein Problem :D

Code: Alles auswählen

sub FilterName (Filter as String)
    dim oDoc as object, oForm as object
    oDoc = ThisComponent
    oForm = oDoc.DrawPage.Forms(0)
    oForm.filter = "NACHNAME LIKE '" + Filter
    oForm.ApplyFilter=true 
    oForm.reload
end sub

REM Filter Firma
sub A
	FilterName ("A*'")
end sub
sub B
	FilterName ("B*'")
end sub
usw.
NACHNAME ist die Spalte der DB nach der sortiert werden soll.
Bei mir funktionsfähig im Einsatz. Vielleicht hat ja jemand ne Idee wie man beim Drücken einer Schaltfläche einen Wert (Beschriftung A,B,C,..) übermitteln kann, um den doch reichlich umständlichen Code noch etwas aufzuäumen.

Danke und viel Spaß

Stefan
MoorhuhnXY
*
Beiträge: 15
Registriert: Do, 15.04.2004 15:22

Beitrag von MoorhuhnXY »

Hallo,
danke für deinen Lösungshinweis. Hiermit funktioniert die Übergabe eines Strings aus einem Textfeld:

Code: Alles auswählen

sub Textfeld_auslesen
	oDoc = ThisComponent 
	oForm = oDoc.DrawPage.Forms(0)
	dim Textfeld as Object
	Textfeld = oForm.getByName("Textfeld") 
	'MsgBox Textfeld.Text     // zur Kontrolle
	FilterName (""& Textfeld.Text &"*'")
end sub
Mal schauen ob sich das Ganze noch ausbauen läßt.
Gruß
Moorhuhn
Antworten