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 são utilizadas três funções AdvPL simples: create_component
, set_property
e get_property
.
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).
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)
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.
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)