jw Posted March 12, 2004 Posted March 12, 2004 leuk, je kan je eigen functies maken. zoals: Redtext () in deze functie staat dan: FUNCTION Redtext PARAMETER txt TextColor ( txt ; RGB ( 255 ; 0 ; 0 ) ) en dan kan je die in een script gebruiken: SET FIELD naam TO Redtext (naam) en dan wordt de naam rood. Helaas is het maken van eigen functies alleen mogelijk in de Dev-versie. Kan iemand ook ontdekken of je deze functies kan importeren in andere bestanden? Quote
0 Koen Van Hulle Posted March 12, 2004 Posted March 12, 2004 Je kan ze voor zover ik weet niet importeren maar wel copy-plakken. Je kunt custom functions alleen aanmaken in de developer, maar ze blijven uiteraart wel werken in de gewone FileMaker versie. Koen Quote
0 Dr_Flash Posted March 13, 2004 Posted March 13, 2004 Maar begrijp ik het goed dat "custom functies" eigenlijk gewoon een soort afgeleiden, als het ware templates, zijn van de al beschikbare functies? Ik kan me voorstellen dat als je vaak dezelfde textkleurfunctie wilt gebruiken met dezelfde RGBwaarden, dat je daar dan zoiets voor maakt. Maar het doet natuurlijk NIET "iets" wat FM zonder die custom functie niet zou kunnen. m.a.w. het maakt plugins niet overbodig. Of zie ik dat verkeerd? Quote
0 jw Posted March 13, 2004 Author Posted March 13, 2004 dat klopt, de plug-ins blijven. Je kan er wel een aantal filemaker-functies mee bundelen. Als je zelf geen dev-versie hebt, dan kan iemand die deze dev-versie wel heeft je helpen en de gewenste functies in je database inzetten. Quote
0 Koen Van Hulle Posted March 13, 2004 Posted March 13, 2004 Je zou bijvoorbeeld de "berekenpasen" functie met als parameter jaar kunnen maken. Die ingewikkelde formule staat hier wel ergens op het forum vermeld. Het is inderdaad ook geschikt om ingewikkelde calculaties te bundelen. Koen Quote
0 Frank ter Braak Posted March 15, 2004 Posted March 15, 2004 ..... het maken van eigen functies alleen mogelijk in de Dev-versie. Ik heb vooralsnog alleen een "gewone" trail versie en kon niet vinden of je ook een developer trail versie kon downloaden, weet iemand dat? Quote
0 Peter Wagemans Posted March 29, 2004 Posted March 29, 2004 Hier alvast een nuttige functie. Hier kan je ook zien dat de Let() functie heel mooie mogelijkheden biedt. Zoals vele anderen ben ik ook aan het prutsen met FileMaker, sorry dat je daar op het forum niet veel van merkt. PS: André, je moderator rechten zijn OK nu. Quote
0 Peter Wagemans Posted March 31, 2004 Posted March 31, 2004 BTW, deze custom functie is niet nodig, gezien je nu ook MiddleValues() hebt. Quote
0 Dr_Flash Posted March 31, 2004 Posted March 31, 2004 Even freewheelen hoor.... Zou je zo ook de Uniquity check waar ik al een paar keer over gevallen ben als custom functie kunnen definiëren? Zo van IsUnique(field; table) met boolean output Aangezien je daar een interne relatie voor nodig hebt vroeg ik me af of zoiets ook zou kunnen (is misschien wel handig namelijk ) Quote
0 rmw Posted March 31, 2004 Posted March 31, 2004 Er zit een juweel van een voorbeeld in Business_Tracker.fp7 (gratis te halen bij FM, je hoeft je alleen maar te registreren met een geldig e-mail adres) De functie maakt het mogelijk om een telefoonnummer te formateren door twee custum functies. Eerste: FormatPhone Case ( not IsEmpty ( Filter ( PhoneNumber ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") ) ; Case ( not IsEmpty(phoneformat) ; Substitute ( FormatLoop ( PhoneNumber ; PhoneFormat ; WildCard) ; WildCard ; "" ) ; PhoneNumber ) ) Hierin zijn PhoneNumber, PhoneFormat en WildCard parameters. Tweede: FormatLoop Let ( [ PhoneAsNum = Filter ( PhoneNum ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); /* Phone number is stripped of all non-alphanumeric characters */ Form = If ( Length ( PhoneAsNum ) > 1 ; FormatLoop ( Left ( PhoneAsNum ; Length ( PhoneAsNum ) - 1 ) ; Format ; Wildcard) ; Format ) ; /* Recursive loop that calls itself, reducing the length of PhoneNum by 1 each time until it reaches a single digit. Then it replaces the first instance of the wildcard with the rightmost digit in PhoneNum and passes it back. */ Pos = Position ( Form ; Wildcard ; 1 ; 1 ) ; /* Position in Form of the first instance of the wildcard */ Digit = Let ( Char = Right ( PhoneAsNum ; 1 ) ; Case ( GetAsNumber ( Char ) = Char ; Char ; Filter ( Char ; "ABCabc" ) = Char ; 2 ; Filter ( Char ; "DEFdef" ) = Char ; 3 ; Filter ( Char ; "GHIghi" ) = Char ; 4 ; Filter ( Char ; "JKLjkl" ) = Char ; 5 ; Filter ( Char ; "MNOmno" ) = Char ; 6 ; Filter ( Char ; "PQRSpqrs" ) = Char ; 7 ; Filter ( Char ; "TUVtuv" ) = Char ; 8 ; Filter ( Char ; "WXYZwxyz" ) = Char ; 9 )) /* Rightmost digit in the current call of FormatPhone; if the character is alpha, converts it to the numerical equivalent */ ] ; If ( Pos = 0 ; Form & Digit ; // If there are overflow digits in PhoneNum, simply add them to the end. Replace ( Form ; Pos ; 1 ; Digit ) // Replace the first instance of the wildcard with the corresponding digit. )) En hier zijn PhoneNum, Format en WildCard de parameters. Let op de mogelijkheid om een functie zichzelf te laten aanroepen, waardoor een variabele lengte van het telefoonnummer kan worden ondersteund! En zie hoe het gebruik van commentaar en 'Let' de functie aanmerkelijk leesbaarder maakt. Tenslotte de toepassing: door in de veld definitie van het veld Phone een auto-enter met vervanging op te nemen: Phone [Auto-enter calculation; override existing value] = FormatPhone ( Phone; "( ### ) ### ## ## "; "#" ) kan een telefoonnummer zonder script en hulpvelden worden omgezet naar het gewenste formaat rmw Quote
Question
jw
leuk, je kan je eigen functies maken.
zoals: Redtext ()
in deze functie staat dan:
FUNCTION Redtext
PARAMETER txt
TextColor ( txt ; RGB ( 255 ; 0 ; 0 ) )
en dan kan je die in een script gebruiken:
SET FIELD naam TO Redtext (naam)
en dan wordt de naam rood.
Helaas is het maken van eigen functies alleen mogelijk in de Dev-versie.
Kan iemand ook ontdekken of je deze functies kan importeren in andere bestanden?
10 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.