SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Meine besten Custom Functions

                           Eigene Funktionen für die FileMaker Datenbank




Dipl.-Ing. Arnold Kegebein                                          FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                            www.filemaker-konferenz.com
Zu meiner Person
         •     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




Dipl.-Ing. Arnold Kegebein                                      FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                        www.filemaker-konferenz.com
Meine einfachste Funktion
          _( )



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

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

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




Dipl.-Ing. Arnold Kegebein                                         FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                           www.filemaker-konferenz.com
Null Value Funktion: NV
          NV( _value; _null )
             If( IsEmpty( _value );
             ! _null;
             // Else
             ! _value
             )



         •     NV = Null Value

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

         •     Standardwerte für „optionale“ Parameter




Dipl.-Ing. Arnold Kegebein                               FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                 www.filemaker-konferenz.com
Null Value Funktion: NNV
          NNV( _value; _notNull )
             If( IsEmpty( _value );
             ! "";
             // Else
             ! Substitute( _notNull;
             ! ! [ "@"; "¨AT¨" ];
             ! ! [ "@"; _value ];
             ! ! [ "¨AT¨"; "@" ]
             ! )
             )


         •     NNV = Not Null Value

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



Dipl.-Ing. Arnold Kegebein                                   FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                     www.filemaker-konferenz.com
Null Value Funktion: NNN
          NNN( _value; _null; _notNull )
             If( IsEmpty( _value );
             ! _null;
             // Else
             ! Substitute( _notNull;
             ! ! [ "@"; "¨AT¨" ];
             ! ! [ "@"; _value ];
             ! ! [ "¨AT¨"; "@" ]
             ! )
             )


         •     NNN = Null Not Null

         •     Felder formatieren
                        NNN( $startDate; "sofort"; "ab @" )



