Rave Reports até ser incorporado no Delphi 7 pouco conhecido por nós programadores, agora já está bastante difundido na comunidade.

O Rave Reports trouxe uma gama de novos recursos que o QuickReport deixa a desejar ou não existiam no mesmo, abordaremos nesse artigo uma das principais características do Rave Reports a Rave Language o que é a Rave Language?

É uma linguagem criada pela Nevrona que pode ser usada em nossos relatórios, essa linguagem tem sua sintaxe parecida com a do Object Pascal, com essa linguagem você poderá alterar valores das propriedades dos componentes usados em seus relatórios com Texts, DataTexts e outros componentes em tempo de execução do relatório, você poderá realizar operações nos eventos dos componentes (OnGetText, OnAfterPrint, OnBeforePrint e outros) nos quais eventos você programara em Rave Language.

Para entendermos melhor como a Rave Language funciona vamos criar um exemplo que os salários maiores que 40000 (Quarenta Mil) ficaram de cor Vermelha (Red) e os demais permaneceram normal.

Crie uma nova aplicação no Delphi, File->New|Application, araste os seguintes componentes para o formulário um ADOConnection, ADOTable, RvProject e RvDataSetConnection e um Button.

Configure o ADOConnection, caso o Banco de Dados dbdemos esteja em outro diretório altere no ConnectionString o Data Source, deixando sua ConnectionString como mostra a Listagem 1.

Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\Arquivos de programas\Arquivos comuns\Borland Shared\Data\dbdemos.mdb;
Mode=Share Deny None;Extended Properties="";
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password="";
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False
Listagem 1. ConnectionString

Ligue a propriedade do ADOTable Connection com o ADOConnection, selecione a tabela employee propriedade TableName e ative o ADOTable Active = True.

Ligue a propriedade DataSet do componente RvDataSetConnection com o ADOTable.

Não vamos nos prender na configuração dos controles de acesso tendo em mente que você já está habituado com o uso dos componentes de conexão de Banco de Dados e ao componentes do Rave Reports, seu formulário ficará parecido com esse da Figura 1.

Rave1.gif
Figura 1. Formulário

De dois clique no RvProject será executa a IDE do Rave Reports crie um novo Projeto, File|New, agora crie um Objeto de Dados, File|New Data Objects, será aberta um Janela, selecione Direct Data View clique em Next depois selecione o RvDataSetConnection e em Finish pronto agora você poderá usar os dados da Tabela employee, acompanhe a Figura 2.

Rave2.gif
Figura 2. Como criar uma conexão com o Banco de Dados

Agora vamos colocar os componentes no nosso relatório para exibir os dados, araste um Region, um Band que será nosso cabeçalho, um DataBand que exibirá os dados da tabela Employee, todos da aba Report, dois Text que serão colocados na Band, que estão na aba Standard e dois DataText que serão colocados na DataBand, que estão na aba Report, veja a Figura 3.

Rave3.gif
Figura 3. Como deve ficar os componentes dispostos no Rave Report

Agora vamos ao código Rave Language, clique no DataText2 (Salary), e em Event Editor, em Available Events, selecione OnGetText, esse evento é executado a cada vez que o texto do componente DataTex2 muda, colocaremos o seguinte código nesse evento, acompanhe a Figura 4.

Rave4.gif
Figura 4. Implementando a Rave Language

Vamos entender o código, estamos comparando o Campo do DataView1 o Salary se ele for maior que 40000 então a cor do componente atua l(Self) o DataText2 fica vermelho caso contrário preto norma, após isso basta clicar em Compile para ver se está tudo OK.

Agora salve o Projeto dos Relatórios como Relatorio.rav, volte para a IDE do Delphi e no componente RvProject1 na propriedade ProjectFile coloque o caminho do Relatorio.rav. Vamos executar o nosso Relatório para ver o resultado, no botão executar coloque o seguinte código Listagem 2.

with RvProject1 do
 begin
   SelectReport('Report1', False);
   Execute;
 end;
Listagem 2. Código para Executar o Relatório

Pronto, todos os salários maiores que 40000 serão colocados em vermelho, observe a Figura 5.

Rave5.gif
Figura 5. Salários maiores que 40000 em Vermelho