.
Nota |
---|
Por padrão, o primeiro parâmetro não é mais informado, passando sempre nulo, assim o código de referência será criado dinamicamente pelo framework evitando problemas de referências duplicadas. |
Bloco de código |
---|
language | ruby |
---|
theme | Confluence |
---|
title | Exemplo de código para criação de um componente FreeForm |
---|
linenumbers | true |
---|
| DEFINE l_dlg_ref VARCHAR(10)
DEFINE l_pnl_ref VARCHAR(10)
# Componente sem componente pai.
LET l_dlg_ref = _ADVPL_create_componente(NULL,"LDIALOG")
# Componente com componente pai.
LET l_pnl_ref = _ADVPL_create_componente(NULL,"LPANEL",l_dlg_ref) |
Manipulando um componente | set_property() e get_property()
As funções AdvPL set_property() e get_property() permitem executar e manipular métodos e propriedades do componente informado. A diferença entre uma função e outra é: - Função
get_property() é possível recuperar o valor da propriedade ou da execução do método informado. - Função set_property() só permite alterar estas propriedades ou invocar métodos.
Ambas as funções recebem por parâmetro o código da referência do componente que será manipulado, o nome do método que será executado e os valores dos parâmetros que cada método exige para execução.
Nota |
---|
Se a referência do componente informada estiver nula ou for inválida, será exibida uma mensagem de erro informado que “componente é inválido” e se o método ou propriedade informado também for inválido ou não previsto para o respectivo componente, a mensagem de erro irá informar “propriedade informada não prevista para o componente”. Mais informações sobre estas validações podem ser encontradas em Validações Metadado/Freeform. |
Bloco de código |
---|
language | ruby |
---|
theme | Confluence |
---|
title | Exemplo de código para recuperar/definir propriedade ou invocar método de de um componente FreeForm |
---|
linenumbers | true |
---|
| DEFINE l_dlg_ref VARCHAR(10)
DEFINE l_title CHAR(50)
# Instância de uma nova janela de diálogo
LET l_dlg_ref = _ADVPL_create_componente(NULL,"LDIALOG")
# Define o título da janela de diálogo instanciada acima.
CALL _ADVPL_set_property(l_dlg_ref,"TITLE","Título da tela de diálogo principal do formulário")
# Recupera o título da janela de diálogo instanciada anteriormente.
LET l_title = _ADVPL_get_property(l_dlg_ref,"TITLE")
# Ativa a janela de diálogo instanciada anteriormente, invocando o método ACTIVATE com o parâmetro TRUE (abrir e exibir a janela).
CALL _ADVPL_set_property(l_dlg_ref,"ACTIVATE",TRUE)
|
A função AdvPL destroy_component() permite destruir um componente instanciado através da função create_component(), visando liberar a memória alocada durante seu uso. Esta função recebe por parâmetro o código de referência do componente que será destruído.
Bloco de código |
---|
language | ruby |
---|
theme | Confluence |
---|
title | Exemplo de código para destruição de um componente FreeForm |
---|
linenumbers | true |
---|
| DEFINE l_dlg_ref VARCHAR(10)
# Instância de um novo componente.
LET l_dlg_ref = _ADVPL_create_componente(NULL,"LDIALOG")
# Destruição de componente instanciado.
CALL _ADVPL_destroy_componente(l_dlg_ref)
|
|