Cria e executa uma tela de pesquisa, onde são informados filtros utilizados na seleção de registros.

As tabelas e colunas que poderão ser filtradas podem ser informadas manualmente ou recuperadas através do conteúdo metadado.

Nesta tela podem ser informados filtros no formato básico (apenas com valores), avançado (utilizando valores e comandos especiais) e também permite definir a ordenação dos registros. Este componente não executa nenhum comando na base de dados, apenas monta um filtro no formato SQL para que seja utilizado em uma pesquisa.


Hierarquia



Sintaxe


_ADVPL_create_component( NULL, "LCONSTRUCT" )


Métodos GET


Métodos acessíveis através da função _ADVPL_get_property que permite recuperar e manipular os valores do componente:


Método GET: INIT_CONSTRUCT 

Inicia a execução da tela de filtro de pesquisa e retorna se o filtro foi ou não confirmado pelo usuário.

Sintaxe



_ADVPL_get_property( <cReference>, "INIT_CONSTRUCT" ) => Boolean

Retorno



TipoDescrição
BOOLEAN

Verdadeiro se o filtro foi confirmado pelo usuário, falso se foi cancelado


Exemplo



  LET l_status = _ADVPL_get_property( <cReference>, "INIT_CONSTRUCT" )



Método GET: WHERE_CLAUSE

Retorna o filtro informado na tela de pesquisa, no formato SQL.

Sintaxe



_ADVPL_get_property( < creference >, "WHERE_CLAUSE" ) => Char

Retorno



TipoDescrição
CHAR

Filtro informado na tela de pesquisa no formato SQL.


Exemplo



LET l_where_clause = _ADVPL_get_property( <cReference>, "WHERE_CLAUSE" )



Método GET: WHERE_CLAUSE_TABLE_COLUMN

Retorna o filtro no formato SQL, informado para determinada coluna da tela de pesquisa.

Sintaxe



_ADVPL_get_property( < creference >, "WHERE_CLAUSE_TABLE_COLUMN", <cTable>, <cColumn> ) => Char

Parâmetros



NomeTipoDescriçãoObrigatório?
cTableCHARNome da tabela da coluna.Sim
cColumnCHARNome da coluna.Sim


Retorno



TipoDescrição
CHAR

Filtro no formato SQL informado para a coluna.


Exemplo



LET l_where_clause = _ADVPL_get_property( <cReference>, "WHERE_CLAUSE_TABLE_COLUMN", <cTable>, <cColumn> )



Método GET: ORDER_BY

Retorna a ordenação informada na tela de pesquisa, no formato SQL.

Sintaxe



_ADVPL_get_property( < creference >, "ORDER_BY") => Char

Retorno



TipoDescrição
CHAR

Ordenação informada na tela de pesquisa, no formato SQL.


Exemplo



LET l_order_by = _ADVPL_get_property( <cReference>, "ORDER_BY" )



Método GET: CONSTRUCT_NAME

Retorna o nome identificador definido para o componente.

Sintaxe



_ADVPL_get_property( < creference >, "CONSTRUCT_NAME") => Char

Retorno



TipoDescrição
CHAR

Nome identificador definido para o componente.

Exemplo



LET l_construct_name = _ADVPL_get_property( <cReference>, "CONSTRUCT_NAME" )



Método GET: WHERE_CLAUSE_BY_TABLE

Retorna o filtro no formato SQL, informado para determinada tabela da tela de pesquisa.

Sintaxe



_ADVPL_get_property( < creference >, "WHERE_CLAUSE_BY_TABLE", <cTable>) => Char

 Parâmetros



NomeTipoDescriçãoObrigatório?
cTableCHARNome da tabela.Sim


Retorno



TipoDescrição
CHAR

Filtro no formato SQL, informado para a tabela.

Exemplo



LET l_where_clause = _ADVPL_get_property( <cReference>, "WHERE_CLAUSE_BY_TABLE", <cTable> )



Método GET: ORDER_BY_TABLE

Retorna a ordenação no formato SQL, informado para determinada tabela da tela de pesquisa.

Sintaxe



_ADVPL_get_property( < creference >, "ORDER_BY_TABLE", <cTable> ) => Char

Retorno



TipoDescrição
CHAR

Ordenação no formato SQL informado para a tabela.


Parâmetros



NomeTipoDescriçãoObrigatório?
cTableCHARNome da tabela.Sim

Exemplo



LET l_order_by = _ADVPL_get_property( <cReference>, "ORDER_BY", <cTable> )




Métodos SET


Métodos acessíveis utilizando a função _ADVPL_set_property que permite alterar e manipular os valores do componente.


Método SET: TEXT 

Texto descritivo criado à direita do componente.

Sintaxe



_ADVPL_set_property(< l_checkbox_reference >,"TEXT",< Texto >)

Parâmetros



NomeTipoDescriçãoObrigatório?
  Texto CHARTexto que descreve o componente, criado à direita do componente.Sim

Exemplo



CALL _ADVPL_set_property(l_checkbox_reference,"TEXT","Permite valor nulo?")




Método SET: VALUE_CHECKED

Valor quando a caixa de seleção estiver assinalada.

Sintaxe



_ADVPL_set_property(< l_checkbox_reference >,"VALUE_CHECKED",< valor >)

Parâmetros



NomeTipoDescriçãoObrigatório?
valorQUALQUERValor que a variável do componente receberá quando a caixa de seleção estiver assinalada.Sim


Exemplo



CALL _ADVPL_set_property(l_checkbox_reference,"VALUE_CHECKED","S")




Método SET: VALUE_NCHECKED

Valor quando a caixa de seleção NÃO estiver assinalada.

Sintaxe



_ADVPL_set_property(< l_checkbox_reference >,"VALUE_NCHECKED",< valor >)

Parâmetros



NomeTipoDescriçãoObrigatório?
valorQUALQUERValor que a variável do componente receberá quando a caixa de seleção NÃO estiver assinalada.Sim

(informação)  No Logix, por padrão, quando criado um componente deste tipo, a descrição em tela deve ser criado à direita do componente através do método TEXT.

Exemplo



#--------------------# FUNCTION LCheckBox()#--------------------#
     DEFINE l_dialog_reference   VARCHAR(10)
     DEFINE l_checkbox_reference VARCHAR(10)

     LET l_dialog_reference = _ADVPL_create_component(NULL,"LDIALOG")
     CALL _ADVPL_set_property(l_dialog_reference,"SIZE",160,120)
     CALL _ADVPL_set_property(l_dialog_reference,"TITLE","Ex.: LCHECKBOX")
     CALL _ADVPL_set_property(l_dialog_reference,"BACKGROUND_COLOR",210,210,210)

     LET l_checkbox_reference = _ADVPL_create_component(NULL,"LCHECKBOX",l_dialog_reference)

     CALL _ADVPL_set_property(l_checkbox_reference,"POSITION",05,05)
     CALL _ADVPL_set_property(l_checkbox_reference,"VALUE_CHECKED","S")
     CALL _ADVPL_set_property(l_checkbox_reference,"VALUE_NCHECKED","N")
     CALL _ADVPL_set_property(l_checkbox_reference,"TEXT","Permite valor nulo?")
     CALL _ADVPL_set_property(l_dialog_reference,"MAXIMIZED",FALSE)
     CALL _ADVPL_set_property(l_dialog_reference,"ACTIVATE",TRUE) END FUNCTION