FM Starter Handbuch

Entwicklungsumgebung für Filemaker Pro Entwickler

Einführung

Es geht los!

Lesen Sie zumindest diese Einführung, damit Sie das Konzept verstehen.
Alles weitere lässt sich auch nach und nach erkunden.

FM Starter ist ein Produkt von:

Kursiv GmbH
St. Gallen, Schweiz
www.fmstarter.comwww.kursiv-software.com

support@kursiv.com

Was ist FM Starter?

FM Starter ist eine modulare Entwicklungsumgebung für Filemaker Pro.

  • FM Starter ist eine Startdatei und Starthilfe für neue Filemaker Projekte
  • FM Starter kennt keine Konventionen, eher Strukturen
  • FM Starter nutzt Filemaker Module für verschiedenste Funktionen
  • FM Starter soll erweitert, angepasst, weiterentwickelt werden

FM Starter wurde als Startdatei konzipiert, worin bereits viele wichtige Komponenten enthalten sind. Mit FM Starter lassen sich Filemaker Projekte einfacher und schneller realisieren. Gleichzeitig ist die Struktur so offen, dass sich mühelos weitere Funktionen und Entwicklungen integrieren lassen.

 

 

Voraussetzungen

FM Starter wurde für Filemaker Pro 13 entwickelt. Die Lösung läuft problemlos auch unter Filemaker Pro 14, hat aber in der aktuellen Version keine neue Funktionen von Filemaker Pro 14 integriert.

Damit Sie mit FM Starter arbeiten können, benötigen Sie eine Vollversion von Filemaker Pro 13 oder höher – idealerweise die Advanced Version. Die Startdatei läuft sowohl unter Mac wie unter Windows.

 

 

Zugangsdaten

FM Starter hat bereits eine Sicherheit eingebaut (Modul: UserManagement) und lässt sich nicht automatisch im Entwickler Modus aufstarten.

Es gibt zwei Arten, die Datei aufzustarten:

  1. Datei öffnen > Normaler Benutzer
  2. Erzwungenes Filemaker-Login > Entwickler-Zugriff

Hier erfahren Sie, wie die Datei aufgestartet werden kann:

 

Normaler Benutzer / Preview Version

Dies ist der normale Zugang durch einfaches Öffnen der Datei. Der Zugang wird durch Scripts gesteuert und Zugangsdaten werden aus der vorhandenen User-Tabelle abgefragt. Dies sind keine Filemaker-Konten und deswegen kann auch der Entwickler-Zugriff nie über diesen Weg aktiviert werden. Melden Sie sich an mit folgendem Test-Account:

Name: Markus
Kennwort: Muster

 

 

 

Die Grundkonfiguration von FM Starter hat einige Benutzer bereits aufgelistet. Sie können sich auch mit anderen Benutzer-Daten anmelden. Je nach Anmeldung ändern sich auch die verfügbaren Seiten und Rechte. Weitere Informationen dazu in den Kapiteln zur Navigation und Benutzerverwaltung.

Testdaten:

NAME | KENNWORT

  • Markus | Muster (Administrator)
  • Salvador | Dali
  • Peter | Pan (Zugriff ist abgelaufen > kein Zugang mehr)
  • William | Shakespeare

 Diese Konten sind Beispieldaten in der Benutzerdatenbank. Der Benutzerdatenbank lässt sich im Administrator Fenster bearbeiten. Konten werden in der aktuellen Version ausschliesslich von Administratoren eingestellt.
 

 

Entwickler Zugang

Die Zugangsdaten (Name + Kennwort) für Entwickler werden Ihnen nach dem Kauf einer Lizenz bekanntgegeben. Sie erhalten die reguläre Version der Dateien. Zur Freischaltung machen Sie folgendes:

  1. Mac: Datei öffnen mit gedrückter ALT Taste
    Eingabe von Entwickler Name + Kennwort
  2. Win: Datei öffnen mit gedrückter STRG Taste
    Eingabe von Entwickler Name + Kennwort

 

 

Anschliessend haben Sie vollen Zugriff auf die Datei.

Der Zugriff wird über das Modul «UserManagement» geregelt. Informationen finden Sie im Entwickler-Fenster und in den Scripts zum Modul.

 

 

 

Erste Schritte

Nach der Anmeldung zeigt FM Starter ein Bildschirm mit zwei Fenstern:

 

 

Links steht das reguläre Programm-Fenster. Rechts ist das Hilfe-Fenster.

Das sichtbare Popup-Menü erlaubt die Sprachumschaltung. Die Auslieferung von FM Starter erfolgt mit der Standardsprache Englisch. Im Entwickler-Fenster lässt sich die Startsprache umschalten, wenn Sie z.B. immer auf Deutsch aufstarten möchten.

 

 

Das Hilfe-Fenster ist optional. Bei der Auslieferung und in der Testversion hat es die Aufgabe verschiedene Programmteile direkt sichtbar zu machen. Das Hilfe-Fenster zeigt eine Navigation, die sich frei definieren lässt. Das Fenster lässt sich automatisch beim Start öffnen. Dies lässt sich im Entwickler-Fenster auch abschalten.

 

 

Navigation

Jedes Fenster verfügt über eine eigene dynamische Navigation. Sie ist zweistufig:

  1. Die Topnavigation ist die Hauptnavigation mit den Programmteilen (für das jeweilige Fenster)
  2. Die Seitennavigation ist der Topnavigation untergeordnet und zeigt zum aktiven Teil der Hauptnavigation die zugehörende Unterpunkte.

Beim Aufstarten werden auf Basis des Gruppenkontos zwei Dinge automatisch eingestellt:

  • Navigation
  • Zielseite

Die Zielseite kann (wie in diesem Beispiel) unabhängig von der Navigation einstellt werden. So lässt sich beim Aufstarten bei Bedarf eine Mitteilungsseite oder ähnlich einblenden.

  • Die Navigation wird vom Modul «DynamicNavigation» bereitgestellt.
  • Die Zielseiten werden im Modul «UserManagement» angegeben und können pro Benutzergruppe definiert werden.

 

Beachten Sie den Fenstertitel:

Der Fenstertitel trägt als erstes Zeichen die Ziffer «1» im Namen. Diese Zahl wird von der Navigation ausgewertet und dann als Filter für alle Einträge dieses Fensters genutzt. So ist es möglich verschiedene Fenster mit einer jeweils eigenen Navigation darzustellen. Die Ziffer ist also die einzige Information, die das Fenster benötigt, um danach automatisch den entsprechenden Teil der Navigation dynamisch abzurufen.

Das Fenster mit der Ziffer «1» ist das reguläre Programmfenster. Weitere Fenster gibt es für den Administrator (2), für den Entwickler (3) und das Hilfe Fenster (4).

Mehr dazu in der Beschreibung des Moduls «DynamicNavigation».

 

Adressen

FM Starter wird mit einer einfachen Adressverwaltung ausgeliefert, die zeigt, wie die Module angewendet werden. Die Adressverwaltung selbst ist kein Modul, wird aber trotzdem als «Einheit» aufgefasst.

Auf dieser Adressseite werden verschiedene Module eingesetzt:

  • Modul «DynamicNavigation» für die Navigation
  • Modul «QuickFind» für das Suchfeld mit der Schnellsuche
  • Modul «LabelMaker Pro» für die Anpassung der Sprache
  • Modul «PhoneNumber Pro» für die Formatierung der Telefonnummern

Weitere Informationen bei den jeweiligen Modulen und in der Besprechung des Adressteils.

 

 

Modularer Aufbau

Dies ist kein System – und doch eins

FM Starter ist kein System, aber es unterstützt ein systematisches Vorgehen. Die Struktur ist wichtiger als das Aussehen der einzelnen Bauteile, die genutzt werden.

  • Keine fixierte Konventionen
  • Schlichte Strukturen
  • In sich funktionierende Einheiten
  • Filemaker Module als Basis

 

Filemaker Module

Eine wichtige Rolle spielen die Filemaker Module. Die Idee von Filemaker Modulen wurde von Todd Geist auf www.modularfilemaker.org vorgeschlagen. Filemaker Module sind in sich funktionierende Einheiten oder Funktionsgruppen, die eine bestimmte Aufgabe lösen. Sie lassen sich über Einstellungen einfach anpassen und sind gut portierbar.

 

Eine integrierte Lösung

Filemaker Module allein machen noch keine Softwarelösung. Es sind Bauteile. Vorgaben, wie eine Integration aussehen sollte, gibt es keine. Hier kommt FM Starter ins Spiel. FM Starter ist die erste Entwicklungsumgebung, die Filemaker Module sinnvoll an den Basis integriert, eine einfache und durchgehend verständliche Oberfläche bietet und wichtige Hilfen für die zügige Programmierarbeit direkt integriert.

Online Hilfe

FM Starter bietet direkten Zugang zu verschiedenen Online Hilfen.

 

Handbuch

Dies ist das online Handbuch. Es ist zugänglich via der Website fmstarter.com.

 

Diverse Quellen für Information

Weitere nützliche Links finden Sie im Entwickler Fenster unter «Online Hilfe»:

 

 

 

Version 1.5

Was ist neu in Version 1.5?

 

  • Starke Überarbeitung der Beispieldatenbank Personen/Adressen
    • Relationen zwischen Personen und Adressen eingefügt
    • Strikte Trennung zwischen Personen (natürliche/juridische) und Adressen
  • BrowserNav Modul von Paul Jansen eingefügt
    • Browser-ähnlich vorwärts/rückwärts blättern zwischen Layouts
  • Plug-In Registrationen
    • MBS Plug-In
    • TROI Plug-Ins (beta)
  • Viele Bugfixes und Verbesserungen

 

Fenster Struktur

Grundsätzlich wurde FM Starter als Ein-Fenster-Lösung konzipiert. Das heisst, dass das Programm in einem einzigen Fenster abläuft. Wir denken, dass diese Vorgehensweise für die meisten Anwendungen intuitiver ist als eine Mehrfenster-Lösung, und dazu besser geeignet ist Lösungen auf WebDirect und iOS anzupassen.

Allerdings ist es für Administratoren und Entwickler oft hilfreich, das Programmfenster anzuzeigen, während man gleichzeitig auf die eigene Aufgaben als Administrator und Entwickler zugreifen kann. Deshalb gibt es für Administratoren und Entwickler eigene Fenster mit einer eigenen Navigation. Zusätzlich gibt es ein optionales Hilfe-Fenster und ein Entwickler-Toolbox.

FM Starter bietet eine Fensterstruktur mit insgesamt 5 Fenstern:

  1. Benutzer Fenster
  2. Administrator Fenster
  3. Entwickler Fenster
  4. Hilfe Fenster (optional)
  5. Toolbox (Entwickler)

Das Benutzer Fenster wird nach dem Aufstarten automatisch angezeigt. Die weiteren Fenster können optional eingeblendet werden aus dem Dropdownmenü «Filemaker»/«FM Starter», wenn es die Zugriffsrechte erlauben. Ein Administratorfenster kann zum Beispiel nur aufgerufen werden, wenn man mit einem Administrator Account eingeloggt ist. Ein Entwickler Fenster kann nur mit einem Entwickler Account aufgerufen werden.

Ein Entwickler hat Zugriff auf alle Fenster:

 

 


 

 

 

 

Fenster Scripts

Fensterverwaltung in den Scripts

Alle Fenster werden einheitlich über Scripts gesteuert. Änderungen an Fenstergrössen können hier zentral vorgenommen werden. Weitere Fenster-Einstellungen können ebenfalls hier hinzugefügt werden.

Fenster Scripts finden sich hier:

[SCRIPTFENSTER] > FM STARTER > FM-STARTER WINDOWS

 

 

Jedes Fenster erhält einen eigenen Ordner mit den Fenster-Scripts zu diesem Fenster. Die Fenster 1…4 sind nummeriert. Die Nummer muss zwingend Bestandteil des Fenster-Namens sein, damit sich die Navigation am jeweiligen Fenster automatisch anpassen kann. Diese und weitere Eigenheiten werden zentral über die Fenster-Scripts gelöst.

 

Fenster Positionierung

Die Positionierung der Fenster lässt sich im Script

> FM STARTER > FM-STARTER WINDOWS > WindowSizes

zentral einstellen. Ein einziges Script kann mit verschiedenen Script Parametern angesprochen werden. Dieses Script wird demnach zentral für alle Fenstergrössen verwendet.

 

 

Die Interpretation der Parameter findet weiter unten im gleichen Script statt:

 

 

 

 

 

 

Benutzer Fenster

Hauptfenster

Das Benutzer Fenster ist das erste Fenster, welches nach dem Starten der Applikation erscheint. Es ist das Hauptfenster und trägt im Titel als erstes Zeichen die Zahl «1».

 

 

Die Zahl «1» wird von der Navigation ausgewertet und erlaubt es, dass in diesem Fenster alle Navigationsseiten erscheinen, die in der Navigation die Fensterzahl «1» mittragen. Weiteres zu diesem Thema finden Sie im Modul «DynamicNavigation».

Das Benutzerfenster ist das Hauptfenster der Applikation. FM Starter sieht vor, dass in diesem Fenster das eigentliche Programm abläuft.

 

Beispiel Adressdatenbank

Die mitgelieferte einfache Adressverwaltung ist keine Vorgabe. Das Beispiel soll aufzeigen, wie sich die verschiedenen Funktionen von FM Starter umsetzen lassen. Weiteres dazu im Kapitel «Beispiele».

 

 

Administrator Fenster

Administrator Fenster

