This is the legacy 4D documentation web site. Documentations are progressively being moved to developer.4d.com

Home

 
4D v20 R7
This

This 


 

This -> Function result 
Parameter Type   Description
Function result  Object in Current element or object

The This command returns a reference to the currently processed object.

The command is designed to be used in the following contexts:

  • A list box associated to a collection or an entity selection, during the On Display Detail or the On Data Change events.
    In this context, the command returns a reference to the collection element or entity accessed by the list box to display the current row.
    Note: If you use a collection of scalar values in a list box, 4D creates an object for each element with a single value property. Thus, the element value is returned by the This.value non-assignable expression.
  • The execution of a formula object created by the Formula or Formula from string commands.
    In this context, the command returns a reference to the object currently processed by the formula.

In any other context, the command returns Null.

Within supported contexts, you will access object/collection element properties or entity attributes through This.<propertyPath>. For example, This.name or This.employer.lastName are valid pathes to object, element or entity properties.

A collection of objects, each with this structure:

{  
"ID": 1234
"name": "Xavier",  
"revenues": 47300,  
"employees": [  
             "Allan",  
             "Bob", 
             "Charlie"  
            ] 
},{  
"ID": 2563
"name": "Carla",  
"revenues": 55000,  
"isFemale": true
"employees": [  
             "Igor",  
             "Jane"  
            ] 
},...
 

In the list box, each column refers to one of the properties of the object, either directly (This.name), indirectly (This.employees.length), or through an expression (getPicture) in which can be used directly. The list box looks like:

The GetPicture project method is automatically executed during the On display detail event:

  //GetPicture Method
 C_PICTURE($0)
 If(This.isFemale)
    $0:=Form.genericFemaleImage
 Else
    $0:=Form.genericMaleImage
 End if

Once the form is executed, you can see the result:

You want to display entities from the following structure in a list box:

You build a list box of the "Collection or entity selection" type with the following definition:

Note that:

  • This.ID, This.Title and This.Date directly refers to the corresponding attributes in the ds.Event dataclass.
  • This.meetings is a related attribute (based upon the One To Many relation name) that returns an entity selection of the ds.Meeting dataclass.
  • Form.eventList is the entity selection that is attached to the list box. The initialization code can be put in the on load form event:
     Case of
        :(Form event code=On Load)
           Form.eventList:=ds.Event.all() //returns an entity selection with all entities
     End case

Once the form is executed, the list box is automatically filled with the entity selection:

You want to use a project method as a formula encapsulated in an object:

 C_OBJECT($person)
 $person:=New object
 $person.firstName:="John"
 $person.lastName:="Smith"
 $person.greeting:=Formula(Greeting)
 $g:=$person.greeting("hello") // returns "hello John Smith"
 $g:=$person.greeting("hi") // returns "hi John Smith"

With the Greeting project method:

 C_TEXT($0;$1)
 $0:=$1+" "+This.firstName+" "+This.lastName



See also 

Self
Super

 
PROPERTIES 

Product: 4D
Theme: Language
Number: 1470

This command can be run in preemptive processes

 
PAGE CONTENTS 
 
HISTORY 

Created: 4D v17
Modified: 4D v17 R3

 
ARTICLE USAGE

4D Language Reference ( 4D v20 R7)