Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Section
Column
width25%
Painel
borderColordarkgrey
borderStyledashed

Card template
DescComponentes Freeform Visuais
BtnURLhttps://tdn.totvs.com/pages/viewpage.action?pageId=244425814
BtnTextAcesse
Largura300px
TituloMENU
Imagemhttps://tdn.totvs.com/download/thumbnails/244425808/binoculars.png?api=v2&nonce=1678217108513



Card template
DescComponentes Freeform Não Visuais
BtnURLhttps://tdn.totvs.com/pages/viewpage.action?pageId=244425819
BtnTextAcesse
Largura300px
TituloMENU
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
Largura300px
TituloGRADES
Imagemhttps://tdn.totvs.com/download/thumbnails/244425808/computer.png?api=v2&nonce=1678217107725




Pagetitle
LGX - Componentes Freeform
LGX - 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 componentes visuais, o Freeform engloba um conjunto de outros componentes 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 Freeform no Logix são utilizadas 3 funções AdvPL simples:

  • create_component()
  • set_property()
  • get_property()

Criando um componente (create_component)


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

Exemplo

Bloco de código
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 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 é que com a get_property é possível recuperar o valor da propriedade ou da execução do método informado, porém a set_property só permite alterar estas propriedades ou métodos.

Ambas as função 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.

Nota

Se a referência do componente informada estiver nula ou não for válida, será exibida uma mensagem de erro informado que “componente é inválido” e se o método informado também não for válido, 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.

Exemplo

Bloco de código
languageperl
themeConfluence
linenumberstrue
DEFINE l_dlg_ref VARCHAR(10)
DEFINE l_title   CHAR(50)
 
LET l_dlg_ref = _ADVPL_create_componente(NULL,"LDIALOG")

# Define o título da janela.
CALL _ADVPL_set_property(l_dlg_ref,"TITLE","VDP20000 – Manutenção de Pedidos")
 
# Recupera o título definido acima.
LET l_title = _ADVPL_get_property(l_dlg_ref,"TITLE")

# Ativa a janela criada acima.
CALL _ADVPL_set_property(l_dlg_ref,"ACTIVATE",TRUE)