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.6
EXECUTE METHOD IN SUBFORM

EXECUTE METHOD IN SUBFORM 


 

EXECUTE METHOD IN SUBFORM ( objetoSubForm ; nomeMetodo {; retorno {; param} {; param2 ; ... ; paramN}} ) 
Parâmetro Tipo   Descrição
objetoSubForm  Texto in Nome de objeto subformulário
nomeMetodo  Objeto, Texto in Nome do projeto de método a ser executado
retorno  Operador, Variável in * Se método não retornar um valor
in Valor retornado pelo método
param  Expression in Parâmetros a passar ao método

O comando EXECUTE METHOD IN SUBFORM pode ser utilizado para executar o método de projeto nomeMetodo no contexto do sub formulário objetoSubform.


O método de projeto chamado pode receber chamadas 1 a X parâmetros em param e devolver um valor em retorno. Passe * no parâmetro retorno se o método não devolve parâmetros. 

Em formula, determina o código 4D a ser executado no contexto de  subformObject. Pode passar:

  • um formula object (ver Formula Objects). Objetos Formula podem encapsular qualquer expressão executável, incluindo funções e métodos projetos;
  • uma string contendo o nome de um método projeto. 

O contexto de execução é conservado no método chamado, o que significa que o formulário atual e o evento formulário atual seguem definidos. Se o sub formulário provêm de um componente, o método deve pertencer ao componente e ter a propriedade "Compartilhado entre os componentes e o banco local".

Este comando deve ser chamado no contexto do formulário pai (contém o objeto objetoSubForm), por exemplo via o método de formulário.

Nota: O método nomeMetodo não é executado se objetoSubForm não se encontra na página atual ou se não foi instanciado.

Dado o formulário "ContactDetail" utilizado como subformulário no formulário pai "Empresa". O objeto subformulário que contém o formulário ContactDetail é chamada "ContactSubform". Imagine que queremos modificar a aparência de certos elementos do subformulário de acordo ao valor dos campos da empresa (por exemplo, "nomcontact" deve passar a vermelho quando [Empresa]Cidad="Nova York" e a azul quando [Empresa]Cidade="San Diego"). Este mecanismo é implementado através do método SetToColor. Para poder obter este resultado, o método SetToColor não pode ser chamado diretamente desde o processo do evento de formulário "On Load" do formulário pai Empresa porque o objeto "contactname" não pertence ao formulário atual, mas ao formulário mostrado no objeto subformulário "ContactSubform". O método deve portanto ser executado utilizando o comando EXECUTE METHOD IN SUBFORM para que funcione corretamente.

 Case of
    :(Form event code=On Load)
       Case of
          :([Company]City="New York")
             $Color:=$Red
          :([Company]City="San Diego")
             $Color:=$Blue
          Else
             $Color:=$Black
       End case
       EXECUTE METHOD IN SUBFORM("ContactSubform";Formula(SetToColor);*;$Color)
 End case

Suponha que esteja desenvolvendo um banco que será utilizado como componente. Inclui um formulário projeto compartilhado (chamado, por exemplo Calendar) que contém variáveis dinâmicas além de um método projeto público que permite ajustar o calendário: SetCalendarDate(varDate).

Se este método foi utilizado diretamente no método do formulário Calendar, pode chamar diretamente o evento "On Load":

 SetCalendarDate(Current date)
Mas, no contexto do banco local, imaginemos que um formulário projeto contém os dois subformulários "Calendar", nos objetos subformulário chamados "Cal1" e "Cal2". Deve definir a data de Cal1 em 01/01/10 e a data de Cal2 em 05/05/10. Não pode chamar diretamente a SetCalendarDate porque o método não "sabe" que formulários e variáveis aplicar. Portanto, deve chamá-lo através do seguinte código: 

 EXECUTE METHOD IN SUBFORM("Cal1";"SetCalendarDate";*;!01/01/20!)
 EXECUTE METHOD IN SUBFORM("Cal2";"SetCalendarDate";*;!05/05/20!)

Se este comando é executado corretamente, a variável sistema OK toma o valor 1; do contrário toma o valor 0.

 
PROPRIEDADES 

Produto: 4D
Tema: Eventos de formulário
Número 1085

Este comando modifica a variável sistema OK

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v12
Modificado: 4D v19 R6

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20)
Manual de linguagem 4D ( 4D v20.1)
Manual de linguagem 4D ( 4D v20.2)
Manual de linguagem 4D ( 4D v20.3)
Manual de linguagem 4D ( 4D v20.4)
Manual de linguagem 4D ( 4D v20.5)
Manual de linguagem 4D ( 4D v20.6)