Páginas filhas
  • 5. Widget de consulta rápida

Versões comparadas

Chave

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

...

O cadastro de consulta rápida deve ser realizada realizado através do formulário FRM0015 - Indicadores. Neste cadastro é necessário preencher com as informações da consulta.

Nota

Para que seja possível a visualização da consulta rápida no Fluig, a mesma deve estar liberada, ou seja, o desenvolvimento da mesma deve ser encerrada ter sido encerrado através da ferramenta GOLD.

...

O nome da consulta deve seguir o padrão composto pelo código do sistema Logix, a letra "i" e a sequencia de identificação do indicador.

Desenvolvimento

Após a criaçãoo cadastro da consulta rápida, deve ser desenvolvido o fonte 4GL com as funções padrões para a execução da consulta rápida mesma no Fluig. Atualmente são necessárias três 4 funções para cada indicador, sendo:

  1. START: função responsável por retornar dados iniciais da consulta rápida;
  2. SEARCH: função responsável para retornar os dados da consulta;
  3. GET_DATA: função semelhante a função SEARCH, preparada para receber e tratar filtro customizado do widget do Fluig; 
  4. AUTO_COMPLETE: função responsável por retornar as informações do auto-completar do widget no Fluig. 

Nota

Até o momento, não será possível efetuar a chamada do LOG de segurança padrão do LOGIX nas funções da consulta rápida. Estas consultas não são cadastradas no menu e não são dadas permissões no ERP, apenas via Fluig Identity. Por este motivo se as funções possuírem chamadas do LOG de segurança, a execução da consulta será interrompida.

...

  • os filtros que poderão ser realizados;
  • as colunas que irão compor comporão a grade com os dados da consulta;
  • a lista de filtros pré-definidos que poderão ser utilizados; e
  • a lista com o nome dos programas que poderão ser executados a partir da consulta.

...

A execução da função acima irá permitir possibilitará a inicialização do widget de consulta rápida e irá criá-lo semelhante a , o qual será criado de forma semelhante à tela abaixo:

Função de SEARCH

No 4GL o nome desta função deve ter o sufixo _indicator_search, deve ter e receberá como parâmetros:

  1. nome da coluna de filtro selecionada pelo usuário;
  2. valor do filtro informado pelo usuário;
  3. valor do filtro pré-definido selecionado;
  4. nome da coluna de ordenação;
  5. tipo de ordenação;
  6. quantidade de linhas por página; e
  7. número da página de consulta atual.

...

Informações

A tecnica apresentada aqui foi pensada para reduzir ao máximo a necessidade de alteração dos programas já construidos em função , motivada pela inclusão de novos parâmetros. Por isso, é apresentada a passagem dos mesmos usando a função _ADVPL_QSSetParameters(), cuja chamada também é realizada pelo serviço REST, desenvolvido pelo Framework, e que . Este serviço é o responsável por chamar o programa de consulta rápida desenvolvido pela área de negócio/segmento.

...

No 4GL o nome da função deve conter o sufixo _indicator_get_data e não receberá parâmetros. Estes serão passados para a função através de uma área de memória compartilhada, acessível através da função _ADVPL_QSGetParameter("nome_do_parametro"), onde "nome_do_parâmetro" é o identificador do campo dentro da área de memória compartilhada que contem o valor desejado.

O Quando da criação dessa função, o corpo da função SEARCH deve ser transferido para a função GET-DATAela, sendo que a primeira deve ser mantida no 4GL, por questões de compatibilidade, e deve ser reescrita para apenas chamar a função GET-DATA passando os parâmetros através da área de memória compartilhada.

...

A variável RECORD deve ser preenchida com os valores correspondentes antes de ser passada como parâmetro para a função _ADVPL_QSSetParameters(<variavel_record>). Lembre-se de inicializar o a variável RECORD antes de atribuir valores ao mesmo.

 

 

aos campos da mesma.

Exemplo

Trecho demonstrando a função SEARCH reescrita para chamar a função GET-DATA. Também é mostrada a definição da variável RECORD e a utilização da função _ADVPL_QSSetParameters().

...

