Expandir |
---|
title | Clique para visualizar... |
---|
|
Section |
---|
Column |
---|
|
- Provê um conjunto de componentes gráficos básicos para contrução GUI´s
- São especializações dos componentes nativos da linguagem ADVPL para operar com linguagem 4GL
- Fornece um mecanismo para atribuição automática de coordenadas de componentes
|
Column |
---|
|
Image Added |
|
O que é Freeform?
Freeform Expandir |
---|
|
title | Veja o conceito de Freeform... |
---|
|
Freeform é o conjunto de componentes visuais e não visuais, que são classes especializadas para o
desenvolvimento de novas funcionalidades e programas no Logix, podendo ou não possuir interface gráfica.Na criação de telas é comumente conhecido como “desenvolvimento à mãos livres”produto Logix construídas com base em componentes fornecidos pela linguagem AdvPl.
Para criação de telas, Freeform é o modelo de desenvolvimento comumente conhecido como desenvolvimento à mãos livres, onde a tela é definida e montada pelo desenvolvedor utilizando chamadas de funções para instanciar componentes
visuais especializadas para o Logix a partir dos componentes visuais do AdvPL.e definir suas características de comportamento com base neste conjunto de componentes visuais ou não visuais.
Além dos
Além de possuir componentes visuais, o modelo Freeform engloba, conforme já mencionado, um conjunto de outros componentes não visuais, que podem ser utilizados para realizar integrações, execuções em THREADs, comunicação com WebServices e banco de dados, entre outras funcionalidades.
Para utilizar um componente Para criar, definir comportamentos e destruir componentes no modelo Freeform no Logix são utilizadas
3 quatro funções AdvPL
simples básicas que são funções desenvolvidas e mantidas pelo time de Framework:
- create_component()
- set_property()
- get_property()
- destroy_component()
Componentes FreeForm
Image Added
Criando um componente | create_component
Expandir |
---|
title | Como criar um componente... |
---|
|
A ()
A função AdvPL create_component
permite permite criar uma instância do componente Freeform em memória e retorna o código de referência do componente criado, que geralmente pode ser atribuído para uma variável do tipo VARCHAR(10)
em código de linguagem 4GL.. Esta função recebe por parâmetro o código de referência do componente que será criado, o nome do componente Freeform e o código de referência do componente pai
(, quando existir
).
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 |
---|
| code |
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
Expandir |
---|
title | Como manipular um componente... |
---|
|
()
As
As funções AdvPL set_property
e ()
e get_property()
permitem executar e manipular métodos e propriedades do componente informado. A diferença entre uma função e outra é
que com a :
- Função
get_property()
é possível recuperar o valor da propriedade ou da execução do método informado
, porém a property só - property() só permite alterar estas propriedades ou invocar métodos.
Ambas
Ambas as
função 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
(limitando-se a 6) para a execução do métododos parâmetros que cada método exige para execução.
Nota |
---|
Expandir |
---|
title | Veja um exemploSe a referência do componente informada estiver nula ou não for válidainválida, será exibida uma mensagem de erro informado que “componente “componente é inválido” inválido” e se o método ou propriedade informado também não for válidofor inválido ou não previsto para o respectivo componente, a mensagem de erro irá informar “propriedade “propriedade informada não prevista para o componente”componente”. Mais informações sobre estas validações podem ser encontradas em em Validações Metadado/Freeform . |
---|
Bloco de código |
---|
| perlruby | 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"," VDP20000Título –da Manutençãotela de Pedidos diálogo principal do formulário")
# Recupera o título definido acimada janela de diálogo instanciada anteriormente.
LET l_title = _ADVPL_get_property(l_dlg_ref,"TITLE")
# Ativa a janela criada acimade 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)
|