Sortieren von Namen über Button

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Sortieren von Namen über Button

Beitrag 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?
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag 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) 3330 mal betrachtet
Gruß R
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Sortieren von Namen über Button

Beitrag 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.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag 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.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag 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) 3315 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
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag 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!
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag von F3K Total »

Moin,
bei mir funktioniert das Makro, es heißt Sub filtern (event)
Wie sieht Dein Makro Filtername genau aus?

Gruß R
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag von pawonkau »

Kunden.Testmodul.filtern
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag 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
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag 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
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag von pawonkau »

Meine Beispieldatei
Dateianhänge
Kunden1.odb
(34.06 KiB) 109-mal heruntergeladen
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag 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?
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag 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
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag von pawonkau »

Verstanden, aber es funktioniert bei mir nicht, wenn ich auf den Buchstaben (Button) drücke, passiert nichts
Antworten