Você está na página 1de 8

Criando relatrios em Delphi 7 Parte II - Conhecendo o RAVE 5.

0
por Adenilton Rodrigues No artigo anterior apresentei minhas experincias com ferramentas de relatrios para desenvolvimento de projetos Delphi. Neste estarei apresentando os componentes da paleta RAVE 5.0 e, no prximo, partirei para a prtica da construo de relatrios usando essa ferramenta. Ficou bastante claro que essa sute de componentes se distingue das demais pelo fato de possibilitar um desenvolvimento estritamente baseado em cdigo de programao Delphi. Essa tcnica, apesar de trabalhosa, bastante flexvel, pois possibilita ao programador mais experiente desenvolver seus prprios mtodos de criao de relatrios, sem muita depedncia dos recursos disponibilizados pelo ambiente grfico da ferramenta. Porque utilizar o desenvolvimento em cdigo runtime? Imagine a seguinte situao: Preciso montar um Relatrio de Vendas e apresente o movimento dirio por Cidade e por Vendedor. Seu layout dever obedecer aos seguintes critrios de impresso: As vendas de segunda-feira quarta-feira ficaro esquerda do relatrio na cor azul. As vendas da quinta-feira e sexta-feira, sero impressas direita na cor verde. As vendas do sbado sero impressas numa folha individual. Na ltima pgina dever ser emitido um um resumo semanal de vendas. Vendedores sem vendas no perodo devero estar em negrito.

Experimente montar esse relatrio usando queries SQL em um ambiente de criao de relatrios visuais(!): Pode at ser que voc consiga faz-lo, mas garanto que ir gastar muito mais tempo que o seu equivalente devidamente codificado em Delphi. Os pessimistas diro que estou sendo extremista. Claro, estou... as dificuldades que o desenvolvedor enfrenta na construo de projetos corporativos costumam ser piores e os prazos cada vez menores! Esta a nossa realidade. Estaremos sempre nos deparando com questes de difcil e trabalhosa soluo. Precisamos aplicar a ferramenta certa para cada problema. No existe uma ferramenta mgica que atenda a uma heterogeneidade de propsitos. Se a construo de relatrios difceis um dos seus problemas, ento, com certeza, o RAVE veio pra facilitar bastante o seu trabalho de desenvolvimento. Quem o RAVE 5.0? A incorporao do RAVE pelo Delphi 7.0 foi feita de uma forma bastante confusa (creio que foi feita s pressas). Os componentes da paleta RAVE no Delphi 7.0 no so compatveis com o pacote oficial disponibilizado pela Nevrona em seu site

(http://www.nevrona.com/rave). L voc encontrar o RAVE 4.09 trial para download e a 5.0 para a compra. Os arquivos demos disponveis para download no so compatveis com o Delphi 7.0 e RAVE 5.0, pois foram baseados no RAVE 4.09. Houve uma mudana no nome das classes da verso 4.09 para 5.0 e alguns componentes simplesmente desapareceram. Isto inviabilizar o uso dos exemplos de demonstrao da verso 4.09. Quem j utilizava o RAVE (ou, no meu caso, o ReportPrinter) ter que modificar seus projetos para garantir a compatibilizao do Delphi 5/6 com o 7.0. Produtos de terceiros, tipo o excelente Rave for Renders da Pragnaam (http://www.pragnaan.com) no so compatveis. Devero ser reescritos. A Borland no disponibiliza o cdigo fonte do RAVE. Este dever ser adquirido junto Nevrona. At a, nada de novo, j era assim com o QuickReport. Percebi alguns pequenos bugs na verso 5.0 do RAVE, principalmente na sua IDE de criao de relatrios. A Nevrona est prometendo para breve um patch de correo. Um Bug interessante (se que Bugs podem ser interessantes) acontece na verso 98 do Windows. quando o usurio tenta salvar um relatrio criado na IDE. Uma mensagem de erro o informar que no existe espao livre no disco rgido (!). O relatrio s ser salvo se voc apont-lo para a pasta raiz do drive. Cheguei a essa concluso depois de perder vrios trabalhos desenvolvidos na IDE. O desenvolvedor inicialmente enfrentar o problema da falta de documentao e Demos atualizados para a verso adotada pelo Delphi 7.0. No percebi mudanas substanciais na engine bsica do componente. Acredito que essa evoluo tenha caminhado basicamente para o lado do design de relatrios usando a IDE do RAVE. Os legionrios do excelente ReportBuilder (antigo Piparti) (http://www.digitalmetaphors.com) a acharo muito confusa, e realmente . Acredito ser apenas uma questo de tempo. Essa IDE bastante nova, se comparada ao ReportBuilder, que j est no mercado desde o Delphi 2.0. A propsito, nos fruns "borland.public.delphi.thirdparty-tools" e "borland.public.delphi.reporting-charting" est acontecendo um duelo de tits entre os criadores do RAVE e do ReportBuilder. Vale a pena acompanh-la, uma discusso de alto-nvel onde cada um expe os recursos de sua ferramenta em comparao com a concorrente. Se voc no usa News, procure pelas palavras "Delphi" "RAVE" "ReportBuilder" no http://groups.google.com. Para conhecer melhor o produto RAVE, recomendo o download da documentao oficial da Nevrona nos endereos abaixo. So dois arquivos PDF (mais de 600 pginas) com uma excelente descrio tcnica e funcional das classes do pacote. Rave Visual Designer Documentation in Adobe Acrobat Format http://www.nevrona.com/files/rave4.pdf Borland Integration Guide Pro Documentation in Adobe Acrobat Format http://www.nevrona.com/files/rppro4.pdf

No deixe de visitar tambm a seo de Tips & Tricks. A maioria das dicas esto desatualizadas, porm o cdigo compatvel com as novas verses. http://www.nevrona.com/rave/tips.shtml O Delphi 7.0 traz alguns demos de relatrios do RAVE na pasta RAVE5\DEMOS, porm a Borland se esqueceu de um arquivo importante, o arquivo de projeto do demo (arquivo .DPR), dificultando assim sua compilao pelos usurios com pouco conhecimento do Delphi. Para compil-los, crie um arquivo, DEMO.DPR, por exemplo e copie esse cdigo: program Demo; uses Forms, DM in 'DM.pas' {DataModule2: TDataModule}, Main in 'Main.pas' {Form1};{$R *.res} begin Application.Initialize; Application.CreateForm(TDataModule2, DataModule2); Application.CreateForm(TForm1, Form1); Application.Run; end. Outra alternativa : . . . . . Crie um projeto novo; Remova o form colocado automaticamente pelo Delphi; Adicione o datamodule (arquivo DM.PAS) da pasta RAVE5\DEMOS ao projeto; Adicione o arquivo MAIN.PAS ao projeto. Salve o projeto, compile-o.

Conhecendo o RAVE Para quem no sabe, RAVE significa "Report Authoring Visual Environment". Esta srie de artigos estar apresentando apenas a parte de criao de relatrios usando o RAVE Codificado, ou seja, os relatrios sero ESCRITOS e no DESENHADOS. Talvez num futuro eu fale do RAVE IDE. O RAVE foi projetado a partir de 4 componentes bsicos: TReportPrinter: Controla a impressora e seus recursos mais "baixos". TReportFiler: Age como um cache entre a aplicao e a impressora. TFilePrinter: Controla a interao entre o TReportFile e a impressora. TFilePreview: Controla a visualizao do relatrio gerado pelo TReportFiler. Para simplificar a codificao, todos os 4 objetos foram "fundidos" em um nico, chamado TReportSystem. Este objeto o "Mapa da Mina". Ele a "engine bsica" de relatrios do RAVE. Com ele no seu projeto, nada mais ser necessrio para a criao de relatrios runtime. Um nico componente ser responsvel por todos os relatrios do seu projeto. Os componentes ReportPrinter, ReportFiler, FilePrinter e FilePreview no existem no Delphi 7.0. Sumiram - assim como mais uma meia dzia de objetos que existiam no RAVE 4.09 - a Nevrona alega no serem mais necessrios, pois seus recursos

funcionais foram incorporados pela IDE do RAVE. Restou apenas o ReportSystem, que, conforme foi dito acima, incorpora todo os demais. A classe TReportSystem mudou de nome (aii meus projetos antigos!). Agora se chama RvSystem. Pelo menos as caractersticas desse objeto no foram radicamente alteradas. Os demais componentes da paleta RAVE do Delphi 7.0 so estritamente voltados para a construo de relatrios via RAVE IDE e para a exportao de relatrios para os formatos HTML, PDF, RTF e Texto (recurso nativo do RAVE). No prximo artigo estaremos conhecendo e praticando o RvSystem. Realo que esse componente tudo o que precisaremos para criar qualquer tipo de relatrio utilizando o RAVE 5.0. Adenilton Rodrigues tem formao superior em Anlise de Sistemas. Consultor em Tecnologias de Desenvolvimento Internet e atualmente responde pelo Departamento de Tecnologia da SOL - Servios Online (http://www.solnet.com.br/), onde implanta solues em Delphi, Java e .NET.

COMENTRIOS
Anselmo Antonio Meur - 15/10/2002 - 13:14:52

Ol Adenilton Vc. esta de Parabens pelo artigo. Estou migrando do Quickreport para o Rave mais no consigo nenhum material ou exemplo. Parabens.... Se eu prescisar de ajuda vc esta disposto a me ajudar? Atenciosamente Anselmo aameurer@matrix.com.br anselmo@bracodonorte.sc.gov.br ................................................
Adenilton Rodrigues - 15/10/2002 - 18:44:41

Seja bem vindo ao RAVE. Se suas dvidas estiverem ao meu alcance, estou disposio. ................................................
Sergio Falco Daniel - 16/10/2002 - 17:50:56

Adenilton ja vai fazer um +- 2 anos que eu larguei do VB por causa de Relatorios onde ele fica acregado ao CRISTAL REPORT e quando vc instala o programa ele leva aquele mundo de Dlls no Delphi que agora eu estou a 2 anos eu nao tive este problemas pq consegui dominar o QReport para mim foi uma maravilha nao tenho Dlls malucas mais agora eu estou querendo micrar do Delphi 6 para o 7 eu fiquei meio assim com medo deste tal Rave e por isso sai a procurura de informacaos e vc realmente nesta pagina a qual vc explanou alguma coisa sobre. Para mim isso foi muito bom pq eu sou professor de informatica e do aula

de programacao em Delphi no Basico. Nao querendo ser indelicado eu gostaria que no futuro vc abordace O SQL SERVER como criar as estacoes se possivel pq ate agora eu nao encontrei nada neste sentido eu estou apanhando muito para fazer a estacoes eu gostaria que vc fala-se sobre este assunto No mais continue sempre assim nos auxilando nas nossas duvidas. Obrigado Sergio Falco Daniel falcodan@bol.com.br ................................................
Adenilton Rodrigues - 16/10/2002 - 19:54:48

S?rgio, o RAVE 100% cdigo nativo Delphi, dessa forma no haver distribuio de DLLs. Se voc j usava o QuickReport, poder usar o RAVE IDE. Ser apenas uma questo de tempo e pacincia. Quanto ao SQL Server, no sei qual a tcnica de conectividade que voc est usando, mas recomendo o uso do ADO, o mais indicado para bancos de dados Microsoft. ................................................
Anselmo A. Meurer - 17/10/2002 - 10:34:25

Ol Adenilton O rave tem conecxo nativa com o interbase? ou ele so se conecta atravez de alias, como eu fao a conecxo sem usar um alias? Atenciosamente Anselmo ................................................
Adenilton Rodrigues - 17/10/2002 - 21:58:07

Oi Anselmo. O RAVE possui conexo a qualquer modelo de banco de dados que implemente a classe TDataset do Delphi, ou seja, se voc conseguir usar os componentes dataware (TDatasource, TDBGrid, TDB...) no seu banco de dados preferido via ADO, BDE, IB, Firebird, Halcyon, DAO, DBExpress, ODBC, etc, ento poder usar o RAVE sem problemas, tanto no modo Codificado quando Visual. ................................................
Carlos Javel do Vale - 19/10/2002 - 22:57:40

As centenas de relatrios j feitos em Qr e que funcionam perfeitamente, tero que ser migrados todos para o tal RAVE Esse processo se d? de que forma se for "manual" a Inprise que me desculpe mas jamais vi uma pisada na bola to grande. de se lembrar que existem milhares de empresas com produtos prontos e operacionais que tero que, "foradamente" mudar se quiser ir para o Delphi 7. ................................................
Adenilton Rodrigues - 20/10/2002 - 13:33:19

Oi Carlos! Realmente este ser um srio problema que acabar?

"estourando" nas mos dos desenvolvedores. Em nome da portabilidade a Borland comea a sacrificar solu??es antigas buscando o caminho da integrao Delphi x Kylix ( MS fez o mesmo do VB para o VB.NET). A Nevrona est disponibilizando um wizard de converso de relatrios do QuickReport para o Rave. No sei se funciona adequadamente, pois deixei de usar o QR h? mais de 5 anos. Realize alguns testes e d?-nos sua opinio: http://www.nevrona.com/cgi-bin/load.pl?/files/QRWizard.zip. O Quickreport ainda continua sendo comercializado pela QuSoft. Se quiser continuar com ele, sugiro comprar o pacote Professional, assim voc ter o cdigo fonte e no ficar? preso ?s mudanas de idias da Borland! ................................................
Alessandro da Silva - 28/10/2002 - 17:44:28

Ola Adenilton, o que vou perguntar no esta relacionado ao novo componente de relatrio do delphi 7 mas ja deu para ter certeza de que voc tem condi??es de responder a minha dvida com poucas palavras. Tenho uma aplicao criada por mim que funciona especificamente para Drogarias e Farmacias. Utilizo o paradox e gostaria de usar um bd SGDB ou cliente/servidor. Estou indeciso em qual usar, o Interbase, SQL Server, MySql e vrios outros. Estou pesquisando bastante sobre tais bd mais gostaria de sua opinio. O que acha que seria melhor para usar? ................................................
Adenilton Rodrigues - 29/10/2002 - 09:41:51

Oi Alessandro. Essa uma antiga e bastante longa. Sugiro entrar em contato particular via email para discutirmos alguns pontos. Um abrao. ................................................
William Douglas Knak - 05/11/2002 - 20:36:58

Fiz o download do conversor QR ==> Rave e ele possui um bug: s funciona com os nmeros "americanos", onde o separador decimal o "ponto" e o separador de milhares a vrgula. Para fazer uso do componente (alm de seguir o manual do QRWizard) necessrio mudar suas configura??es regionais para: separador decimal = "." e separador de milhares = ",". ................................................
Osvaldo Tedeschi Jr. - 07/11/2002 - 16:25:16

Adenilton, eu baixei o QRWIZARD mas na hora de instalar o PACKAGE ele da a msg de erro Drive C: does not exist A mesma msg aparece quando quero salvar algum relatorio. Vc tem idia do que podemos fazer ? Eu tenho o RAVE que veio no DELPHI 7 ................................................
Ricardo Marzochi - 10/01/2003 - 10:14:30

Ol Adenilton ; Estou com problemas na conexo do relatorio com meu sistema, quando compilo o sistema, vem o erro de DATALINK, o que vc me recomenda a

fazer. Deste j agradeo a dica : Ricardo ................................................


Carlos Santos - 16/01/2003 - 09:51:25

Ol Adenilton... Gostaria de saber se tem como gerar um relatrio dinamicamente no Rave Report, a partir de um arquivo txt Abraos. ................................................
Adenilton Rodrigues - 26/01/2003 - 21:40:40

Pediria ao pessoal que tem postado duvidas nesse espao para enviarem suas questes via email para aden@aden.com.br. Dentro das possibilidades estarei respondendo todos. ................................................
Anderson Carmanhani - 02/05/2003 - 15:38:29

Gostaria que se alguem pudesse me mandar algum exemplo em um arquivo... obirgado corinthiano18@globo.com ................................................
Bruno Alvares da Cos - 11/07/2003 - 15:32:47

Estou com o memso problema de DATALINK ................................................


Geraldo - Poderiam m - 08/08/2003 - 11:41:46

Estou trabalhando com o Rave em delphi 7 voltado para Web. Criei o relatrio e testei sem problemas, mas ... Preciso colocar consistncias como se faz no QuickReport no Detail (After Print, Before Print,...) para validar dados e outros. Visualizo os relatrios em Padro Web ou .PDF. Poderia me Ajudar Testei o ReportBuider mas no gostei ... Aguardo vosso Retorno e agradeo antecipadamente. Atenciosamente, Geraldo SN - teclogic@teclogic.com.br ................................................
Wiliam Bento - 26/09/2003 - 21:36:02

Muito legal este artigo. Gostaria que vc colocasse um arquivo que informasse com o fazer um relatorio da venda no balcao, para imprimir somente o que o cliente comprou. ................................................
Marcelo Luiz Lombi - 23/10/2003 - 14:33:33

Estou em dvida entre Rave e RBuilder.

Falando sobre usurio final desenvolver seus prprios relatrios, quais as caractersticas dos dois produtos nesse sentido? do que precisa pra disponibilizar isso? DLL, EXE, o usurio tem q pagar por cada estao, ou oq? Marcelo ................................................
Leandro - 18/05/2004 - 23:19:11

VC copiou e colou do clube do delphi este artigo. ................................................


L?zaro - 06/07/2004 - 17:15:18

No Report Builder consigo carregar uma ide em tempo de execuo para montar meu relatrio. Facilitando assim a criao do mesmo no meu cliente, sem compilar a minha aplicao. Como fao pra carregar uma ide no Rave para construir meu relatrio? ................................................
Jarbas - 23/08/2004 - 21:11:26

estou iniciando com o Rave, estou com problemas em achar material pra iniciante! gostaria de saber onde achar informa??es? jb0050130@setrem.com.br ................................................
Ol adenilton seus e - 25/10/2004 - 16:49:11

Tentei enviar umas duvidas mais retornaram...tem outro endereo. meu email phmarins@zipmail.com.br ................................................
O Envio de Comentrios est suspenso temporriamente

Você também pode gostar