Das Administrator Fenster dient den Einstellungen des Systemadministrators. Dies ist der Super-User, nicht aber der Entwickler. Funktionen, die nicht jedem Benutzer zugänglich sein sollten werden idealerweise hier zusammengefasst. Das betrifft beispielsweise:

  • Anlegen von Benutzer Accounts
  • Generelle Konfiguration des Programms

 

Zugang zum Administrator Fenster

Der Zugang zum Administrator Fenster ist nur möglich mit einem Administrator Account. Ob ein Benutzer einen Administrator Zugang erhält, wird im Administrator Fenster unter «Benutzer» eingestellt. Sie auch die Angaben aus dem Abschnitt «Zugangsdaten».

Zugang zum Administrator Fenster gibt es…

  • via dem Hilfe Fenster (sollte unbedingt geändert werden!)
  • via dem Dropdown Menü Filemaker Pro:

 

 

Der Zugang zu diesem Link ist nur möglich für einen Entwickler Account oder für das Account 1 (Administrator).

Diese Untermenüs lassen sich mit Filemaker Pro Advanced jederzeit anpassen oder umplatzieren (unter: Werkzeuge > Angepasste Menüs).

Hier finden sich die Voreinstellungen, womit der Systemadministrator das Programm einrichten kann. Es gibt auch in diesem Fenster eine ganz normale Navigation, begrenzt auf den Systemadministrator.

 

Administrator Fenster

 

Beachten Sie, dass der Fenstertitel mit der Zahl «2» anfängt. Jedes Fenster hat eine eigene Zahl, die eine Filterung der Navigationselemente für dieses Fenster erlauben. Mehr dazu im Abschnitt über die Dynamische Navigation.

 

 

Entwickler Fenster

Entwickler Fenster

Das Entwickler Fenster fasst alles zusammen, was speziell für den Entwickler Relevanz hat. Das Fenster lässt sich nur aufrufen, wenn man mit dem Entwickler Account angemeldet ist.

Zugang zum Entwickler Fenster erhält man via dem

  • Hilfe Fenster (sollte dort unbedingt entfernt werden!)
  • Dropdown Menü Filemaker Pro (nur sichtbar, wenn Sie mit einem Entwickler Account angemeldet sind)

 

 

 

Organisation für Entwickler

Im Entwickler Fenster wird alles zusammengefasst und einfach zugänglich gemacht, was für den Entwickler von Bedeutung ist. So entsteht ein zentraler Zugang zu Entwicklungsdaten. Beachten Sie, dass der Fenstertitel mit der Zahl «3» anfängt. Dies ist die Fensterzahl die von der Navigation ausgewertet wird.

 

 

Im Entwickler-Fenster lassen sich beispielsweise folgende Dinge aufführen:

  • Entwickler Layouts (Themen, Grafiken, usw.)
  • Modul-Seiten
  • Tabellen, die sonst nirgendwo sichtbar sind
  • usw.

Das eigene Fenster vereinfacht Erfahrungsgemäss den Zugriff erheblich. Fügen Sie hier auch Ihre eigene Seiten hinzu.

Alle Einträge der Navigation werden vom Modul DynamicNavigation (Topnavigation: Navigation) verwaltet.

 

 

Entwickler Toolbox

Entwickler Toolbox

Der Entwickler hat noch ein zweites extra Fenster zur Verfügung, welches nicht sosehr der Verwaltung vieler Funktionen, als vielmehr der schnellen Zugriff auf Gestaltungselemente dient. Dies ist der Entwickler Toolbox. Mit einer Breite von lediglich 400px ist dies ein schmales Fenster, welches sich problemlos am Fensterrand aufhalten kann.

Der Toolbox lässt sich öffnen im

  • Hilfe Fenster (sollte dort unbedingt entfernt werden!)
  • Dropdown Menü Filemaker (nur mit Entwickler Account)

 

 

Toolbox Voreinstellungen

Im Entwickler Fenster lässt sich bestimmen, ob die Toolbox gleich neben dem Programmfenster oder am äussersten Bildschirmrand erscheinen soll:

 

 

 

Auf einem aktuellen MacBook lassen sich Programmfenster, Hilfe Fenster und Toolbox gut nebeneinander einpassen.

Die Positionierung der Fenster lässt sich im Script

> FM STARTER > FM-STARTER WINDOWS > WindowSizes

einstellen.

 

 

Toolbox Fenster

Das Toolbox Fenster bietet schnellen Zugriff auf Textlabels und Grafiken:

 

 

Weiteres zu diesen Fenstern in der Besprechung des Moduls «LabelMaker Pro» und bei den Grafiken.

 

 

Hilfe Fenster

Das Hilfe Fenster ist ein schmales Fenster, welches nur eine Navigation besitzt. Genauer gesagt: Es besitzt nur eine Seitennavigation. Dieses Fenster ist optional. Es ist ein Beispiel dazu, wie sich eine dynamische Navigation auch noch nutzen lässt.

 

Ändern Sie die Einträge für eigene Zwecke ab oder blenden Sie das Fenster ganz aus (Einstellung im Entwickler-Fenster).

 

 

Die Organisationsstruktur

Die Organisationsstruktur in FM Starter

Die Organisation von FM Starter lehnt sich an die Idee der Filemaker Module an, wie sie auf www.modularfilemaker.org von Todd Geist vorgestellt wird. Die Lektüre dieser Seite wird dringend empfohlen – sie ist gut zugänglich und kurzweilig.

Hauptaussage:
Die Struktur ist wichtiger als die Definition der Einzelteile. Die Portabilität ist A und O bei jeder Entwicklung. Die Entflechtung der Einzelaufgaben ist Voraussetzung für eine zuverlässige Entwicklung.

In Anlehnung an die Struktur für Filemaker Module hat auch FM Starter eine möglichst klare Struktur. Sie wird sichtbar bei den Scripts, Layouts und an anderen Orten. Eine Struktur ist eine Organisationshilfe. Ob sie bei Ihnen so beibehalten bleibt oder auf andere Art ist nicht relevant. Entscheidender ist, dass Sie (und vielleicht auch Mitarbeiter oder Kollegen, der Kunde oder andere) sich in der Lösung auch über eine längere Entwicklungszeit hinweg zurechtfinden.

Gruppieren Sie, was zusammengehört. In einem Filemaker Modul gibt es eine Ordnerstruktur, die klar definiert, welche Teile wohin gehören. Jedes Modul hat einen Ordner und alle Module landen in den Module Ordner. Das gilt für Scripts, Layouts und Tabellen gleichermassen – soweit es Filemaker zulässt, diese zu organisieren.

 

Script Struktur

Wir haben diese einfache Struktur gewählt:

  1. FM-STARTER
    Hier finden sich alle Module und Einstellungen dieser Starterlösung
    1. FM-STARTER FENSTER
    2. FM-STARTER MODULE
    3. ANDERE MODULE
  2. APPLICATION spezifisch
    Hier finden sich alle Programm-Teile
    1. ADRESSEN

 

Eine Struktur wie diese soll helfen, nicht einengen. Es gibt keine Definition, sondern es ist ein Vorschlag. Passen Sie die Struktur an, wo Sie dies für nötig erachten. Das Ziel dürfen Sie dabei im Auge behalten: Es soll alles leicht auffindbar bleiben.

 

Layout Struktur

Layouts lassen sich auf genau gleiche Art gruppieren.

 

 

Es hat sich bewährt, wenn jede Tabelle eigene Layouts hat und diese logisch gruppiert in Ordnern zusammengefasst werden. So bleiben zusammen: Tabellen / Layouts / Scripts. Dies ist die Voraussetzung dafür, dass Funktionalitäten bei Bedarf einfach aktualisiert und wenn nötig sogar ausgetauscht werden können.

 

 

 

 

Spaghetti Programmierung

Spaghetti Programmierung

Wer mit Filemaker Programmierung anfängt, kann sofort loslegen. Das Programm ist einfach, übersichtlich und man kann in kürzester Zeit vorankommen. Aller Anfang ist leicht.

Aber dann…

Mit der Zeit entwickelt man einen Programmierstil. Bei mir war es die Spaghetti-Programmierung, worin alles mit allem verknüpft war. Die Spaghetti-Programmierung scheint zuerst zu funktionieren. Erfolgserlebnisse stellen sich ein. Doch mit der Zeit wird es unübersichtlich und die Fehlersuche wird  aufwändiger. Es wird ausserdem schwieriger Funktionen zu aktualisieren oder neue hinzuzufügen. Die Entwicklung und Programmpflege gestaltet sich immer komplexer und langsamer.

 

Abschied und Aufbruch

Es gibt verschiedene Ansätze zur Lösung eines chaotischen Programmierstils. Die Wahrheit wird wohl sein, dass jeder zu einem gewissen Grad chaotisch ist und bleibt. Das liegt zum Teil daran, dass man sich selbst und auch den eigenen Programmierstil laufend weiterentwickelt. Alte Konventionen werden von neuen abgelöst. Neue Ideen wollen umgesetzt werden. Dies alles in einem 100% sicheren System unterzubringen ist ein fast aussichtsloses Unterfangen. Je mehr Konventionen es gibt, desto mehr Anpassungen werden mit der Zeit nötig sein. Alsbald werden verschiedene Konventionen in verschiedenen Systemversionen parallel laufen. Das ist zwar nicht schlecht, aber ebenfalls nicht sehr produktiv.

Das Anliegen eines sauberen Programmierstils ist nie der Stil an sich, sondern die Möglichkeit zur Evaluation, zur Verbesserung, zur Ausbau. Ebenso ist es ein Hilfsmittel für Konsistenz. Konventionen helfen dabei, dass auch verschiedene Programmierer am gleichen Projekt arbeiten können, wobei nicht jeder sein eigenes Süppchen kocht. Es ist wirklich hilfreich, sich auf etwas zu einigen.

Zwischen 100% chaotisch und 100% vordefiniert liegt aber eine weite Welt. Weder die Filemaker Module noch FM Starter wollen sich in den Extremen positionieren. Statt «rigide Vorgaben bis ins Detail» stehen offene Strukturen zentral. Dabei werden keine Details vorgegeben, sondern es wird lediglich definiert, was an welcher Stelle gesucht und gefunden werden soll.

FM Starter will eine offene Struktur sein, innerhalb dessen Sie Ihren eigenen Programmierstil pflegen und entwickeln können. Die Benutzung weitgehend unabhänger Elemente gestattet hier die Anpassung und Weiterentwicklung «pro Element» oder «pro Baustein», «pro Modul». Dadurch lassen sich Entwicklungsschritte einfacher abgrenzen.

 

Ansätze für eine offene Programmierung

Filemaker Module werden aus dem Blickwinkel der Portabilität entwickelt. Es sind in sich abgeschlossene und funktionierende Funktionsgruppen, die mit eigenen Tabellen, Layouts, Scripts und dergleichen ausgerüstet sind. Dieser Ansatz lässt sich nun auch für die Gesamtprogrammierung einer neuen Applikation nutzen.

Das könnte beispielsweise so aussehen:

  • Wiederkehrende Bausteine werden als Filemaker Modul entwickelt
  • In sich funktionierende Programmteile ausschlieslich mit eigenen Tabellen, Layouts, Scripts, usw. entwickeln
  • Globale Variablen in den Tabellen anlegen, wo sie genutzt werden (keine zentrale Tabellen)
  • Scripts nur entwickeln für den Programmteil wo sie relevanz haben (keine Scripts die überall etwas machen)
  • Scripts eventuell nur per Layout definieren
  • Alle Scriptschritte grundsätzlich in IF-Abfragen einkleiden. Dadurch lassen sich Scriptschritte als Subscript mit entsprechenden Parametern auch von anderen Orten abrufen.
  • Beziehungen grundsätzlich entsprechend dem Anker-Boie-Modell entwerfen (Beispielbeschreibung)
  • usw.

Der Gewinn dieser Ansätze: Es findet eine Entflechtung der Spaghetti-Strähnen statt. Die Applikation wird übersichtlicher, Programmteile werden unabhängig, Abhängigkeiten lassen sich besser nachvollziehen, bei Scripts gibt es keine Überraschungen – jeder wirkt nur dort, wo er hingehört.

 

Erweiterungen entwickeln

Nicht nur eine Entflechtung ist wichtig – es gibt auch Themen, die über die gesamte Applikation Bedeutung haben:

  • Fehlerbehandlung
  • Fensterpositionen
  • Hilfstexte
  • usw.

Diese Art von Aufgaben lassen sich vielleicht ebenso als Filemaker Modul entwerfen. Sie könnne dann mit wenig Aufwand von anderen Orten aus genutzt werden.

 

 

 

Beziehungsdiagramm

Beziehungen

Die Beziehungen zwischen Tabellen werden im Beziehungsdiagramm dargestellt. FM Starter listet sie in drei Spalten auf, entsprechend der Funktionen innerhalb der Applikation:

 

 

Es gibt drei Spalten:

  1. FM-STARTER BASICS
    Hier befinden sich die Tabellen, die direkt mit FM Starter zu tun haben. Dazu gehören beispielsweise Tabellen für allgemeine Entwickler-Einstellungen, für Angaben über das Programm und dergleichen mehr. Auch die Module «DynamicNavigation» und «UserManagement» werden hier platziert, weil sie direkt die Bedienung und das Aussehen von FM Starter beeinflussen. Sie gehören sozusagen zur Basisfunktionalität.
  2. MODULES
    Hier werden die Tabellen von Modulen aufgelistet. Verknüpfungen gibt es zur Navigationsstruktur und soweit nötig auch Verknüpfungen zwischen mehreren Tabellen desselben Moduls.
  3. APPLICATION
    Hier erscheinen die Tabellen der Softwareentwicklung. Aufgeführt sind bei Auslieferung die Tabellen für Personen und Adressen mit ihren Verknüpfungen.

 

 

