Fórum Impressão Write limite quantidade de produtos do pedido #368353
11/02/2009
0
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
Curtir tópico
+ 0Posts
13/02/2009
Charlles
Gostei + 0
13/02/2009
Woinch
Poderia por favor colocar a solução para que outra pessoa possa utilizar como consulta futuramente?
Obrigado.
Gostei + 0
13/02/2009
Charlles
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
13/02/2009
Charlles
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
13/02/2009
Charlles
poxa sera que ninguem pode dar uma dica nao?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)