Fórum Impressão Write limite quantidade de produtos do pedido #368353

11/02/2009

0

tenho este codigo na net e gostaria de saber como reiniciar a impressao numa nova pagina para os items restantes tipo 20 items 10 primeira folha outros 10 na segunda folha ...este código abaixo esta funcionando porem nao tem limite de items veja se me entenderam obrigado..

 AssignFile(IMPRESSORA,´LPT1:´);{lpt1: - Poderia ser LPT, COM1,// Servidor/impressora}
 Rewrite(IMPRESSORA);  
 Write(IMPRESSORA); 
 Writeln(impressora); 
 Write(impressora,#14,15);
 Writeln(impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
 Writeln(Impressora,Format(´¬40s´,[DS5.DataSet.FieldByName(´nome´).Value]));
 WriteLn(Impressora,Format(´¬35s´, [DS5.DataSet.FieldByName(´ender´).Value]));  
 WriteLn(Impressora,Format(´¬30s´, [DS5.DataSet.FieldByName(´cidade´).Value])); 
 WriteLn(Impressora,Format(´¬30s´, [DS5.DataSet.FieldByName(´fone´).Value]));
 Writeln(Impressora,Format(´¬40s´,[´EMAIL:´+ DS5.DataSet.FieldByName(´email´).AsString]));
 Writeln(Impressora);
 Write (Impressora,Format(´¬-13s´, [lbl8.Caption]));
 Writeln(Impressora);
 Write(Impressora,TimetoStr(time));
 Write(Impressora,Format(´¬-20s´,[´ Data Emissao ´+DatetoStr(Date )]));
 Write(Impressora,Format(´¬20s´,[´Vend. ´+DSC1.DataSet.FieldByName(´nome_ven´).AsString]));
 Writeln(impressora); 
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
 Write (Impressora,Format(´¬-13s´, [´Controle´]));
 Write (Impressora,Format(´¬-20s´, [DSC1.DataSet.FieldByName(´id_ped´).Value]));
 Writeln(Impressora);
 Writeln(Impressora,Format(´¬35s´,[´DADOS DO CLIENTE´]));
 Write (Impressora,Format(´¬-40s´, [´Cliente: ´+DSC1.DataSet.FieldByName(´nome_cli´).Value]));  { Imprime a Razão Social, alinhado à esquerda dentro de uma área de 90 caracteres}
 if DBEdit1.Text <> ´1´ then
begin
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´End: ´+DSC3.DataSet.FieldByName(´end´).Value]));  {
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´Bairro: ´+DSC3.DataSet.FieldByName(´bairro´).Value])); 
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´Cidade: ´+DSC3.DataSet.FieldByName(´cidade´).Value]));  
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´Fone: ´+DSC3.DataSet.FieldByName(´fonercom´).Value]));
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´CNPJ/CPF: ´+DSC3.DataSet.FieldByName(´cpf_cnpj´).Value]));
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´IE/RG: ´+DSC3.DataSet.FieldByName(´rg_insc´).Value]));
 Writeln(Impressora);
