Seite 1 von 2

Sortieren von Namen über Button

Verfasst: Sa, 19.11.2011 17:57
von pawonkau
Für eine Adressdatenbank mächte ich ein Register erstellen, mit dem ich die Adressen im Eingabeformular sortieren kann, also dem Button "A", "B" usw. soll eine Sortierfunktion zugewiesen werden. Wie funktioniert so etwas?

Re: Sortieren von Namen über Button

Verfasst: Sa, 19.11.2011 19:14
von F3K Total
Hallo,
mal angenommen, Du hast zwei Spalten, Name und Vorname nach denen du sortieren möchtest.
Weiter hast Du nur ein Hauptformular, auf diesem befindet sich der Button mit dem Namen SortButton.
Dann kannst Du dein Formular mit folgendem Makro, das Du dem Button-Ereignis "Aktion ausführen" zuordnest, sortieren.
Der Text des Buttons springt von sortieren A,B,C auf nicht sortieren und zurück, um.

Code: Alles auswählen

Sub sortieren
oform=Thiscomponent.drawpage.forms(0)
oSortButton=oform.getbyname("SortButton")
if oSortButton.label = "sortieren A,B,C" then
  s_order = """Name"" ASC, ""Vorname"" ASC"
  oform.order = s_order
  oSortButton.label = "nicht sortieren"
else 
  s_order = ""
  oform.order = s_order
  oSortButton.label = "sortieren A,B,C"
endif
oform.reload
End Sub
prinzipiell kannst Du aber auch die Sortierfunktion in der Navigationsleiste verwenden:
sort.png
sort.png (1.59 KiB) 3327 mal betrachtet
Gruß R

Re: Sortieren von Namen über Button

Verfasst: Sa, 19.11.2011 19:15
von komma4
Ist schon alles eingebaut, sowohl die Sortierfunktion, als auch die Filterfunktion (die Du hier wohl eher meinst): füge einem Formular eine Navigationsleiste hinzu.

Re: Sortieren von Namen über Button

Verfasst: Sa, 19.11.2011 20:12
von pawonkau
Vielleicht habe ich mich zu unklar ausgedrückt. Mit der Zeit füllt sich ja eine Adressdatenbank. Ich möchte auf der Formularseite Button von A-Z erstellen und über diese die jeweiligen Datensätze zu den einzelnen Buchstaben angezeigt bekommen, und zwar auf dieser Formularseite und nicht auf einer neuen; es soll nach Nach-und Vornamen sortiert werden. Weiter möchte ich auf der Formularseite die sortierten Namen in der Formularansicht und Tabellenansicht angezeigt bekommen. Dafür habe ich ein Formular mit Unterformular schon erstellt.

Re: Sortieren von Namen über Button

Verfasst: Sa, 19.11.2011 20:24
von F3K Total
Aha, es geht also ums Filtern und nicht ums Sortieren.
Wenn Du Dir die Mühe machen möchtest, kannst Du auch 27 Buttons anlegen.
26 von ihnen ordnest du die Buchstaben des Alphabetes und dem letzten das Wort löschen zu, etwa so:
filter.png
filter.png (2.88 KiB) 3312 mal betrachtet
Mit diesem Makro

Code: Alles auswählen

sub filtern (event)
oform = Thiscomponent.drawpage.forms(0)
s_filter=event.source.model.label
if s_filter <> "löschen" then
oform.ApplyFilter=true
oform.Filter = "( ""Name"" >= '"+ s_filter+"%')"
else
oform.Filter = ""
oform.ApplyFilter = false
endif
oform.reload
end sub
das jedem Button, wie oben, zugeordnet werden muß, werden dann alle Namen angezeigt die mit dem gedrückten Buchstaben oder größer beginnen. Das Sortieren funktioniert dann auch noch.
Gruß R

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 10:00
von pawonkau
Erst einmal vielen Dank für die Mitteilung, aber leider klappt das Makro nicht.
Es kommt die Meldung:

Ein Scripting Framework fehler trat während der Ausführung von Basic-Skipt "Filtername" filtern auf
Meldung: wrong number of parameters!

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 10:11
von F3K Total
Moin,
bei mir funktioniert das Makro, es heißt Sub filtern (event)
Wie sieht Dein Makro Filtername genau aus?

Gruß R

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 10:51
von pawonkau
Kunden.Testmodul.filtern

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 11:01
von F3K Total
Scherzkeks!
Ich habe nicht gefragt wo das Makro steht, sondern wie es aussieht, sprich, ich möchte die Syntax sehen.
Das Makro, was einen Fehler hervorruft, heißt lt. Fehlermeldung Filtername.
Jetzt schreibst Du, dein Makro heißt Kunden.Testmodul.filtern. Was denn nu?
Kann es sein, das Du den Buttons ein Makro zugeordnet hast, welches du später umbenannt hast?
Dann kann es nicht gefunden werden.

Gruß R

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 11:18
von pawonkau
Sooy ich bin ganz unbedarft. Mit "Filtername" meinte ich den Pfad?, also so wie ich es gelesen hatte Kunden.Testmodul

So sieht mein Macro aus:

sub filtern (event)
oform = Thiscomponent.drawpage.forms(0)
s_filter=event.source.model.label
if s_filter <> "löschen" then
oform.ApplyFilter=true
oform.Filter = "( ""Nachname"" >= '"+ s_filter+"%')"
else
oform.Filter = "Kunden"
oform.ApplyFilter = false
endif
oform.reload
end sub

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 12:02
von F3K Total
Hallo,
wenn die zu filternde Spalte in Deiner Tabelle "Nachnamen" heißt, dann ist die Änderung von "Name" auf "Nachname" richtig.
Wieso aber hast Du diese Zeile verändert?
pawonkau hat geschrieben:oform.Filter = "Kunden"
Sie muß so aussehen:

Code: Alles auswählen

oform.Filter = ""
denn sie setzt den Filter mit dem Button "löschen" zurück!

Bleibt noch die Frage, wieso die Fehlermeldung kommt.
Kann es sein, das Du den Buttons ein Makro zugeordnet hast, welches du später umbenannt oder verschoben hast?
Dann kann es nicht gefunden werden.
Am einfachsten wäre, du lädst ein Beispieldokument (Dateianhang hochladen, siehe unten) hier hoch.

Gruß R

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 13:07
von pawonkau
Meine Beispieldatei

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 15:36
von pawonkau
Hallo F3K Total,
ich habe eine Frage zum Filter. Dieser soll ja im Feld Nachname die Namen nach den einzelnen Buchstaben des Alphabeths filtern, wenn ich also auf den Button "A" drücke allne Namen die mit A beginnen usw. Muß im Filter nicht ein Hinweis auf den Buchstaben erfolgen?

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 17:15
von F3K Total
Hallo,
wird es doch.
Der Code
s_filter=event.source.model.label
liest den Buchstaben aus dem eben gedrückten Button aus, der muß demzufolge um nach A zu filtern auch den Titel A tragen, denn mit .label wird ebendieser ausgelesen.
Gruß R

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 17:28
von pawonkau
Verstanden, aber es funktioniert bei mir nicht, wenn ich auf den Buchstaben (Button) drücke, passiert nichts