gerador de relatório

17/12/2003

2

Olá Amigos,

Qual o melhor gerador de relatórios para ser usado com o Delphi 7 ???

Como faço para que o Rave acesse os dados do meu componente IbQuery... só consigo faze-lo enchergar do Tquery ....


T+



Temos uma regra que pede para os usário não colocarem os títulos

do tópicos em maiúsculas. Editei sua msg e quero pedir que nas

próximas escreva em minúsculas por favor.
zoom


Responder

Posts

17/12/2003

Marconi

O melhor gerador de Relatórios para qualquer versão do Delphi, é aquele que voce mesmo cria.

Em vez de esquentar a cabeça tentando fazer os comandos do QuickReport funcionarem direito, resolvi eu mesmo construir os relatórios pondo o que quisesse, na fonte que quisesse, no tamanho que quisesse, no lugar da página que quisesse e mudadando as páginas quando quisesse.

Voce somente usa o Canvas da Impressora. Dá trabalho ir criando as funções que vai necessitar, mas não fica mais escravo das possibilidades de nenhum dos programas.

Se precisar mais dicas eu mando.

Marconi


Responder

17/12/2003

Outl@w

Vc tem algum exemplo de impressão feita através de Canvas?
A impressão sai a mesma em diferentes tipos de impressoras ou é necessário ajustar o relatório de acordo com o tipo de impressora?


Responder

17/12/2003

Fred

para rave enchergar a query:

coloque no programa 1 query e 1 rvDataSetConnection (DS) da palheta RAVE, ligue o rvds na query, abra o rave e va em novo ==> Direct Data View ==> escolha o rvds do programa e pronto voce ja pode usar os campos com os resultados da query


Responder

17/12/2003

Barcelos

Fala Pessoal!

Não me chamem de ´do contra´, mas eu não tenho nada contra o QR :!: :!: :!: , ele apenas não faz algumas coisas.....
Mas eu resolvo meus problemas com uma sugestão parecida com a do nosso amigo Marconi.
Existe um componente freeware chamado TMWPrintObject , que utiliza o Cavas para a impressão. Se você usa TPrinter, terá que fazer pouquíssimos ajustes no seu código para obter um resultado de primeira.
Esse componente além de ser muito fácil de usar, vem com arquivo de Help e os fontes todos comentarizados (em inglês).
Uso ele no D5 (deve funcionar nas outras versões do Delphi) e o personalizei para que ficasse com a aparência igual à do QR. Uso os dois para gerar relatórios e o cliente nem nota a diferença.
Se for de seu interesse dê uma olhada. Vale a pena :!:

Espero ter ajudado,

Barcelos
osbarcelos@hotmail.com


Responder

17/12/2003

Nebrio

Pessoal,

Mas se utilizar o Canvas não terá problema com versões do Win2000 ou XP.
Pois, eu tinha vários relatórios impresso via Canvas que funcionavam muito bem no Win98, porém, no Win2000 deu zica e tive que reformular...com o XP foi o mesmo caso....

T=

Nébrio


Responder

17/12/2003

Marconi

O segredo é o seguinte:

Voce monta o seu primeiro relatório testando as soluções para um tipo de impressora. A que voce tem disponível, mas cria função que corrige para qualquer outra considerando sempre page.width e page.height da impressora que estiver rodando, não importanto nem a resolução da mesma.

Voce colona em USES -> Printers

No seu form coloca os objetos TPrinterDialog e TPrinterSetUpDialog que vai encontrar na abeta ´Dialogs´ das ferramentas.

Olha parte de um programa meu que funciona
.... Eu renomei o objeto TPrinterDialog para pd

pd.Options := [poSelection]; // aqui voce entra na propriedade das impressoras
pd.Execute;
with Printer do
begin
Orientation:= poPortrait;
BeginDoc; // aqui começa a montar uma página de impressão
with Canvas do
begin
Font.Name:=´Arial´;
Font.Size:= 8;
Pen.Width:=2;
Imprima(50,50,´Página ´+ copy(rg.Items[rg.itemIndex],1,3));
Imprima(2100,50,´Livro ´+InttoStr(form1.lfs[´livro´]));
FazLinha(40,90,2340,90); // Linha Superior
Font.Size:= 10;
... e assim vai
Voce pode preencher a página em qualquer posição não precisa se sequencial. Para mudar de página use NewPage e para encerrar a impressão Enddoc.

