Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v20 R7
This

This  


 

This -> Resultado 
Parâmetro Tipo   Descrição
Resultado  Objeto in O elemento atual

O comando This retorna uma referência ao objeto atualmente sendo processado.

O comando foi criado principalmente para ser usado no contexto abaixo:

  • uma list box associada à uma coleção ou uma seleção de entidades, durante os eventos On Display Detail ou o On Data Change
    Nesse contexto, o comando retorna uma referência ao elemento  da coleção ou entidade acessada pela list box para exibir a linha atual

    Nota: se usar uma coleção de valores escalares em uma list box,   4D cria um objeto para isso com uma única propriedade valor. Assim, o valor do elemento é retornado através da expressão não-atribuível This.value.

  • a execução do objeto de fórmula criada pelos comandos Formula ou Formula from string
    Nesse contexto, o comando retorna uma referência ao objeto atualmente processado pela fórmula
Em qualquer outro contexto, o comando retorna Null

Dentro de contextos compatíveis, deve acessar propriedades de elementos de objeto/coleção ou atributos de entidade através de This.<propertyPath>. Por exemplo, This.name ou This.Customers.lastName são rotas válidas para objetos, elementos ou propriedades de entidade.

 

Uma coleção de objetos, cada um com esta estrutura:

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

Nesse list box, cada coluna refere a uma das propriedades do objeto, seja diretamente  (This.nome), indiretamente (This.employees.length), ou através de uma expressão (getPicture) na qual pode ser usada diretamente. A list box parece com isto:

O método de projeto GetPicture é executado automaticamente durante o evento On display detail:

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

Assim que o formulário é executado, você pode ver o resultado:

Se quiser exibir entidades da estrutura abaixo em uma list box:

Pode construir uma list box do tipo "Collection ou entity selection" com a definição abaixo:

Note que:

  • This.ID, This.Title e This.Date referem diretamente aos atributos correspondentes na dataclasse ds.Event.
  • This.meetings é um atributo relacionado (baseado no nome de relação  One To Many) que retorna uma seleção de entidades na dataclasse ds.Meeting.
  • Form.eventList é a seleção de entidade que é anexada ao list box. O código de inicalização pode ser colocado no evento de formulário on load:
     Case of
        :(FORM Event=On Load)
           Form.eventList:=ds.Event.all() //retorna uma seleção de entidade com todas as entidades
     End case

Quando o formulário tiver sido executado, a list box é preenchida automaticamente com a seleção de entidades:

Se quiser usa um método de projeto como uma fórmula encapsulada em um objeto:

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

Com o método de projeto Greeting:

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



Ver também 

Self
Super

 
PROPRIEDADES 

Produto: 4D
Tema: Linguagem
Número 1470

This command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v17
Modificado: 4D v17 R3

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20 R7)