FMK2012: Meine besten Custom Functions von Arnold Kegebein

17
FileMaker Konferenz 2012 Salzburg www.filemaker-konferenz.com Dipl.-Ing. Arnold Kegebein Meine besten Custom Functions Meine besten Custom Functions Eigene Funktionen für die FileMaker Datenbank

description

Eigene Funktionen für die FileMaker Datenbank. Ein Vortrag im Rahmen der FileMaker Konferenz 2012 in Salzburg.

Transcript of FMK2012: Meine besten Custom Functions von Arnold Kegebein

Page 1: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Meine besten Custom Functions

Eigene Funktionen für die FileMaker Datenbank

Page 2: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

• Diplom-Ingenieur der Technischen Informatik

• 6½ Jahre in den USA als IT Manager

• Seit 2006 Entwicklung mit FileMaker

• 25 Jahre Datenbankerfahrungen: Access, Oracle, MySQL, u. a.

• Hohe Aufmerksamkeit auf Usability und Design

• Regelmäßiger Autor im FileMaker Magazin

Zu meiner Person

Page 3: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Meine einfachste Funktion

• Platzhalter für „optionale“ FunktionsparameterFormatBetrag( Rech::Summe; _ )

• Vereinfachung mit Funktion Berechne und ähnlicheBerechne( "If( Tab::F1=\"\"; \"NA\"; Tab::F1 )" )

Berechne( "If( Tab::F1=_; \"NA\"; Tab::F1 )" )

_( )

Page 4: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Null Value Funktion: NVNV( _value; _null )

If( IsEmpty( _value );! _null;// Else! _value)

• NV = Null Value

• Lücken in Listen auffüllenNV( RePos::Betrag; "0,00" )

• Standardwerte für „optionale“ Parameter

Page 5: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Null Value Funktion: NNVNNV( _value; _notNull )

If( IsEmpty( _value );! "";// Else! Substitute( _notNull; ! ! [ "\@"; "¨AT¨" ];! ! [ "@"; _value ];! ! [ "¨AT¨"; "@" ]! ))

• NNV = Not Null Value

• Textfelder verbindenNNV( Adr::Vorname; "@. " ) & Adr::Nachname

Page 6: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Null Value Funktion: NNNNNN( _value; _null; _notNull )

If( IsEmpty( _value );! _null;// Else! Substitute( _notNull; ! ! [ "\@"; "¨AT¨" ];! ! [ "@"; _value ];! ! [ "¨AT¨"; "@" ]! ))

• NNN = Null Not Null

• Felder formatierenNNN( $startDate; "sofort"; "ab @" )

Page 7: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Textfunktion TrimMoreTrimMore( _text; _trim )

Let( [! _trim = NV( _trim; " ⇥¶" );! _len = Length( _text );! _l = Position( _trim; Left( _text; 1 ); 1; 1 ) > 0;! _r = Position( _trim; Right( _text; 1 ); 1; 1 ) > 0;! _text = Middle( _text; 1 + _l; _len - _l - _r )];! If( _l or _r;! ! TrimMore( _text; _trim );! // Else! ! _text! )!)

• Texte bereinigenTrimMore( " ¶ ab c¶ ⇥¶¶ "; _ ) ! "ab c"

Page 8: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

CFs für die Listenbearbeitung• ListHasValue( list; value )! Prüfen, ob ein Wert in der Liste vorkommt

• ListIndex( list; value )! ! Position eines Wertes in der Liste

• ListRemove( list; value )!! Einen Wert und seine Wdhl. aus der Liste entfernen

• ListUnique( list )! ! ! Entfernt Duplikate aus der Liste

• ListSort( list )! ! ! ! Liste sortieren (erfordert ListMerge)

• ListMerge( list1; list2 )!! Zwei Listen alphabetisch zusammenführen

Page 9: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

FrontTabs• Ermittelt eine Liste mit den Objektnamen der aktiven Tabs

• Kann zur Wiederherstellung der zuletzt geöffneten Tabs verwendet werden

‣ OnLayoutExit: FrontTabs in globaler Variablen speichern

‣ OnLayoutEnter: Variable auslesen und Objekte nacheinander anspringen.

Page 10: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

LayoutIDLayoutID( )

GetValue( ! LayoutIDs( Get( FileName ) ); ! Get( LayoutNumber ) )

• Gibt die interne FileMaker ID für das aktuelle Layout zurück

• Hilfreich für robustere Datenbankentwicklung

‣ Layouts können umbenannt werden

‣ Layouts können in der Reihenfolge verschoben werden

Page 11: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

LayoutNoLayoutNo( _id )

Let( [! _list = ¶ & LayoutIDs( Get( FileName ) ) & ¶];! PatternCount( Left( _list; ! ! Position( _list; ¶ & _id & ¶; 1; 1 ) ! ); ¶ ))

• Gibt die Layoutnummer anhand der Layout ID zurück

• Verwendung im Script-Befehl:Gehe zu Layout [LayoutNr]

• »Gegenstück« zur Funktion LayoutID

Page 12: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

GetAsColor• Meine erste große, komplexe Funktion mit Rekursion

• Rechnet Farbwerte in dezimale oder hexadezimale Werte um

• Vielfältige Eingabeformate:

‣ Dezimal- oder Hexadezimalwerte

‣ Triplets für die RGB-Anteile:Als Dezimal-, Hexadezimal- oder Prozentwerte

• Drei verschiedene Ausgabeformate:

‣ Dezimal- oder Hexadezimalwert

‣ Hexadezimalwert mit vorangestelltem Hash (#)

Page 13: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

CFs für Parameter Variablen• #( _key; _value )! ! Benannte Parameter (param) erzeugen

• #Get( _key; _params )! ! Wert eines Parameters aus Parameterliste holen

• #Checked( )!! ! ! ! Zuweisung und Prüfung der Script Parameter

• #Assign( _params )!! ! Parameterwerte lokalen Variablen zuweisen

• VarCheck( _paramDef ) ! Prüfen, ob bestimmte lokale Variablen existieren

• TextBetween( _text; _start; _end; _type ) Text zwischen bestimmten Zeichen

• #List( _vars )! ! ! ! Nennt die Namen aller Parameter in der Liste

• #Delete( _key; _params )! Entfernt einen Parameter aus der Parameterliste

• ClearVars( _vars )! ! ! Löscht alle genannten lokale und globale Variablen

Page 14: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Parameter Variablen• Benannte Parameter:

#( "Name"; "Arnold" ) ! "Name==Arnold¶"

• Mehrere Parameter werden wie Texte verknüpft: &

• Parameterwert kann beliebige Zeichen einschließlich ¶ enthalten

• Kaskadierende Definition ist möglich:#( "A"; #("B1"; 1) & #("B2"; 2) )

• Beibehaltung von Textformatierungen

• Ideal für Script Parameter

Page 15: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

ListFunction• Erstellt Listen, auf vielfältige Art

• Basiert auf einer Funktion von Agnés Barouh

• Im FileMaker Magazin 2010-04 ausführlich beschrieben

Page 16: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Vielen Dank für Ihre Aufmerksamkeit

Page 17: FMK2012: Meine besten Custom Functions von Arnold Kegebein

FileMaker Konferenz 2012 Salzburgwww.filemaker-konferenz.com

Dipl.-Ing. Arnold KegebeinMeine besten Custom Functions

Vielen Dank unseren Sponsoren

Danke für das Bewerten dieses Vortrages