[ mojeKorIme @ 08.12.2006. 06:15 ] @
| Kako natjerati delphi da printa na POS papir da su brojevi sortirani
bla bla
Naziv cijena kol iznos
kafa 1 2 2
coko 1.5 3 4.5
.
.
.
kod mene se sve razleti...
moj pokusaj (naziv i cijena su ok...preumoran sam da kontam dalje)
Code:
printer.Canvas.TextOut(2,14,'R.BR NAZIV MPC KOL IZNOS');
datasource1.DataSet.First;
x:=1;
vr:=0;
vru:=0;
while datasource1.DataSet.Eof=false do
begin
vr:=datasource1.DataSet.Fields.Fields[4].AsFloat*datasource1.DataSet.Fields.Fields[10].AsFloat;
vru:=vru+vr;
pro:='';//razmak izmedju cijene i naziva
pro1:='';//razmak izmedju cijene i kolicine
pro2:='';//razmak izmedju iznosa i kolicine
//ovo sa textout ne ide!!!
for i:=1 to (23-length(datasource1.DataSet.Fields.Fields[19].AsString )-length(datasource1.DataSet.Fields.Fields[10].AsString)) do
pro:=pro+' ';
for i:=1 to (8-length(datasource1.DataSet.Fields.Fields[10].AsString)) do
pro1:=pro1+' ';
for i:=1 to (8-length(floattostr(vru))) do
pro2:=pro2+' ';
printer.Canvas.TextOut(2,14+x,inttostr(x)+'. '+datasource1.DataSet.Fields.Fields[19].AsString+pro+datasource1.DataSet.Fields.Fields[10].AsString+' '+datasource1.DataSet.Fields.Fields[4].AsString+' '+floattostr(vr));
inc(x);
datasource1.DataSet.Next; |
[ savkic @ 08.12.2006. 08:05 ] @
> Kako natjerati delphi da printa na POS papir da su brojevi sortirani
> bla bla
> Naziv cijena kol iznos
> kafa 1 2 2
> coko 1.5 3 4.5
Nisam te najbolje shvatio, ako želiš da odštampaš uređenu listu, sortiranje moraš uraditi pre štampanja. Pogledaj QuickSort. Ako se žališ na uravnanje, moraš se obezbediti da svi redovi imaju isti broj karaktera i da sva polja uvek počinju sa istog mesta, ovo ti je verovatno najlakše da radiš pomoću Format funkcije.
[ mojeKorIme @ 08.12.2006. 08:18 ] @
nisam se dobro izrazio.. nisam mislio na sortiranje po nekom redosljedu nego bas
na formatiranje po sirini...
kako da koristim tu format funkciju..nisam nikad.. hvala puno
[ morlic @ 08.12.2006. 09:15 ] @
Koristan link:
http://www.delphibasics.co.uk/RTL.asp?Name=Format
Inace ovako
Code:
ShowMessage(Format('Hleb %20d', [30]));
Ne zaboravi da koristis font fiskne sirine kako bi sve to imalo smisla
[ mojeKorIme @ 08.12.2006. 09:43 ] @
mozes li mi navesti osnovni font koji se koristi a da je fixne sirine..
hvala-
p.s. nikako da skontam kako da napravim ako je x:=3:integer
da napise 00003.. :(
[Ovu poruku je menjao mojeKorIme dana 08.12.2006. u 11:26 GMT+1]
[ savkic @ 08.12.2006. 11:12 ] @
> mozes li mi navesti osnovni font koji se koristi a da je fixne sirine..
Courier New, Lucida Console. Inače ako već ispisuješ na pos štampač i ako ti treba što veća brzina možeš raditi direktno slanje sadržaja na štampač (bez Printer.Canvas) ili možeš pokušati da podesiš generic text only drajver za taj štampač.
> p.s. nikako da skontam kako da napravim ako je x:=3:integer
> da napise 00003.. :(
Format('%.10d', [3]);
[ mojeKorIme @ 08.12.2006. 11:25 ] @
Code:
Format('%.10d', [inttostr(edit1.text)]);
ne ide:(
[ savkic @ 08.12.2006. 14:31 ] @
> Format('%.10d', [inttostr(edit1.text)]);
> ne ide:(
Ne čudi me ;)
Format('%.10d', [3]) mora da radi, takođe i Format('%.10d', [StrToInt(Edit1.Text)]);
BTW. kada kažeš da nešto ne radi ili ne funkcioniše objasni zašto, šta dobijaš a šta očekuješ, naročito greške spomeni.
[ codeb.s @ 17.12.2006. 17:57 ] @
Neznam kakav sistem koristis za ispis POS-a (da li je ispis stringlista ili TXT fajla) ja sam se patio ali sam to na kraju odradio ovako:
Napravio sam POS racun u QuickReportu, onda sam Quickreport snimao u txt file , koji sam potom slao na LPT. Tako sam dobio i perfektno poravnane vrijednosti i izgled, ali to zavisi kako se prijesio upis i da li se uopste koristi Quickreport.
Nadam se da ce i tebi ovo odraditi posao.
[ ribar2006 @ 18.12.2006. 11:42 ] @
Pozdrav ne znam da li si uspio da rjesis problem do sada ali u svakom slucaju saljem ti dio svog koda kako sam ja to rijesio
Pozdrav
------
Writeln(PrintFile, '--------------------------------------');
Writeln(PrintFile, 'Artikal Kol Cijena Iznos');
Writeln(PrintFile, '--------------------------------------');
end;
begin
KasaForm.Query1.First;
while not KasaForm.Query1.Eof do
begin
I := 20 - KasaForm.DBEdit2.GetTextLen;
r := StringOfChar(#32, I);
K := 6 - KasaForm.dbedit4.GetTextLen;
s := StringOfChar(#32, K);
L := 4 - KasaForm.dbedit3.GetTextLen;
t := StringOfChar(#32, L);
M := 7 - KasaForm.dbedit5.GetTextLen;
u := StringOfChar(#32, M);
N := 2 - KasaForm.dbedit9.GetTextLen;
v := StringOfChar(#32, N);
O := 10 - KasaForm.label1.GetTextLen;
z := StringOfChar(#32, O);
PP := 8 - KasaForm.label2.GetTextLen;
w := StringOfChar(#32, PP);
Writeln(Printfile,KasaForm.DBEdit2.text,r,
t,KasaForm.Dbedit3.text,s,KasaForm.Dbedit4.Text,' ',
u,KasaForm.Dbedit5.text);
KasaForm.DBNavigator2.BtnClick(nbnext);
end;
Writeln(PrintFile, '--------------------------------------');
Ako ti nije jasno javi se
Pozdrav
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.