Einzelne Datensätze elegant auswählen oder Datensätze markieren

(von Christian Hahn)

Ich möchte aus allen meinen Adressen einige Personen auswählen um ihnen eine Email zu schicken (oder sonst etwas mit diesen Datensätzen zu machen).

Zunächst kein Problem, ich klicke den einzelnen Datensatz an und dann den Befehl ‘Datensatz ausschließen’. Jedoch, spätestens nach dem fünften Ausschluss, bin ich mir nicht mehr ganz sicher, welche Datensätze ich denn nun schon ausgeschlossen habe.

Schön wäre, wenn ich ständig sehen könnte, wen ich bisher schon ausgewählt habe, und dazu wäre es praktisch, wenn Filemaker zum Markieren einzelner Datensätze so etwas hätte wie eine Checkbox, so ein Kästchen, das beim Anklicken ein Häkchen bekommt. Hat Filemaker aber wieder einmal nicht. Macht nichts, das können wir uns selber bauen.

Wir legen ein neues Feld ‘Markiert’ vom Typ Text an. Dieses Feld platzieren wir in unserem Layout mit dem Feldformat ‘Kontrollkästchen’ und einer neuen Werteliste mit nur dem einen Wert ‘    markiert’. Dass wir der Werteliste nur den einen Wert geben, hat den Vorteil, dass unser Feld im Layout auch nur ein Kontrollkästchen bekommt. Und auch die Leerzeichen vor dem Wort ‘markiert’ sind Absicht. Denn wenn wir nun unser Feld ‘Markiert’ im Layout so schmal machen, dass das Kontrollkästchen gerade noch vollständig zu sehen ist, dann bekommen wir im Blättern-Modus nur noch das Kontrollkästchen zu sehen (ohne die unnötige Bezeichnung).

Das sieht schon ganz schön wie eine Checkbox aus und funktioniert auch so. (Gut, es ist zwar nur ein Kreuzchen und kein Häkchen, aber das kann man wohl akzeptieren. Wer auf dem Häkchen besteht, wähle statt des Feldtyps Text ein Medienfeld, besorge sich eine Bitmap von einem Häkchen und belege das Medienfeld als Taste, die ein Skript auslöst, das einmal die Häkchen-Bitmap anzeigt und einmal nicht.)

Zum Verständnis: Das Anklicken des Kontrollkästchens bewirkt, dass das Feld ‘Markiert’ in diesem Datensatz den Wert ‘    markiert’ hat (auch wenn unser Anwender im Layout davon nichts zu sehen bekommt), und mit dem Wegklicken des Kreuzchens ist das Feld wieder leer.

Welches Wort man für die Werteliste benutzt, ist auch eigentlich egal, Hauptsache, es ist ein eindeutiger Wert, denn Filemaker kann mit einem Leerstring nichts anfangen.

Jens Teich empfiehlt als Listeneintrag “1”, einerseits um zu verdeutlichen, dass der Inhalt des Wertes nicht entscheidend ist und ähnlich wie bei Eins-Eins-Beziehungsfeldern (7.11) nur funktionale Bedeutung hat, andererseits weil sich das Programm ggf. leichter mehrsprachig machen lässt.

Nun brauchen wir nur noch eine Taste, die ein Skript auslöst, in dem drinsteht, was wir mit den ausgewählten Datensätzen machen wollen, z.B. jeweils eine Email verschicken.

Eine hübsche Erweiterung:

Wenn ich auf diese Weise nun in einer langen Liste von Datensätzen hin und wieder einzelne Datensätze markiere, dann verliert man auch hierbei leicht die Übersicht, weil die Menge aller Datensätze ja meist nicht in einem Bildschirm zu sehen ist.

Deshalb wäre es nun noch praktisch, wenn alle markierten Datensätze in unserer Liste schön übersichtlich zu oberst an den Anfang unserer Liste gerückt würden, das sieht schick aus.

Und das geht so: Mit dem Feldwert von ‘Markiert’ kann man auch eine Sortierung durchführen, die bei jedem neuen Markierungs-Klick durchgeführt wird.

