Seite 1 von 1
Re: Formular, Filter usw.
Verfasst: Fr, 05.02.2010 12:42
von eBayer
Hallo, vielleicht hilft Dir das:
1. Eingabe in Eingabefeld
2. PushButton drücken, der nach dem Eingabefeld filtert
Dafür brauchst Du ein Makro, welches den Filter setzt und ggf. eines, welches den Filter aufhebt.
Den PushButton verbindest Du mit dem Makro und fertig ist der Filter.
Gruß eBayer
Sub FilterAn ' Filter für Name anschalten
Dim sFilter
Dim oForm As Object
oForm = ThisComponent.DrawPage.Forms.getByName("Form_Adressen")
sFilter = oForm.getByName("Eingabefeld").text
oForm.Filter= "Name >= " + sFilter ' Name ist ein Feld in Deiner Tabelle des aktuellen Formulars
oForm.reload ' Formular aktualisieren
End Sub
Sub FilterAus ' Filter für das Formular ausschalten
Dim oForm As Object
oForm = ThisComponent.DrawPage.Forms.getByName("Form_Adressen")
oForm.Filter="" ' Filter leeren
oForm.reload ' Formular aktualisieren
End Sub
Re: Formular, Filter usw.
Verfasst: Do, 19.07.2012 17:07
von Gundo
Hallo,
Wäre vielleicht jemand so freundlich das Makro anzupassen.
1. Meine Suchfeld hat die Bezeichnung "txtSuchfeld".
2. Mein Formular hat die Bezeichnung "Kundenstamm"
3. Die Tabelle hat das Feld "Nachname".
Wo muss ich denn das Suchfeld eintragen ?
Code: Alles auswählen
Sub FilterAn ' Filter für Name anschalten
Dim sFilter
Dim oForm As Object
oForm = ThisComponent.DrawPage.Forms.getByName("Form_Adressen")
sFilter = oForm.getByName("Eingabefeld").text
oForm.Filter= "Nachname >= " + sFilter ' Name ist ein Feld in Deiner Tabelle des aktuellen Formulars
oForm.reload ' Formular aktualisieren
End Sub
Sub FilterAus ' Filter für das Formular ausschalten
Dim oForm As Object
oForm = ThisComponent.DrawPage.Forms.getByName("Form_Adressen")
oForm.Filter="" ' Filter leeren
oForm.reload ' Formular aktualisieren
End Sub
Gruß Gundo
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 09:29
von F3K Total
Hallo Gundo,
besser wäre es, wenn du eine verfremdete Version der DB hochlädst. Der "interne" Name des Formulares fehlt bei deinen Angaben.
Gruß R
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 12:15
von Gundo
Hallo F3K Total,
Ja mach ich hiermit.
Im Feld "txtSuche" soll der Suchbegriff eingetragen werden. Es soll das Tabellenfeld "Nachname" gefiltert werden. Kann man die Sortierreihenfolge variabel gestalten ?
Gruß Gundo
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 12:37
von F3K Total
Jo, und das war gut so:
1.) Dein Formular heißt im Formularnavigator "MainForm"
2.) Das Textfeld zur Eingabe des Suchstrings heißt "txtSuche"
3.) die Zeile
muss so geändert werden:
weil bei Eingabe eines Strings einfache Gänsefüßchen oben den String umschliessen müssen.
4.) Das Makro
FilterAn habe ich der Schaltfläche
AN unter dem Ereignis
Aktion ausführen zugeordnet
5.) Das Makro
FilterAus habe ich der Schaltfläche
AUS unter dem Ereignis
Aktion ausführen zugeordnet
Die Makros müssen daher so aussehen:
Code: Alles auswählen
Sub FilterAn ' Filter für Name anschalten
Dim sFilter
Dim oForm As Object
oForm = ThisComponent.DrawPage.Forms.getByName("MainForm")
sFilter = oForm.getByName("txtSuche").text
oForm.Filter = "Nachname >= '" + sFilter +"'" ' Name ist ein Feld in Deiner Tabelle des aktuellen Formulars
oForm.reload ' Formular aktualisieren
End Sub
Sub FilterAus ' Filter für das Formular ausschalten
Dim oForm As Object
oForm = ThisComponent.DrawPage.Forms.getByName("MainForm")
oForm.Filter="" ' Filter leeren
oForm.reload ' Formular aktualisieren
End Sub
Nun läuft es.
Die Sortierreihenfolge kannst Du in der Leiste Formularnavigation einstellen.
Viel Erfolg damit
Gruß R
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 13:00
von Gundo
KLASSE !!!
Vielen Dank.
Gruß Gundo
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 13:32
von Gundo
Muß mich noch mal melden.
F3K Total, gib mal bitte "Mü" ein, und clicke auf "AN". Bei mir werden auch die Nachnamen "Sch*" und "Naumann" angezeigt.
Kannst du das mal testen ?
Gruß Gundo
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 16:01
von RobertG
Hallo Gundo,
Gundo hat geschrieben:... gib mal bitte "Mü" ein, und clicke auf "AN". Bei mir werden auch die Nachnamen "Sch*" und "Naumann" angezeigt.
Das klingt doch ganz nach der Vorgabe, die irgendwann in dem Thread auftauchte. Dort steht
"Nachname >= " + sFilter
>=: Also vom Reihenfolge, startend ab "Mü" ... M, N, O ...
Vielleicht suchst Du nur alle Nachnamen mit "Mü" beginnend?
"Nachname LIKE "+sFilter+"%"
Ich weiß nur nicht, wie es hier mit den Hochkommata aussehen muss. Vielleicht
"Nachname LIKE '"+sFilter+"%'"
Gruß
Robert
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 18:01
von Gundo
Hallo Robert,
Ja, ich habe mich warscheinlich wieder mal dusselig ausgedrückt. Sorry dafür.
"Nachname LIKE '"+sFilter+"%'"
... zwischen Groß- und Kleinschreibung soll aber nicht unterschieden werden.
Gruß Gundo
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 18:21
von RobertG
Hallo Gundo,
"Nachname LIKE '"+sFilter+"%'"
... zwischen Groß- und Kleinschreibung soll aber nicht unterschieden werden.
Vielleicht
"UCASE(Nachname) LIKE UCASE("+sFilter+")||%"
Das würde zumindest beide Werte (von Nachname und Filterstring) in einer HSQLDB auf Kleinschreibung setzen, so dass keine Unterscheidung erforderlich ist. Wieder geht jetzt natürlich das Testen los, wo eventuell die Hochkommata hingehören.
Gruß
Robert
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 18:39
von Gundo
So scheint es zu klappen:
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 18:45
von F3K Total
Jo,
so geht es.
Gruß R
Edit: kleiner Tipp am Rande: Wenn Du das Makro FilterAn an das Ereignis Text modifiziert des Suchfeldes txtSuche hängst, kannst Du auf die Schaltflächen AN/AUS verzichten.
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 19:54
von RobertG
Hallo R,
F3K Total hat geschrieben:
Edit: kleiner Tipp am Rande: Wenn Du das Makro FilterAn an das Ereignis Text modifiziert des Suchfeldes txtSuche hängst, kannst Du auf die Schaltflächen AN/AUS verzichten.
Bist Du Dir da sicher? "Text modifiziert" reagiert dann nach jeder Tastatireingabe, d.h. der Filter läuft mit jedem Buchstaben neu an. Wenn das nicht gewollt ist, dann reicht auch ein Focusverlust.
Gruß
Robert
Re: Formular, Filter usw.
Verfasst: Sa, 21.07.2012 20:00
von F3K Total
Hallo Robert,
genau, das wollte ich bezwecken.
Während des Eintippens des Filters reduziert sich gleichzeitig die Liste.
Das kann natürlich bei großen Datenmengen stören, bei überschaubarer Anzahl ist es aber hilfreich, weil man aufhören kann, wenn der/die gewünschte/n Datensatz/sätze sichtbar wird/werden.
Gruß R
[Gelöst] Formular, Filter usw.
Verfasst: So, 22.07.2012 09:50
von Gundo
Danke für eure Hilfe.
Gruß Gundo