CustomListOLDVersion ( Start ; End ; Function )
[old version] Custom Lists - For all native functions with a number
Average rating: 4.7 (32 votes) Log in to vote
Agnes Barouh - Show more from this author
Tic Tac http://www.tictac.fr/CoinFileMaker/Page.html |
3. FieldRecord3
4. FieldRecord4
5. FieldRecord5
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
CustomList[Old] => [ you have now an Update version: Start and End Unlimited : http://www.briandunning.com/cf/868]
V.1.2 => Changed Tag "^" by "#^#"
April 04 - 2008. => V.2.3
=> Change alert error "Check Calculation"
=> result isEmpty if end or start is empty or < 1
it is not a recursive function (the recursive version is underneeth )
Carreful : Limited => End - Start < 18700 End < 18700
*this CustomList () version allow nesting of CustomList ( ) functions *
Thanks a lot to Ugo Di Luca and Fabrice Nordmann
For all native functions with a number
Left, Middle, GetValue, GetNthRecord, GetLayoutObjectAttribute (...)
or with interval CurrentDate, CurrentTime (...) or other.
CustomList can be a base for many other functions
-----------------------------------------
Nota : more calculation required in "Function" is complex, more evaluation is long
----------------------------------------- *
CustomList ( 1 ; 1000 ; "Thank you very much Ugo and Fabrice" )
----------------------------------------- *
----------------------------------------- more examples
The Argument "Function" can be :
Examples : with [n] to define the numeric list
- "GetNthRecord ( Field ; [n] )"
- """Name =>"" & GetNthRecord ( FieldName ; [n] ) & "" FirstName =>"" & GetNthRecord ( FirstFieldName ; [n] )""
- "[n] & ""."" & MiddleValues ( Field ; [n] ; 1 )"
- "GetAsDate ( Date ) + [n]"
- "GetLayoutObjectAttribute ( ""ObjectName"" ; ""Content"" ; 1 ; [n] )"
- "Let ( [ Value = GetValue ( MyList ; [n] ) ] ; Case ( PatternCount ( Value ; "X" ) ; Value ))"
- "Let ([ $$Var[[n]] = GetNthRecord ( Field ; [n] ) ] ; """" )" // To charge N variable
- "GetRepetition ( RepetitingField ; [n] )" [...]
----------------------------------------- Recursive Version
CustomList can also be recursive :
the calcul is simple but I prefer CustomList (), not recursive version is faster than CustomListRec ()
//------------------------------------------------------------------------------
/* Agnès - Juin 2007 - Thanks. - To report bugs : barouh.agnes@wanadoo.fr */
// Text lists from X to 10000
CustomListRec ( Start ; End ; Function )
Let ( [
Start = GetAsNumber ( Start ) ;
End = GetAsNumber ( End ) ;
FonctionPrepa = Substitute ( Function; "[n]"; Start );
Result = Evaluate ( FonctionPrepa )];
If ( Start < End ;
Case ( IsEmpty ( Function ) ; Start & ¶ ;
PatternCount ( Result; "?" ) > PatternCount ( Function; "?" )
or IsEmpty ( Result ) ; "" ;
Result & ¶ ) & CustomListRec ( Start + 1; End; Function ) ; Result ) )
----------------------------------------- more détails
CustomList will write your calculation like this (before evaluating it - Argument "Execute") :
CustomList ( 1; get(foundCount); "GetNthRecord ( Field ; [n])") :
Let ([ Num = 1 ] ; GetNthRecord ( Field ; Num )) & ¶ &
Let ([ Num = 2 ] ; GetNthRecord ( Field ; Num )) & ¶ &
Let ([ Num = 3 ] ; GetNthRecord ( Field ; Num )) [...]
or, when you write with "Let(["
CustomList ( 1; get(foundCount);
"Let ([ Value = GetNthRecord ( Field ; [n]) ] ; Case ( Value > 50 ; Value))") :
Let ([ Num = 1 ; Value = GetNthRecord ( Field ; Num) ] ; Case ( Value > 50 ; Value)) & ¶ &
Let ([ Num = 2 ; Value = GetNthRecord ( Field ; Num) ] ; Case ( Value > 50 ; Value)) & ¶ &
Let ([ Num = 3 ; Value = GetNthRecord ( Field ; Num) ] ; Case ( Value > 50 ; Value)) [...]
Comments
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.