Páginas filhas
  • LGX - LFormMetaData

Versões comparadas

Chave

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

...

Expandir
titleINIT_FORM

Método SET: INIT_FORM

Junção dos métodos "FORM" e "ACTIVATE" para carregar as informações do formulário e executá-lo em seguida.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_form_reference >,"INIT_FORM", < l_form_name >, <l_4glRecord1>, < l_4glRecord2 >, ..., <l_4GLrecordNz> )

Parâmetros



NomeTipoDescriçãoObrigatório?
l_form_reference
CHAR
Referência do formulário de cadastro (FRM1002)Sim
l_4glRecord (1,2,..,N)
4GL 
RECORD

Variáveis RECORD ou ARRAY OF RECORD, separadas por vírgula, que irão controlar o conteúdo do formulário, sendo que para cada tabela informada no formulário é necessário uma variável RECORD para tabelas do tipo mestre e ARRAY OF RECORD para as tabelas do tipo detalhe ou mestre-detalhe.

Dica
iconfalse
A  ordem das variáveis RECORD ou ARRAY OF RECORD deve obedecer a ordem informada no campo "Posição Record 4GL" no cadastro de formulários cadastrais (FRM0002).
Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_form_reference,"INIT_FORM","man10021",mr_item,ma_item_man)




Expandir
titleDETAILORDER_WHERE_CLAUSEBY

Método SET: 

DETAIL

ORDER_

WHERE_CLAUSE

BY

Ordem de consulta padrão para determinado(s) campos do formulário que será utilizada para toda pesquisa executada no formulário

Atribui valor para uma determinada linha e coluna da operação 'Listar' do formulário.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_form_reference >,"DETAILORDER_WHERE_CLAUSEBY", < l_wheretable_clausealias >, < <ll_tablecolumn >, [ l_aliasorder ])

Parâmetros



aliasAlias tabela da qual será definido o filtro.
NomeTipoDescriçãoObrigatório?
l_form_reference
CHAR
Referência do formulário.Sim
l_where_clause
CHAR
Filtro de pesquisa SQL para ser utilizado na operação de pesquisa padrão do formulário.Siml_tabletable_alias
CHAR
Nome da tabela da qual será definido o filtro OU alias. Ccaso a tabela tenha alias definido no formulário, deverá ser informado apenas o alias para definir a ordenação a ser utilizada na operação de pesquisa padrão do formulário.Sim
l_column
CHAR
Nome da Não

(informação) Este filtro será utilizado dentro das cláusulas de junção das tabelas no SQL.

Exemplo

coluna da qual deseja definir a ordenação para ser utilizada na operação de pesquisa padrão do formulário.Sim
l_order
CHAR

Ordenação da coluna a ser respeitada.
ASC - ordenação crescente.
DESC - ordenação decrescente.

(informação) Quando não informado irá assumir automaticamente a ordenação como ASC.

Não

Exemplo



Bloco de código
languageruby
theme
Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_form_reference,"ORDER_BY","item","cod_item","DESC")




Método SET: DETAIL_WHERE_CLAUSE

Atribui valor para uma determinada linha e coluna da operação 'Listar' do formulário.

Sintaxe

Expandir
titleVALUE

Método SET: VALUE

Atribui valor para determinado campo do formulário.

Sintaxe



Bloco de código
##Definir filtro para a tabela detalhe ITEM_MAN de cardinalidade N..0 que possui junção com uma tabela mestre ITEM
LET l_where_clause = "item_man.cod_item = '8575'"

CALL _ADVPL_set_property(< l_form_reference >,"DETAIL_WHERE_CLAUSEVALUE", < l_where_clause,"item_man")

Neste exemplo acima, quando o usuário executar a pesquisa no formulário o filtro SQL será montado da seguinte forma:

 
FROM item LEFT OUTER JOIN item_man
ON item_man.cod_empresa = item.cod_empresa
AND item_man.cod_item = item.cod_item
AND item_man.cod_item = '8575'
Expandir
titleDETAIL_WHERE_CLAUSE
Bloco de código
_ADVPL_set_property(< l_form_reference >,"DETAIL_WHERE_CLAUSE", < l_where_clause >, <l_table >, [ l_alias ])

Parâmetros

NomeTipoDescriçãoObrigatório?l_form_reference
CHAR
Referência do formulário.Siml_where_clause
CHAR
Filtro de pesquisa SQL para ser utilizado na operação de pesquisa padrão do formulário.Siml_table
CHAR
Nome da tabela da qual será definido o filtro.Siml_alias
CHAR
Alias da tabela da qual será definido o filtro.Não

(informação) Este filtro será utilizado dentro das cláusulas de junção das tabelas no SQL.

Exemplo

Bloco de código
languageruby
themeConfluence
linenumberstrue
##Definir filtro para a tabela detalhe ITEM_MAN de cardinalidade N..0 que possui junção com uma tabela mestre ITEM
LET l_where_clause = "item_man.cod_item = '8575'"

