Seite 2 von 2

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 18:05
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

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 18:32
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?

Re: Sortieren von Namen über Button

Verfasst: So, 20.11.2011 19:45
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

Re: Sortieren von Namen über Button

Verfasst: Sa, 17.12.2011 18:35
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.

Re: Sortieren von Namen über Button

Verfasst: Sa, 17.12.2011 18:50
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

Re: Sortieren von Namen über Button

Verfasst: So, 18.12.2011 12:14
von pawonkau
Danke für die schnelle Antwort, aber leider funktioniert der Buchstabe "Z" immer noch nicht

Re: Sortieren von Namen über Button

Verfasst: So, 18.12.2011 12:28
von pawonkau
???? Nun auf einmal funktioniert es. Ich weiß auch nicht woran es gelegen hat. Danke!!

Re: Sortieren von Namen über Button

Verfasst: So, 18.12.2011 13:20
von F3K Total
... eine Frage des speicherns ...
Gruß R

Re: Sortieren von Namen über Button

Verfasst: Mo, 19.12.2011 17:03
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

Re: Sortieren von Namen über Button

Verfasst: Di, 20.12.2011 19:34
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