# Novo método - Adição de campos no Data View do Rave Reports

<p class="callout info">Neste capítulo será abordado todo o processo para a adição ou remoção de campos no *Data View* de um relatório *RAVE*</p>

<p class="callout success">Alterações do novo método encontram-se a partir do Passo 3</p>

##### Passo 1: Localizar os componentes no formulário

Primeiramente, será necessário localizar o formulário que contém o relatório *RvProject* que será alterado (normalmente, estará localizado na tela de impressão do relatório). Após localizar o componente *rave,* será necessário localizar os componentes *FDQuery* que terão as *querys* responsáveis por carregar as informações do banco de dados que serão usadas no relatório.

Para localizar os *FDQuerys* do relatório, clique no componente *RvDataSetConnection* e verifique o componente apontado na propriedade "*DataSet".*

<p class="callout info">Utilize "F11" para acessar as propriedades dos componentes.</p>

<p class="callout info align-left">Alguns componentes podem estar "escondidos". Ajuste o tamanho do formulário, se necessário.</p>

[![image-1622049529709.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-05/scaled-1680-/image-1622049529709.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-05/image-1622049529709.png)

<p class="callout info">No exemplo acima, a *query* pode ser localizada através do caminho RVC\_RELAT &gt; CDS\_RELAT &gt; DSP\_RELAT &gt; QRELAT</p>

<p class="callout warning">Obs.: Guarde o nome do componente que está ligado ao *DataSet* do *RvDataSetConnection*, ele será usado posteriormente.</p>

[![image-1622049640256.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-05/scaled-1680-/image-1622049640256.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-05/image-1622049640256.png)

<p class="callout info">Em alguns casos, a *query* poderá estar ligada diretamente ao *RvDataSetConnection*.</p>


##### Passo 2: Localizar, no código fonte, a montagem da *query* 

Após localizar os *TFDquerys,* vimos que as *querys* que alimentam esse relatório são: QRelat e QEmpresa. Descoberto o nome das *querys*, busca-las dentro do código (utilizando Ctrl + F, por exemplo).

Adicionar ou remover os campos necessários no *SELECT* referente à *query* que será utilizada no relatório. Nesse exemplo, o campo "DeducoesServicoes" será incluído ao relatório.

[![image-1622051469729.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-05/scaled-1680-/image-1622051469729.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-05/image-1622051469729.png)

<p class="callout warning">Obs.: Podem existir mais lugares onde a *query* é montada. Alterar todos os trechos que forem necessários.</p>


##### Passo 3: Incluir e configurar uma nova *FDQuery,* um *FDConnection e um RvDataSetConnection* ao formulário

Para incluirmos o novo campo ao relatório, será necessário adicionar novos componentes *FDQuery,* *FDConnection* (este copiaremos da unit (DMCONEXOES.pas) e um *RvDataSetConnection* ao formulário (caso a lista de componentes não esteja aberta, pode ser encontrada através do menu *View* &gt; *Tool Windows* &gt; *Tool Palette*).

[![componentes.png](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/scaled-1680-/componentes.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/componentes.png)

Na propriedade "*Connection*" da nova ***FDQuery***, atribua o ***CO\_Principal***.

Na propriedade "*DataSet*" do ***RvDataSetConnection1***, atribua a nova ***FDQuery***.

No novo *CO\_Principal*, realize as alterações necessárias para apontar para o banco de dados conectado:

[![coprincipal.png](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/scaled-1680-/coprincipal.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/coprincipal.png)

<p class="callout info">O parâmetro "*Database*" deve receber o caminho em que a base de dados .FDB está localizada.</p>

Na propriedade "*Active*" da nova ***FDQuery***, atribua *True.*

##### Passo 4: Monte a cláusula com os novos campos

Diferente do método anterior, neste é necessário adicionar apenas os campos desejados, podendo ser utilizado até mesmo *CAST.*

No formulário, dar duplo clique na *FDQuery* para que o editor seja aberto. Coloque a cláusula para gerar os campos desejados, clique em execute e verifique se trouxe os campos corretos, exemplo:

[![retornoBusca.png](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/scaled-1680-/retornobusca.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/retornobusca.png)


##### Passo 5: Adicionar a nova *FDQuery* temporariamente no relatório

Com duplo clique no componente *RvProject, abrirá o Rave Reports. No menu File &gt; Open &gt; Selecione o arquivo .rav do relatório-alvo na pasta do seu branch &gt; Abrir.*

Vá em *File &gt; New Data Object.* Selecione *Direct Data View* , clique em *Next&gt;*

[![NewDataObject.png](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/scaled-1680-/newdataobject.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/newdataobject.png)

<p class="callout info">Caso apareçam Warnings, aperte ok em todos</p>

Selecione o novo ***RvDataSetConnection1*** na lista que aparecerá e aperte em *Finish.*

Nesse momento na lista de Data View Dictionary terá um novo objeto contendo somente os campos que deseja adicionar:

[![DataView.png](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/scaled-1680-/dataview.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/dataview.png)

##### Passo 6: Mover novo(s) campo(s) do novo Data View para o Data View desejado

Com botão SHIFT selecione todos os campos, agora com botão CTRL pressionado, arraste para dentro do Data View desejado

[![movendo.jpg](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/scaled-1680-/movendo.jpg)](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/movendo.jpg)

Após mover, os campos poderão estar estranho como a imagem a seguir, basta clicar fora da região que normalizará:

[![campos.png](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/scaled-1680-/campos.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2023-04/campos.png)

Renomeie os novos Fields conforme o desejado/padrão.

<p class="callout danger">Muito importante seguir corretamente os passos abaixo para não perder o trabalho feito.</p>

Salve o relatório (Ctrl + S) e feche o Rave Report.

Apague os três componentes criados no passo 3,

Abra novamente o Rave Report clicando no *RvProject.*

Selecione o Data View criado no passo 5 e apague-o.

Salve o relatório (Ctrl + S) e feche o Rave Report.

##### Passo 7: Carregando as alterações para o dfm

Na propriedade "*ProjectFile*" do componente *RvProject*, atribua o caminho do relatório que foi aberto anteriormente no *Rave* caso não esteja. Dê um duplo clique no dlg da propriedade "*StoreRAV*", clique em "*Load*" para que as alterações sejam carregadas, depois "*Close*".

[![image-1622125390531.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-05/scaled-1680-/image-1622125390531.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-05/image-1622125390531.png)

<p class="callout success">Abra o *RvProject* e cheque se o(s) novo(s) campo(s) está(ão) no *Data View* após carregar as informações. </p>