Como imprimir com o Rave atravez do Resultado de uma Procedure
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.
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
Curtidas 0
Respostas
Wesley Yamazack
06/07/2009
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
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
GOSTEI 0
Rogério Nascimento
06/07/2009
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?
É 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?
GOSTEI 0
Wesley Yamazack
06/07/2009
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
Isso mesmo cara, é a mesma coisa que você usar numa grid, sem problemas. Mesma coisa.
Forte abraço
Att,
Wesley Y
GOSTEI 0
Rogério Nascimento
06/07/2009
Mais uma coisa, como minha procedure tem o parametro Data Betwen, como eu passaria para o Rave ?
RvProject.SetParam(dataini,datafin), seria desta forma?
GOSTEI 0
Wesley Yamazack
06/07/2009
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
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
GOSTEI 0
Rogério Nascimento
06/07/2009
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.
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.
GOSTEI 0
Wesley Yamazack
06/07/2009
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
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
GOSTEI 0
Rogério Nascimento
06/07/2009
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
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
GOSTEI 0
Rogério Nascimento
06/07/2009
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
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
GOSTEI 0
Wesley Yamazack
06/07/2009
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
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
GOSTEI 0