Versões comparadas

Chave

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

Pagetitle
LGX - Componentes Freeform
LGX - Componentes Freeform

Informaçõesiconfalse

Painel
borderColor
darkgrey
#C0B6F2
bgColor
borderStyle
#C0B6F2
dashed

COMPONENTES FREEFORM

showcase
Painel
imagehttps://tdn.totvs.com/download/thumbnails/244425808/binoculars%20-%20Copia.png?api=v2&nonce=1678220525616
sideright
button-linkhttps://tdn.totvs.com/pages/viewpage.action?pageId=5265077
button-textAcesse
descriptionComponentes Visuais
titleVISUAIS
      Showcaseimagehttps://tdn.totvs.com/download/thumbnails/244425808/binary-code%20-%20Copia.png?api=v2&nonce=1678220623279sideright
borderColordarkgrey
borderStyledashed
Section
Column
width20%
Painel
borderColordarkgrey

VISUAIS

Image Added

Button
Cor#13B1D5
TextoComponentes FreeForm Visuais
Link

button-link

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

viewpage     
Showcase
imagehttps://tdn.totvs.com/download/thumbnails/244425808/computer%20%281%29.png?api=v2&nonce=1678219930080
sideright
button-linkhttps://tdn.totvs.com/pages/viewpage.action?pageId=5265077
button-textAcesse
descriptionTeclas de Atalho
titleATALHOS

releaseview.action?pageId=

5265077button-textAcessedescriptionComponentes Não VisuaistitleNÃO VISUAIS

244425814

Expandir
titleAcesse o menu completo...

Page Tree
expandCollapseAlltrue
rootLGX - Freeform Visuais

Column
width20%
Painel
borderColordarkgrey
borderStyle

NÃO VISUAIS

dashed

Image Added

info

Button

icon

Cor

false

#13B1D5

card-template

Texto

Desc

Componentes

Freeform

FreeForm NÃO Visuais

BtnURL

Linkhttps://tdn.totvs.com/pages/

viewpage

releaseview.action?pageId=244425814

Expandir
BtnTextAcesseLargura300pxTituloVISUAISImagemhttps://tdn.totvs.com/download/thumbnails/244425808/binoculars.png?api=v2&nonce=1678217108513 Painel
borderColordarkgrey
borderStyledashed
titleAcesse o menu completo...

Page Tree
expandCollapseAlltrue
rootLGX -

Informações
iconfalse
Card templateDescComponentes

Freeform Não Visuais

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

ATALHOS

dashed

Image Added

info

Button

icon

Cor

false

#13B1D5

card-template

Texto

DescTeclas de Atalho

Atalhos
Link

BtnURL

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

viewpage

releaseview.action?pageId=5265077

BtnText


Painel
borderColor
Acesse
#C0B6F2
Largura
bgColor
300px
#F0F0FC
Titulo

INFORMAÇÕES COMPLEMENTARES

ATALHOS
Expandir
Imagemhttps://tdn.totvs.com/download/thumbnails/244425808/computer.png?api=v2&nonce=1678217107725
titleClique para visualizar...
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 é 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

PagetitleLGX - Componentes FreeformLGX - Componentes Freeform
Informações
iconfalse
Page Tree
rootLGX - Componentes Freeform

Conceito

Freeform é o conjunto de componentes 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”

, onde a tela é definida e montada pelo desenvolvedor utilizando

componentes visuais especializadas para o Logix a partir dos componentes visuais do AdvPL.Além de possuir

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 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


     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

)
Bloco de código

.

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
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


     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 
    • 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étodo

dos 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álida

invá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álido

for 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.

Exemploperl

Bloco de código
language
ruby
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","
VDP20000
Título 
da 
Manutenção
tela de
Pedidos
 diálogo principal do formulário")
 
# Recupera o título 
definido acima
da 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)