+++tag.php+++

Schlagwort-Archiv FileMaker

Elemente nur in aktivem DS darstellen
Autor: René A. Da Rin,   Artikel erstellt: am 05.10.2020,   aktualisiert am 12.10.2020



Je nachdem wie viel Platz vorhanden ist, erspare ich mir auch schon mal ein separates Layout für die Dateneingabe und erledige das direkt in der Liste. Das kann man machen, wenn der Bildschirm gross genug ist und es sich nur um wenige Felder handelt.

Es kommt dann auch schon mal vor, dass ich in der Zeile einen oder mehrere Buttons platziere. Diese wiederholen sich dann aber in jeder Zeile, was dann doch sehr unschön aussieht.

Die Buttons sollen also nur in der Zeile angezeigt werden, welche gerade aktiv ausgewählt ist.

Dafür benötigen wir in der Tabelle eine erst mal für jeden Datensatz eine eindeutige ID. Das Feld nennen wir PrimaryKey.

Anschliessend wird ein Script erstellt. Nennen wir es aktiver Datensatz.

Variable setzen [ $$id ; Wert: tabellenname::PrimaryKey]
Fenster aktualisieren []

Nun wechseln wir in die Layouteinstellungen der Liste. Hier geht es zum Reiter ScriptTrigger. Weisen Sie dem Ereignis BeiDatensatzLaden das Script aktiver Datensatz zu.

Zum Schluss müssen wir noch das Verhalten des Buttons angeben. Unter Objekt ausblenden wenn tragen Sie $$id <> tabellenname::PrimaryKey ein.

Wenn alles richtig gemacht wurde, wird der Button nun nur in der ausgewählten Zeile angezeigt.

Quelle: FileMaker Magazin, vielen Dank für die tatkräftige Unterstützung. Im Forumsbeitrag gibt es auch eine Beispieldatei zum runter laden.

https://filemaker-magazin.de/forum/beitrag/204159

Eindeutige Datensatz-ID
Autor: René A. Da Rin,   Artikel erstellt: am 05.10.2020,   aktualisiert am 12.10.2020



Wichtig in jeder Tabelle ist, das jeder Datensatz eine eindeutige ID bekommt. Am Einfachsten erstellt man ein Zahlenfeld mit fortlaufender Nummer.

Will (muss) man aber sicherstellen, dass eine ID auch über mehrere Tabellen hinweg eindeutig ist und auch nicht irgendwo mit einer Berechnung zufällig übereinstimmt, sollte man hier eine UUID verwenden.

Dafür muss das Feld in ein Textfeld geändert werden. Unter automatischer Eingabe wählen Sie berechneter Wert aus und tragen Hole( UUID ) ein. Zusätzlich wählen Sie keine Veränderung des Wertes bei Dateneingabe aus. Die UUID schaut dann z.B. so aus:

961389A1-BE95-4784-8EC4-7C3E69EEB930
mm2 automatisch formatieren
Autor: René A. Da Rin,   Artikel erstellt: am 04.09.2020,   aktualisiert am 12.10.2020



Bei der Eingabe in ein Textfeld wird der Kabel-Querschnitt als ‘mm2’ eingegeben. Allerdings soll der Text als ‘mm2‘ gespeichert werden. Das manuell zu erledigen ist umständlich und unnötig.

Dafür erstellen Sie ein Script, welches mittels Trigger beim Verlassen des Feldes ausgeführt wird. Wenn man Artikelbezeichnungen von Webseiten kopiert, wird der Text oft anders formatiert eingefügt als man das haben möchte. Dazu entferne ich grundsätzlich erst mal sämtliche Formatierungen.

Feldwert setzen [ material::artikel.name ;
TextFormatEntfernen ( material::artikel.name ) ]

Nun kommen die Funktionen Austauschen() und TextStilZufügen() zum Einsatz. Angewendet wird Austauschen() auf ‘mm2’. TextStilZufügen wird auf die ‘2’ angewendet. Die ‘2’ wird nur ‘hochgestellt’, wenn direkt davor (ohne Leerstelle) ein ‘mm’ davor steht.

