quarta-feira, 22 de abril de 2009

Passagem de parâmetros para Rave Reports

Bom, após alguns dias com as postagens paradas, estou voltando hoje para iniciar uma série de dicas sobre relatórios com Rave Reports, e para começar, veremos hoje a configuração e passagem de parâmetros do Delphi para um relatório no Rave.

Com o Rave Reports aberto, crie um novo relatório, salve o mesmo em um diretório do seu computador e sem seguida selecione o relatório na
Report Library e altere a propriedade Name do mesmo para "rptParam". Observe também que o mesmo possui uma propriedade chamada Parameters, onde você poderá adicionar os parâmetros que deseja passar do Delphi ao Rave. Abra o String Editor de parâmetros e adicione "pNome" (se desejar adicionar mais parâmetros, basta dar um ENTER e digitar o novo parâmetro na próxima linha).

Para que possamos visualizar o valor recebido através do parâmetro na tela, vamos seguir os passos de criação de um relatório profissional adicionando à tela um componente
Region da paleta Report. Ajuste as dimensões do componente Region para que utilize todo o espaço da página contida entre o pontilhado vermelho que delimita a área imprimivel do relatório. Arraste agora para o interior do Region um componente Band também da paleta Report, este que por sua vez se alinhará sózinho ao topo. Dentro da Band, adicione um componente Data Text e vá até a propriedade Data Field e clique sobre os 3 pontinhos "..." para abrir o Data Text Editor, no qual vá até o item Project Parameters e selecione o parâmetro "pNome" configurado e adicione-o (Insert Parameter) ao Data Text e confirme a tela. O próximo passo agora será a codificação do processo para execução do relatório no Delphi, onde após a criação de um novo projeto, arraste da paleta Rave para o formulário os seguintes componentes: - RvSystem - RvProject: defina a propriedade Engine para o RvSystem, onde ficam as configurações do relatório a ser exibido. Em ProjectFile procure o relatório criado no Rave Reports, será o projeto a ser executado. Adicione um Button ("Exibir relatório") ao formulário onde faremos a codificação do processo para passagem de valores ao parâmetro e também exibição do relatório em tela. Adicione o código a seguir ao evento OnClick do botão, onde o mesmo encontra-se comentado de acordo com a função desempenhada por cada bloco:
procedure
TForm1.Button1Click(Sender: TObject);

begin

{ fecha o projeto do relatório }
RvProject1.Close;

{ selecione o nome do parâmetro e atribui-lhe um valor }
RvProject1.SetParam('pNome','MAIKEL SCHEID');
{ seleciona o relatório a ser exibido }

RvProject1.Execute;

{ abre o projeto do relatório }

RvProject1.Open;
RvProject1.SelectReport('rptParam',True);
{ executa o relatório selecionado }
end;

Finalizado a codificação, execute o projeto e observe que o valor passado ao parâmetro está sendo exibido na tela do relatório (confira resultado na figura abaixo). Desta mesma maneira agora você poderá passar resultados de cálculos realizados no Delphi para ser exibidos no relatório, passar caminhos absolutos de imagens, entre outras funcionalidades que facilitarão seus relatórios.

Bom, por ora seria isto, acompanhe os próximos posts com novas dicas. Abraço

4 comentários:

Unknown disse...

oi Maikel...
Vi pelo seu post que usa o rad studio não sei se pode me ajudar.... estou desenvolvendo um programa em Delphi for .net e faco um relatorio neste programa onde eu passo a instrucao: RvProject2.Execute; e ele algumas vezes fecha o programa. Sabe o que pode estar acontecendo? Obrigada, vanessa

Maikel Scheid disse...

Bom, isso é em Delphi .NET VCL Forms? Você tem mais alguma rotina além de executar o relatório? Tente usar assim:
Try
rvProject2.Execute;
Except
On E:exception do
ShowMessage(e.message)
End;
Se houver algum erro, o mesmo será exibido na tela.

Unknown disse...

Vlw Maikel, ótimo post, eu estava precisando justamente disso que vc explicou, parabéns!

Anônimo disse...

Caro Maikel, obrigado pelo seu post. De momento ando a trabalhar (e a aprender) Rave e os parâmetros já estão entendidos. Porém, preciso de uma coisa um pouco diferente. Necessito alterar, não o valor do parâmetro e sim as suas propriedades, por exemplo "visible" ou não. Alguma dica?

Cumprimentos de Portugal