Damit das funktioniert, müssen wir allerdings leider noch einen kleinen Umweg gehen. Denn wenn wir das Feld ‘Markiert’ mit einer Taste belegen, um damit jedes Mal ein Sortier-Skript auslösen zu lassen, wird der Klick von der Tastenfunktion abgefangen und das Kontrollkästchen bekommt kein Kreuzchen mehr. Also muss unser Skript auch das übernehmen, am einfachsten mit dem Skriptbefehl ‘Feld angeben’ und der Formel: Wenn( Markiert = ”    markiert”; “”; ” markiert”). Dann folgt der Befehl ‘Sortieren’ [Sortierfolge übernehmen, Ohne Dialogfeld].

Wie wir aus 6.2 wissen, müssen wir zuvor einmal von Hand sortiert haben, damit es auch eine Sortierfolge gibt, die wir im Skript übernehmen lassen können.

Achtung: Sortieren nach Feld ‘Markiert’ absteigend (!), damit die markierten Datensätze auch zu oberst stehen.

Achtung Falle:
Jens Teich weist zu Recht darauf hin, dass unsere Sortierung nach dem Feld ‘Markiert’ natürlich jede vorherige Sortierung (die vielleicht auch noch mühsam von Hand zusammengestellt worden war) zerstört.

Deshalb sollte man sich den Einsatz unseres schönen Schmankerls vorher gut überlegen. Problemlos wird er sein, wenn es entweder auf eine Sortierung nicht ankommt oder wenn es sich um eine Standard-Sortierung handelt, wie z.B. bei Personen nach Name, Vorname etc., die man in unserem Sortier-Skript ohne Mühe berücksichtigen kann.

Und noch eins:
Wir sollten uns noch ein Skript zulegen, mit dem wir alle Markierungen auf einmal wieder löschen können (sonst hätte man den neuen Komfort teuer zu bezahlen).

In diesem Skript verwenden wir den Befehl ‘Ersetzen’, Feld ‘Markiert’, ersetzen durch berechnetes Ergebnis mit der beeindruckenden Formel “” (nichts).

Gut aufpassen, genau hingucken, der Befehl ‘Ersetzen’ kann viel Unheil anrichten.

Taste anlegen mit der Beschriftung “Alle Markierungen löschen” oder so
ähnlich, fertig. Macht ganz schön was her!


2 thoughts on “Einzelne Datensätze elegant auswählen oder Datensätze markieren

  1. Sarah Ehrenholz

    Lieber Herr Hahn,

    ich bin ein blutiger Anfänger was FileMaker betrifft und versuche hier im autodidaktischen Lernverfahren eine Datenbank für unser kleines Theater zu erstellen, da wir nie im Leben jemanden dafür bezahlen könnten. Ihre Erklärungen sind von allem, was ich an Hilfe bisher gefunden habe, wohl am verständlichsten geschrieben – dafür vielen Dank! Mir fehlt leider trotzdem noch das nötige Vokabular, um den Anweisungen richtig folgen zu können 🙁

    In dem Artikel “Einzelne Datensätze elegant auswählen oder Datensätze markieren” soll ich im ersten Schritt eine Werteliste mit ” markiert” anlegen. Aber ich habe immer noch nicht ganz verstanden wofür das Wort Werteliste eigentlich steht!!! Könnten Sie vielleicht kurz erläutern, worauf ich klicken muss (auch wenn das echt doof klingt…).

    Zudem: Können Sie mir einen Hinweis auf eine Anleitung geben, wo ich nachschauen kann wie ich meine riesige Adressdatenbank nach Kategorien sortieren kann? Bisher habe ich die Idiotenversion gebaut; mit einem Index der Kategorien zur Rechten und einem entsprechenden Textfeld, das man als Suchfeld nutzen kann. Nicht sehr elegant 😉

    Ich danke Ihnen vielmals im Voraus!

    Herzlichst,
    Sarah Ehrenholz

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *