GARANTIR DESCONTO

Fórum Dúvidas c/ writeln #264454

06/01/2005

0

Procurei no forum mas não consegui achar o que preciso ou não entendi, ai vai minha dúvida:


Tenho o seguinte código para imprimir um cupom de venda:


AssignFile(Impressora,´LPT1:´);
      Rewrite(Impressora);
      Writeln(impressora);
      Writeln(Impressora, Format(´¬35s´, [´Venda´]));
                  (Impressora,2715+´============================================================´);
      Write (impressora,Format(´¬-20s´,[´Data:´+DatetoStr(now)]));
      writeln(impressora,Format(´¬30s´,[´Hora:´+timetoStr(time)]));
      Writeln(Impressora,Format(´¬00s´,[´Codigo       Descricao´]));
      Writeln(Impressora,Format(´¬00s´,[´Qtde         Valor Unitario              Subtotal´]));
      Writeln(Impressora,2715+´============================================================´);
      datamodule1.ClientDetalhe.First;
      while not datamodule1.ClientDetalhe.Eof do
      Begin
        Write(Impressora,Format(´¬-13s´,[datamodule1.clientdetalhe.fieldbyname(´cod_produto´).asstring]));
        Writeln(Impressora,Format(´¬-30s´,[datamodule1.clientdetalhe.fieldbyname(´desc_produto´).asstring]));
        Write(Impressora,Format(´¬-8.2n´,[datamodule1.clientdetalhe.fieldbyname(´qtd_produto´).asfloat]));
        Write(Impressora,Format(´¬-15.2m´,[datamodule1.clientdetalhe.fieldbyname(´preco_unit´).ascurrency]));
        Writeln(Impressora,Format(´¬-15.2m´,[datamodule1.clientdetalhe.fieldbyname(´valor_total´).ascurrency]));

        Writeln(Impressora);
        datamodule1.ClientDetalhe.next;
      end;
        Writeln(Impressora,2715+´============================================================´);
       //pula três linhas
      Writeln(Impressora);
      Writeln(impressora);
      Writeln(impressora);
      CloseFile(impressora);


Quando tento colocar 3 informações na mesma linha, exemplo:
Qtde,Vl. Unitário e Subtotal em vez do próximo item sair na linha logo abaixo ele pula uma linha como se os campos de cima estivessem estourando o espaço para a linha de baixo se tiro uma informação ele funciona.



Gostaria de saber o que faço para limitar o tamanho dos campos na hora de imprimir e a posição onde será impresso , e como posso mudar o tipo de letra para condensado, estou usando uma impressora de 40 colunas.

Qual a diferença de usar ´¬-15.2m´ e ´¬+15.2m´ e o que significa s, m e f que vem depois do ´¬15.2´.


Desculpem mas nunca mexi com isso.



Valeu, até mais


Gameiro

Gameiro

Responder

Posts

06/01/2005

Massuda

Qual a diferença de usar ´¬-15.2m´ e ´¬+15.2m´


O sinal de ´-´ faz com que Format alinhe o texto à esquerda no campo.

o que significa s, m e f que vem depois do ´¬15.2´.


Procure pelo tópico ´format strings´ na ajuda do Delphi.


Responder

Gostei + 0

06/01/2005

Gameiro

Valeu, Massuda, mas e quanto a limitar o tamanho do campo e a posição.


Quanto a ajuda não achei como format strings.



Obrigado.


Responder

Gostei + 0

06/01/2005

Massuda

Quando tento colocar 3 informações na mesma linha, exemplo: Qtde,Vl. Unitário e Subtotal em vez do próximo item sair na linha logo abaixo ele pula uma linha como se os campos de cima estivessem estourando o espaço para a linha de baixo se tiro uma informação ele funciona.

Você não informou quantas colunas você tem disponível... pelo seu código, imagino que seja entre 35 e 40 colunas... Pelo seu código, quando você faz...
Write(Impressora,Format(´¬-8.2n´,[datamodule1.clientdetalhe.fieldbyname(´qtd_produto´).asfloat]));
Write(Impressora,Format(´¬-15.2m´,[datamodule1.clientdetalhe.fieldbyname(´preco_unit´).ascurrency]));
Writeln(Impressora,Format(´¬-15.2m´,[datamodule1.clientdetalhe.fieldbyname(´valor_total´).ascurrency]));
você está gastando 38 colunas (8+15+15)... pode ser que tenha ´estourado´ a linha?

Quanto a ajuda não achei como format strings.
No tópico sobre a função Format, na ajuda do Delphi, existe um link para as strings de formatação.


Responder

Gostei + 0

06/01/2005

Gameiro

Massuda consegui resolver algumas partes.


Não consegui enteder como limitar um tamanho,por exemplo:

Quero que a descrição do produto só imprima até 30 caracteres o que passar disso seja ignorado.

Queria saber se posso fazer isso pelo format.


Ps.: Achei a ajuda no delphi.



Obrigado, pelas respostas.


Responder

Gostei + 0

06/01/2005

Massuda

Quero que a descrição do produto só imprima até 30 caracteres o que passar disso seja ignorado.

Testei a pouco... você pode limitar o tamanho de um campo string (tipo ´s´), por exemplo em 30 caracteres, usando ´¬30.30s´ ao invés de ´¬30s´


Responder

Gostei + 0

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

Aceitar