Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Pagetitle
LGX - Componentes Freeform
LGX - Componentes Freeform

Painel
borderColor#C0B6F2
bgColor#C0B6F2
Page Tree
expandCollapseAlltrue
rootLGX - Componentes Freeform

Confira o Menu completo abaixo

Painel
borderColor#C0B6F2
bgColor#C0B6F2
COMPOMENTES

COMPONENTES FREEFORM

Painel
borderColordarkgrey
borderStyledashed
Section
card-template
Column
Desc
width
Componentes Freeform Visuais
20%
BtnURLhttps://tdn.totvs.com/pages/viewpage.action?pageId=244425814
BtnTextAcesse
Largura260px
TituloVISUAIS
Imagemhttps://tdn.totvs.com/download/thumbnails/244425808/binoculars.png?api=v2&nonce=1678217108513
Card template
DescComponentes Freeform Não Visuais
Painel
borderColordarkgrey

VISUAIS

Image Added

Button
Cor#13B1D5
TextoComponentes FreeForm Visuais
Link

BtnURL

https://tdn.totvs.com/pages/

viewpage

releaseview.action?pageId=

244425819

244425814

Expandir
BtnTextAcesse
Largura260px
TituloNÃO VISUAIS
Imagemhttps://tdn.totvs.com/download/thumbnails/244425808/binary-code.png?api=v2&nonce=1678217108037
Card template
DescTeclas de Atalho
BtnURLhttps://tdn.totvs.com/pages/viewpage.action?pageId=5265077
BtnTextAcesse
Largura260px
TituloATALHOS
Imagemhttps://tdn.totvs.com/download/thumbnails/244425808/computer.png?api=v2&nonce=1678217107725

titleAcesse o menu completo...

Page Tree
expandCollapseAlltrue
rootLGX - Freeform Visuais

Column
width20%
Painel
borderColordarkgrey
borderStyledashed

NÃO VISUAIS

Image Added

Button
Cor#13B1D5
TextoComponentes FreeForm NÃO Visuais
Link

Card templateDescComponentes Freeform VisuaisBtnURL

https://tdn.totvs.com/pages/

viewpage

releaseview.action?pageId=244425814

BtnText
Expandir
titleAcesse
o menu completo...

Page Tree
expandCollapseAlltrue
rootLGX -

Largura260pxTituloVISUAISImagemhttps://tdn.totvs.com/download/thumbnails/244425808/binoculars.png?api=v2&nonce=1678217108513 Card templateDescComponentes

Freeform Não Visuais

BtnURLhttps://tdn.totvs.com/pages/viewpage.action?pageId=244425819BtnTextAcesseLargura260pxTituloNÃO VISUAISImagemhttps://tdn.totvs.com/download/thumbnails/244425808/binary-code.png?api=v2&nonce=1678217108037 Card templateDescTeclas de AtalhoBtnURL
Column
width20%
Painel
borderColordarkgrey

ATALHOS

Image Added

Button
Cor#13B1D5
TextoAtalhos
Linkhttps://tdn.totvs.com/pages/

viewpage

releaseview.action?pageId=5265077

BtnText

AcesseLargura260pxTituloATALHOSImagemhttps://tdn.totvs.com/download/thumbnails/244425808/computer.png?api=v2&nonce=1678217107725


Painel
borderColor#C0B6F2
bgColor#C0B6F2#F0F0FC

INFORMAÇÕES COMPLEMENTARES

Expandir
titleClique para visualizar...

Conceito

Section

FREEFORM




Column
width20%


Column
width30%




  • 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
width50%


Image Added

O que é Freeform?


     Freeform

Expandir
titleVeja 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.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 livresNa criação de telas é 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

()



     A

Expandir
titleComo criar um componente...
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
Bloco de código
languageruby
themeConfluence
titleExemplo
de código para criação de um componente FreeForm
linenumberstrue
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

Expandir
titleComo manipular um componente...
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
    • .
    • Função set_
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

Se 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álidoe 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.

Exemplo

Expandir
titleVeja um exemplo...
Bloco de código
languageperlruby
themeConfluence
titleExemplo de código para recuperar/definir propriedade ou invocar método de de um componente FreeForm
linenumberstrue
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 Pedidosdiá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 acima 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)


Destruindo um componente | destroy_component()



     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
languageruby
themeConfluence
titleExemplo de código para destruição de um componente FreeForm
linenumberstrue
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)