end;
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
 Writeln(Impressora,Format(´¬35s´,[´DADOS DA ENTREGA´]));  
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´End: ´+DBEdit4.Text]));  
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´Bairro: ´+DBEdit8.Text]));  
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´Cidade: ´+DBEdit9.Text])); 
 Writeln(Impressora);
 Write (Impressora,Format(´¬-40s´, [´Fone: ´+DBEdit5.Text]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-3s´,[´QTD. ´]));
 Write(Impressora,Format(´¬-30s ´,[´Descricao´]));
 Write(Impressora,Format(´¬10s´,[´V.Unt´]));
 Write(Impressora,Format(´¬11s´,[´  Sub.Total´]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 writeln(impressora);
 {----- Fase de Emissão dos Itens da Nota -----}
 DSC2.DataSet.First;
 while not DSC2.DataSet.Eof do  { Início do Laço}
Begin
 Write(Impressora,Format(´¬4s ´,[(DSC2.DataSet.fieldbyname(´qtd_pro´).AsString)]));    { Imprime Código produto}
 Write(Impressora,Format(´¬-30.30s ´,[(DSC2.DataSet.fieldbyname(´descricao´).AsString)]));
 Write(Impressora,Format(´¬10f´,[(DSC2.DataSet.fieldbyname(´v_unt´).asfloat)]));
 Write(Impressora,Format(´¬10f´,[(DSC2.DataSet.fieldbyname(´v_total´).asfloat)]));
 Writeln(impressora);
 DSC2.DataSet.Next;
    { Próximo Item}
end;
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬17s´, [´Vr.Total :´]));
 Writeln(Impressora,Format(´¬38s´,[DSC1.DataSet.FieldByName(´v_total´).Value]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬5s´, [´Forma de Pagamento:´]));
 Writeln(Impressora,Format(´¬-30s´,[DBL1.Text]));
 Writeln(Impressora);
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[´Assinatura : ------------------------------´]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[DBedto12.Text]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
  Write(Impressora,Format(´¬-40s´, [´>>>´+DS5.DataSet.FieldByName(´text1´).Value]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´, [´>>>´+DS5.DataSet.FieldByName(´text2´).Value]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬-40s´, [´>>>´+DS5.DataSet.FieldByName(´text3´).Value]));
 Writeln(Impressora);
 Write(Impressora,Format(´¬40s´, [´<<<<  >>>>:´]));
 Writeln(Impressora);
 Writeln(Impressora);
 Writeln(Impressora);
 Writeln(Impressora);
 Writeln(Impressora);
 Writeln(Impressora);
 Writeln(Impressora);
 Writeln(Impressora);
 Writeln(Impressora);
 Writeln(Impressora);
  Writeln(Impressora);
   Writeln(Impressora);
    Writeln(Impressora);
     Writeln(Impressora);
      Writeln(Impressora);
 system.Close(Impressora);



Charlles

Charlles

Responder

Posts

13/02/2009

Charlles

RESOLVIDO


Responder

Gostei + 0

13/02/2009

Woinch

Resolvido para você, mas não para os outros! =)

Poderia por favor colocar a solução para que outra pessoa possa utilizar como consulta futuramente?

Obrigado.


Responder

Gostei + 0

13/02/2009

Charlles

RSRRS foi mal mas coloco sim como ninguem se manifestou achei que nem notaram minha presença rsrsrsrs

vamos la código eu fiz simplificado para todos entenderem porem ainda tem um defeitinho mas ja vamos falar sobre ele abaixo OK

var
 contador:integer;
