Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
EXECUTE METHOD IN SUBFORM
|
EXECUTE METHOD IN SUBFORM ( objetoSubForm ; nomeMetodo {; retorno {; param} {; param2 ; ... ; paramN}} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
objetoSubForm | Texto |
![]() |
Nome de objeto subformulário | |||||
nomeMetodo | Objeto, Texto |
![]() |
Nome do projeto de método a ser executado | |||||
retorno | Operador, Variável |
![]() |
* Se método não retornar um valor | |||||
![]() |
Valor retornado pelo método | |||||||
param | Expression |
![]() |
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:
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)
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.
Produto: 4D
Tema: Eventos de formulário
Número
1085
Criado por: 4D v12
Modificado: 4D v19 R6
Manual de linguagem 4D ( 4D v20 R7)