Impressão Write limite quantidade de produtos do pedido
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
Curtidas 0
Respostas
Charlles
11/02/2009
RESOLVIDO
GOSTEI 0
Woinch
11/02/2009
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.
Poderia por favor colocar a solução para que outra pessoa possa utilizar como consulta futuramente?
Obrigado.
GOSTEI 0
Charlles
11/02/2009
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
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...
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...
GOSTEI 0
Charlles
11/02/2009
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:
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;
GOSTEI 0
Charlles
11/02/2009
tem mais um probleminha que nao estou conseguindo resolver
poxa sera que ninguem pode dar uma dica nao?
poxa sera que ninguem pode dar uma dica nao?
GOSTEI 0