begin
 AssignFile(IMPRESSORA,´LPT1:´);
 Rewrite(IMPRESSORA);
 Write(IMPRESSORA);
 Writeln(impressora);
 Write(impressora,#14,15);
 Writeln(impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
  Write(Impressora,Format(´¬40s´, [´<<<<  COMEÇO DA PAGINA 1 >>>>:´]));
 Writeln(impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(impressora);
 Writeln(impressora);
 contador:= 0;
 DSC2.DataSet.First;
 while not DSC2.DataSet.Eof do
Begin
  Write(Impressora,Format(´¬4s ´,[(DSC2.DataSet.fieldbyname(´qtd_pro´).AsString)]));
  Write(Impressora,Format(´¬-30.30s ´,[(DSC2.DataSet.fieldbyname(´descricao´).AsString)]));
  Write(Impressora,Format(´¬10f´,[(DSC2.DataSet.fieldbyname(´v_unt´).asfloat)]));
  Write(Impressora,Format(´¬10f´,[(DSC2.DataSet.fieldbyname(´v_total´).asfloat)]));
  Writeln(impressora);
  inc(contador);
  DSC2.DataSet.Next;
  if contador = 10 then
begin
  Writeln(Impressora);
  For Contador:= 1 to (10 - DSC2.DataSet.recordCount) do
  Writeln(Impressora);
  Writeln(Impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(Impressora);
  Write(Impressora,Format(´¬40s´, [´<<<<  FIM DA IMPRESSÃO 1 >>>>:´]));
  Writeln(impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(Impressora);
  Write(Impressora,Format(´¬40s´, [´<<<<  COMEÇO DA PAGINA 2 >>>>:´]));
  Writeln(impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(Impressora);
  Writeln(Impressora);
end;
end;
  Writeln(Impressora);
  For Contador:= 1 to (10 - DSC2.DataSet.recordCount) do
  Writeln(Impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(Impressora);
  Write(Impressora,Format(´¬40s´, [´<<<<  FIM DA IMPRESSÃO 2 >>>>:´]));
  Writeln(impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  contador:= 0;
  system.Close(Impressora);
end;



Ai esta só que nao consigo dar os saltos na seguinte situação quando temos 11 produtos ou mais isto serve para nota fiscal tb ta , 11 produtos ele tem que imprimir o decimo primeiro e pular 9 linhas nao estou conseguindo fazer isto só quando tem abaixo de 10 ai imprimi uma só e pula a quantidade de linhas certinho veja se podem me ajudar por favor...


Responder

Gostei + 0

13/02/2009

Charlles

Resolvi sózinho de novo ao invés disto:

For Contador:= 2 to (3 - DSC2.DataSet.recordCount) do

coloquei isto:

For Contador:= 1 to (10 - Contador) do

só no fim ficando assim:

var
 contador:integer;
begin
 AssignFile(IMPRESSORA,´LPT1:´);
 Rewrite(IMPRESSORA);
 Write(IMPRESSORA);
 Writeln(impressora);
 Write(impressora,#14,15);
 Writeln(impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(Impressora);
  Write(Impressora,Format(´¬40s´, [´<<<<  COMEÇO DA PAGINA 1 >>>>:´]));
 Writeln(impressora);
 Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
 Writeln(impressora);
 Writeln(impressora);
 contador:= 0;
 DSC2.DataSet.First;
 while not DSC2.DataSet.Eof do
Begin
  Write(Impressora,Format(´¬4s ´,[(DSC2.DataSet.fieldbyname(´qtd_pro´).AsString)]));
  Write(Impressora,Format(´¬-30.30s ´,[(DSC2.DataSet.fieldbyname(´descricao´).AsString)]));
  Write(Impressora,Format(´¬10f´,[(DSC2.DataSet.fieldbyname(´v_unt´).asfloat)]));
  Write(Impressora,Format(´¬10f´,[(DSC2.DataSet.fieldbyname(´v_total´).asfloat)]));
  Writeln(impressora);
  inc(contador);
  DSC2.DataSet.Next;
  if contador = 5 then
begin
  contador:= 0;
  Writeln(Impressora);
  Writeln(Impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(Impressora);
  Write(Impressora,Format(´¬40s´, [´<<<<  FIM DA IMPRESSÃO 1 >>>>:´]));
  Writeln(impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(Impressora);
  Write(Impressora,Format(´¬40s´, [´<<<<  COMEÇO DA PAGINA 2 >>>>:´]));
  Writeln(impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(Impressora);
  Writeln(Impressora);
end;
end;
  Writeln(Impressora);
  Writeln(Impressora);
  For Contador:= 1 to (5 - Contador) do
  Writeln(Impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(Impressora);
  Write(Impressora,Format(´¬40s´, [´<<<<  FIM DA IMPRESSÃO 2 >>>>:´]));
  Writeln(impressora);
  Write(Impressora,Format(´¬-40s´,[´---------------------------------------------------------´]));
  Writeln(impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  Writeln(Impressora);
  system.Close(Impressora);
end;



Responder

Gostei + 0

13/02/2009

Charlles

tem mais um probleminha que nao estou conseguindo resolver
poxa sera que ninguem pode dar uma dica nao?


Responder

Gostei + 0

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

Aceitar