Duvidas Rdprint

Delphi

11/09/2012

gostaria de saber se alguem usa o rdprint pra relatorio e como é feito a quera de linha
Maxwell

Maxwell

Curtidas 0

Respostas

Edson Melo

Edson Melo

11/09/2012

uso desde o delphi 7, a quebra e meio complicada , tem um programa exemplo que vem com o rdprint que mostra como se faz a quebra, e so ver que e muito dificil, mas um pouco complicado.

estou tendo um outro probleminha com ele que so reparei agora , com impressora laiser eele fica doido, estou usando o delphi 2010 com rdprint.
GOSTEI 0
Edson Melo

Edson Melo

11/09/2012

ola maxwell

retirei estas linhas de um sistema meu, que faz a quebra , da para voce analizar e ver se consegue entender, so te aviso que a tabela tem que estar ordenada pelo campo que voce quer fazer a quebra.



// Ajusta preview de acordo com a opção do cliente...
rdprint1.TamanhoQteLinhas := 66; // Linhas (deve ser 1 quando for CUPOM)
rdprint1.TamanhoQteColunas := 96; // Largura da Bobina aprox. 7 cm (7 / 2.54 * 20)
rdprint1.FonteTamanhoPadrao := s12cpp; // Fonte Comprimido em 20 cpp
rdprint1.OpcoesPreview.Preview := True;
rdprint1.OpcoesPreview.PreviewZoom := 100;
rdprint1.OpcoesPreview.PaginaZebrada:= True;
RDprint1.MostrarProgresso := True;

rdprint1.abrir; // Inicia a montagem do relatório...

// Chama setup e se clicar em "CANCELAR" então abandona...
if RDprint1.Setup = false then begin
showmessage('Cancelado pelo usuário...');
exit;
end;

// Zera variaveis para iniciar o relatório...
linha := 9;
subtotal := 0;
totalgeral := 0;

cidadews := 'Forca quebra'; // Força 1º Quebra... nao mude

CDS_LISTAGEM.First;

while not CDS_LISTAGEM.eof do begin

// verifica e processa quebra da cidade...
if CDS_LISTAGEMCCusto.AsString <> cidadews then // Quebra a cidade... compara se o campo ainda continua o mesmo
begin
totalquebra; // Imprime total da quebra...
quebracidade; // Imprime cabecalho da cidade...
end;

if linha > 61 then // 59 Salto de Pagina chama automaticamente cabecalho/rodape...
begin
rdprint1.novapagina;
quebracidade;
end;

// Detalhes do relatório...

rdprint1.imp (linha,01,DateToStr(CDS_LISTAGEMData.AsDateTime)); // DATA
rdprint1.imp (linha,12,CDS_LISTAGEMDiscrimincao.asstring); // DESCRICAO
rdprint1.impD (linha,83,formatfloat('###,##0.00',CDS_LISTAGEMValor.value),[]); // valor
rdprint1.impD (linha,95, DateToStr(CDS_LISTAGEMPagamento.AsDateTime),[]); // PAGO SN
inc(linha);

// Soma o totais...
subtotal := subtotal + CDS_LISTAGEMValor.value;
totalgeral := totalgeral + CDS_LISTAGEMValor.value;

CDS_LISTAGEM.next;
end;

// Imprime o total da quebra...

totalquebra;

// Imprime total geral...
if linha > 60 then rdprint1.novapagina;
inc(linha);
rdprint1.impf (linha,10,'Total Geral ==> ',[negrito]);
rdprint1.impval(linha,81,'###,###,##0.00',totalgeral, [negrito]);

rdprint1.fechar; // Encerra o relatório...

Bt_SairQbra.SetFocus;

end;

procedure TFrm_QuebraDespesa.quebracidade;
begin
if linha > 59 then rdprint1.novapagina;
// Imprime o cabecalho da quebra...
inc(linha);
rdprint1.impf(linha,1,'Centro de Custo ' + cidadews,[negrito]);
rdprint1.impf(linha,31,'Desc.: ' + CDS_LISTAGEMDescricao.asstring,[negrito]);
inc(linha);
inc(linha);
end;

procedure TFrm_QuebraDespesa.totalquebra;
begin
if cidadews = 'Forca quebra' then // Não tem sub-total ainda pois é o 1º vez
begin
cidadews := CDS_LISTAGEMCCusto.AsString; // atualiza a quebra...
exit;
end;

// Imprime total da quebra...
if linha > 60 then begin // 59
rdprint1.novapagina;
quebracidade;
end
else
begin
inc(linha);
end;

rdprint1.impf (linha,10,'SubTotal Centro de Custo ==> ',[negrito]);
rdprint1.impval(linha,81,'###,###,##0.00',subtotal,[negrito]);
inc(linha);

// atualizo variaveis de controle da quebra...
cidadews := CDS_LISTAGEMCCusto.AsString; // atualiza a quebra...
subtotal := 0;
end;
GOSTEI 0
Maxwell

Maxwell

11/09/2012

Ola amigo é o seguinte no RDPRINT so consigo imprimir 17 intes na folha micro serrilhado, não estou conseguindo imprimir na folha seguinte ae tenho que abrir outra venda entendeu, gostaria de saber se tens uma solução para mim, como faço para imprimir na pagina seguinte incluindo o cabeçalho. te agradeço pela ajuda
GOSTEI 0
POSTAR