Scripts

Scripts im Scriptfenster

Die Scripts im Scriptfenster werden logisch gruppiert. Im Ordner FM STARTER befinden sich alle Scripts der FM Starter Lösung. Im Ordner APPLICATION specific gehören alle Scripts für die eigentliche Applikation. Hier befinden sich als Beispiel die Scripts der einfachen Adressdatenbank, wie sie zur Lieferumfang gehört.

Verschiedene Unterordner helfen dabei, die Struktur transparent zu gestalten.

 

 

 

Layouts

Layouts verwalten

Ähnlich wie bei den Scripts gibt es auch bei den Layouts eine Struktur. Sie richtet sich wieder nach den Modulen und verschiedenen Merkmalen von FM Starter:

 

 

So sieht die Struktur von Layouts (Seiten) aus:

  • Im Ordner 1 APPLICATION werden die verschiedene Seiten der Programmteile abgelegt.
    Die Zahl 1 steht für das Fenster 1, das ordentliche Programmfenster.
    Als Beispiel findet sich hier ein Unterordner mit den Seiten für Adressen und Kontakten.
  • Im Ordner 2 ADMINISTRATOR werden alle Seiten für das Administrator-Fenster abgelegt.
    Die Zahl 2 steht für das Fenster 2, das Fenster für Administrator Einstellungen.
  • Im Ordner 3 DEVELOPER werden alle Entwickler Seiten gruppiert.
    Die Zahl 3 steht für das Fenster 3, das Fenster für Entwickler.
  • Im Ordner 4 HELP werden die Seiten für das Hilfe Fenster gruppiert
    Die Zahl 4 steht für das Fenster 4, das Hilfe Fenster.
  • Im Ordner MODULES werden alle Seiten von Modulen abgelegt
  • Im Ordner DESIGN werden die Seiten von Grafiken und Themen abgelegt.

 

Bei Auslieferung von FM Starter sind alle Layouts noch sichtbar zur Auswahl im Fenster. Das sieht dann noch wie folgt aus:

 

 

Es empfiehlt sich, diese Sichtbarkeit nur während der Entwicklung beizubehalten und vor Auslieferung der Software an Endanwender diese alle auszublenden.

 

 

 

 

Navigation

Zentrale Bedeutung in FM Starter hat das Navigationsmodul «DynamicNavigation».

Modul «Dynamic Navigation»

Tip: Die Navigation ist ein zentrales Element in FM Starter. Es lohnt sich, zuerst die Navigation kennenzulernen, bevor weitere Teile von FM Starter angeschaut werden.

 

Modulgrundlage

Die Navigation basiert auf das kostenlose Modul «Dynamic Navigation», erscheint aber in FM Starter als erweiterte Version, die unter anderem mehrere Fenster unterstützt.

 

Wo finde ich das Modul?

Das Modul DynamicNavigation befindet sich im Entwickler Fenster, dort unter dem Eintrag «Navigation».

 

 

Man landet zuerst auf eine Seite mit einer kurzen Einführung. Links in der Navigation geht es zur Navigationstabelle.

 

 

In dieser Tabelle befinden sich alle Einträge aller Navigationselementen. Jede Zeile entspricht einen Eintrag, beispielsweise einen Eintrag in der Topnavigation oder einen Eintrag in der Seitennavigation.

 

Steuerung über die Tabelle

Die Navigation wird komplett über diese Tabelle gesteuert. Es gibt keine spezielle Anpassungen auf den einzelnen Seiten, sondern alles wird von hier aus eingestellt.

Die Objekte, welche auf die Seiten platziert werden, müssen lediglich korrekt zur Navigationstabelle verlinkt werden. Auf den Seiten gibt es dann keine weiteren Einstellungen mehr.

 

 

 

Navigationstabelle

Ein neuer Eintrag für die Navigation erstellen

Fast alle Einstellungen der Navigation lassen sich über die Einträge in der Tabelle regeln. Jede Zeile in der Navigationstabelle entspricht einem Eintrag in der Navigation. Ein neuer Eintrag lässt sich durch Klick auf das Plus Symbol erstellen.

 

 

Für den neuen Eintrag müssen zuerst diese Felder ausgefüllt werden:

  • IsReleased: Ist diese Seite bereits freigegeben?
  • IsActive: Ist diese Seite aktiv / Soll diese Seite gezeigt werden?
  • WindowNumber: In welchem Fenster soll die Seite erscheinen?
  • PositionType: In welcher Navigation soll der Eintrag erscheinen? (Top/Seite)

 

IsReleased

Das Feld wird aktuell nicht verwendet. Es kann aber für folgendes Scenario verwendet werden: Beim Aufstarten wird ein Script ausgeführt, welches prüft, welche Einträge der Navigation freigegeben sind. Diese Einträge werden dann aktiviert (Feld: IsActive = 1), während die übrigen Einträge deaktiviert werden (Field: IsActive = „“). So kann der Entwickler bestimmen, wann welche Einträge tatsächlich vom Benutzer gesehen werden können.

 

IsActive

In der Navigation werden nur Einträge angezeigt, die dieses Feld angekreuzt haben (IsActive = 1).

 

WindowNumber

Die Fensternummer gibt an, in welchem Fenster ein Eintrag erscheinen soll. Logischerweise sollen natürlich alle Einträge ein und desselben Abschnitts dieselbe Fensternummer tragen. Die Fensternummern werden automatisch eingefärbt, damit Abweichungen sofort ersichtlich sind.

 

Es gibt theoretisch beliebig viele Fenster, die unterstützt werden können. Sie müssen allerdings zur Auswahl stehen (siehe die Wertelisten) und in den Scripts integriert werden.

 

PositionType

Die Positionsnummer gibt an, in welchem Teil der Navigation der Eintrag erscheinen soll. Momentan sind zwei Varianten umgesetzt:
1 ist die Topnavigation,
2 ist die Seitennavigation.

 

 

Es können theoretisch beliebig viele Positionstypen angegeben werden. Sie müssen allerdings zur Auswahl stehen (siehe die Wertelisten) und in den Scripts und bei den Objekten entsprechend eingebaut werden.

Der erste Eintrag eines Navigationsmoduls entspricht der Topnavigation. Diese soll stets die Nummer 1 haben. Der Wert wert zur schnellen Erkennung eingefärbt. Alle anderen, dazugehörenden Einträge erscheinen in der Seitennavigation und haben die Nummer 2.

 

Text des Eintrags

Es gibt 3 Felder, die mit dem Texteintrag zu tun haben:

 

  • Sie schreiben in das Feld «Label»
  • Das Feld «LabelTranslated» ist mit dem Modul «LabelMaker Pro» verknüpft und stellt alle Übersetzungen der Navigation automatisch ein, sofern der Inhalt des Feldes «Label» auch ein Platzhalter in der Übersetzungstabelle von LabelMaker Pro ist.
  • Das Feld «LabelFormatted» ist das Feld, welches in der Navigation benutzt wird. Das Feld nutzt als Bezug entweder das Feld «Label» oder das Feld «LabelTranslated». Sie können das Frei einstellen.

 

Formatierung

Die formatierte Variante des Eintrags richtet sich nach dem Feld «Formatting». Hier können die Werte 0…3 eingegeben werden.

 

 

0 = ohne Formatierung
1 = Abschnittstitel (fett)
2 =     Einzug unter Abschnitt (regulär)
3 =     Weiterer Einzug (mit vorgestelltem -)

Das Aussehen der Formatierung lässt sich bei den Voreinstellungen einrichten. Siehe dort.

Die Abschnittstitel mit dem Wert «1» sind die, welche bei Klappmenüs sichtbar bleiben. Die übrigen werden ausgefiltert, bis auf die, welche zum entsprechenden Abschnitt gehören und dieselbe Subgroup-Nummer tragen.

 

Sortierreihenfolge

Die Sortierung der Einträge wird nach den Feldern «Module», «ModuleSubgroup» und «SortNumber» geregelt.

 

 

Module: Die Hauptgruppen

Das Wort «Module» in der Navigation entspricht einem Eintrag in der TopNavigation. Es ist eine Funktionsgruppe, die über die Topnavigation erreicht wird und dann weitere Einträge dazu in der linken Navigation zeigt.

Alle Einträge in einem Navigationsmodul tragen dieselbe Modulnummer. Im Screenshot sind das zwei Module, mit den Nummern 100 und 200. Dies ist die erste Stufe der Sortierung und hat direkt damit zu tun, wie die Funktionen zusammen gehören.

 

ModuleSubgroup: Die Untergruppen

Die Subgroups sind Untergruppen der Module. Alle Einträge, die derselben Subgroup angehören, sollten dieselbe Subgroup-Nummer tragen.

Der Haupteintrag eines Subgroups sollte mit der Formatierung «1» vermerkt werden. Diese Haupteinträge erscheinen in einer Klappmenü Darstellung auch in zugeklappter Form, während die übrigen Einträge ausgeblendet werden.

 

SortNumber: Die Sortierung

Die Seitennavigation wird sortiert in der Reihenfolge «Module / ModuleSubgroup / SortNumber». Die Sortiernummer gilt demnach nur pro Untergruppe und muss nicht über ein ganzes Modul oder über die ganze Tabelle eingestellt werden. In Kombination lassen diese drei Felder alle Einträge genau einordnen.

 

Parameter

Zuletzt gibt es noch das «Parameter» Feld. Das Feld Parameter enthält zwei Angaben:

  1. Name des Ziellayouts
  2. Optionaler Parameter für das Script der Zielseite

 

 

Die Formatierung des Parameter-Feldes sollte wie folgt aussehen: [layoutname | scriptcall]. Der «layoutname» sollte exakt dem Namen des Ziellayouts entsprechen. Der «scriptcall» ist ein Parameter, der von einem Script auf der Zeilseite abgefangen werden soll, sofern ein solches Script angelegt wurde. Ansonsten wird der Wert «0» vorgeschlagen, der hier in der Navigationstagelle aufgeführt wird.

Diese beiden Parameter werden vom Navigationsscript aufgenommen und weitergegeben. Die Funktion des Ziellayouts ist soweit klar – dort werde ich hingehen. Der zweite Teil des Parameters, nämlich der Scriptcall, lässt mich am Zielort bei Bedarf auch etwas auslösen. In Kombination kann über die Navigation so ziemlich jede Funktion von Filemaker ausgelöst werden. Die Navigation lässt also nicht nur navigieren, sondern auch etwas auslösen.

 

 

Voreinstellungen der Navigation

Voreinstellungen

Viele Elemente der Navigation lassen sich zentral über die Voreinstellungen einrichten. Die Voreinstellungen sind erreichbar über das Symbol am oberen Bildschirmrand über das Räderwerk-Symbol.

 

 

Die Voreinstellungen erscheinen in einem Popover Fenster.

 

 

Die Einstellungen sind in verschiedenen Tabs untergebracht.

  • Navigation: Eine vereinfachte Abbildung der Navigation.
  • Settings: Globale Felder, die wichtige Einstellungen zentral darstellen und editierbar machen
  • Version: Die Version der Navigation
  • Buttons: Beispiel, wie sich dieselbe Navigation auch mit einzelnen Buttons nutzen kann
  • Graphics: Alternative Symbole für das Auf- und Zuklappen der Menüs

Alle Elemente sind selbsterklärend. Einzig die Settings verdienen hier etwas extra Aufmerksamkeit.

 

Voreinstellungen (Settings)

Alle Settings betreffen globale Felder. Es sind Berechnungen für verschiedene Felder und Funktionen, die von den Felddefinitionen in diese Einstellungsfelder ausgelagert wurden.

 

 

Der Inhalt globaler Felder lässt sich von überall her ansprechen. Das wird genutzt für ScriptParameter, Filtereinstellungen, für Bedingte Formatierungen und für die Formatierung vom Text in der Navigation. Globale Felder werden intern durch einen kleinen "g" vor dem Feldnamen gekennzeichnet.

Alle diese Felder werden auf den verschiedenen Layouts aktiviert durch die Formel

Berechne ( [navigation::bezugsfeld] )

Dabei wird dann der Inhalt des globalen Bezugsfeldes aus den Voreinstellungen evaluiert und das Resultat dargestellt. Eine Anpassung der Voreinstellungen wirkt sich deshalb sofort auf die gesamte Navigation aus. Es braucht keine Updates von Elementen auf den einzelnen Seiten mehr. Ebenso lässt sich eine Funktionserweiterung direkt in diese Felder hineinschreiben, und das Resultat ist sofort im ganzen Programm zu testen.

 

Beziehungen

 

Beachte, dass von jedem Layout aus eine Berechnung von Feldern stattfindet, die über die Beziehung zur Navigationsdatei entsteht. Die Beziehungen im Beziehungsdiagramm müssen deshalb konsistent geschrieben werden. Nur dann können die Bezugsfelder korrekt angesprochen werden. Die Namen der Navigationstabellen aus diesen Beziehungen müssen wie folgt aussehen:

[Ursprungstabelle-der-Beziehung]_TopNav
[Ursprungstabelle-der-Beziehung]_LeftNav

Die Bezeichnung «_TopNav» verweist auf die TopNavigation.
Die Bezeichnung «_LeftNav» verweist auf die Seitennavigation.

 

Für die Tabelle «Graphics» werden die Beziehungen wie folgt benannt:

 

Wenn die Navigation für die Tabelle [ADRESSEN] eingerichtet wird, müssen also folgende Tabellenauftreten der Navigationsdatei verlinkt werden:

