Pagetitle |
---|
| LGX - Componentes Freeform |
---|
| LGX - Componentes Freeform |
---|
|
Painel |
---|
borderColor | #C0B6F2 |
---|
bgColor | #C0B6F2 |
---|
|
|
Painel |
---|
borderColor | darkgrey |
---|
borderStyle | dashed |
---|
|
|
Freeform é o conjunto de componentes para o desenvolvimento de novas funcionalidades e programas no Logix, podendo ou não possuir interface gráfica.
...
Painel |
---|
| VISUAIS Image Added Button |
---|
Cor | #13B1D5 |
---|
Texto | Componentes FreeForm Visuais |
---|
Link | https://tdn.totvs.com/pages/releaseview.action?pageId=244425814 |
---|
|
Expandir |
---|
title | Acesse o menu completo... |
---|
| Page Tree |
---|
expandCollapseAll | true |
---|
root | LGX - Freeform Visuais |
---|
|
|
|
|
Column |
---|
| Painel |
---|
| NÃO VISUAIS Image Added Button |
---|
Cor | #13B1D5 |
---|
Texto | Componentes FreeForm NÃO Visuais |
---|
Link | https://tdn.totvs.com/pages/releaseview.action?pageId=244425814 |
---|
|
Expandir |
---|
title | Acesse o menu completo... |
---|
| Page Tree |
---|
expandCollapseAll | true |
---|
root | LGX - Freeform Não Visuais |
---|
|
|
|
|
Column |
---|
| Painel |
---|
| ATALHOS Image Added Button |
---|
Cor | #13B1D5 |
---|
Texto | Atalhos |
---|
Link | https://tdn.totvs.com/pages/releaseview.action?pageId=5265077 |
---|
|
|
|
|
|
Painel |
---|
borderColor | #C0B6F2 |
---|
bgColor | #F0F0FC |
---|
|
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 é o conjunto de componentes visuais e não visuais, que são classes especializadas para o 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 e definir suas características de comportamento com base neste conjunto de componentes visuais ou não visuais. Além dos 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 criar, definir comportamentos e destruir componentes no modelo Freeform no Logix são utilizadas quatro funções AdvPL básicas que são |
|
...
funções desenvolvidas e mantidas pelo time de Framework: |
|
...
...
...
Componentes FreeForm
Image Added Criando um componente
|
|
...
...
A função AdvPL create_component |
|
...
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 |
|
...
...
.
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
|
|
...
...
- 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 |
|
|
...
...
inválida, será exibida uma mensagem de erro informado que |
|
|
...
...
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 |
|
|
...
...
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 |
---|
|
|
|
Exemplo
...
| 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"," |
|
|
...
...
...
...
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" |
|
|
...
...
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)
|
|
|