Posições em impressão direta.

02/06/2008

1

Olá amigos do fórum Clube Delphi.

Estou fazendo uma ordem de orçamento com impressão direta numa LX-300+II via LPT1, tenho utilizados os codigos que são referentes a ela, porém na parte onde é descrito os itens a impressopra não colocando tudo na mesma linha como se faltasse espaço para impressão, mas tem espaço apenas acho que não estou fazendo a formatação correta, se alguém puder me ajudar ficarei muito grato, segue o codigo da minha procedure de impressão;

procedure ImprimeReciboVendas();
const
   //Valores constantes para formatacao do relatorio
   JustCentro = #27971;
   Padrao = 20;
   Condensado = 15;
   Expandido = 14;
   SemExpandido = 20;
   CNegrito = 2771;
   SNegrito = 2772;
   MEsquerda = 271081;
   JustEsquerda = 27972;
   Normal = 20;
   Draft = 271200;
   Tamanho1 = 2780;
   Tamanho2 = 2777;
   Tamanho3 = #27330;
   Tamanho4 = 27331;
   Imediato = 271051;
   JustDireita = 27970;
var
   Recibo : TextFile;
begin
//Cabeçalho do Recibo de Compra
   AssignFile(Recibo,´LPT1´);
   Rewrite(Recibo);
   Writeln(Recibo, JustCentro + Expandido + CNegrito, Format(´¬5s´,[´A F P L A´]));
   Writeln(Recibo);
   Write(Recibo, JustEsquerda + SemExpandido + CNegrito, Format(´¬20s´,[´Nota de Orçamento N: ´ + IntToStr(FModuloDadosMOF.TQryMovVendasMsequencial.Value)]));
   Write(Recibo, JustEsquerda + SemExpandido + CNegrito, Format(´¬50s´,[´Data: ´ + DateToStr(FModuloDadosMOF.TQryMovVendasMdatavenda.Value)]));
   Writeln(Recibo);
   Writeln(Recibo);

//Dados do Cliente
   Writeln(Recibo, JustDireita + SemExpandido + CNegrito, Format(´¬10s´,[´Codigo Cliente: ´ + IntToStr(FModuloDadosMOF.TQryMovVendasMcodigocliente.Value) + ´  Nome: ´ +  FModuloDadosMOF.TQryMovVendasMDescricaoCliente.Value]));
   Writeln(Recibo);
   Writeln(Recibo);

//Cabeçalho dos itens de venda
   Write(Recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬5s´,[´Cod. Prod.´]));
   Write(Recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬40s´,[´Quant.´]));
   Write(Recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬45s´,[´V. Unit.´]));
   Writeln(Recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬50s´,[´V. Total´]));

//Itens da Venda
   FModuloDadosMOF.TQryMovVendasD.First;
   While not FModuloDadosMOF.TQryMovVendasD.Eof do
    begin
     Write(Recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬5s´ ,[FModuloDadosMOF.TQryMovVendasDcodigoproduto.AsString]));
     Write(recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬15s´,[FModuloDadosMOF.TQryMovVendasDDescricaoProduto.AsString]));
     Write(recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬40s´,[FModuloDadosMOF.TQryMovVendasDquantidade.AsString]));
     Write(recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬45s´,[FModuloDadosMOF.TQryMovVendasDvalorunitario.AsString]));
     Writeln(Recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬50s´,[FModuloDadosMOF.TQryMovVendasDvalortotal.AsString]));
     FModuloDadosMOF.TQryMovVendasD.Next;
    end;

//Finaliza o recibo de venda
   Writeln(Recibo, JustDireita + Condensado + SemExpandido + CNegrito, Format(´¬50s´,[FModuloDadosMOF.TQryMovVendasMvalortotal.AsString]));
   CloseFile(Recibo);
end;



Responder

Posts

04/06/2008

Ffabiop

somando rapidamente, sua linha de itens tem 155 caracteres, na lx-300 imprimindo condensado pode colocar 132 caracteres para manter o padrão de listagem 80 em modo normal ou 132 condensado.


Responder