Jump to content
Claris Engage 2025 - March 25-26 Austin Texas ×

List ( calculation )


This topic is 6636 days old. Please don't post here. Open a new topic instead.

Recommended Posts

Posted

Hi all friends

I have a problem with the List( ) function of FM 8.5.

The help on line says:

List function

Format

List(field{;field...})

Parameter

field - any related field, repeating field, or [color:red]set of non-repeating fields; [color:red]or an expression that returns a field, repeating field, or [color:red]set of non-repeating fields.

So, if I have a field (FieldContents) with a calc like this:

Let([

fieldNames = Substitute ( ¶ & FieldNames ( Get(FileName) ; Get(LayoutName) ) & ¶ ;["FieldContents¶";""]; [¶ ; " ; "] );

adjustedFieldNames = Middle ( fieldNames ; 4 ; Length ( fieldNames ) - 6 )

];

list ( adjustedFieldNames )

)

I think that i'll have all the field contents of a given record...but NO ! Can someone say me why ?

Posted

The function doesn't take field-names, it takes real fields. If you have fields A and B, you can use List with a calculation of:

  List ( If ( IsEmpty©; A; B ) )

I think what it means for the set is that you can specify as many as you like (but explicitly):P

  List(A,B,C,D,E)

Hope this helps.

Posted

Hi

so what is the difference from:

set of non-repeating fields ( like: List(A;B;C;D;E) )

&

an expression that returns a set of non-repeating fields

( the above calculation is an expression that returns a set of non-repeating fields )

??

Can someone give me a working example of List( ) using as parameter an expression that returns a set of fields ?

Posted

Hi Daniele - I think you're missing the point. Your parameter, adjustedFieldNames, evaluates to a text string - not a field reference. So at the end you have List ( "A ; B ; C ; D" ). Try using GetField() or Evaluate() to turn the text string/s into field reference/s.

Posted

Hi comment

just do it !

This seems to work, as unstored calc:

Let([

fieldNames = Substitute ( FieldNames ( Get ( FileName ) ; Get ( LayoutName ) ) & ¶ ; [ "fieldContents¶" ; "" ] ; [ ¶ ; " ; " ] );

listFieldNames = "List ( " & Middle ( fieldNames ; 1 ; Length ( fieldNames ) - 3 ) & " )"

];

Evaluate ( listFieldNames )

)

BTW: the question remains: Can you give me a working example of List( ) using as parameter an expression that returns a set of fields ? ( as the help on line says )

Posted

Huuu !

Isn't more simple, if we know the fieldNames, to write:

List ( A ; B ; C )

and not

List ( GetField ( "A" ) ; GetField ( "B" ) ; GetField ( "C" ) )

??

Posted

Well, yes, but it's just an example - the text expression could come from another expression, for instance:

GetField ( gSelectField1 ) ; GetField ( gSelectField2 ) ; GetField ( gSelectField3 )

or, closer to your original problem:

GetField ( MiddleValues (...) )

This topic is 6636 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.