# 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>

##### 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* e um *FDConnection* ao formulário

Para incluirmos o novo campo ao relatório, será necessário adicionar novos componentes *FDQuery* e *FDConnection* 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*). Na propriedade "*Connection*" da nova *FDQuery*, atribua o novo *FDConnection*.

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

 No novo *FDConnection*, realizar as seguintes configurações:

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

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

#####  

##### Passo 4: Extrair do código a *query*-alvo completa

Localize o fim da montagem da query no código e adicione um breakpoint uma linha abaixo do fim da montagem. Execute o sistema até que chegue ao breakpoint adicionado e execute a função "MostraParams(NomeDaQuery)". Uma tela com a *query* será aberta no sistema.

<p class="callout danger">IMPORTANTE: Por garantia, a *query* gerada deverá ter todos os campos do *SELECT*, sendo assim, os trechos de DLL deverão ser incluídos.</p>

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

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

 Copie todo o texto da *query* gerada, checando até o fim com Ctrl + End para que não fique trechos para trás.

#####  

##### Passo 5: Configurar a nova *FDQuery* utilizando a *query* extraída

No formulário, dar duplo clique na *FDQuery* para que o editor seja aberto. Cole a *query* copiada anteriormente na caixa "*SQL Command*" e clique em executar. Os campos gerados pela SQL deverão aparecer na aba "*RecordSet*". Verifique se todos os campos (inclusive o seu) foram gerados. Checado os campos, clique em "OK".

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

Com a *FDQuery* configurada, clique no componente "*RvDataSetConnection*" referente à *query* que está sendo trabalhada, e atribua na propriedade "*DataSet*" a nova *FDQuery*.

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

#####  

##### Passo 6: Incluir novo(s) campo(s) no Data View do Rave

Execute o sistema novamente até o breakpoint adicionado no passo 4. Com duplo clique no componente *RvProject*, abra o *Rave Reports*. No menu *File* &gt; *Open* &gt; Selecione o arquivo .rav do relatório-alvo na pasta do seu *branch* &gt; Abrir. No menu lateral, localizar o View referente à *query* que está sendo trabalhada &gt; Clique direito &gt; *Refresh*.

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

<p class="callout danger">CUIDADO: Caso alguma mensagem de aviso apareça na tela, consultar um dev antes de realizar o *refresh* para que nenhum campo seja apagado.</p>

Após realizar o *refresh*, o novo campo deverá estar localizado dentro do componente view. Salve o relatório (Ctrl + S) e Interrompa novamente a execução do sistema.

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

##### Passo 7: Configurar os componentes para a inclusão do(s) novo(s) campos no relatório

No formulário, clique no componente *RvDataSetConnection* que foi utilizado para adição do(s) campo(s), e na propriedade "*DataSet*" atribua o componente que estava sendo usado antes.

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

Na propriedade "*ProjectFile*" do componente *RvProject*, atribua o caminho do relatório que foi aberto anteriormente no *Rave*. 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)

Abra o *RvProject* e cheque se o(s) novo(s) campo(s) está(ão) no *Data View* após carregar as informações. Feito isso, os novos componentes adicionados podem ser excluídos do formulário.