Dipl.-Ing. Arnold Kegebein                                    FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                      www.filemaker-konferenz.com
Textfunktion TrimMore
          TrimMore( _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 bereinigen
                        TrimMore( " ¶ ab c¶ ⇥¶¶ "; _ ) ! "ab c"

Dipl.-Ing. Arnold Kegebein                                  FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                    www.filemaker-konferenz.com
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




Dipl.-Ing. Arnold Kegebein                                                       FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                                         www.filemaker-konferenz.com
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.




Dipl.-Ing. Arnold Kegebein                                          FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                            www.filemaker-konferenz.com
LayoutID
          LayoutID( )
             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



Dipl.-Ing. Arnold Kegebein                                     FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                       www.filemaker-konferenz.com
LayoutNo
          LayoutNo( _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



Dipl.-Ing. Arnold Kegebein                                    FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                      www.filemaker-konferenz.com
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 (#)




Dipl.-Ing. Arnold Kegebein                                        FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                          www.filemaker-konferenz.com
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


Dipl.-Ing. Arnold Kegebein                                                  FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                                    www.filemaker-konferenz.com
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




Dipl.-Ing. Arnold Kegebein                                       FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                         www.filemaker-konferenz.com
ListFunction
            •     Erstellt Listen, auf vielfältige Art

            •     Basiert auf einer Funktion von Agnés Barouh

            •     Im FileMaker Magazin 2010-04 ausführlich beschrieben




Dipl.-Ing. Arnold Kegebein                                      FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                                        www.filemaker-konferenz.com
Vielen Dank für Ihre Aufmerksamkeit




Dipl.-Ing. Arnold Kegebein           FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions             www.filemaker-konferenz.com
Vielen Dank unseren Sponsoren




      Danke für das Bewerten dieses Vortrages


Dipl.-Ing. Arnold Kegebein                FileMaker Konferenz 2012 Salzburg
Meine besten Custom Functions                  www.filemaker-konferenz.com

Weitere ähnliche Inhalte

Andere mochten auch

SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMPSNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMPadesso AG
 
Catalogo Brindes 2014 - Brinde para Você
Catalogo Brindes 2014 - Brinde para VocêCatalogo Brindes 2014 - Brinde para Você
Catalogo Brindes 2014 - Brinde para VocêFelipe Fejao
 
Somaliland – in search for international recognition / Somaliland – auf der S...
Somaliland – in search for international recognition / Somaliland – auf der S...Somaliland – in search for international recognition / Somaliland – auf der S...
Somaliland – in search for international recognition / Somaliland – auf der S...GIGA Informationszentrum
 
Weihnachten in österreich
Weihnachten in österreichWeihnachten in österreich
Weihnachten in österreichRichard Hahn
 
energiehoch3 Produktvorteile
energiehoch3 Produktvorteileenergiehoch3 Produktvorteile
energiehoch3 Produktvorteileenergiehoch3
 
Social Media Atlas 2013
Social Media Atlas 2013Social Media Atlas 2013
Social Media Atlas 2013Faktenkontor
 

Andere mochten auch (12)

Test
TestTest
Test
 
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMPSNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
 
Farmacotécnica de fitoterapicos
Farmacotécnica de fitoterapicosFarmacotécnica de fitoterapicos
Farmacotécnica de fitoterapicos
 
Catalogo Brindes 2014 - Brinde para Você
Catalogo Brindes 2014 - Brinde para VocêCatalogo Brindes 2014 - Brinde para Você
Catalogo Brindes 2014 - Brinde para Você
 
TPM Ausbildungskonzept 2013
TPM Ausbildungskonzept 2013TPM Ausbildungskonzept 2013
TPM Ausbildungskonzept 2013
 
ET
ETET
ET
 
Somaliland – in search for international recognition / Somaliland – auf der S...
Somaliland – in search for international recognition / Somaliland – auf der S...Somaliland – in search for international recognition / Somaliland – auf der S...
Somaliland – in search for international recognition / Somaliland – auf der S...
 
Weihnachten in österreich
Weihnachten in österreichWeihnachten in österreich
Weihnachten in österreich
 
CCN 2013 Kickoff Webinar
CCN 2013 Kickoff Webinar CCN 2013 Kickoff Webinar
CCN 2013 Kickoff Webinar
 
energiehoch3 Produktvorteile
energiehoch3 Produktvorteileenergiehoch3 Produktvorteile
energiehoch3 Produktvorteile
 
Social Media Atlas 2013
Social Media Atlas 2013Social Media Atlas 2013
Social Media Atlas 2013
 
Ferdinand de Saussure
Ferdinand de SaussureFerdinand de Saussure
Ferdinand de Saussure
 

Mehr von Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfVerein FM Konferenz
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsVerein FM Konferenz
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsVerein FM Konferenz
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzVerein FM Konferenz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzVerein FM Konferenz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzVerein FM Konferenz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingVerein FM Konferenz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinVerein FM Konferenz
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserVerein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtVerein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtVerein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonVerein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussVerein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussVerein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfVerein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonVerein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoVerein FM Konferenz
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaVerein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaVerein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairVerein FM Konferenz
 

Mehr von Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 

FMK2012: Meine besten Custom Functions von Arnold Kegebein

  • 1. Meine besten Custom Functions Eigene Funktionen für die FileMaker Datenbank Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 2. Zu meiner Person • 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 Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 3. Meine einfachste Funktion _( ) • Platzhalter für „optionale“ Funktionsparameter FormatBetrag( Rech::Summe; _ ) • Vereinfachung mit Funktion Berechne und ähnliche Berechne( "If( Tab::F1=""; "NA"; Tab::F1 )" ) Berechne( "If( Tab::F1=_; "NA"; Tab::F1 )" ) Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 4. Null Value Funktion: NV NV( _value; _null ) If( IsEmpty( _value ); ! _null; // Else ! _value ) • NV = Null Value • Lücken in Listen auffüllen NV( RePos::Betrag; "0,00" ) • Standardwerte für „optionale“ Parameter Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 5. Null Value Funktion: NNV NNV( _value; _notNull ) If( IsEmpty( _value ); ! ""; // Else ! Substitute( _notNull; ! ! [ "@"; "¨AT¨" ]; ! ! [ "@"; _value ]; ! ! [ "¨AT¨"; "@" ] ! ) ) • NNV = Not Null Value • Textfelder verbinden NNV( Adr::Vorname; "@. " ) & Adr::Nachname Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 6. Null Value Funktion: NNN NNN( _value; _null; _notNull ) If( IsEmpty( _value ); ! _null; // Else ! Substitute( _notNull; ! ! [ "@"; "¨AT¨" ]; ! ! [ "@"; _value ]; ! ! [ "¨AT¨"; "@" ] ! ) ) • NNN = Null Not Null • Felder formatieren NNN( $startDate; "sofort"; "ab @" ) Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 7. Textfunktion TrimMore TrimMore( _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 bereinigen TrimMore( " ¶ ab c¶ ⇥¶¶ "; _ ) ! "ab c" Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 8. 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 Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 9. 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. Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 10. LayoutID LayoutID( ) 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 Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 11. LayoutNo LayoutNo( _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 Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 12. 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 (#) Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 13. 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 Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 14. 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 Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 15. ListFunction • Erstellt Listen, auf vielfältige Art • Basiert auf einer Funktion von Agnés Barouh • Im FileMaker Magazin 2010-04 ausführlich beschrieben Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 16. Vielen Dank für Ihre Aufmerksamkeit Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com
  • 17. Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages Dipl.-Ing. Arnold Kegebein FileMaker Konferenz 2012 Salzburg Meine besten Custom Functions www.filemaker-konferenz.com