Páginas filhas
  • Utilização de Filtro como parâmetro em consultas SQL

Versões comparadas

Chave

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

Índice:


       

Índice
exclude.*ndice:

Objetivo:


       Este documento tem por objetivo orientar a utilização do componente Filtro do Reports como parâmetro para uma consulta SQL utilizada no relatório.

Introdução:


       É possível utilizar filtros de um relatório como parâmetros para execução de consultas SQL, desde que o relatório possua um ou mais controles do tipo "Filtro".

Informações
iconfalse
Deck of Cards
widthExemplos de Filtro
idFiltros
Card
id1
labelInserindo Filtro no Relatório
titleInserindo Filtro no Relatório

       Para inclusão de um filtro no relatório acesse seu design. Para isso selecione o relatório, clique no menu “Processos | Editar Estrutura”. Depois de acessar o design do relatório selecione o menu “Inicio | Estrutura | Filtros”. Para exemplo incluiremos um filtro “Chapa” no relatório.

(ideia)       Informações sobre regras e condições de criação de um filtro acesse: Filtros

Card
id2
labelInserindo o Controle Filtro
titleInserindo o Controle Filtro

       Para inserir o controle do tipo Filtro, primeiramente é necessário criar um filtro em seu relatório, conforme mencionado no processo “Inserindo Filtro no Relatório”(aviso).

       Depois de criado o filtro em seu relatório acesse a barra “Caixa de Ferramentas”(informação), selecione o controle do tipo “Filtro” e arraste-o para estrutura do seu relatório.

       Depois de incluído o controle do tipo Filtro no seu relatório é necessário configurá-lo para que seja apresentada as informações desejadas. Lembramos que o valor configurado será o valor repassado a consulta SQL.

       Para exemplo configuraremos o filtro chapa criado no processo “Inserindo Filtro no Relatório” para que apresente o valor da chapa somente e não toda a condição do filtro que seria “Chapa = ‘00001’”.

       Selecione o controle e acesse as propriedades deste controle teclando F4 em seu teclado. No grupo de propriedades “Diversos” selecione na propriedade “Filtro” o valor “Filtro Relatório”. Em seguida na propriedade “Clausula” selecione o filtro desejado e para finalizar em “Valor” selecione a opção para que o valor do filtro seja apresentado, no exemplo utilizaremos o valor da chapa.

Aviso
iconfalse

(aviso)       Lembramos que filtros são passiveis de criação somente em relatórios com uma fonte de dados do tipo tabela associada a banda do relatório.

(informação)       Para habilitar a barra de Caixa de Ferramentas acesse o menu “Exibição | Janelas | Caixa de Ferramentas”.

Card
id3
labelFiltro - Parâmetro em SQL
titleFiltro - Parâmetro em SQL

       Para exemplificarmos a usabilidade do filtro como parâmetro criarmos a seguinte consulta SQL para incluí-la no relatório.

Bloco de código
languagesql
titleConsulta Exemplo
SELECT PFDEPEND.NOME,
       PFDEPEND.DTNASCIMENTO,
       PCODPARENT.DESCRICAO AS PARENTESCO
FROM   PFDEPEND ( NOLOCK )
       INNER JOIN PCODPARENT ( NOLOCK )
               ON ( PFDEPEND.GRAUPARENTESCO = PCODPARENT.CODINTERNO )
WHERE  PFDEPEND.CHAPA = :FILTRO1

       Esta consulta SQL foi adicionada ao sub-detalhe do relatório. A estrutura do relatório resultou ficou da seguinte forma.

       Como parâmetro utilizaremos o nome do Controle Filtro (Filtro1) na condição da consulta SQL. Desta forma ao executarmos o relatório o sistema irá utilizar o valor do Controle Filtro como parâmetro. O resultado do relatório será o seguinte.

Card
id4
labelFiltro - Tipo Data
titleFiltro - Tipo Data

       Para uso de filtros que utilizam valores de dada como parâmetros é necessário que a consulta SQL tenha um tratamento de conversão do parâmetro para correta execução.

       Neste exemplo abaixo temos uma consulta SQL sem nenhum tratamento para receber o valor do Controle Filtro.

Aviso
iconfalse
Bloco de código
languagesql
titleConsulta Incorreta
SELECT	PFUNC.DATADEMISSAO
FROM	PFUNC ( NOLOCK )
WHERE	PFUNC.DATADEMISSAO BETWEEN :Filtro1 AND :Filtro2
	AND PFUNC.CHAPA = :CHAPA_S

       Neste exemplo a mesma consulta SQL, porém com os devidos ajustes para que o valor data do filtro seja compreendido corretamente.

Informações
iconfalse
Bloco de código
languagesql
titleConsulta Correta
SELECT	PFUNC.DATADEMISSAO
FROM	PFUNC ( NOLOCK )
WHERE	PFUNC.DATADEMISSAO BETWEEN	CONVERT(DATE, :Filtro1, 103)
								AND CONVERT(DATE, :Filtro2, 103)
	AND PFUNC.CHAPA = :CHAPA_S



Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 12.1.XX

Informações
iconfalse

Processo: Filtros como parâmetros em consultas SQL

Informações
iconfalse
Informações
iconfalse

Status: Finalizado

Informações
iconfalse

Data: 26/11/2019

Informações
iconfalse

Autores:

Aline Cristina Braz de Oliveira

Erlon Cesar Lima De Freitas

Gustavo Naves De Castro

Igor Macedo Cardoso

LUCAS ANDRADE DE OLIVEIRA REIS

Renan Ramos Moura

Wesley Avelino De Carvalho