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

Upload: verein-fm-konferenz

Post on 13-Jan-2015

1.428 views

Category:

Documents


1 download

DESCRIPTION

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

TRANSCRIPT

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