CALL _ADVPL_set_property(l_form_reference,"DETAIL_WHERE_CLAUSE",l_where_clause,"item_man")

Neste exemplo acima, quando o usuário executar a pesquisa no formulário o filtro SQL será montado da seguinte forma:

 
FROM item LEFT OUTER JOIN item_man
ON item_man.cod_empresa = item.cod_empresa
AND item_man.cod_item = item.cod_item
AND item_man.cod_item = '8575'
Expandir
titleDETAIL_WHERE_CLAUSE

Método SET: DETAIL_WHERE_CLAUSE

Atribui valor para uma determinada linha e coluna da operação 'Listar' do formulário.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_form_reference >,"DETAIL_WHERE_CLAUSE", < l_where_clause >, <l_table >, [ l_alias ])

Parâmetros

NomeTipoDescriçãoObrigatório?l_form_reference
CHAR
Referência do formulário.Siml_where_clause
CHAR
Filtro de pesquisa SQL para ser utilizado na operação de pesquisa padrão do formulário.Siml_table
CHAR
Nome da tabela da qual será definido o filtro.Siml_alias
CHAR
Alias da tabela da qual será definido o filtro.Não

(informação) Este filtro será utilizado dentro das cláusulas de junção das tabelas no SQL.

Exemplo

Bloco de código
languageruby
themeConfluence
linenumberstrue
##Definir filtro para a tabela detalhe ITEM_MAN de cardinalidade N..0 que possui junção com uma tabela mestre ITEM
LET l_where_clause = "item_man.cod_item = '8575'"

CALL _ADVPL_set_property(l_form_reference,"DETAIL_WHERE_CLAUSE",l_where_clause,"item_man")

Neste exemplo acima, quando o usuário executar a pesquisa no formulário o filtro SQL será montado da seguinte forma:

 
FROM item LEFT OUTER JOIN item_man
ON item_man.cod_empresa = item.cod_empresa
AND item_man.cod_item = item.cod_item
AND item_man.cod_item = '8575'
Expandir
titleDETAIL_WHERE_CLAUSE

Método SET: DETAIL_WHERE_CLAUSE

Atribui valor para uma determinada linha e coluna da operação 'Listar' do formulário.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_form_reference >,"DETAIL_WHERE_CLAUSE", < l_where_clause >, <l_table >, [ l_alias ])

Parâmetros

NomeTipoDescriçãoObrigatório?l_form_reference
CHAR
Referência do formulário.Siml_where_clause
CHAR
Filtro de pesquisa SQL para ser utilizado na operação de pesquisa padrão do formulário.Siml_table
CHAR
Nome da tabela da qual será definido o filtro.Siml_alias
CHAR
Alias da tabela da qual será definido o filtro.Não

(informação) Este filtro será utilizado dentro das cláusulas de junção das tabelas no SQL.

Exemplo

Bloco de código
languageruby
themeConfluence
linenumberstrue
##Definir filtro para a tabela detalhe ITEM_MAN de cardinalidade N..0 que possui junção com uma tabela mestre ITEM
LET l_where_clause = "item_man.cod_item = '8575'"

CALL _ADVPL_set_property(l_form_reference,"DETAIL_WHERE_CLAUSE",l_where_clause,"item_man")

Neste exemplo acima, quando o usuário executar a pesquisa no formulário o filtro SQL será montado da seguinte forma:

 
FROM item LEFT OUTER JOIN item_man
ON item_man.cod_empresa = item.cod_empresa
AND item_man.cod_item = item.cod_item
AND item_man.cod_item = '8575'
Expandir
titleDETAIL_WHERE_CLAUSE

Método SET: DETAIL_WHERE_CLAUSE

Atribui valor para uma determinada linha e coluna da operação 'Listar' do formulário.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_form_reference >,"DETAIL_WHERE_CLAUSE", < l_where_clause >, <l_table >table>, < l_column >, < l_value >, [ l_line ], [ l_alias ])

Parâmetros



NomeTipoDescriçãoObrigatório?
l_form_reference
CHAR
Referência do formulário.Sim
l_where_clausetable
CHAR
Tabela da coluna do formulário da qual terá o valor alterado.Sim
l_column
CHAR
Coluna do formulário da qual terá o alterado.Sim
l_value
-
Qualquer valor a ser atribuído para a coluna do formulário, respeitando o tipo de dado
CHAR
Filtro de pesquisa SQL para ser utilizado na operação de pesquisa padrão do formulário.Sim
l_tableline
CHAR
INTEGER
Linha do grid do formulário Nome da tabela da qual será definido o filtro.terá o valor alteradoNãoSim
l_alias
CHAR
Alias da tabela com a coluna do formulário da qual será definido terá o filtrovalor alterado.Não
(informação) Este filtro será utilizado dentro das cláusulas de junção das tabelas no SQL.

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstruetrue
CALL _ADVPL_set_property(l_form_reference,"VALUE","item","cod_empresa","50")