Veja as funções Imprima e FazLinha.

procedure TForm1.Imprima(c,l:integer;t:string);
var
i,j,tv,th:integer;
begin
if Printer.Orientation = poPortrait then
begin
tv:=3309;
th:=2398;
// estes tamanhos de página são da minha impressora
// com eles eu corrijo para qualquer outra
// voce pode utilizar os mesmos
end
else
begin
tv:= 2398;
th:= 3309;
end;
i:=Round((c/th)*printer.pageWidth);
j:=Round((l/tv)*printer.pageHeight);
Printer.Canvas.textout(i,j,t);
end;

Procedure TForm1.FazLinha(c0,l0,c1,l1:integer);
var
x0,y0,x1,y1:integer;
tv,th: integer;
begin
if Printer.Orientation = poPortrait then
begin
tv:=3309;
th:=2398;
end
else
begin
tv:= 2398;
th:= 3309;
end;
x0:=Round((c0/th)*printer.pageWidth);
x1:=Round((c1/th)*printer.pageWidth);
y0:=Round((l0/tv)*printer.pageHeight);
y1:=Round((l1/tv)*printer.pageHeight);
Printer.Canvas.MoveTo(x0,y0);
Printer.Canvas.LineTo(x1,y1);
end;

procedure TForm1.Centra(l:integer;t:string);
// coloca no centro da linha (em pixeis)
var
i,j,tv,th:integer;
begin
if Printer.Orientation = poPortrait then
begin
tv:=3309;
th:=2398;
end
else
begin
tv:= 2398;
th:= 3309;
end;
i:=Round((printer.pageWidth-Printer.Canvas.TextWidth(t))/2);
j:=Round((l/tv)*printer.pageHeight);
Printer.Canvas.textout(i,j,t);
end;


Voce inventa as suas. Mas posso te mandar as outras.

Eu também aprendi muito neste forum

Marconi


Responder

18/02/2004

Jep

Tem como alguém me mandar um exemplo... Gostaria de criar um gerador de relatorio para meus clientes, onde cada um podesse modificar seus relatorios sem que eu tivesse que mudar os relatorios.


Responder

12/08/2006

Dpinho

Tem como alguém me mandar um exemplo... Gostaria de criar um gerador de relatorio para meus clientes, onde cada um podesse modificar seus relatorios sem que eu tivesse que mudar os relatorios.


ja faz algum tempo que estou tentando criar um gerador em meus programas, onde o usuario escolha a tabela e os campos e va montando o relatorio, depois grava e criar o menu. quero fazer algo donamico, com relatorios e graficos e nem sei por onde começar.
Ja tentei alguns exemplos da revista, mas são simples e não funciona direito
tambem tem a questão do tempo, por isto convido a quem quizer montar um grupo para desenvolver este gerador

Estava pensando em criar um formulario onde o usuario fosse definido os campos e ordenação, mas algo utilizando o mouse.
Seria como o QR ou outro gerador, mas estava pensando algo dentro do software para um usuario leigo
Se alguem quizer, entre em contando no msn


Responder

13/08/2006

Marcelo.l

Olá a todos.

Vcs podem tentar o [b:28b00cfe6e]FreeReport[/b:28b00cfe6e].
É gratuíto e com fontes.
A página de dowload abaixo:

[url]http://www.fast-report.com/en/download/download.php?BID=22[/url]

Mas por experiencia já aviso. Um usuário ´leigo´ dificilmente vai fazer um relatório sozinho. No máximo uma listagem ele vai conseguir fazer. Mas relatórios com relacionamentos entre tabelas...
Bom, só se ele não for leigo.


Responder

13/08/2006

Dpinho

Olá a todos. Vcs podem tentar o [b:e2909e9fc2]FreeReport[/b:e2909e9fc2]. É gratuíto e com fontes. A página de dowload abaixo: [url]http://www.fast-report.com/en/download/download.php?BID=22[/url] Mas por experiencia já aviso. Um usuário ´leigo´ dificilmente vai fazer um relatório sozinho. No máximo uma listagem ele vai conseguir fazer. Mas relatórios com relacionamentos entre tabelas... Bom, só se ele não for leigo.


A ideia é não utilizar estes geradores, mas criar dentro do proprio software um gerador passo a passo, acho que melhorar estas dicas que tem no clube...


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira