Fórum Método Tprinter While ... imprime somente o último registro. #346112
16/09/2007
0
Oi,
Na linha de impressão de itens (pedido), no code abaixo a rotina somente imprime o último registro do Query1.
Pergunta: Como devo programar para imprimir todos os itens do pedido?
CODE:
Query1.First;
While not Query1.Eof do
Begin
Printer.Canvas.TextOut(0, 100, Query1.FieldByName(´ref´).AsString + ´ -- ´ + Query1.FieldByName(´descricao´).AsString);
Query1.Next;
end;
Grato,
gilsonlongo
Na linha de impressão de itens (pedido), no code abaixo a rotina somente imprime o último registro do Query1.
Pergunta: Como devo programar para imprimir todos os itens do pedido?
CODE:
Query1.First;
While not Query1.Eof do
Begin
Printer.Canvas.TextOut(0, 100, Query1.FieldByName(´ref´).AsString + ´ -- ´ + Query1.FieldByName(´descricao´).AsString);
Query1.Next;
end;
Grato,
gilsonlongo
Gilsonlongo
Curtir tópico
+ 0
Responder
Posts
16/09/2007
Sremulador
Amigo o problema esta no espaço de linha, pois você esta imprimirndo tudo na mesma linha, fiz apenas um exemplo, para você entender..., utilize o
[b:e39c7ca936]Var[/b:e39c7ca936]
Espacolinha: Integer
Printer.BeginDoc; Printer.EndDoc;
[b:e39c7ca936]Var[/b:e39c7ca936]
Espacolinha: Integer
Query1.First; While not Query1.Eof do Begin inc(Espacolinha, 50) Printer.Canvas.TextOut(0, 30, 20+(Espacolinha * 50), Query1.FieldByName(´ref´).AsString + ´ -- ´ + Query1.FieldByName(´descricao´).AsString); Query1.Next; end;
var I: integer; begin Printer.BeginDoc; for I:= 0 to 30 do Printer.Canvas.TextOut(30, 20+(I * 50), ´Teste de Impressão´); Printer.EndDoc;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)