Os dados atribuidos à área de memória compartilhada são recuperados através da função _ADVPL_QSGetParameter("nome_do_parametro"), onde "nome_do_parametro" deve ser exatamente igual ao campo da variável RECORD que se deseja recuperar.
No exemplo abaixo, vemos o trecho

Exemplo

Trecho da função GET-DATA onde é feita a recuperação dos parâmetros.

Exemplo
Bloco de código
languagetext
#---------------------------------------------------------------------------------------------------------------#
FUNCTION log1i_indicator_get_data()
#---------------------------------------------------------------------------------------------------------------#
    DEFINE l_filter_column CHAR(50),  #Coluna de filtro (opcional)
           l_filter_value  CHAR(300), #Valor do filtro da coluna acima (opcional)
           l_selection     CHAR(01),  #Valor selecionado na lista de filtros (opcional)
           l_sort_col      CHAR(50),  #Coluna de ordenação (opcional)
           l_sort_order    CHAR(04),  #Tipo de ordenação ASC ou DESC (opcional)
           l_rows          SMALLINT,  #Máximo de registros por página
           l_page          SMALLINT,  #Página atual de pesquisa
           l_customfilter  CHAR(500)
    
    # ...Trecho de código omitido para maior clareza do exemplo...

    #Recupera os valores dos parametros
    LET l_filter_column = _ADVPL_QSGetParameter("l_searchcol")
    LET l_filter_value  = _ADVPL_QSGetParameter("l_searchval")
    LET l_selection     = _ADVPL_QSGetParameter("l_selection")
    LET l_sort_col      = _ADVPL_QSGetParameter("l_sortcol")
    LET l_sort_order    = _ADVPL_QSGetParameter("l_sortorder")
    LET l_rows          = _ADVPL_QSGetParameter("l_rows")
    LET l_page          = _ADVPL_QSGetParameter("l_page")
    LET l_customfilter  = _ADVPL_QSGetParameter("l_customfilter")

    CALL conout( "Executando LOG1i_indicator_get_data..." )
    CALL conout( "Coluna de filtro...: " || l_filter_column )
    CALL conout( "Valor de filtro....: " || l_filter_value )
    CALL conout( "Selecao............: " || l_selection )
    CALL conout( "Coluna de Ordenacao: " || l_sort_col )
    CALL conout( "Ordenacao:.........: " || l_sort_order )
    CALL conout( "LInhas.............: " || l_rows )
    CALL conout( "Pagina.............: " || l_page )
    CALL conout( "Filtro customizado.: " || l_customfilter )

    # A partir daqui, segue o restante da função get_data...

...

O valor informado no parâmetro customfilter deve estar de acordo com a sintaxe SQL usada no 4GL . Ou seja, e sua aplicação na pesquisa não requer tratamento especifico. Caso Ou seja, caso o conteúdo do parâmetro customfilter não esteja correto, não será necessário qualquer tratamento de exceção adicionalé responsabilidade do programa de consulta rápida tratar os eventuais erros de execução relacionados.

Exemplo

Trecho do corpo da função GET-DATA mostrando como utilizar o valor recebido no parâmetro customfilter.

...

No 4GL o nome desta função deve ter o sufixo _indicator_autocomplete, deve ter como parâmetro:

  1. nome da coluna selecionado selecionada para filtro; e
  2. e o valor do filtro informado pelo usuário.

...

Quando o usuário, no widget de consulta rápida, selecionar um registro na grade e clicar em uma das ações selecionadas é necessário que a execução do programa Logix selecionado já exiba o registro selecionado já consultado.

Para que isso possa ser realizado seja possível é necessário alterar os programas que são informados como ações na função de START. Deve-se incluir nestes programas uma verificação para obter os parâmetros de execução utilizando a função APPLICATION_getNumArgs e já efetuar a operação de consulta.

...

Quando executado através do widget de consulta rápida do Fluig, a função APPLICATION_getNumArgs sempre irá retornar no mínimo três parâmetros, sendo:

  1. ACTION: a palavra "INDICATOR" para identificar que trata-se da ação de um indicador;
  2. INDICATOR: o código do indicador cadastrado no FRM0015. 
  3. A partir do

...

  1. terceiro parâmetro, são

...

  1. enviadas as colunas com os valores selecionados pelo usuário.