ADRESSEN > ADRESSEN_TopNav
ADRESSEN > ADRESSEN_LeftNav

 

 

Wie dies in Detail gemacht wird lässt sich am einfachsten direkt in dem Beziehungsdiagramm nachschauen (Siehe dazu auch den nächsten Abschnitt).

Mit Hilfe dieser Definition funktioniert nun die ganze Navigation. Ausgehend vom Layout worauf die Navigation platziert ist, lässt sich der Name des aktuellen Tabellenauftretens einfach ermitteln. Welche Beziehung dann genutzt wird, wird durch den Zusatz «_TopNav» oder «_LeftNav» definiert. Diese einfache Bezeichnungen finden sich deshalb als feste Elemente in allen Voreinstellungen, wie hier unten dargestellt wird.

 

Einzelne Angaben

 

Script Parameter

 

 

Hier werden die Parameter angegeben, die es als ScriptParameter braucht, wenn man auf einen Navigationseintrag klickt. Links stehen die Parameter für die Topnavigation, rechts die für die Seitennavigation. In rot vermerkt sind die fixe Bestandteile der verschiedenen Beziehungen, wie weiter oben umschrieben.

Wenn der Navigationsscript durch ein Klick auf einen Eintrag ausgelöst wird, wird dieser Parameter automatisch abgefragt und das Resultat als ScriptParameter dem Navigationsscript übergeben.

Auf ähnliche Art werden nun auch für die hier unten aufgeführte Voreinstellungen die Angaben ergänzt.

 

Portalfilter

Es gibt zwei Portalfilters, die auf jeder Seite jederzeit ausgetauscht werden können.

  • PortalFilteringSimple: Nicht zusammenklappbar
  • PortalFilteringCollapsable: Zusammenklappbar

Der Bezug hier ist einfach zu einem globalen Feld. Indem man hier den Bezug zu einem anderen Feld setzt, kann eine andere Berechnung für das Portal ausgelöst werden. So kann durch eine Änderung des Feldnamens ein anderes Aussehen der Navigation erreicht werden. Die zweite Möglichkeit ist ein zusammenklappbares Menü.

 

Bedingte Formatierungen

Bedingte Formatierungen werden dazu genutzt, Einträge in der Navigation hervorzuheben. Die gerade aktuelle Seite oder das aktuelle Navigationsmodul werden sichtbar markiert, damit sich der Anwender auf Anhieb zurechtfindet und weiss wo er sich befindet.

Ergänzend müssen natürlich Textfarbe usw. eingestellt werden. Bedingte Formatierungen können auch auf einmal für viele Objekte eingestellt werden: Einfach alle Objekte anklicken, die Bedingte Formatierung aufrufen und so alle Objekte gemeinsam abändern.

 

Formatierung der Textlabels

Die Formatierung der Textlabels ist auch typisch eine Funktion, die auf allen Navigationselementen anwendbar ist. Deshalb ist auch diese Eigenschaft ausgelagert worden und findet sich in den Voreinstellungen zurück. Umgesetzt wird dies in dem Berechnungsfeld «LabelFormatted» in der Navigationsdatei.

 

 

Beziehungsdiagramm einstellen

Die Navigation im Beziehungsdiagramm einrichten.

Damit eine Navigation auf einer Seite erscheinen kann, müssen zwei Beziehungen zur Navigationsdatei aufgebaut werden. Pro Tabellenauftreten müssen die Beziehungen nur einmal erstellt werden. Verschiedene Seiten, welche dieselbe Ausgangstabelle nutzen, können die Navigation einfach per Copy-und-Paste übernehmen.

Für die Tabelle [Graphics] werden zwei Beziehungen zur Navigationsdatei benötigt, die wie folgt heissen:
Graphics_TopNav für die Topnavigation (PositionType = 1)
Graphics_LeftNav für die Seitennavigation (PositionType = 2)

 

 

In jeder Datei gibt es die globale Felder g1…g5, die je einen Wert 1…5 haben. Zwei dieser Felder werden dazu genutzt, Beziehungen zur Navigation aufzubauen.

 

Beziehung zur Topnavigation

Die Topnavigation zeigt:

 

 

  • g1 = IsActive. Dies sind  alle aktive Einträge der Navigation
  • g1 = PositionType. Dies sind alle Einträge für die Topnavigation

In Kombination zeigt diese Beziehung alle aktive Einträge der Topnavigation.

Die Datensätze werden sortiert nach dem Feld «Module», welches die Modulnummer enthält.

 

Beziehung zur Seitennavigation

Die Seitennavigation zeigt:

 

 

  • g1 = IsActive. Dies sind  alle aktive Einträge der Navigation
  • g2 = PositionType. Dies sind alle Einträge für die Seitennavigation

In Kombination zeigt diese Beziehung alle aktive Einträge der Seitennavigation.

Die Datensätze werden sortiert nach den Feldern «Module / ModuleSubgroup / SortNumber», in dieser Reihenfolge.

 

 

 

 

 

Filterung der Beziehungsergebnisse

Die Einstellungen für die Beziehungen liefern zwar getrennte Ergebnisse für die Topnavigation und Seitennavigation, zeigen aber vorerst alle Datensätze an. Wie wird nun die Ergebnisliste auf die gewünschte Resultate gekürzt? Die Begrenzung auf die richtigen Datensätze gelingt durch ein Filter auf das Portal. Dieser Filter holt dynamisch alle Elemente aus der Beziehung, welche für die aktuelle Seite gültig sind.

Der Vorteil ist hier, dass die Beziehungen nicht kompliziert sind. Sie lassen sich ruckzuck auf für weitere Tabellen anlegen. Erst der Filter begrenzt dann die Auswahl, und auch dies sehr einfach mit einem Verweis auf die Filterdefinition.

 

 

Portale einrichten

Navigationsportale einstellen

Die Navigation wird auf den Seiten mittels Portalen dargestellt. Portale und darauf liegende Felder geben die Beziehung der aktuellen Tabelle zur Navigation an. Pro Tabelle müssen diese Objekte einmalig an die Beziehung angepasst werden. Danach lassen sich die Objekte auf andere Layouts mit denselben Beziehungen einfach kopieren und wieder einsetzen.

 

Portale und Textfelder

Die Portale oder Ausschnittsreihen werden entsprechend der Relationen erstellt (siehe Abschnitt «Beziehungsdiagramm einstellen»). Die Felder auf einem Portal sollten selbstverständlich aus derselben Beziehung wie das Portal stammen. Das Textfeld für alle Portale ist stets das Feld «LabelFormatted».

 

Portale und Felder, die auf den Portalen platziert sind:

 

Felder liegen immer auf einem Portal.

 

Relationen einstellen:

 

 

 

TopNavigation

Die Top Navigation ist horizontal. Leider gibt es keine horizontale Portale in Filemaker Pro. Die horizontale Navigation besteht deshalb aus mehreren Portalen. Jeder Eintrag ist ein eigenes Portal. Diese stehen nebeneinander. Im Screenshot hier unten wurde das 4. Feld «LabelFormatted» verschoben, sodass die 4. Ausschnittsreihe (Portalreihe) darunter sichtbar wird. Durch Doppelklick öffnet sich die Einstellung des Portals:

 

 

Das Portal, weil es an 4. Position in der Reihe steht, zeigt hier die Anfangszeile «4». Die Anzahl ist «1», sodass nur der vierte Eintrag angezeigt wird. Ähnlich werden die übrigen Positionen mit jeweils einer eigenen Anfangszeile aufgelistet, von links nach rechts sind das dann Anfangszeilen 1, 2, 3, usw.

Die Ausschnittreihe wird gefiltert. Die Einstellungen der Topnavigation zeigen grundsätzlich alle aktive Einträge der Top-Navigation. Diese unterscheiden sich jedoch nach Fenster und auch nach den Freigaben für die Benutzergruppe. Damit diese Dinge berücksichtigt werden, wird ein Filter aktiviert:

 

 

Die Filterung entsteht durch Bezug auf ein Feld, welches in den Voreinstellungen der Navigation global für das gesamte Programm eingestellt werden kann. Mehr dazu im Abschnitt «Voreinstellungen der Navigation».

 

Navigationsscript für die Topnavigation

Beim Klicken auf dem Textfeld wird das Navigationsscript ausgelöst. Es wird ein ScriptParameter mitgegeben, der wiederum nur ein Bezug zu einem zentralen Feld darstellt. Mehr zu diesem Thema bei den Voreinstellungen der Navigation.

 

 

Seitennavigation

Die Seitennavigation entspricht dem Wert «2» im Feld PositionsType. Alle Einträge dieses Typs werden hier in einem Portal aufgelistet:

 

 

 

Die Filtereinstellungen werden wieder aus einem globalen Feld in den Voreinstellungen abgerufen. Der Bezug allein durch eine Referenz bringt noch kein Resultat. Erst durch «Berechne [FELDWERT]» wird die Berechnung im aktuellen Kontext ausgeführt.

 

 

Achten Sie darauf, dass es verschiedene Felder für die Seitennavigation (gLeftNavPortalFiltering…) und für die Topnavigation (gTopNavPortalFiltering…) gibt. Die Filtereinstellungen berücksichtigen auch, ob der Benutzer diesen oder jenen Programmteil sehen kann. Einstellungen lassen sich für jede Benutzergruppe in der Navigationstabelle einstellen.

 

Navigationsscript für die Seitennavigation

Beim Klicken auf dem Textfeld wird das Navigationsscript ausgelöst. Es wird ein ScriptParameter mitgegeben, der wiederum nur ein Bezug zu einem zentralen Feld darstellt. Mehr zu diesem Thema bei den Voreinstellungen der Navigation.

 

 

Grafikfeld auf dem Portal

Neben dem Textfeld gibt es auch noch ein Feld für die kleine Pfeilgrafik neben den Untergruppen. Dies ist das Feld «CollapseExpand» aus derselben Beziehung zur Navigationsdatei. Das Symbol wird in der aktuellen Version aus einer Schrift bezogen. Alternativ kann auch zwischen zwei Symbole gewechselt werden, die als Grafikdatei in den Voreinstellungen der Navigation abgespeichert werden.

 

Tip: Zwischen beiden Varianten lässt sich umschalten durch die Bearbeitung der Berechnung im Feld «CollapseExpand». Die Grafikversion ist zurzeit ausgeklammert.

 

 

 

 

 

 

Navigation implementieren

Navigation auf einem neuen Layout implementieren

Es ist ganz einfach eine Navigation auf einem neuen Layout zu implementieren. Mit ein bisschen Übung ist das in ein paar Minuten erledigt. Es ist so einfach, dass es sich lohnt auch für wenig benutzte Layouts eine Navigation bereitzustellen. Damit ist die spätere Verwaltung der verschiedenen Layouts um einiges einfacher.

Dies sind die Arbeitsschritte:

  1. Neue Tabelle anlegen, z.B. [VERKAUF] und darin zumindest die globalen Felder [g1] und [g2] mit den Werten 1 und 2 sicherstellen.
  2. Im Beziehungsdiagramm von der Tabelle [VERKAUF] aus zwei neue neue Instanzen der Navigation mit folgenden Namen anlegen:
    VERKAUF_TopNav
    VERKAUF_LeftNav
  3. Definieren Sie die Beziehung und Sortierung der beiden Beziehungen
  4. Von einem bestehenden Layout kopieren Sie die Navigationselemente auf das neue Layout [VERKAUF]
  5. Passen Sie die Portale und Felder auf die Beziehungen VERKAUF_TopNav oder VERKAUF_LeftNav an.
  6. Tragen Sie die Seite in der Navigationstabelle am gewünschten Ort ein.

Fertig!

Alle ScriptParameter, Filtereinstellungen usw. sind dynamisch und müssen nicht weiter angepasst werden.

 

 

Tip: Erscheint die Navigation nicht, liegt dies eventuell daran, dass in der neuen Tabelle [VERKAUF] noch keinen Datensatz vorhanden ist.

 

 

 

 

 

Fensternummer

Fensternummer einstellen

Das Modul «DynamicNavigation» erlaubt eine automatische Anpassung der Navigation für verschiedene Fenster.

Damit das klappt, müssen zwei Dinge erfüllt sein:

  1. Jedes Fenster muss als erstes Zeichen eine eindeutige Ziffer erhalten
    Weiteres dazu finden Sie in dem Script-Ordner «FM STARTER WINDOWS».
    Für jedes Fenster muss die Ziffer explit beim Öffnen des Fensters gesetzt werden.
  2. Jeder Eintrag in der Navigationstabelle muss eindeutig einem Fenster zugeordnet werden
    Das Feld «WindowNumber» zeigt die vorgesehenen Fensternummern aus einer Werteliste.

 

Zur Unterstützung gibt es ein einziges globales Wiederholfeld [gModulesActivePerWindow]. Es wurden 10 Repetitionen für das Feld angegeben – mehr als benötigt werden. Der Wert für Fenster 1 wird nun in der Repetition 1 geschrieben, der Wert für Fenster 2 wird in der Repetition 2 geschrieben, usw. So kann ein Feld für theoretisch beliebige Fenster den aktuellen Status speichern.

 

 

 

Werteliste WindowNumber

Werteliste für das Feld WindowNumber

In der Navigationstabelle wird über das Feld WindowNumber das Fenster eingestellt, für das der Navigationseintrag gilt.

 

 

Die Werte für diese Werteliste werden in einer eigenen Tabelle unter > Entwicklerfenster > Navigation > Wertelisten aufgeführt.

 

 

 

Scripts beachten

Neue Fenster müssen über Scripts angelegt werden. Für die vorhandene drei Fenster  gibt es entsprechende Scripts im Script-Ordner «FM STARTER WINDOWS».

