Fórum Como criar um pdf com rave em tempo de execução? #350304
08/12/2007
0
Eu estou querendo criar um relatório 100¬ em tempo de execução para transformá-lo em um pdf!
Alguém conhece o caminho das pedras?
Edilcimar
Curtir tópico
+ 0Posts
10/12/2007
Futuro
Gostei + 0
10/12/2007
Joaoshi
http://www.nevrona.com/Default.aspx?tabid=87
Vale a pena dar uma olhada nos outros itens.
Espero ter ajudado.
Gostei + 0
10/12/2007
Edilcimar
Gostei + 0
10/12/2007
Joaoshi
RvSystem1.BaseReport.Print(´Coisas´);
A magica toda acontece no evento onPrint do RvSystem.
Espero ter ajudado.
Gostei + 0
10/12/2007
Edilcimar
Query1 -> aqui eu pego a posição de linhas e colunas do cabeçalho (eu sei quantas coisas tem lá, mas não sei quantas colunas nem linhas, pois é configurado pelo cliente, tanto a posição da linha quanto da coluna).
With Query2 do while not eof
begin
...aqui eu pego somente uma linha, onde a posição dela e a posição da coluna são configuradas pelo cliente
...with Query3 do while not eof
...begin
......aqui eu pego não sei quantas linhas, nem quantas colunas, pois a posição da linha e da coluna também são configuradas pelo cliente
......whith Query4 do while not eof
......begin
.........aqui eu pego entre zero e 6 linhas, onde não sei a posição nem da linha nem da coluna que também são configuráveis pelo cliente
.........next -> Query4
......end;
......next -> Query3
...end;
...next -> Query2
...end
...next - Query1
end;
Quando mando imprimir, eu pego estes valores e envio para printer.canvas.textout() e sai tudo certinho, agora preciso transformar isto em pdf, portanto preciso criar o rave totalmente em tempo de execução para depois transformá-lo em pdf, todos os exemplos que vi, inclusive da nevrona não funcionaram.
Grato
Gostei + 0
10/12/2007
Joaoshi
Deve utilizar [b:8137593839]PrintXY[/b:8137593839] ao invés de [b:8137593839]printer.canvas.textout().[/b:8137593839]
Lamento não poder ajudar mais.
Gostei + 0
11/12/2007
Edilcimar
Try
...RVSystem1.DefaultDest := rdFile;
...RVSystem1.DoNativeOutput := false;
...RVSystem1.RenderObject := RvRenderPDF1;
...RVSystem1.OutputFileName := ´.\\´ + IntToStr(NumeroLaudo) + ´.pdf´;
...RVSystem1.BaseReport.PrintLeft(´xxx´,1); -> se eu incluir esta linha dá um erro de violação de memória, se tirar passa mas não cria nada
...RVSystem1.SystemSetups := RVSystem1.SystemSetups - [ssAllowSetup];
...RVSystem1.Execute;
Finally
...RvRenderPDF1.Free;
End;
No onPrint do RvSystem1 eu coloquei
RvNDRWriter1.PrintXY( 1.0, 2.0, ´Texto´); -> aqui ele dá o erro ´invalid method call.ReportPrinter is not printing´, ou seja diz que não está imprimindo, se eu retirar o RvNDRWriter1 ele não reconhece o comando PrintXY()!
Gostei + 0
11/12/2007
Joaoshi
substitua:
-- RvNDRWriter1.PrintXY( 1.0, 2.0, ´Texto´);
por:
-- RvSystem1.BaseReport.PrintXY( 1.0, 2.0, ´Texto´);
A linha abaixo com *** deve estar no evento onPrint do RvSystem1.
Try
...RVSystem1.DefaultDest := rdFile;
...RVSystem1.DoNativeOutput := false;
...RVSystem1.RenderObject := RvRenderPDF1;
...RVSystem1.OutputFileName := ´.\\´ + IntToStr(NumeroLaudo) + ´.pdf´;
***...[b:109bdc8741]RVSystem1.BaseReport.PrintLeft(´xxx´,1); [/b:109bdc8741]-> se eu incluir esta linha dá um erro de violação de memória, se tirar passa mas não cria nada -> esta linha deve estar no onPrint do RvSystem1.
...RVSystem1.SystemSetups := RVSystem1.SystemSetups - [ssAllowSetup];
...RVSystem1.Execute;
Finally
...RvRenderPDF1.Free;
End;
Espero ter ajudado.
Gostei + 0
11/12/2007
Edilcimar
determino a posição da coluna (número 1), e como faço para determinar a posição da linha?
Gostei + 0
11/12/2007
Edilcimar
Gostei + 0
11/12/2007
Joaoshi
-- RVSystem1.BaseReport.PrintLeft(´xxx´,1);
Para definir a linha utilize:
-- RVSystem1.BaseReport.[b:04176ec079]yPos[/b:04176ec079] = 2
Se precisar definir a coluna utilize:
-- RVSystem1.BaseReport.[b:04176ec079]xPos[/b:04176ec079] = 2
Se quiser mandar direto coluna e linha utilize:
-- RVSystem1.BaseReport.[b:04176ec079]PrintXY[/b:04176ec079](1,1,´xxx´);
Espero ter ajudado.
Gostei + 0
11/12/2007
Edilcimar
Gostei + 0
13/12/2007
Edilcimar
Gostei + 0
15/12/2007
Edilcimar
Gostei + 0
18/12/2007
Edilcimar
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)