---
title: Construir e Manter Relatórios Smart
slug: citsmart8-pt/construir-e-manter-relatorios-smart
description: Learn how to create customized reports effortlessly using the Smart Reports feature in CITSmart. Discover step-by-step instructions on creating reports with the Designer tool or coding in SQL/Rhino. Explore adding filters, importing/exporting reports, and
docTags: 
createdAt: 2022-01-14T19:57:42.000Z
---

Esta funcionalidade tem o objetivo de **prover a facilidade de elaboração de&#x20;relatórios personalizados com os dados das funcionalidades requeridas, sem&#x20;necessidade de novas atualizações ou softwares adicionais**.

## Antes de começar

- [x] É necessário ter permissão de acesso. Além disso, para usar o Designer é necessário definir o nome do Schema de banco de dados a partir do parâmetro 32 (ex. public).

## Cadastrar um Smart Report

1. Acesse a funcionalidade através da navegação no menu `Relatórios > Relatórios Smart > Gerador de Relatórios Smart`;
2. Clique no botão "**Novo**";
3. Clique no botão "**Gravar**";

## Construir Smart Reports

A construção de Smart Reports pode ser realizada seguindo uma das abordagens abaixo:

- **Usando o Designer:**
  1. Selecione as Tabelas que serão consultadas;
  2. Indique os Relacionamentos;
  3. Insera filtros pela aba "**Parâmetros**";
  4. Defina Condições (apenas depois de criar os filtros);
  5. Adicione Resultados;
- **Codificando**
  1. Escreva o conteúdo SQL/Rhino/JSP na aba correspondente;
  2. Insera filtros pela aba "**Parâmetros**";

:::hint{type="warning"}
⚠&#xFE0F;***Atenção*****!**&#x20;

Quando se usa o Designer para a construção do relatório, automaticamente as query's são criadas e estão visíveis na aba "**SQL**". Perceba que não é possível usar, ao mesmo tempo, Designer e inserção manual de conteúdo SQL.
:::

### Usar Ferramenta de Designer

A ferramenta de Designer possibilita a criação de relatórios SQL sem a necessidade de codificação. Veja abaixo os itens disponíveis:

- **Tabelas:** Nesta área, você deve selecionar as tabelas que serão consultadas, para isso, clique em "**Adicionar**", no Campo "**Nome**", digite o nome da tabela e o resultado aparecerá automaticamente. Clique na(s) tabela(a) e depois clique em "**Enviar**". É possível remover a seleção de tabelas clicando no checkbox do lado esquerdo da tabela e depois em "**Remover**".
- **Relacionamentos:** Nesta área, você pode indicar (se for o caso) os relacionamentos entre as tabelas selecionadas no item "**Tabelas**". Para isso, selecione a primeira tabela do relacionamento no item "**Tabela**", indique uma Coluna da tabela, selecione um Relacionamento (INNER JOIN, LEFT JOIN, RIGHT JOIN ou FULL JOIN). Depois, selecione a segunda tabela do relacionamento e indique a coluna. Por fim, clique em "**Adicionar**". Aqui também é possível remover a seleção de relacionamentos clicando no checkbox do lado esquerdo do registro e depois em "**Remover**".
- **Condições:** Nesta área, você pode indicar condições por intermédio de operadores (WHERE, AND ou OR) para tratamento dos dados. Para isso, selecione o operador, a tabela, o comparador e o valor (se for o caso), após isso, clique em "**Adicionar**". Caso precise, remova a condição clicando no checkbox do lado esquerdo da tabela e depois em "**Remover**".
- **Resultados:** Nesta área, você deve indicar quais são as categorias de informações que serão exibidas. Para isso, selecione a tabela e a coluna e clique em "**Adicionar**". É possível remover o valor informado clicando no "**x**" - do lado direito da combinação.

### Inserir Filtros através de Parâmetros

Filtros podem inseridos em um **Smart Report** para possibilitar que usuário final defina cenários para geração do relatório. Para usar um filtro, clique na aba "**Parâmetros**" e insira o filtro desejado. Veja alguns:

- **Na aba "Parâmetros":**

!\[Parameters]\[1]

- **Diretamente no SQL:**

!\[Parameters in SQL]\[2]

- **Diretamente no RhinoScript:**

!\[Parameters in RhinoScript]\[3]

### Filtro para selecionar data

**Exemplo**

```xml
<PARAMETERS>
	<PARAM name='dataInicial' type='java.sql.Date' size='10' value='' description='citcorpore.comum.datainicio' fix='false' mandatory="true" default="{YEAR_AGO}"/>
  <PARAM name='dataFinal' type='java.sql.Date' size='10' value='' description='citcorpore.comum.datafim' fix='false' mandatory="true" default="{TODAY}"/>
</PARAMETERS>
```

**Resultado**

!\[Example use Parameters]\[4]

### Construir SQL/Rhino/JSP

Alguns relatórios podem necessitar de consultas específicas ou tratamentos diferenciados. Assim, você pode utilizar a área de construção de código (SQL/RhinoScript/SQL à depender do tipo de Smart Report selecionado na aba "Cadastro").&#x20;

Dessa forma, construa a consulta que atenda às necessidades do seu relatório.

Exemplo de SQL:

!\[Example use SQL]\[5]

Exemplo de RhinoScript:

!\[Example use RhinoScript]\[6]

Exemplo de JSP:

!\[Example use JSP]\[7]

### Importar/Exportar Smart Reports

Existe a possibilidade de importar um "**Relatório**", para tanto, clique no botão "**Importar**" e selecione o arquivo no formato "**.citreport**".&#x20;

Além disso, você pode exporta relatórios existentes em sua  instância, para isso, clique em "**Editar**", ao final da página, clique em "**Exportar**".

## Interfaces de visualização

Os relatórios criados podem ser visualizados em diferentes área dos <font color="#3b9f0f">**CITSmart**</font>, veja as possibilidades:

- Visualização em Processos, conforme definido na aba "**Cadastro**", item "**Módulo(s) onde será exibido**".
- Visualização em Dashboards, neste caso, apenas necessita de vinculação dos grupos que podem usá-lo como widget no Smart Decisions (Dashboards).
- Visualização na área de Smart Reports, assim, após vínculo de grupos poderá ser utilizado nessa área.

