Sortieren von Namen über Button

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag von F3K Total »

Jo,
das liegt an folgenden zwei Dingen:
1.) Du hast das Makro im Modul "Kunden". Dieses Modul wird standardmäßig nicht geladen, dazu muß man ein extra Makro laufen lassen.
Habe ich mal in "Standard" eingefügt, das Makro wird beim Öffnen der DB einmal ausgeführt (Extras/Anpassen/Ereignisse ...) , dann klappt es.
2.) Mit dem Makro filtern, so wie Du es hast, siehst Du alle Kunden die mit dem Buchstaben des gedrückten Buttons beginnen oder größer, also
Button A-> A-Z
Button B-> B-Z
usw.
Daher habe ich es noch etwas verbessert, es gab Probleme mit den Umlauten.
Jetzt siehst Du nur noch die Namen, die mit dem entsprechenden Buchstaben oder mit dem Umlaut beginnen also
A - A und Ä
O- O und Ö usw.
Hier der neue Code, habe ich aber schon eingebaut:

Code: Alles auswählen

sub filtern (event)
oform = Thiscomponent.drawpage.forms(0)
s_filter=event.source.model.label
s_filter_next=chr((ASC(s_filter))+1)
if s_filter <> "löschen" then
oform.ApplyFilter=true
oform.Filter = "( ""Nachname"" >= '"+ s_filter+"%' AND ""Nachname"" < '"+ s_filter_next+"%' )"
else
oform.Filter = ""
oform.ApplyFilter = false
endif
oform.reload
end sub
So nun viel Erfolg, beim Anlegen der restlichen 23 Buttons.

Gruß R
Dateianhänge
Kunden1.odb
(34.83 KiB) 105-mal heruntergeladen
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag von pawonkau »

Vielen, vielen Dank!
Nun klappt es, so wie ich es mir vorgestellt habe.
Noch eine Frage, bestegt auch die Möglichkeit, mit einem Formular eine Suche durchzuführen? Wenn ich nach dem Nachnamen suche, klappt es ja mit dem "Register", aber ginge es auch, wenn ich das "Kunden"-Formular kopiere, anders benenne, und dort dann keine Daten eingebe, sondern es zum Suchen benutze? Wie/was müsste ich machen?
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag von F3K Total »

Hallo,
Es gibt da noch den "formularbasierten Filter", damit kann man jeden Datensatz finden.
Mit dem Druck auf die Taste F1 kommst Du in die Hilfe um danach zu suchen.

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

Re: Sortieren von Namen über Button

Beitrag von pawonkau »

Hallo, nach dem Füllen meiner Kundendatenbank mit Namen habe ich festgestellt, dass die Filterung/Sortierung mittels Makro mit dem Buchstaben "Z" nicht funktioniert. Es werden keine Namen angezeigt, obwohl welche mit diesem Anfangsbuchstaben eingegeben worden sind. Die Filterung/Sortierung mit den anderen Buchstaben klappt. Wenn ich den Button "Z" aktivieren und dann auf Filterung mit dem Standardfilter gehe, wird das angehängte Bild angezeigt.
Dateianhänge
filter.png
filter.png (4.54 KiB) 1315 mal betrachtet
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag von F3K Total »

Hallo,
stimmt, ist mir auch aufgefallen, daher hatte ich den Code bereits verbessert. Zusätzlich ist noch eine farbliche Kennzeichnung des gerade aktiven Filters mit dabei. Drückt man auf "löschen", verschwindet die Einfärbung wieder.

Code: Alles auswählen

sub filtern (event)
oform = Thiscomponent.drawpage.forms(0)
s_filter=event.source.model.label
if s_filter<>"löschen" then event.source.model.backgroundcolor=16225310
for i=0 to oform.count-1
 ocontrol=oform(i)
 if ocontrol.ServiceName="stardiv.one.form.component.CommandButton" then
  if ocontrol.label<>S_Filter then
    ocontrol.backgroundcolor=empty
  endif
 endif
next i
s_filter_next=chr((ASC(s_filter))+1)
if s_filter <> "löschen" then
 oform.ApplyFilter=true
  if s_filter<>"Z" then
   oform.Filter = "( ""Nachname"" >= '"+ s_filter+"%' AND ""Nachname"" < '"+ s_filter_next+"%' )"
  else
   oform.Filter = "( ""Nachname"" >= '"+ s_filter+"%' )"
  endif
else
 oform.Filter = ""
 oform.ApplyFilter = false
endif
oform.reload
end sub
Viel Erfolg,
Gruß R
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag von pawonkau »

Danke für die schnelle Antwort, aber leider funktioniert der Buchstabe "Z" immer noch nicht
pawonkau
*
Beiträge: 19
Registriert: Fr, 18.11.2011 13:47

Re: Sortieren von Namen über Button

Beitrag von pawonkau »

???? Nun auf einmal funktioniert es. Ich weiß auch nicht woran es gelegen hat. Danke!!
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag von F3K Total »

... eine Frage des speicherns ...
Gruß R
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag von F3K Total »

Hi,
das Makro ändert nur die Hintergundfarbe des Buttons, entweder auf
orange für den gerade ausgewählten Button:

Code: Alles auswählen

if s_filter<>"löschen" then event.source.model.backgroundcolor=16225310
oder für die anderen zurück auf Standard:

Code: Alles auswählen

    ocontrol.backgroundcolor = empty
Wenn Deine Standardhintergrundfarbe weiß ist, kannst Du statt empty die Zahl 16777215 oder RGB(255,255,255) nehmen, dann werden allerdings alle Buttons auf dem Formular weiß.

Gruß R
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Sortieren von Namen über Button

Beitrag von F3K Total »

Klar,
vier Zeilen:

Code: Alles auswählen

if s_filter<>"löschen" then event.source.model.backgroundcolor=16225310
und

Code: Alles auswählen

if ocontrol.label<>S_Filter then
ocontrol.backgroundcolor=empty
endif
Gruß R
Antworten