Não seria óptimo se pudesse simplesmente abrir um formulário e passar-lhe alguns parâmetros para inicializar os seus objectos de formulário? Que tal ser capaz de voltar a processar os dados, depois de terem sido modificados pelo utilizador? 4D v16 R5 torna a sua codificação muito mais fácil, simplificando grandemente as comunicações com formulários.
Até agora, quando queria exibir dados (não provenientes da própria base de dados, mas computados ou externos) a múltiplos utilizadores, tinha duas opções: ou escrever código complexo para lidar com a exibição de dados em múltiplos processos, ou criar tantos formulários quantos forem necessários com um monte de variáveis globais. Mas sabe que as variáveis globais não são uma forma optimizada de codificação, de um ponto de vista de memória.
Portanto, livre-se do seu código complexo e das variáveis globais! Com 4D v16 R5 pode simplesmente ligar um objecto ao seu formulário e utilizá-lo internamente com o novo comandoForm . Indolor…e poderoso!
Passar parâmetros a um formulário
É agora possível passar parâmetros num objecto para um formulário utilizando o DIALOG comando. Qualquer propriedade deste objecto estará então disponível a partir do contexto do formulário através do comando Form comando.
C_LONGINT($window)
C_OBJECT($address)
$address:=Novoobjecto
$address.CompanyName:="4D"
$address.LastName:="Dupont"
...
$window:=Abrirjanela do formulário("AddressForm";caixa de diálogo do formulário móvel)
// O formulário é aberto com o objecto $address no parâmetro
// Isto permite modificar o objecto $address no formulário com o comando Form
DIALOG("AddressForm";$address)
FECHAR WINDOW($window)
ALERT("O novo nome da empresa é: "+$address.CompanyName)
No formulário “AddressForm “, basta utilizar o comando Form no formulário fonte de dados do objecto:
Quando os utilizadores fecham o diálogo, os valores que introduziram estão disponíveis no método de chamada através do objecto $address .
Passar parâmetros a uma subforma
Da mesma forma que se passa um objecto a um formulário com o comando DIALOG também se pode passar um objecto para uma área de subforma utilizando a lista de propriedades. Depois, pode utilizá-lo na subforma com o comando Form comando. No exemplo abaixo, o objecto InvoiceAddress está ligado à subforma.