Expandir
titleWHERE_CLAUSE

Método SET: WHERE_CLAUSE

Filtro de consulta padrão para o formulário que será utilizado para toda pesquisa realizada.

Sintaxe



Bloco de código
##Definir filtro para a tabela detalhe ITEM_MAN de cardinalidade N..0 que possui junção com uma tabela mestre ITEM
LET l_where_clause = "item_man.cod_item = '8575'"

CALL _ADVPL_set_property(< l_form_reference >,"DETAIL_WHERE_CLAUSE", < l_where_clause,"item_man")

Neste exemplo acima, quando o usuário executar a pesquisa no formulário o filtro SQL será montado da seguinte forma:


FROM item LEFT OUTER JOIN item_man
ON item_man.cod_empresa =
 >)

Parâmetros



NomeTipoDescriçãoObrigatório?
l_form_reference
CHAR
Referência do formulário.Sim
l_where_clause
CHAR
Filtro de pesquisa SQL para ser utilizado na operação de pesquisa padrão do formulário.Sim

(informação) Este filtro será utilizado no filtro WHERE do SQL padrão do metadado.

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Definir um filtro para uma tabela mestre (item):
LET l_where_clause = "item.cod_empresa 

AND item_man.cod_item = item.cod_item
= '50'"

CALL _ADVPL_set_property(l_form_reference,"WHERE_CLAUSE",l_where_clause)

Neste exemplo acima, quando o usuário executar a pesquisa, este filtro será montado da seguinte forma:


FROM item ANDWHERE item_man.cod_itemempresa = '857550'




Expandir
titleDETAILZOOM_WHERE_CLAUSENAME

Método SET: 

DETAIL

ZOOM_

WHERE_CLAUSE

NAME

Atribui valor para uma determinada linha e coluna da operação 'Listar' do formulário.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_form_reference >,"DETAILZOOM_WHERE_CLAUSENAME", < l_wherezoom_clausename 	>, <l_table >, [ l_alias ])

Parâmetros



NomeTipoDescriçãoObrigatório?
l_form_reference_reference
CHAR
Referência do formulário.Sim
l_zoom_name
CHAR
Referência do formulárioNome do novo zoom que será atribuído para o campo. Este zoom deve estar cadastrado no programa "FRM1008 - Zoom".Sim
l_where_clausetable
CHAR
Filtro
de pesquisa SQL para ser utilizado na operação de pesquisa padrão do formulárioNome da tabela da coluna do formulário da qual terá o zoom alterado.Sim
l_tablecolumn
CHAR
Nome da tabela coluna do formulário da qual será definido terá o filtrozoom alterado.Sim
l_alias
CHAR
Alias da tabela com a coluna do formulário da qual será definido o filtro.Não
(informação) Este filtro será utilizado dentro das cláusulas de junção das tabelas no SQL.
terá o zoom alterado.Não

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
##Definir filtro para a tabela detalhe ITEM_MAN de cardinalidade N..0 que possui junção com uma tabela mestre ITEM
LET l_where_clause = "item_man.cod_item = '8575'"

CALL _ADVPL_set_property(l_form_reference,"DETAILZOOM_WHERE_CLAUSENAME",l"zoom_whereitem_clauseman","item","cod_manitem")

Neste exemplo acima, quando o usuário executar a pesquisa no formulário o filtro SQL será montado da seguinte forma:

 
FROM item LEFT OUTER JOIN item_man
ON item_man.cod_empresa = item.cod_empresa
AND item_man.cod_item = item.cod_item
AND item_man.cod_item = '8575'





Sintaxe

...

Bloco de código
LET m_form_reference = _ADVPL_create_component(NULL,"LFORMMETADATA")     
CALL _ADVPL_set_property(m_form_reference,"INIT_FORM",<form_name>,<4GLrecord1>,<4GLrecord2>,...,<4GLrecordN>) 

Exemplo

...

Bloco de código
languageruby
themeConfluence
linenumberstrue
DATABASE logix 

GLOBALS     
	DEFINE p_user        LIKE usuarios.cod_usuario     
	DEFINE p_cod_empresa LIKE empresa.cod_empresa 
END GLOBALS 

DEFINE mr_item           RECORD LIKE item.* 

DEFINE ma_item_man       ARRAY[100] OF RECORD LIKE item_man.* 

DEFINE m_form_reference  VARCHAR(10)

#-------------------# 
 FUNCTION man10021()
#-------------------#     
	# Verifica permissão para o usuário conforme módulo do programa.     

	IF  LOG_initApp("PADRAO") <> 0 THEN         
		RETURN     
	END IF     

	INITIALIZE mr_item.*, ma_item_man TO NULL     
	LET m_form_reference = _ADVPL_create_component(NULL,"LFORMMETADATA")     
	CALL _ADVPL_set_property(m_form_reference,"INIT_FORM","man10021",mr_item,ma_item_man) 
END FUNCTION

...