Es werden von der Navigation beliebig viele Fenster unterstützt. Die Werteliste zeigt nur die Auswahlmöglichkeiten für den Benutzer. Möchten Sie weitere Fenster integrieren, dann benötigt es zwei Anpassungen:

  1. Scripts anlegen, die das neue Fenster generieren
  2. Den neuen Wert mit Beschreibung in dieser Werteliste WindowNumber aufführen

Danach lässt sich das neue Fenster in der Navigationstabelle für jeden Eintrag einstellen.

 

 

Werteliste PositionType

Werteliste PositionType

Das Feld PositionType in der Navigationstabelle gibt an, in welchem Teil der Navigation der Eintrag erscheinen soll.

 

 

Der Eintrag «1» definiert einen Eintrag in der Topnavigation. Der Eintrag «2» definiert einen Eintrag in der Seitennavigation.

Dies sind Voreinstellungen in FM Starter. Sie können diese Werten und Angaben einfach selbst anpassen oder erweitern; Sie können beispielsweise eine dritte Ebene anlegen. Die vorhandenen Positionstypen werden in der Werteliste PositionType definiert. Sie finden diese Werteliste unter

> Entwickler-Fenster > Navigation > Wertelisten

 


 

Neue Navigationsteile definieren

Möchten Sie neue Navigationsteile aufbauen, die weder zur Topnavigation, noch zur Seitennavigation gehören, dann können Sie einen dritten PositionType entwickeln. Dazu brauchen Sie folgendes:

  1. Die Navigationstabelle muss um weitere Voreinstellungsfelder ergänzt werden, die diesem Typ entsprechen
    Beachten Sie: ScriptParameter, Bedingte Formatierung, Portalfilters, usw.
  2. Der neue PositionType muss mit einer Zahl in dieser Werteliste eingefügt werden, damit sie in der Navigationstabelle zur Verfügung steht.

 

 

Benutzergruppen

Sichtbarkeit nach Benutzergruppen

Das Modul «DynamicNavigation» wurde für FM Starter mit Funktionen der Benutzerverwaltung erweitert. Jeder Eintrag der Navigation kann für eine der sechs Benutzergruppen aktiviert oder deaktiviert werden. Die Einstellungen finden sich in der Navigationstabelle ganz rechts:

 

 

Die Zahlen 1–6 entsprechen den Benutzergruppen des Moduls «UserManagement».

 

Administrator (1)

Die Zahl 1 gilt für den Administrator. Jeder Navigationseintrag wird automatisch für den Administrator aktiviert und dies kann nicht geändert werden.

 

Übrige Gruppen (2–6)

Für alle weitere Gruppen kann frei eingestellt werden, welche Gruppe einen bestimmten Eintrag sieht, und welche nicht. Es gibt hier nur eine Unterscheidung nach Benutzergruppen und nur in Bezug auf die Sichtbarkeit bestimmter Navigationseinträge. Die Sicherheit selbst wird mit den üblichen Filemaker-Konten für jede Gruppe erstellt. Weitere Angaben im Kapitel «Benutzerverwaltung».

Tip: Beachten Sie, dass dies eine zweistufige Navigation ist. Ein Eintrag in der linken Navigation kann von einem Benutzer nur dann gefunden werden, wenn auch der Eintrag in der Topnavigation aktiviert ist.

 

Anwendungen

Sie können verschiedene Benutzergruppen unterschiedliche Teile des Programms zeigen und den Rest verbergen. Das macht die Bedienung einfacher und es ist auch ein Sicherheitsaspekt, der Beachtung verdient. Hier einige Anwendungsbeispiele:

  • Sie können eine Finanzbuchhaltung programmieren und diese Funktionalität z.B. für das Verkaufsteam verbergen.
  • Sie können einen Gastzugang zum Abrufen bestimmter Informationen einrichten, aber alle weitere Programmteile ausblenden.
  • Sie können durch neues Einloggen mit einem anderen Account Zugriff auf neue Funktionen gewähren.

 

Selbstredend funktioniert diese Aufteilung nach sichtbar/unsichtbar nur, wenn die Seiten tatsächlich über die Navigation angesteuert werden müssen. Wer Querverbindungen auf andere Arten schafft, steht ausserhalb dieses Mechanismus und muss dann anderweitig Vorkehrungen treffen.

 

 

Layoutscripts

Layoutscripts

Layoutscripts sind wichtige Elemente der dynamischen Navigation. Sie verarbeiten Scriptparameter aus der Navigationstabelle. Die Navigation macht lediglich zwei Dinge:

  1. Es wird zu einem Ziellayout navigiert
  2. Es wird aus der Navigationstabelle einen Scriptparameter zu einer globalen Variable umgewandelt.

Die Navigation begrenzt sich auf diese zwei Aufgaben. Es werden keine Funktionen auf den Seiten direkt ausgelöst. Diese Aufgabe übernehmen Layoutscripts. Das funktioniert so: Das Navigationsscript schreibt den Parameter in die globale Variable $$Scriptcall. Auf der Zielseite gibt es ein sogenanntes «Layoutscript», welches nur Funktionen für eben dieses Layout bereitstellt. Das Layoutscript wird aktiviert durch den Scripttrigger «BeiLayoutBetreten». Das Layoutscript selbst tut nichts, es sei denn, der Scriptparameter wird erkannt. Hätte der Eintrag in der Navigationstabelle beispielsweise den Parameter «startup», würde das Layoutscript dies abfragen:

Wenn ( $$scriptcall = "startup" )

… hier die Funktion…

Ende Wenn

 

ScriptParameter wird zum $$Scriptcall

Das Navigationsscript wandelt den ScriptParameter aus dem Feld «Parameter» in eine globale Variable mit dem Namen $$Scriptcall um. Diese globale Variable bleibt bestehen, wenn das Navigationsscript abgelaufen ist und kann deshalb von einem Folgescript interpretiert werden.

Sollte nun auf der Zielseite etwas bewirkt werden, kommt der $$Scriptcall zum Zug. Es wird ein Script für das Ziellayout angelegt, welches auf den Scripttrigger «BeiLayoutBetreten» aktiviert wird. Führt das Navigationsscript also zu einem Ziellayout, wird automatisch das Layoutscript für die Seite gestartet. Der Scriptcall-Variable aktiviert nun den gewünschten Abschnitt des Scripts.

 

Beispiel: Logout

 

Das Feld «Parameter» schreibt [Login | UserLogout]. «Login» ist der Name des Ziellayouts. «UserLogout» ist der Parameter für die Zielseite.

Das Layoutscript für dieses Layout trägt den Namen «Login: Layoutscript», welches mittels einem Scripttrigger «BeiLayoutBetreten» aufgerufen wird. In diesem Script gibt es einen Abschnitt, welches aktiviert wird mit dem Parameter «UserLogout». Die Übergabe von dem Scriptparameter «UserLogout» wird vom Navigationsscript ausgelöst, welches diesen Begriff als Wert für die globale Variable $$Scriptcall definiert. Das Layoutscript wertet diese variable aus.

 

Überlegungen zu den Layoutscripts

Das Ziel von Layoutscripts ist zweierlei:

  • Vermeidung von Redundanzen
  • Weitgehende Entflechtung von Funktionen / Layouts / Scripts

Layoutscripts sind kompakte Scripts, die ortsgebunden funktionieren. Dadurch sind sie schlank und leicht zuzuordnen. Sie sind eine mächtige Erweiterung zur Navigation, die keine Komplexität voraussetzen, sondern bei Bedarf dort erstellt werden, wo sie wirken sollen.

Layoutscripts gehören zum Layout für das sie geschaffen wurden. Ihr Wirkungsbereich betrifft den Daten auf diesem Layout und sonst nichts. Funktionen von oder für andere Seiten werden entweder als $$Scriptcall entgegengenommen oder durch Verweis auf einen anderen Script ausgelöst. Dies verhindert eine Spaghetti-Programmierung mit langen komplexen Scripts, die in verschiedenen Bereichen hineinführen.

Verweise auf andere Scripts mit entsprechendem ScriptParameter sind übersichtlicher und deshalb leichter zu erkennen. Ortsgebundene (Layout-) und Bereichsgebundene (Modul-) Scripts helfen dabei die Übersichtlichkeit zu steigern.

Hier ein Beispiel dieses Aufbaus aus dem UserManagement Script, das ein Ablauf in ein und demselben Script durch das Abspielen verschiedener Abschnitte kurz und knapp formuliert. Ausgelöst wird der Abschnitt durch den $$Scriptcall = „startup“. Danach wird derselbe Script 3x abgerufen, jedoch mit unterschiedlichen Parametern.

 

 

 

 

Dummy Seite

Dummy Seite

Bevor die Navigation zu einer Zielseite schaltet, wird zuerst zu einer Dummy Seite gesprungen.

 

 

Dies wurde aus zwei Gründen integriert:

  1. Fehler Rückmeldungen im Navigationsablauf
  2. Zur Reaktivierung der Funktionalität auf derselben Seite

Die Umschaltung zur Dummy Seite ist normalerweise nicht sichtbar. Der Ablauf ist wie folgt:

[Ursprungsseite] > Dummy Seite > Zielseite

 

Wird die Zielseite nicht korrekt mitgegeben, bleibt das Navigationsscript auf der Dummy Seite hängen. Dies lässt sich für Fehlerrückmeldungen nutzen.

  • Mit einem aktiven Entwickler Account erscheint der Button unter dem Text, womit der Entwickler zurück zur Entwicklerseite springen kann, um den Fehler zu beheben.
  • Normale Benutzer können nur auf den Schliessen Knopf links oben drücken, welches ein Logout erzwingt.

 

Fehler

Stimmt etwas nicht, dann bleibt die Navigation auf der Dummy Seite hängen. Das kann bei Angabe eines falschen Layoutnamens in der Navigationstabelle sein, oder beispielsweise auch, wenn der aktive Gruppenaccount (Filemaker Account) auf die Zielseite keinen Zugriff erlaubt.

 

Reaktivierung von Funktionen

Wenn man bereits auf einer Seite ist, dort aber über die Navigation verschiedene Funktionen auslösen will, dann benutzt das Modul DynamicNavigation dazu Layoutscripts. Diese werden aktiviert über den Script Trigger «BeiLayoutBetreten». Ist man aber bereits auf der Seite, dann lässt sich über die Navigation keine weitere Funktion abrufen. Es sei denn, man verlässt die Seite und kommt wieder zurück. Dazu dient die Dummy Seite.

Ausserdem bewirkt der Wechsel zur Dummy Seite (und wieder zurück zur Ausgangsseite), dass eine Bedingte Formatierung auf der Seite aktualisiert wird.

Anwendungsbeispiele:

  • Auf einem Listenlayout wird die Navigation dazu genutzt, verschiedene Suchen auszulösen
  • Auf einem Maskenlayout wird die Navigation dazu genutzt, mit Bedingter Formatierung verschiedene Elemente hervorzuheben

 

 

Benutzerverwaltung

FM Starter hat eine einfache Benutzerverwaltung integriert. Sie arbeitet mit wenigen Filemaker Accounts, die als Gruppen betrachtet werden. Benutzer werden einer Gruppe zugeordnet und erhalten dann die Rechte dieser Gruppe.

 

Modul «UserManagement»

Benutzerverwaltung leicht gemacht

FM Starter kommt mit einer implementierten Benutzerverwaltung. Sie dürfte vielen Anforderungen gerecht werden und ist gut integriert. Die Basisidee ist es, Filemaker Accounts nicht für einzelne Anwender, sondern für Anwendergruppen zu erstellen. Die Anwender selbst werden in einer Benutzertabelle aufgeführt, worin u.a. die ensprechende Gruppe aktiviert wird.

Die Anwendung in aktueller Form ist einfach:

  1. Der Administrator legt im Administrator Fenster neue Benutzer Accounts mit Name, Kennwort, Start- und Enddatum sowie einer Gruppenzuordnung an
  2. Der Benutzer kann sich jetzt mit Name und Kennwort einloggen, und hat Zugriff auf das Programm gemäss den Gruppeneinstellungen.

 

Vertiefung der Anwendung:

 

Das Modul «UserManagement»

Filemaker verfügt über eine gute Benutzerverwaltung mit Filemaker Accounts. Damit lassen sich Benutzer anlegen, sowie alle Sicherheitsmerkmale, die für diesen Benutzer wichtig sind. Ein Nachteil ist, dass diese Angaben nicht in einer Tabelle verwaltet werden. Darum gehen viele Entwickler dazu über, eine eigene Benutzerverwaltung zu erstellen, die zwar Filemaker Konten nutzt, sie aber über eine Tabelle steuert.

FM Starter nutzt das Modul «UserManagement». Besonders an dieser Lösung ist, dass Filemaker Konten nicht für Personen, sondern für Benutzergruppen oder allenfalls für Funktionen eingesetzt werden. Das heisst, dass beispielsweise alle Administratoren ein einziges Administratorenkonto teilen, jedoch mit jeweils eigenen Zugangsdaten. Ebenso teilen die meisten Anwender vermutlich ähnliche Rechten. Dadurch lässt sich die Verwaltung der Konten vereinfachen.

FM Starter erlaubt das Einrichten von 6 Standardkonten für 6 Benutzergruppen. Die Verwaltung über eine Tabelle ist übersichtlich und erlaubt weitere Anpassungen, wie z.B. Start- und Enddatum des Zugriffs und eine Steuerung der sichtbaren Navigation. Weitere Optionen lassen sich hier integrieren.

 

Funktionsweise des Moduls

Grafische Darstellung des Logins:

 

 