Feldwert setzen [ material::artikel.name ; 
Austauschen ( material::artikel.name ; 
"mm2" ; "mm" & TextStilZufügen ("2"; Hochgestellt) )]
Anmerkung

Die hochgestellte Darstellung scheint in der FileMakerGo App auf dem iPhone nicht unterstützt zu werden.

Fehlermeldung bei der Suche unterdrücken
Autor: René A. Da Rin,   Artikel erstellt: am 24.08.2020



Wenn Sie in einem Script eine Suche durchführen und FileMaker findet dazu keine Datensätze, wird in der Regel ein Fehlerdialog angezeigt. Dieser Dialog kann auf Grund seiner 3 Auswahlmöglichkeiten zu erheblichen Störungen im Ablauf führen. Die Auswahl ‘Fortsetzen’ ist dabei die einzig korrekte Auswahl, jedoch nicht prioritär mit der Enter-Taste belegt. ‘Abbrechen’ stoppt das komplette Script und kann zu einem undefinierten Zustand führen. ‘Suchabfrage ändern’ durch den Anwender kann auch zu schweren Fehlern führen.

Aus diesem Grund sollten solche Dialoge unterdrückt werden. Das Machen Sie mit der Funktion ‘Fehleraufzeichnung setzen’.

Fehleraufzeichnung setzen [ Ein ]
Suchmodus aktivieren [ Pause: aus ]
Feldwert setzen [ projekt ; setup::akt.projekt ]
Ergebnismenge suchen []
Fehleraufzeichnung setzen [ Aus ]

Wird ‘Fehleraufzeichnung’ auf ‘Ein’ gesetzt, werden solche Dialoge unterdrückt. Wichtig ist dabei, nach der Suche die ‘Fehleraufzeichnung’ wieder auf ‘Aus’ zu setzen, damit anderorts mögliche Dialoge angezeigt werden.

Sollte der Anwender auf Grund eines leeren Suchergebnisses selber eine Entscheidung treffen müssen, kann dies mit einem ‘eigenen Dialogfeld’ umgesetzt werden.

Ein Beispiel aus der Praxis

In einer Datenbank gibt es 2 Tabellen, ‘Projekte’ und ‘Aufgaben’. Wird in der Tabelle ‘Projekte’ ein neues Projekt angelegt, gibt es in der Tabelle ‘Aufgaben’ noch keine Einträge. Ein Wechsel zur Liste mit den Aufgaben wird also ein leeres Ergebnis liefern, bis eine erste Aufgabe erstellt wurde.

Automatisierte Suche
Autor: René A. Da Rin,   Artikel erstellt: am 24.08.2020



Oftmals ist es in Scripts nötig im Hintergrund automatisierte Suchen durchzuführen. Zum Beispiel, wenn ich alle Datensätze aufrufen will, welche einem bestimmten Projekt zugeordnet sind. Im Feld ‘projekt’ ist die Nummer des Projektes hinterlegt. Die Projektnummer des aktuell zu bearbeitenden Projektesist im Feld ‘akt.projekt’ der Tabelle ‘setup’ hinterlegt.

Suchmodus aktivieren [ Pause: aus ]
Feldwert setzen [ projekt ; setup::akt.projekt ]
Ergebnismenge suchen []

Im Script wird der Suchmodus aktiviert, Pause ‘aus’ bewirkt, dass kein Suchdialog angezeigt wird. Mit Feldwert setzen wird die Projektnummer zum Suchen eingetragen und ‘Ergebnismenge suchen’ (ohne weitere Parameter) führt die Suche aus.

Führt die Suche zu einem leeren Ergebnis (keine Datensätze gefunden), gibt Filemaker eine Fehlermeldung aus. Wie Sie Diese unterbinden können, lesen Sie hier in diesem Beitrag.