LX300 EM BOBINA

09/01/2010

1

Olá estou criando uma rotina de impressão direta na lx300 estou utilizando o seguinte comando Var
  f:TextFile;
begin
  Try
     AssignFile(f,'LPT1');
     Rewrite(f);
     WriteLn(F,'Linha1 e pula uma linha');
     Write(F,'Linha 2 e continua na mesma linha');
     WriteLn(F,'Termina a linha 2 e pula outra linha');
  Finally
   CloseFile(F);
  End;
end;     mas com faço para posicionar os campos?    ex:  cod produto começa na posição 10,  descrição começa na posição 50 e preço na posição 100   obrigado
Responder

Posts

09/01/2010

Dirceu Morais

Rogério,

Pra resolver este problema eu utilizo a seguinte "artimanha"
Criei uma rotina com o nome de acrescenta espacos:

{
   Str               = Nome do campo
   Num             = Quantidade de espaços que quer acrescentar
   Pos_Espaco = Posicao do espaco (D-Direita ou E-Esquerda)
}
function AcrescEspaco(str: string; num: integer; pos_espaco : char): string;
var i : integer;
    aux : string;
begin
    aux := '';
    for i := 1 to num - length(str) do
         aux := aux + ' ';

    if pos_espaco = 'D' then
      result := str + aux
    else if pos_espaco = 'E' then
      result := aux + str;
end;

ae utiliza da seguinte forma:

Valores para exemplo:
Codigo   12                 -     8909     -      4
Nome     Vaselina Liquida   -  Xampu Gel   - Glicerina
preco    0,75               -  12,80       -  1,40

.....
writeln(f,AcresEspaco(Codigo,5,'E')+' '+AcresEspaco(Nome,30,'D')+' '+AcresEspaco(Preco,10,'E'))
.....


Resultado:     
   12 Vaselina liquida                    0,75
 8909 Xampu gel                          12,80
    4 Glicerina                           1,40

Espero ter ajudado.



Responder
Dirceu Morais
Excelente muito bom mesmo, simples e de grande valia obrigado!!!
Responder