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

Í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".

       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

       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)       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”.

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

Consulta 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.

       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.

Consulta 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.

Consulta 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



Produto: Framework

Versão: 12.1.XX

Processo: Filtros como parâmetros em consultas SQL

Relatório Utilizado: Exemplo Filtro em Consulta SQL.zip (Versão: 12.1.27)