Es gibt ein automatisches Standardlogin beim Öffnen der Datei. Dieses Login erlaubt den Zugriff bis zum Login Fenster. Alle weitere Funktionen, Zugriff und Layouts sind gesperrt. Vom Login Fenster kommt der Benutzer nur weiter, wenn Benutzername und Passwort ein aktiver und gültiger Eintrag in der Benutzerdatenbank finden.

 

Zugang gemäss der Benutzergruppe

Ein Benutzer wird immer einer Benutzergruppe zugeordnet. Jede Benutzergruppe

  • werden eigene Rechte zugeordnet (Filemaker Account im Hintergrund)
  • kann nach dem Login auf eine unterschiedliche und eigene Zielseite landen
  • erhält bei Bedarf eine eigene Navigation durch Ausblendung unnötiger Seiten

Je nach Benutzergruppe erhält der Anwender also unterschiedliche Möglichkeiten zur Bedienung des Programms. Sie können dies frei einstellen.

 

Erweiterung der Benutzergruppen

Die verschiedenen Benutzergruppen können selbstverständlich erweitert werden. Zur Erweiterung der Benutzergruppen machen Sie folgendes:

  1. Legen Sie ein neues Filemaker Konto mit Name und Passwort an
  2. Erweitern Sie im UserManagement Settings Script die Login Prozeduren um diese Angaben.

 

 

UserManagement Einstellungen

Einstellungen des User Management Moduls

Das User Management Modul ist bereits implementiert und funktioniert. Sie müssen also nicht viel damit tun, als nur die neuen Benutzer eintragen. Das wird in der Regel die Arbeit des Administrators sein.

Möchten Sie allerdings Erweiterungen oder Anpassungen vornehmen, dann finden sich die meisten Einstellungen im Script «UserManagement Settings». In diesem Script gibt es zwei Arten von Einstellungen:

  • Einzelaktionen (zur Aktivierung von Filemaker Konten oder Menüsets)
  • Login Prozeduren (mit verschiedenen kombinierten Einzelaktionen)

Sie lassen sich vom Entwickler-Fenster aus auch direkt ansteuern:

 

 

Es gibt drei Spalten:

  1. Startup File & Scripts
  2. Login Screen
  3. Optional

Der Bereich Startup zeigt zwei Anmeldemöglichkeiten: Startup Script oder Entwickler Login. Das Startup Script führt zum regulären Login Screen, welches vom Modul UserManagement verwaltet wird.

Der Bereich Login Screen zeigt, welche Varianten für das reguläre Login möglich sind. Hier wird lediglich die Wahl zwischen den 6 vordefinierten Gruppenaccounts des UserManagement Moduls sein. Jedes dieser Login-Prozeduren fasst verschiedene Einstellungen zusammen, die den Zugriff für diese Gruppe bestimmen. Sie lassen sich in den Einstellungsscripts anpassen.

Die dritte Spalte zeigt die Bausteine für die Anmeldevorgänge. Die Anmeldung für Filemaker Accounts und die Installation der Menüsets sind auch einzeln ansteuerbar. Ob Sie diese auch einzeln nutzen möchten, ist Ihnen überlassen. Es wird hier lediglich aufgezeigt, dass man die Funktionen einzeln einfach ansteuern kann – wenn dafür Bedarf besteht.

 

Zahlenbereiche im UserManagement Settings Script

Alle Einstellungen im Settings Script sind mit Zahlen kodiert. Es gibt Zahlenbereiche für Filemaker Konten, Zahlenbereiche für Menüsets und Zahlenbereiche für Login Prozeduren.

Zahlenbereich 1…99 für Login Prozeduren
Zahlenbereich 100…299 für Filemaker Accounts
Zahlenbereich 300–999 für Menü Sets
Zahlenbereich über 1000 für vollständigen Filemaker Zugriff und Entwickler Accounts & Settings.

Das Hauptscript «UserManagement» verarbeitet die Zahlenbereiche selbständig, sodass es keine Anpassungen im Hauptscript benötigt. Innerhalb dieser Zahlenbereiche können beliebig viele Erweiterungen derselben Art hinzufügt werden. Einer Erweiterung der Benutzerverwaltung steht also nichts im Wege.

 

 

 

Benutzerverwaltung im Entwickler Fenster

Benutzerverwaltung Einstellungen

Ein schneller Blick in die Benutzerverwaltung ergibt sich auch im Entwickler Fenster. Unter «Benutzer / Benutzerverwaltung» ist die Funktionalität des Moduls «UserManagement» abgebildet.

Die Benutzerverwaltung im Entwicklerfenster umfasst Login Prozeduren und Einzelaktionen, die sich hier per Knopfdruck umschalten lassen. Hier sehen Sie auch, welche Teile eine bestimmte Login-Prozedur benutzt. Von links nach rechts gibt es drei Spalten:

 

Spalte 1 – Situation beim Startup der Datei

Eines dieser Möglichkeiten:

  • Reguläres Login mit einem Benutzeraccount (Startup Script)
  • Entwickler Login

 

Spalte 2 – Die Möglichkeiten vom Login Screen

Ein reguläres Login nutzt eines von 6 möglichen Gruppen Accounts:

  • Login 1 (Administrator)
  • Login 2
  • Login 3
  • Login 4
  • Login 5
  • Login 6

Login 1 ist immer der Administrator. Die übrigen Accounts lassen sich frei einrichten mit den normalen Sicherheitseinstellungen von Filemaker. Wichtig ist hier, dass alle Dateien der Lösung dieselben Accounts mit denselben Namen und Passwörtern erhalten - also auch die Datendateien!

 

Spalte 3 – Einzelaktionen

Hier lassen sich die verschiedenen Filemaker Accounts und Menüsets einzeln aktivieren. Wenn Sie bereits auf die Login-Prozeduren geklickt haben, konnten Sie live mitverfolgen wie die verschiedenen Konten und Menüsets in der dritten Spalte dadurch aktiviert wurden. Hier lässt sich auch wieder auf den Entwickler Zugriff umschalten.

 

 

 

Wechsel des Accounts

Ein Benutzer kann sich abmelden, damit ein anderer Benutzer sich wieder anmelden kann. Dazu muss das Programm nicht verlassen werden.

Über die Navigation lässt sich einen Eintrag erstellen mit als Ziellayout das Layout «Login» und als Parameter «UserLogout».

 

Im Modul UserManagement wird nun der aktuelle Benutzer mit allen Einstellungen deaktiviert und das reguläre Startup-Prozedere wird auf der Login-Seite aktiviert. Dies kommt einem Neustart gleich.

 

 

 

 

Datenzugriff und Filemaker Konten

Datenzugriff sicherstellen

FM Starter benutzt das Filemaker Modul «UserManagement» für die Verwaltung von Benutzern. Dabei nutzt es einige wenige Filemaker Konten. Diese werden eingestellt mit den Standardmöglichkeiten von Filemaker unter «Dropdownmenü Ablage / Verwalten / Sicherheit».

 

 

Es gibt Accounts für

  1. Entwickler
    -
  2. Systemadministrator
  3. Usergroup
  4. Usergroup
  5. Usergroup
  6. Usergroup
  7. Usergroup
    -
  8. Login

 

 

Name und Passwort dieser Konten müssen an folgenden Orten korrekt eingetragen werden:

  1. Script: UserManagement Settings
  2. Sicherheitseinstellungen in externen Dateien

 

Externe Dateien

Sicherheitseinstellungen für mehrere Dateien sollten sorgfältig abgestimmt werden. Hier einige Anhaltspunkte:

  1. Externe Dateien, die von FM Starter aus verlinkt werden, erhalten automatischen Zugriff via denselben Filemaker Konten, insofern diese identisch mit denen der Hauptdatei sind. Es empfiehlt sich deshalb bei Mehrdatei-Lösungen dieselben Accounts in jeder Datei anzulegen. Name und Passwort sollten gleich sein, obwohl die Einstellungen pro Datei unterschiedlich sein dürfen.
  2. Zugriffsberechtigungen bei Mehrdatei-Lösungen betreffen immer die Rechte sowohl der Hauptdatei wie auch der externen Dateien. Wenn die Hauptdatei die Benutzeroberfläche zur Verfügung stellt, während in der externen Datei nur Daten abgelegt sind, muss der Zugriff auf die Daten in beiden Dateien gewährleistet sein.
  3. Bei einem Re-Login in der Hauptdatei (Wechsel eines Accounts) müssen auch alle externe Dateien ein Re-Login durchführen. Ansonsten werden die Rechte in der externen Datei nicht aktualisiert. Richten Sie dies so ein, wie Sie es benötigen.

 

Tip: Schauen Sie sich die Datei FM-xData.fmp12 an, die als externe Datei angebunden ist. Es sind dort dieselben Konten wie in der Hauptdatei vorhanden.

 

 

Datei einrichten

So fangen Sie an: In diesem Abschnitt lesen Sie wie sich von der Starterlösung FM Starter zur eigenen Lösung gelangen.

FM Starter als Startdatei

FM Starter ist als Startdatei für Ihre eigene Lösungen gedacht. In diesem Kapitel geht es darum, von der allgemeinen Startdatei Ihre eigene Starterlösung zu erstellen. Das geht ganz einfach.

Einige grundsätzliche Überlegungen:

  1. Arbeiten Sie stets mit Kopien von FM Starter
  2. Nutzen Sie die Struktur von FM Starter
  3. Machen Sie ein kleines Testprojekt bevor Sie richtig loslegen
  4. Bauen Sie aus FM Starter Ihre ganz eigene Starterlösung!

 

Bevor Sie loslegen

Es gibt keine Vorgaben, die Sie unbedingt einhalten sollten; Wir wissen, dass jeder Programmierer etwas anders denkt und vorgeht. FM Starter soll nicht einengen, sondern unterstützen. Denken Sie in Strukturen, mehr als in rigiden Vorgaben. Halten Sie diese Strukturen einfach. Vermeiden Sie Verflechtungen von Scripts, Tabellen, Layouts.

Die Arbeit mit Strukturen kann ungewohnt sein, wenn man bislang stets nur den kürzesten Weg zum Ziel gewählt hat. Weshalb also hier für jede Aufgabe klar getrennte Scripts, Layouts und Tabellen angelegt werden, kann auf den ersten Blick befremdend wirken. Konsequent wurde in FM Starter alles an Funktionalität sichtbar in einem der mehreren Fenster abgelegt. Entwickler, Administratoren und Benutzer finden alle Angaben in eigenen Fenstern. Wird hier kein Mehraufwand betrieben? Liesse sich dieses oder jenes nicht schneller und einfacher realisieren? Das Ziel hinter diesen Dingen ist die Transparenz, die Portabilität von neuen Ideen und die bessere Ausgangslage für eine Zusammenarbeit.

Tasten Sie sich an neue Lösungsmöglichkeiten heran. Im Entwicklungsprozess hat es sich oft bewährt, sich verschiedene Varianten klar vor Augen zu halten, bevor nächste Entwicklungsschritte stattfinden. Bestimmt haben Sie Erfahrungen gemacht, die mir als Entwickler von FM Starter bislang noch unbekannt waren. Trauen Sie sich, das Gute durch Besseres zu ersetzen.

 

 

 

Dateien umbenennen

Dateien umbenennen

Als erstes möchten Sie vielleicht die Dateinamen so anpassen, dass Sie Ihr Projekt entsprechen.

FM Starter wurde aufgesetzt mit einer Interface-Datei und einer Datendatei. Dabei ist die ganze Logik und die ganze Bedienungsoberfläche in der Hauptdatei untergebracht. Tabellen aus der Datendatei werden in der Hauptdatei verlinkt (Externe Datenquellen) und dargestellt (Beziehungsdiagramm).

Es gibt verschiedene Möglichkeiten, die Dateien umzubenennen:

  1. Von Hand
    Benennen Sie zuerst die Dateien um, und stellen Sie dann die Externe Datenquellen für die Dateien neu ein.
  2. Mit Filemaker Pro Advanced
    Die Entwickler-Tools in Filemaker Pro Advanced gestatten es, auch komplexe Lösungen mit mehreren Dateien auf einmal umzubenennen, wobei die Relationsintegrität beibehalten bleibt.

 

Variante 1: Von Hand umbenennen

Kopieren Sie die FM Starter Dateien und benennen Sie diese von Hand um.

Danach stellen Sie die Externe Datenquellen um:

 

 

 

Datenpfade von der Hauptdatei neu setzen und nicht-zutreffende Angaben löschen. Soweit nötig von jeder externen Datei aus wiederholen.

 

 

 

Variante 2: Filemaker Pro Advanced Entwicklertools

Im Dropdown-Menü «Werkzeuge» gibt es die «Entwicklungswerkzeuge»:

 

 

Hier lassen sich verschiedene Dateien auswählen und anschliessend umbenennen. Wählen Sie ein neues Zielverzeichnis (Projektordner) und aktivieren Sie keine weitere Einstellungen. Die Umbenennung von Hand entfällt nun, so auch die Neuzuordnung von Externen Datenquellen.

 

 

 

 

 

 

 

Angaben zur Software

Angaben zur Software

Passen Sie als nächstes die Angaben zur Software an. Dies lässt sich im Entwickler Fenster erledigen. Überschreiben Sie die Angaben von FM Starter und speichern Sie die Einstellungen. Beim nächsten Programmstart werden die neuen Angaben genützt.

 

 

Anpassung der Startsprache

Die Sprache, welche beim Aufstarten der Applikation gewählt werden soll, lässt sich im Entwickler-Fenster festlegen.

 

 

Software Details ergänzen

