[ medixsa @ 02.05.2008. 11:48 ] @
Pozdrav !!!

Delphi 7

QuickReport koristim za prikaz POS racuna i stamapanje ali mi na na POS printerima ne stampa uredno,razbacuje redove i sl..

da li neko zna kako da sve iz QuickReporta prebacim u tekstulani fajl ili konvertujem u neku komponentu tipa ListBox itd...

Hvala svima na ogdovu





[Ovu poruku je menjao medixsa dana 02.05.2008. u 21:55 GMT+1]
[ juha5803 @ 03.05.2008. 06:08 ] @
Bilo je par odgovora na sličan problem. Ako baš ne moraš ne koristi QR. Šalji direktno na LPT ili COM port. POS printeri to uglavnom lakše prihvate. Kako u QR uopšte definišeš dužinu strane pošto nemožeš znati dužinu računa?
[ medixsa @ 03.05.2008. 12:03 ] @
Pozdrav !!

Kreirao sam komplet sadrzaj racuna u memo u saljem ga na LPT direktono,stim da se puno mucim oko poravnjanja
kolona tj.izmedju kolicine i cijene i iznosa -pomjera mi se ako je kolicina veca od....ili obrnutno


valjda cu nekako rijesiti

hvala puno
[ juha5803 @ 03.05.2008. 12:34 ] @
Imao sam taj problem i rješio ga tako da sam sam "fiksirao" dužine podataka tj. naziv artikla je uvijek 19 karaktera, cijena 8 i slično. POS printeri koriste proporcionalan font i to je onda moguće izvesti ovako
[ medixsa @ 03.05.2008. 14:16 ] @
Pogledaj moj kod

Code:

var
  Naziv,Cijena,Kolicina,Sifra,Stopa,Iznos,PDV,bezPDV : String;
  Lista : TStringList;

begin
  Lista := TStringList.Create;

  Lista.Add('Sifra');
  Lista.Add('Naziv');
  Lista.Add('Stopa');
  Lista.Add('Kolicina');
  Lista.Add('Cijena');
  Lista.Add('bezPDV');
  Lista.Add('PDV');
  Lista.Add('Iznos');


  izvjPOSracun.Memo1.Lines.Add(Lista.Strings[0]+' '+Lista.Strings[1]+'                        '+Lista.Strings[2]);
  izvjPOSracun.Memo1.Lines.Add(Lista.Strings[3]+' '+Lista.Strings[4]+'   '+Lista.Strings[5]+'   '+Lista.Strings[6]+'     '+Lista.Strings[7]);
  izvjPOSracun.Memo1.Lines.Add('****************************************');


  frmProdaja.tblProdaja.First;
  while not frmProdaja.tblProdaja.Eof do
  begin
  Sifra := frmProdaja.tblProdajaSifra.AsString;
  if length(Sifra) < 5 then
  Sifra := Sifra + StringOfChar(' ', 5-Length(Sifra))
  else Sifra := Copy(Sifra,1,5);

  Naziv := frmProdaja.tblProdajaNaziv.AsString;
  if length(Naziv) < 50 then Naziv := Naziv + StringOfChar(' ', 30-Length(Naziv))
  else Naziv := Copy(Naziv,1,30);

  Stopa := FloatToStrF(frmProdaja.tblProdajaPDV.AsInteger,ffFixed,18,2);
  if length(Stopa) < 8 then Stopa := Stopa + StringOfChar(' ', 8-Length(Stopa))
  else Stopa := Copy(Stopa,1,8);

  Kolicina := FloatToStrF(frmProdaja.tblProdajaKolicina.AsFloat, ffFixed, 18, 2);
  if length(Kolicina) < 2 then Kolicina := StringOfChar(' ', 10-Length(Kolicina)) + Kolicina
  else Kolicina := Copy(Kolicina,1,10);

  Cijena := FloatToStrF(frmProdaja.tblProdajaCijena.AsFloat, ffFixed, 18, 2);
  if length(Cijena) < 9 then Cijena := StringOfChar(' ', 10-Length(Cijena)) + Cijena
  else Cijena := Copy(Cijena,1,10);

  Iznos := FloatToStrF(frmProdaja.tblProdajaIznos.AsFloat, ffFixed, 18, 2);
  if length(Iznos) < 10 then Iznos := StringOfChar(' ', 10-Length(Iznos)) + Iznos
  else Iznos := Copy(Iznos,1,10);


  PDV := FloatToStrF(frmProdaja.tblProdajaSumPDV.AsFloat, ffFixed, 18, 2);
  if length(PDV) < 6 then PDV := StringOfChar(' ', 6-Length(PDV)) + PDV
  else PDV := Copy(PDv,1,6);

  bezPDV := FloatToStrF(frmProdaja.tblProdajaRabatS.AsFloat, ffFixed, 18, 2);
  if length(bezPDV) < 9 then bezPDV := StringOfChar(' ', 9-Length(bezPDV)) + bezPDV
  else bezPDV := Copy(bezPDV,1,9);


    // Dodavanje u listbox1
    izvjPOSracun.Memo1.Lines.Add(Sifra+Naziv+Stopa);
    izvjPOSracun.Memo1.Lines.Add(Kolicina+Cijena+bezPDV+PDV+Iznos);
    frmProdaja.tblProdaja.Next;
  end;
    izvjPOSracun.Memo1.Lines.Add('****************************************');


a opet mi nestima kako treba nikako nemogu da ustimam da bude sve uredu


[Ovu poruku je menjao savkic dana 03.05.2008. u 16:13 GMT+1]
[ savkic @ 03.05.2008. 15:14 ] @
Pogledaj: http://www.elitesecurity.org/t232075.