Saltar para o conteúdo principal
Versão: Próximo

This

This -> Resultado

ParâmetroTipoDescrição
ResultadoObjeto🡐O elemento atual

Descrição

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.

Exemplo 1

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

Exemplo 2

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:

Exemplo 3

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

 var $person : Object
 $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:

 var $0;$1 : Text
 $0:=$1+" "+This.firstName+" "+This.lastName

Ver também

Self
Super