Im Entwickler Fenster unter «Diese Software» können verschiedene Angaben werden, wie beispielsweise der Name der Software, die Versionsnummer oder die Angaben für das Fenster «Über…».

 

Das Fenster «Über…»

Zu jeder Software gehört ein Fenster mit den Details zur Applikation. Dieses «Über…» Fenster kann vom Benutzer im Dropdown Menü Filemaker abgerufen werden. Die Textangaben werden im Entwickler Fenster angeben.

Das Bild stammt direkt aus der Grafikverwaltung und kann dort angepasst werden.

 

(Das Bild in der Toolbox)

 

 

Gestaltungsthemen

Gestaltungsthemen ergänzen

FM Starter kommt mit zwei Gestaltungsthemen, ein helles und ein dunkles Thema, die sich im Entwicklerfenster anpassen lassen.

 

 

 

 

FM Starter benutzt das Design «FM Starter Design 1». Möchten Sie das ursprüngliche FM-Starter «look-and-feel» nicht durcheinanderwerfen, empfiehlt es sich, Änderungen an Designs in neuen Themen zu entwickeln.

Das Thema «FM Starter Design 1» ist ausführlicher aufgebaut als das zweite Thema.

 

 

 

Musterseiten

Musterseiten anlegen

Wenn das Gestaltungsthema definiert ist, hat es sich bewährt, von allen wichtigen Seitenmuster entsprechende Vorlagen zu erstellen. Sie können diese bei den Themen als eigenständige Layouts ablegen. Von dort lassen sich Elemente für neue Tabellen und Layouts einfach kopieren.

Musterseiten sind im Entwickler Fenster aufgeführt.

 

 

 

Alle Navigationselemente und Toolbars sind hier bereits definiert.

 

 

 

 

Grafikelemente

FM Starter kommt mit einer Grafikverwaltung und rund 300 vorinstallierten Grafiken.

 

 

 

Grafiken in FM Starter

Grafiken in FM Starter

Grafiken werden in FM Starter zentral abgelegt in der Tabelle «Graphics». Im Entwickler Fenster gibt es den Abschnitt «Grafiken», wo sich die Piktogramme ablegen und zuordnen lassen.

 

 

Das Fenster «Piktogrammen» ist die Standardseite. Im Fenster «Toolbox» gibt es davon eine schmale Variante.

 

 

Container Attribute

Zu jedem Grafikfeld gibt es im QuickInfo die wichtigsten Attribute zum eingelagerten Bild. Damit lässt sich bereits viel über den Inhalt erkennen, ohne das Bild auslagern zu müssen (Bildgrösse, Transparenz, usw.).
 

 

Grafikfelder

FM Starter benutzt zwei Containerfelder für zwei Statusvarianten, die sich bei Bedarf einrichten und nutzen lassen, beispielsweise zur Darstellung einer Statusänderung. Jedes Containerfeld hat 400 Wiederholungen. Die Felder werden als Globale gespeichert. Dadurch sind die Grafiken überall direkt verfügbar.

Jedes dieser Wiederholfelder lässt sich direkt auf dem Layout positionieren und im Inspektor bestimmen.

 

 

Iconset „IKONS“

Die vorhandenen Grafiken stammen aus dem Iconset «IKONS» von Piotr Kwiatkowski. Sie sind kostenlos zu benutzen und umfassen nicht nur die hier gezeigte Formate. Eingebunden in FM Starter sind 128px grosse PNG-Dateien. Der ursprüngliche Set umfasst auch Vektordaten, Photoshop-Daten usw. Die Webadresse ist direkt verlinkt aus FM Starter.

Tip: Es empfiehlt sich, diese Daten vollständig und zusammen mit der Lizenzerklärung herunterzuladen.

Selbstverständlich lassen sich die Grafiken auch von eigenen oder anderen Sets ersetzen.

 

 

 

Interaktive Schalter

Interaktion gestalten

Auf den Grafikseiten gibt es ein paar Muster interaktiver Schaltungen, die Statusänderungen visualieren können.

 

 

 

Beispiel

Das Modul QuickFind wurde so implementiert, dass es eine Text-Version und eine Grafik-Version gibt. Hier lässt sich auch erkennen, wie die verschiedenen Elemente implementiert wurden (Schalter, Ausblenden, usw.). Die Beispiele gibt es im Entwickler Fenster unter > Module > QuickFind.

 

 

 

 

 

Grafik Toolbox

Grafiken lassen sich nicht nur im Entwickler-Fenster, sondern auch über den praktischen Toolbox erreichen.

 

 

Diese Ansicht ist primär dazu gedacht, die zur Grafik gehörenden Repetitionsnummer schneller zu finden.

 

 

 

 

Filemaker Module

Filemaker Module

FM Starter nutzt Filemaker Module. Das Konzept von Filemaker Modulen wird von Todd Geist auf modularfilemaker.org vorgestellt. Am besten man stellt sich diese Module als Bausteine vor, die man recht einfach zur Entwicklung eigener Lösungen nutzen kann.

www.modularfilemaker.org

Filemaker Module sollen Filemaker Bausteine allgemein zugänglich machen. Das Ziel ist es, gut portierbarer «Code» zu generieren, mit definierten Schnittstellen und Anleitungen zum Einbauen. Das funktioniert hervorragend und die Ideen werden intensiv für FM Starter genutzt.

Die Lektüre der Website ist empfohlen. Es gibt ausserdem bereits eine Vielzahl Modulen zu unterschiedlichsten Themen, die auf der Website vorhanden sind oder von dort verlinkt werden. Laufend kommen weitere Module hinzu.

 

In drei Schritten zum Erfolg

Das Konzept ist ebenso einfach wie überzeugend und besticht durch nur 3 Schritte:

  1. Kleine Aufgaben lösen
    Es geht nicht darum, komplette Programme zu schreiben, sondern kleine Aufgaben so zu lösen, dass sie überall verwendbar werden. Die Portabilität ist einfacher zu realisieren, wenn kleine Programmteile gebraucht werden.
  2. Fokussieren
    Komplexität vermeiden. Einfache Lösungen anstreben, die in sich funktionieren. Gut testen und weiterhin pflegen.
  3. Aus klein mach' gross
    Grössere Teile aus kleineren Einheiten aufbauen. Das geschieht beispielsweise hier in FM Starter.

 

Dokumentation

Die Dokumentation ist in den Modulen selbst erhalten. Zentral stehen die Scripts, die eine klare Struktur aufweisen und auch Textinformationen bereithalten. Weiteres dazu direkt auf der Website modularfilemaker.org. Was dort steht, gilt auch für die Module, die hier in FM Starter eingebaut sind.

 

Modul-Dateien als Augangslage

Es mag auf den ersten Blick als Umweg aussehen, aber Module werden als eigene Dateien angelegt, mit

  • eigenen Tabellen
  • eigenen Layouts
  • eigenen Scripts
  • eigenen Objekten, Parameter, usw.

 

Dieses Vorgehen macht aber Sinn. Es geht ja um die Portabilität. Idealerweise beginnt man mit einer leeren Datei. Vielleicht entwickelt man auch mall ein Modulansatz in einer fertigen Lösung. Sobald die Funktion ausgereift ist, kann man sie ausgliedern und zu einem vollwertigen Modul ausbauen. Diese lässt sich dann viel einfacher in neue Projekte integrieren.

Die Idee ist: Ich habe eine Sammlung mit Modulen, bzw. mit Modul-Dateien, die alle funktionieren. Updates können hier gemacht werden und künftige Projekte profitieren davon.

Sind externe Module ausgereift, können Sie als Module in fertige Lösungen (z.B. FM Starter) übernommen werden. Die Installationsanforderungen sollten in dem README Script beschrieben sein. Die meisten Module lassen sich zügig implementieren, weil alles Schritt für Schritt beschrieben ist.

 

 

 

FM Starter Module

FM Starter arbeitet mit modularen Filemaker Bausteinen nach Ideen von Todd Geist. Seine Ideen haben massgeblich zur Entwicklung von FM Starter beigetragen und es lohnt sich, diese Ansätze kennenzulernen.

Auf der Website fmstarter.com sind kostenlose Versionen vieler FM Starter Module aufgeführt. Es gibt jedoch beträchtliche Unterschiede zwischen den kostenlosen Modulen und den Modulen, die mit FM Starter ausgeliefert werden.

Die Unterschiede sind diese:

  1. Module in FM Starter sind häufig weiterentwickelt
    Beispielsweise unterstützt die Dynamische Navigation mehrere Fenster.
  2. Module in FM Starter wurden dort integriert
    Sie sind zum Beispiel mehrsprachig, beziehen sich aufeinander, usw.

Gut integrierte Lösungen können mehr. Das ist es, was FM Starter bietet.

 

 

Dynamic Navigation

Filemaker Modul «DynamicNavigation»

Dieses Modul ist so zentral in FM Starter, dass dafür ein eigenes Kapitel erstellt wurde. Siehe dort.

 

User Management

Filemaker Modul «UserManagement»

Dieses Modul für die Benutzerverwaltung ist so zentral in FM Starter, dass dafür ein eigenes Kapitel erstellt wurde. Siehe dort.

 

 

Simple Backup

Filemaker Modul «SimpleBackup»

 

Aufgabe: Das Modul speichert eine komprimierte Kopie der aktuellen Datei(en) in einen vorhandenen Backup Ordner. Dabei werden Datum und Uhrzeit im Namen mitgespeichert.

Mit Hilfe eines Zusatzscripts können auch externe Dateien automatisch mitgesichert werden. Das Beispiel ist vollständig implementiert in den beiden Dateien von FM Starter.

 

 

SimpleBackup macht Sicherheitskopien von:

  • Hauptdatei
  • Externe Dateien.

 

Dateinamen Backup

[JAHR][MONAT][TAG]-[STUNDE][MINUTEN][SEKUNDEN]-[DATEINAME].[DATEIENDUNG]

Die Datei «FM-Starter.fmp12» heisst als Backup beispielsweise: «20151010-105406-FM-Starter.fmp12».

 

Voreinstellung: Dateipfad

SimpleBackup legt nicht selbständig Ordner an. Legen Sie einen Backup Ordner im gleichen Verzeichnis als die Datei an und benennen Sie den Ordner hier. Voreingestellt und mitgeliefert ist der Ordner «backup», wie hier angegeben.

 

Voreinstellung: Dateiendung

Geben Sie die gewünchte Dateiendung an. Voreinstellung: «fmp12».

 

Voreinstellung: Automatische Sicherung beim schliessen der Datei

Das Backup kann automatisch beim schliessen der Datei ablaufen. Schauen Sie im Shutdown Script, wie das erledigt wurde.

 

Externe Dateien

Externe Dateien können wie folgt eingebunden werden:

  1. Kopieren Sie das Script «SimpleBackup External File» in die externe Datei hinüber
  2. Öffnen Sie das Script «SimpleBackup Settings»
  3. Ergänzen Sie Verweise auf die externe Dateien, indem Sie die Scripte von der Hauptddatei aus aufrufen

Das war’s. Schauen Sie im Settings Script nach, wie das für die Datei FM-xData.fmp12 erledigt wurde.

 

 

Quick Find

Filemaker Modul QuickFind

Das Modul stellt eine Schnellsuche in Filemaker zur Verfügung.

 

 

Das Modul funktioniert mit jeder Tabelle und auf jedem Layout. Die Elemente können einfach per Copy-and-Paste übernommen werden. Die ganze Funktionalität ist mit den Suchbalken bereits verknüpft (Scripts, Script-Trigger, Felder, Bedienungsknöpfe, usw.).

Sollte bei mehreren Treffern in den Suchresultaten auf eine Listenansicht gewechselt werden, kann der Layoutname des Listenlayouts als Parameter zum Scripttrigger mitgegeben werden.

Auf der eigenen Modul-Seite im Entwickler-Fenster stehen verschiedene Gestaltungsvarianten eines «Suchbalken» zur Verfügung, die einfach auf eine beliebige Seite kopiert werden können. Legen Sie hier als Referenz Ihre eigene Kombinationen ab. Sie lassen sich dann von dort jederzeit abholen.

Weitere Angaben zu diesem Modul im ReadMe-Script des Moduls.

LabelMaker Pro

Filemaker Modul «LabelMaker Pro»

LabelMaker Pro stellt mehrsprachige Etiketten (Labels) FM Starter zur Verfügung.

 

 

Das Modul «LabelMaker Pro» stammt von Matt Leering. In FM Starter wurde das Modul eingebaut und etwas erweitert. Textlabels in (theoretisch) beliebig vielen Sprachen werden in einer Tabelle angelegt. Für jeden Datensatz gibt es einen Platzhalter und ein Sprachenfeld mit sovielen Wiederholungen wie es Sprachen gibt.

Die Textlabels werden von der Tabelle in globale Variablen abgefüllt. Die globalen Variablen werden auf dem Layout genutzt.

 

Das Hauptfenster

 

 

Ergänzungen gegenüber dem Originalmodul

  • Modul QuickFind für die Suche implementiert
  • Filterfunktion (Kategorien) eingebaut (so lassen sich Labelgruppen bilden)
  • Toolbox-Darstellung mit Zusatzfunktionen erstellt

 

So werden die Textlabels genutzt

  1. Textlabels werden als Merge-Variable (<<$$Platzhalter>>) auf dem Layout eingefügt.
  2. In Berechnungen kann die globale Variable ($$Platzhalter) genutzt werden
  3. Für das Modul «DynamicNavigation» wird lediglich der Text (Platzhalter) als Label benötigt.

 

Neue Sprachen hinzufügen

