Fórum Como imprimir com o Rave atravez do Resultado de uma Procedure #7375

06/07/2009

0

 Olá Equipe,

 Ja andei gastando horas procurando informações sobre o Rave, mas o material é muito escasso, comprei até um livro direcionado ao assunto, mas ainda não consegui resolver.

 Eu preciso fazer um relatório no Rave com Delphi 2009, filtrando os parametros e retornando as informações contidas em uma procedure, fazendo uma interface no delphi para o usuário digitar as informações.

Fiz uma procedure simples para exemplificar os parametros e retornos.


CREATE PROCEDURE SP_VENDAS (
    datain date,
    datafin date)
returns (
    cust_no integer,
    customer varchar(25),
    contact_first varchar(15),
    contact_last varchar(20),
    city varchar(20),
    state_province varchar(20),
    country varchar(20),
    po_number char(8),
    sales_rep integer,
    order_date date,
    qty_ordered integer,
    total_value numeric(15,2),
    discount float,
    item_type varchar(12))
as
begin
for
 select
    customer.cust_no,
    customer.customer,
    customer.contact_first,
    customer.contact_last,
    customer.city,
    customer.state_province,
    customer.country ,
    sales.po_number,
    sales.sales_rep,
    sales.order_date,
    sales.qty_ordered,
    sales.total_value,
    sales.discount,
    sales.item_type
from sales
   inner join customer on (sales.cust_no = customer.cust_no)
where sales.order_date between :datain and :datafin
into
    cust_no,
    customer,
    contact_first,
    contact_last,
    city,
    state_province,
    country,
    po_number,
    sales_rep,
    order_date,
    qty_ordered,
    total_value,
    discount,
    item_type do
 suspend;
end



Desde já, agradeço.


Rogério Nascimento

Rogério Nascimento

Responder

Posts

06/07/2009

Wesley Yamazack

Olá Rogério,
  Você quer passar parametros para o relatório do Rave, seria isso ?
  Se for, no Rave, você cria os parametros e pelo delphi você os passa da seguinte forma :


Rpt_Projeto.SetParam('p_codigo', EdtCodigo.Text);
Rpt_Projeto.ExecuteReport('RelExemplo');


   Seria isso ?
Att,
Wesley Y
Responder

Gostei + 0

06/07/2009

Rogério Nascimento

 Falai ai irmão, tudo na paz?!!!


 É isto mesmo, mas como eu faço para liga-lo a procedure e ele mostrar o resultado?  Uso um RvDataset?


 Para imprimir uma pesquisa a partir de um conteudo de um grid é da mesma forma?
Responder

Gostei + 0

06/07/2009

Wesley Yamazack

Olá Meu caro, esta tudo certo, graças a Deus.
  Isso mesmo cara, é a mesma coisa que você usar numa grid, sem problemas. Mesma coisa.

Forte abraço


Att,

Wesley Y
Responder

Gostei + 0

07/07/2009

Rogério Nascimento

Mais uma coisa, como minha procedure tem o parametro Data Betwen, como eu passaria para o Rave ?    RvProject.SetParam(dataini,datafin), seria desta forma?    
Responder

Gostei + 0

07/07/2009

Wesley Yamazack

Olá Meu amigo,
  Faça crie dois parametros, DataIni, e DataFim para ficar mais elegante, sacou ?
  RvProject.SetParam(dataini,Edtdataini.text);
  RvProject.SetParam(datafim,Edtdatafin.text);


Att,

Wesley Y
Responder

Gostei + 0

07/07/2009

Rogério Nascimento

 Deixa comigo !!!

 Para exportar os resultados para Rtf, Txt, etc, tem alguma configuração especial? Adicionei os componentes relacionados a exportação, mas qdo mando para o rtf, ele abre o arquivo como se fosse criptografado, no pdf ele funciona normal. Tem algum macete?

Abraços.

Responder

Gostei + 0

08/07/2009

Wesley Yamazack

Olá Meu amigo, bom macete é mais caro,rsrsrs.
  Vamos lá. faça o seguinte.

  Adicione um Edit
  Um radio group com 3 itens (PDF, HTML, RicheText, Text);
  e um botão, e faça o seguinte código
