Fórum Dúvidas c/ writeln #264454
06/01/2005
0
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
Curtir tópico
+ 0Posts
06/01/2005
Massuda
O sinal de ´-´ faz com que Format alinhe o texto à esquerda no campo.
Procure pelo tópico ´format strings´ na ajuda do Delphi.
Gostei + 0
06/01/2005
Gameiro
Quanto a ajuda não achei como format strings.
Obrigado.
Gostei + 0
06/01/2005
Massuda
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]));
Gostei + 0
06/01/2005
Gameiro
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.
Gostei + 0
06/01/2005
Massuda
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´
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)