Neue Sprachen werden auf der LabelMaker Pro Seite durch einen neuen Eintrag im Popup Menü «Sprachen» erzeugt.

 

 

Labels Toolbox

Das Toolbox Fenster hat ein Teil für die Textlabels reserviert. Hier lassen sich Einträge…

  • Suchen
  • Ergänzen
  • Neu anlegen
  • Kopieren

 

 

 

Jeder Eintrag kommt in zwei Spalten:

  • Links: Platzhalter
  • Rechts: Inhalt editieren

Neue Einträge werden aktiviert, indem die Sprache auf einer beliebigen Seite neu gewählt wird. Dies löst das neue Laden der Sprache aus.

 

Platzhalter kopieren

Das Aussehen vom Platzhalter kann mit den Einstellungen gleich über der Liste beeinflusst werden. Man kann wählen ob der Platzhalter als globale Variable, als Merge-Variable oder als reiner Text dargestellt werden soll.

 

 

Ein Klick auf dem Feld des Platzhalters kopiert den Inhalt ins Klemmbrett, damit es von dort einfach eingefügt werden kann. Dabei wird das Feld gelb markiert

 

 

Inhalte editieren

Ein Klick auf dem Feld Inhalt (Spalte «Editieren») öffnet ein Popover, worin sich alle Einträge bearbeiten lassen.

 

 

Merge-Variablen in der Grösse anpassen

Merge-Variablen, wie sie in diesem Modul genutzt werden, sind einfach in der Handhabung. Nur die Platzierung auf dem Layout bereitet unter Umständen etwas Probleme. Anders als bei einem normalen Feld lässt sich die Grösse eines Textbereiches nicht kleiner aufziehen als der Text ist. Was sich aber mit der Maus nicht anpassen lässt, gelingt mit dem Inspektor: Wählen Sie den Textbereich an als wäre es ein Objekt. Nun lässt sich im Inspektor sowohl Breite wie Höhe des Textrahmens exakt anpassen.

 

 

 

 

 

PhoneNumbers Pro

PhoneNumbers Pro

Das Modul «PhoneNumbers Pro» formatiert Telefonnummern nach beliebigen Vorgaben.

Das Modul sieht ein einziges Eingabefeld vor, und kann die neu formatierte Nummer entweder in das Originalfeld oder in ein Zielfeld zurückschreiben.

In der Beispiel-Adressdatenbank wird gezeigt, wie sich Eingabefeld und Ausgabefeld für die Telefonnummer verhalten können:

 

 

Formatierungsregeln

Auf der Seite der Formatierungsregeln werden Definitionen erstellt.

 

 

Beispielsweise eine Definition für ein bestimmtes Land. Es können aber durchaus beliebig viele Definitionen erstellt werden. Die Definition bestimmt, wie eine Eingabe verarbeitet wird.

Die Vorgabe für die Schweiz  (CH) lautet beispielsweise:

+##-(#)##-### ## ##

Eine Eingabe wie…

012/3456789

…wird umformatiert zu:

+41-(0)12-345 67 89

 

In einer Formatierungsregel wird jedes «#» für eine Zahl der Eingabe verwendet. Alle übrige Zeichen werden einfach kopiert. Damit Länderkennzahl und Ortsvorwahl entsprechend der Formatierungsregel angepasst werden, kann man noch angeben ob Landeskennzahl und der Prefix für die Ortswahl verarbeitet werden sollen.

 

 

Fenster Telefonnummern (test)

Dieses Fenster enthält eine Beispieltabelle wo man mit verschiedenen Einstellungen experimentieren kann.

 

 

So funktioniert es

Die Formatierung wird in Abhängigkeit des Feldes CountryCode eingestellt. Es ist ein Popup-Menü mit allen definierten Formatierungen. Hier lässt sich die Formatierung einfach umschalten.

Im Beispieldatenbank der Adressen lässt sich sehen, wie dies angewendet wurde.

Die Formatierung selbst wird ausgelöst durch einen ScriptTrigger «BeiObjektVerlassen» auf das Feld der Eingabe.

 

Beziehungen und Scripttrigger

Damit dieses Modul überall eingesetzt werden kann benötigt es 2 Dinge:

  1. Von der Tabelle wo es eingesetzt werden soll eine Beziehung zur Tabelle der Formatierungsregeln gemacht werden. Dies bedingt in der Ursprungstabelle ein Feld für den Landcode, worüber die Beziehung zu den Formatierungsregeln aufgebaut wird.
  2. Als Scriptparameter der Name dieser Beziehung, dieses Tabellenauftretens.

Damit dieses Modul an verschiedenen Orten und mit verschiedenen Beziehungen einfach eingesetzt werden kann, benötigt das Script auf dem Feld der Eingabe einen speziellen Parameter: Der Name der Beziehung im Beziehungsdiagramm – vom aktuellen Layout aus.

 

Beziehungsdiagramm prüfen

Selbstredend benötigt dieses Modul funktionierende Beziehungen für all die Situationen, wo diese Berechnungen benötigt werden. Deshalb gibt es:

  • Eine Beziehung für das Modul selbst (intern – im Entwickler Fenster)
  • Eine Beziehung für jeden anderen Ort, wo diese Funktion genutzt werden soll.

 

Weitere Informationen direkt im Beziehungsdiagramm.

 

 

Scriptparameter prüfen

Das Formatierungsscript muss wissen, über welche Beziehung die korrekte Formatierung geholt werden soll. Diese Beziehung wird als Scriptparameter übergeben und ist für jede Tabelle anders. Für die Beispiel-Implementation in der Adressdatenbank von FM Starter sieht der Scriptparameter wie folgt aus:

 

 

Es geht um den Namen des Tabellen-Auftretens. Mit diesem Namen und den Feldnamen lassen sich gültige Verweise erzeugen, worüber die Definition der Formatierung abgefragt werden kann.

 

 

 

 

 

Bullet Field

Filemaker Modul «BulletField»

Das Filemaker Modul «BulletField» wandelt im Login Fenster die Eingabe des Kennworts in Bullets um.
Dieses Modul wird ausschliesslich für das Login Fenster genutzt und ist vollständig integriert.

 

 

 

Weitere Informationen finden sich direkt in den Scripts des Moduls.

 

 

 

Module im Entwicklerfenster

Verwalten von Modulen

Alle Module erhielten in FM Starter eine eigene Seite im Entwickler-Fenster. Einstellungen, Informationen für den Entwickler und Testseiten lassen sich hier am einfachsten integrieren. Sie stehen so als ständige Referenz zur Verfügung.

 

 

Die Top-Navigation zeigt den Eintrag «Module», während die Module in der Seitennavigation als eigene aufklappbare Menüs erscheinen – manche Module haben mehrere Einstellungsseiten.

 

Eigene Module hinzufügen

Filemaker Module werden bereits als selbständige Einheiten zur Verfügung gestellt. Sie kommen mit Scripts, Layouts und Beispieldaten. Genauso lassen sie sich auch hier einbinden. Neue Module und Funktionen lassen sich übersichtlich darstellen.

Beim Einfügen neuer Module wird in der Regel dies gemacht:

  1. Tabellen importieren
  2. Layouts anlegen
  3. Scripts importieren
  4. Layoutobjekte kopieren

Damit sich dies schön anfühlt:

  1. Thema anpassen
  2. Einträge in der Navigation erstellen
  3. Navigation implementieren

Mit relativ wenig Aufwand wird so eine komplette Referenz direkt in der Datei erstellt. Bei einer steigenden Anzahl von Modulen und mit längerer Entwicklungszeit gewinnt man so viel Klarheit.

 

 

Beispiele

FM Starter soll eine Fundgrube an einfachen aber wirksamen Ideen sein. Wie sich diese anwenden lässt, erklärt sich am leichtesten anhand von Beispielen.

 

 

FM Starter Beispielanwendung

FM Starter Beispielanwendung

FM Starter wird mit einer einfachen Adressdatenbank ausgeliefert. Dies ist die FM Starter Beispielanwendung. Hier lässt sich beispielhaft nachvollziehen, wie die verschiedenen Komponenten zusammenspielen.

 

 

Aufbau der Beispielanwendung

Die Beispielanwendung besteht aus den Komponenten

  • Adressen
  • Personen

Beide stehen zueinander in einer n:n-Beziehung. Das heisst,  dass Adressen zu beliebig vielen Personen und Personen zu beliebig vielen Adressen zugeordnet werden können. Eine Adresse gibt es nur einmal. Eine Person gibt es nur einmal. Gegenseitig lassen sich sich beliebig zuordnen. Eine Adresse kann z.B. mehrere Mitarbeiter haben. Eine Person kann mehrere Adressen (Wohnadresse, Ferienadresse, Arbeitgeber) haben.

  • Von den Adressen gibt es eine Eingabemaske und eine Listenansicht.
  • Von den Personen gibt es eine Eingabemaske und eine Listenansicht.
 
Die verschiedenen Layouts zeigen die Integration verschiedener Module und wie sich mit FM Starter etwas aufbauen lässt. Die Beispielanwendung ist genau das: Ein Beispiel. Es versucht nicht die perfekte Lösung zu sein, sondern Wege zur Umsetzung aufzuzeigen. Passen Sie die Lösung an Ihren Bedürfnissen an oder erstellen Sie eine ganz neue Ausführung.
 

 

 

 

 

Benutzung verschiedener Module

Wie Module genutzt werden

Filemaker Module sind Funktionen oder fokussierte Lösungen. Sie arbeiten in FM Starter zusammen, um in überschaubaren Schritten zu einer guten Leistung zu kommen. Die Integration in der Beispiellösung zeigt, wie sich Module einsetzen lassen.

 

 

 

Module lassen sich ergänzen, austauschen, abändern, optimieren – die einfache Struktur erlaubt maximale Flexibilität. Module werden aufgrund ihrer Funktionalität integriert. Der Programmierstil ist vielleicht von Modul zu Modul unterschiedlich – weil die Module von verschiedenen Entwicklern stammen. Die Schnittstellen sind jedoch definiert und helfen dabei, die Lösungen zu integrieren.

FM Starter nutzt Module an folgenden Orten auf folgende Weisen:

  • UserManagement
    Login, Benutzerverwaltung, Filemaker Konten und Zugriff steuern, Startseiten.
  • BulletField
    Login Screen
  • DynamicNavigation
    Navigation in der ganzen Lösung. Mit Layoutscripts können auch Funktionen auf Seiten ausgelöst werden.
  • SimpleBackup
    Optionale Backuplösung für Standalone oder Runtime Versionen. Nur integriert im Entwickler Fenster, kann aber auch im ShutDown Script automatisch ablaufen oder dem Administrator zur Verfügung gestellt werden.
  • QuickFind
    Einfaches Modul womit die Schnellsuche auf jede beliebigen Seite standardisiert ablaufen kann. Dies wird auf fast jeder Seite eingesetzt.
  • LabelMaker Pro
    Multilinguale Textlabels im ganzen Programm
  • PhoneNumbers Pro
    Formatierung von Telefonnummern. Dies wird überal dort eingesetzt wo Telefonnummer bearbeitet werden.

Weitere Angaben zu den einzelnen Modulen finden sich im Kapitel «FM Starter Module».

 

 

Adressen und Personen

Die Beispielanwendung

Die Beispielanwendung ist dazu gedacht, die Funktionsweise von FM Starter anhand praktischer Beispiele aufzuzeigen.

FM Starter ist eine Konzeptstudie, wie sich mit Hilfe von Strukturen, Modulen und einfachen Angaben in kurzer Zeit ansehliche Resultate erzielen lassen. Die einfache Adressverwaltung baut auf die Struktur von FM Starter auf. Die vorgegebene Struktur und bereits bestehende Module liessen die Adressverwaltung in kürzester Zeit erstellen. Das können auch Sie mit Ihren ganz eigenen Vorgaben, Ideen und Anforderungen.

Nutzen Sie die Beispielanwendung als Anregung um Ihre ganze eigene Lösung zu erstellen.

 
 
 

Ausblick

FM Starter ist das Resultat meiner eigener Entwicklungsarbeit über viele Jahre hinweg. Als Entwickler entwickelt man bekanntlich zuerst sich selbst. Hätte ich eine Lösung wie FM Starter zu Beginn meiner Tätigkeit als Filemaker Entwickler gehabt, so hätte mir das vermutliche Jahre Arbeit und endlos viele Experimente erspart. Hier wurden die wesentlichen Dinge zusammengeführt, die für die tägliche Arbeit von Bedeutung sind.

Selbstverständlich gibt es für jede Lösung auch alternative Ansätze. Nicht jeder Ansatz ist für jede Software die richtige. Sie müssen hier selbst die geeignete Lösungen heraussuchen. Es gibt andere Navigationen, verschieden Lösungen für eine Benutzerverwaltung, andere Möglichkeiten für Grafikdarstellungen und viele solcher Entscheide mehr. FM Starter ist nicht perfekt und will das auch nicht sein. Aber – Hand aufs Herz – wie lange würden Sie dafür brauchen eine solche Lösung wie diese hier auf die Beine zu stellen? Es ist oft so, dass man in der Flut der Arbeit dazu gar keine Zeit hat.

Die Entwicklung geht eben weiter – Zuerst durch Ihre eigene Ideen. Hier nun sind viele Teile modular aufgebaut. Erst dadurch lassen sich überhaupt Aufgaben und Lösungen entflechten, bei Bedarf austauschen und optimieren.

Nutzen Sie die Anregungen, optimieren Sie, vergleichen Sie, und zeigen Sie uns, was Sie erreicht haben, welche bessere Ideen gewachsen sind. Wer weiss, ob dies dann in nächste Versionen von FM Starter mit einfliesst!