procedure TfrmExport.btnExpClick(Sender: TObject);
var
    MStream: TMemoryStream;
begin
SaveDialog1.FilterIndex := Succ(RadioGroup1.ItemIndex); //posicionar na
extensao correta
if SaveDialog1.Execute then
begin
MStream := TMemoryStream.Create;
dmReport.RvProject1.Engine := dmReport.RvNDRWriter1;
dmReport.RvNDRWriter1.Stream := MStream;
dmReport.RvNDRWriter1.StreamMode := smUser;
dmReport.RvProject1.ExecuteReport(edtReport.Text);
case RadioGroup1.ItemIndex of
0: dmReport.RvRenderPDF1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
1: dmReport.RvRenderHTML1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
2: dmReport.RvRenderRTF1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
3: dmReport.RvRenderText1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
          end;
          end;
end;

Att,

Wesley Y
Responder

Gostei + 0

08/07/2009

Rogério Nascimento

  Hahahaha, valeu Wesley !!!!

  Como sempre me ajudando com informações valiosas, valeu :D


  Você poderia me dar uma dica em meus estudos, como sabe, sou iniciante em Delphi, porem onde eu trabalhava, fizeram um sistema baseado 100% em banco de dados, ou seja, no firebird consigo fazer tudo o que eu quizer, no Delphi, utilizando os recursos visuais eu ja estou mais confortavel, mas quando preciso fazer rotinas, como uma integração para o contas a receber, por exemplo, não sei de onde partir atravez do Delphi.
 
  Estou querendo fazer um sistema com as rotinas todas direcionadas no Delphi, deixando o banco de dados apenas para repositório de dados, pois o delphi temos muitos mais recursos né :D,  e o  meu conhecimento de Delphi são atravez dos cursos disponiveis no site, sou assinante a 3 meses e estou estudando todas as noites em casa.

  Caso puder né, o que você me sugere para estudar, devo estudar pascal para Delphi? Deveria estudar POO ?

  Abraços.


 Rogério


 
Responder

Gostei + 0

08/07/2009

Rogério Nascimento

  Hahahaha, valeu Wesley !!!!

  Como sempre me ajudando com informações valiosas, valeu :D


  Você poderia me dar uma dica em meus estudos, como sabe, sou iniciante em Delphi, porem onde eu trabalhava, fizeram um sistema baseado 100% em banco de dados, ou seja, no firebird consigo fazer tudo o que eu quizer, no Delphi, utilizando os recursos visuais eu ja estou mais confortavel, mas quando preciso fazer rotinas, como uma integração para o contas a receber, por exemplo, não sei de onde partir atravez do Delphi.
 
  Estou querendo fazer um sistema com as rotinas todas direcionadas no Delphi, deixando o banco de dados apenas para repositório de dados, pois o delphi temos muitos mais recursos né :D,  e o  meu conhecimento de Delphi são atravez dos cursos disponiveis no site, sou assinante a 3 meses e estou estudando todas as noites em casa.

  Caso puder né, o que você me sugere para estudar, devo estudar pascal para Delphi? Deveria estudar POO ?

  Abraços.


 Rogério


 
Responder

Gostei + 0

09/07/2009

Wesley Yamazack

  Que bom que estamos te ajudando, e vamos ajudar mais ainda.
  Bom te recomendo pegar as video aulas do Rodrigo Carreiro, criando uma aplicação comercial, procura no site, são muito boas! Com ele você irá aprender tudo do zero ao avançado, vale apena. E logo mais você irá ter a necessidade de aprender POO, mas isso, deixa mais pra frente, analise e estude sobre a video do Carreiro, se tiver duvidas pode entrar em contato com ele, ou comigo pelo forum.
  Uma coisa não muito boa foi o que fizeram na tua empresa, pois imagina se a empresa cresce, e vocês sentem a necessidade de mudar de banco de dados, como ficaria? Teria que ter o trabalho todo de criar do zero o outro banco incluindo as regras de negocio. Estas por sua vez tem que estar na sua aplicação, de uma forma transparente, para poder ser adaptada pra qualquer banco de dados, sacou ? :D
   Estude as videos dele, e boa sorte, se precisar estamos aqui!


Um abraço.


Wesley Y
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar