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.

...

Por padrão, os fontes de indicadores devem ser criados na pasta "indicadores" dentro da pasta da área de negócio responsável pelo fonte, conforme o exemplo abaixo:

Desenvolvimento

Após criado o identificador, deve ser desenvolvido um fonte 4gl com as funções padrões para a execução da consulta rápida no Fluig. Atualmente são necessárias três funções para cada indicador, uma função responsável por retornar dados iniciais da consulta rápida, outra para retornar os dados retornados pela consulta e a última para habilitar a funcionalidade de auto-completar do widget no Fluig.

Função de START

A primeira função que deve ser criada no fonte de indicador é a função de start. No 4gl o nome desta função deve ter o sufixo _indicator_start não possui parâmetros e deverá retornar para o Fluig uma variável RECORD com as informações de montagem do widget de consulta rápida, como: os filtros que poderão ser realizados, as colunas que irão compor a grade com os dados da consulta, a lista de filtros pré-definidos que poderão ser utilizados, a lista com o nome dos programas que poderão ser executados a partir da consulta e a definição se o indicador utilizará ou não a funcionalidade de auto-completar. Um código de exemplo desta função pode ser visualizado abaixo:

Bloco de código
languagenone
linenumberstrue
#------------------------------#
FUNCTION logi1_indicator_start()
#------------------------------#
    DEFINE lr_start RECORD
                        filters   ARRAY[2] OF
                                  RECORD
                                      table_name  LIKE frm_column.table_name,
                                      column_name LIKE frm_column.column_name
                                  END RECORD,
                                  
                        columns   ARRAY[3] OF
                                  RECORD
                                      table_name  LIKE frm_column.table_name,
                                      column_name LIKE frm_column.column_name,
                                      detail      SMALLINT,       
                                      can_order   SMALLINT
                                  END RECORD,
                                  
                        selection ARRAY[3] OF
                                  RECORD
                                      code        CHAR(03),
                                      label       CHAR(50)
                                  END RECORD,
                                  
                        actions   ARRAY[2] OF
                                  RECORD
                                      code        CHAR(08),
                                      label       CHAR(50)
                                  END RECORD,
                        
                        autocompl SMALLINT
                    END RECORD
                    
    IF  LOG_initApp("PADRAO") > 0 THEN
        RETURN
    END IF
                           
    #Define as colunas de filtro da consulta rápida
    LET lr_start.filters[1].table_name  = 'log_grupos'
    LET lr_start.filters[1].column_name = 'grupo'
    
    LET lr_start.filters[2].table_name  = 'log_grupos'
    LET lr_start.filters[2].column_name = 'des_grupo'
    
    #Define as colunas da consulta rápida
    LET lr_start.columns[1].table_name  = 'usuarios'
    LET lr_start.columns[1].column_name = 'cod_usuario'
    LET lr_start.columns[1].can_order   = TRUE
    
    LET lr_start.columns[2].table_name  = 'usuarios'
    LET lr_start.columns[2].column_name = 'nom_funcionario'
    LET lr_start.columns[2].can_order   = TRUE
    
    LET lr_start.columns[3].table_name  = 'usuarios'
    LET lr_start.columns[3].column_name = 'ind_admlog'
    LET lr_start.columns[3].can_order   = FALSE
    
    #Define quais valores estarão na seleção de filtros
    LET lr_start.selection[1].code  = '*'
    LET lr_start.selection[1].label = 'Todos os usuários'
    
    LET lr_start.selection[2].code  = 'S'
    LET lr_start.selection[2].label = 'Somente administradores'
    
    LET lr_start.selection[3].code  = 'N'
    LET lr_start.selection[3].label = 'Somente usuários comuns'
    
    #Define quais programas poderão ser chamados pela consulta
    LET lr_start.actions[1].code  = 'log02700'
    LET lr_start.actions[1].label = 'Usuários'
    
    LET lr_start.actions[2].code  = 'log02720'
    LET lr_start.actions[2].label = 'Grupos do usuário'
    
    #Indica se irá existir a funcionalidade de auto-complete
    LET lr_start.autocompl = TRUE
    
    RETURN lr_start
END FUNCTION

A execução da função acima irá permitir a inicialização do widget de consulta rápida e irá criá-lo semelhante a tela abaixo: