Form
Form : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultado | Object | ← | Formulário de dados associado ao formulário atual |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Descrição
O comando Form devolve o objeto associado com o formulário atual, se houver. 4D associa automaticamente um objeto ao formulário atual nos casos abaixo:
- o formulário atual tiver sido mostrado pelo comando DIALOG,
- o formulário atual for um subformulário.
- um formulário tabela estiver exibido atualmente na tela.
formulário DIALOG
Se o formulário atual for mostrado mediante uma chamada ao comando DIALOG, Form devolve ou um objeto vazio, ou o objeto formData passado como parâmetro a este comando, se houver.
Subformulário
Se o formulàrio atual for um subformulário, o objeto devolvido depende da variável container pai:
- Se a variável associada ao container principal tiver sido escrita como um objeto (C_OBJECT), Form devolve o valor desta variável.
Neste caso, o objeto devolvido por Form é o mesmo que o devolvido pela expressão abaixo:
(OBJECT Get pointer(Object subform container))->
- Se a variável associada ao container pai não tiver sido escrita como um objeto, Form devolve um objeto criado automaticamente, mantido por 4D no contexto de subformulário.
Para mais informação, consulte a seção Subformulários em modo página.
Formulário tabela
Form retorna o objeto associado com o formulário tabela exibido na tela. No contexto de um formulário input exibido a partir de um formulário output (ou seja, depois de um duplo clique em um registro), o objeto retornado contém as propriedades abaixo:
Propriedade | Tipo | Descrição |
---|---|---|
parentForm | object | Form objeto do formulário output pai |
Exemplo
Em um formulário exibindo o registro de uma pessoa, um botão "Check children" abre um diálogo para verificar/modificar os nomes e idades dos filhos:
Nota: O campo objeto "Children" é representado apenas para mostrar sua estrutura para esse exemplo.
No formulário de verificação, se tiver atribuido algumas propriedades de objeto a variáveis Form:
Abaixo o código para o botão "Check children":
var $win;$n;$i : Integer
var $save : Boolean
ARRAY OBJECT($children;0)
OB GET ARRAY([Person]Children;"children";$children) //obtém a coleção children
$save:=False //initializa a variável save
$n:=Size of array($children)
If($n>0)
$win:=Open form window("Edit_Children";Movable form dialog box)
SET WINDOW TITLE("Check children for "+[Person]Name)
For($i;1;$n) //para cada child
DIALOG("Edit_Children";$children{$i}) //exibe diálogo preenchido com valores
If(OK=1) //o usuário clica OK
$save:=True
End if
End for
If($save=True)
[Person]Children:=[Person]Children //força a atualização do campo objeto
End if
CLOSE WINDOW($win)
Else
ALERT("No child to check.")
End if
Nota: Esse exemplo exige que a notação de objeto esteja ativada no banco de dados (ver Página Compatibilidade).
O formulário exibe informação para cada campo:
Se os valores forem editados e o botão OK button for clicaod, o campo é atualizado (o registro pai deve ser salvo depois).