Potrebna pomoc oko stampanja

Potrebna pomoc oko stampanja

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Pozdrav
Uradio sam jedan program za oca, neke proracune, ne razumem se ni ja u to ali sam dobio formule Smile , elem , potrebno mi je da ubacim stampanje dobijenih rezultata. Stampanje u delphi-ju nisam nikad radio, i nasao sam u nekoj knjizi neko uputstvo i resio na sledeci nacin:
Citat:
procedure TForm1.Stampaj1Click(Sender: TObject);
var Prn:textfile;
i:integer;
begin
if printdialog1.Execute then begin
assignPrn(Prn);
rewrite(prn);
printer.Canvas.Font:=memo2.font;
writeln(Prn,form1.label11.caption);
writeln(Prn,form1.label12.caption);
writeln(Prn,form1.label13.caption);
writeln(Prn,form1.label14.caption);
writeln(Prn,form1.label15.caption);
writeln(Prn,form1.label16.caption);
writeln(Prn,form1.label17.caption);
writeln(Prn,form1.label18.caption);
writeln(Prn,form1.label19.caption);
writeln(Prn,form1.label20.caption);
writeln(Prn,form1.label21.caption);
writeln(Prn,form1.label22.caption);
writeln(Prn,form1.label23.caption);
writeln(Prn,form1.label24.caption);
writeln(Prn,form1.label25.caption);
writeln(Prn,form1.label26.caption);
writeln(Prn,form1.label27.caption);
writeln(Prn,form1.label28.caption);
closefile(Prn);


end;
end;

Posto nikad nisam koristio stampanje, kao sto sam vec rekao, cisto da pojasnim nesto. Ono sto je memo2, to sam ubacio samo zbog fonta i velicine, da odatle uzima, znaci taj memo2 nema nikakvu ulogu. Ono "i" u promenljivim mi je ostalo jer sam hteo da ubacim ciklus koji se krece od 11 do 28 pa da mi stampa label[i].caption ali to ne prihvata. O cemu se radi? Ovako napisan kod stampa sve jedno ispod drugih, a ja bih voleo da mi stampa kako je i u programu, mnogo lepse izgleda.
Program mozete skinuti odavde: https://www.mycity.rs/must-login.png
i kad ga pokrenete,ukucajte neke brojcane vrednosti, kliknite racunaj i dobicete rezultate. Da li moze da se pozove nekako stampanje tog dela gde su rezultati. Ne znam kako, lupam, mozda preko koordinata, ili nekako drugacije? Jer ako bih isao rucno da pisem, writeln, pa onda write, pa write, pa opet writeln, tesko da bih uskladio da bude lepo poredjano.
Ako je neko od Vas koristio AutoCad ima tamo opcija kad se stampa da se obelezi deo crteza koij se stampa. Da li moze i ovde tako nesto da se uradi, da se obelezi deo forme koi se stampa?
Nadam se da sam bio jasan.

Unapred hvala.

Dopuna: 07 Jul 2007 13:35

Trivijalno resenje bi bilo, klikom na stampaj kuca se

form1.print;

ali ovo stampa celu formu. Pokusao sam da ubacim i novu formu i iskopirao label-e, ali ne prihvata tamo rezultate, stama samo prazno, jer sam ubacivao onda kod
form2.print

Dopuna: 07 Jul 2007 14:27

Evo ovako...
Ja sam ovaj problem resio tako sto sam ubacio jos jednu formu, iskopirao labele, i posle na prvoj formi ubacio jos
form2.label11.caption:=....
form2.label12.caption:=
i posle klikom na stampanje ubacio da se stampa cela form2 gde su samo rezultati.
Mozda je bilo i jednostavnije resenje, ali ja ga ne znam.
U svakom sl. moze lock ili ako hocete ostavite da neko napise neki drugi nacin.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • savkic 
  • Novi MyCity građanin
  • Pridružio: 05 Jun 2007
  • Poruke: 29

> velicine, da odatle uzima, znaci taj memo2 nema nikakvu ulogu.
> Ono "i" u promenljivim mi je ostalo jer sam hteo da
> ubacim ciklus koji se krece od 11 do 28 pa da mi
> stampa label[i].caption ali to ne prihvata. O cemu se radi?

Da bi ti to radilo moraš da imaš niz poz nazivom Label u kome će biti sve label kontrole koje imaš, a ti verovatno nemaš tako nešto. Dakle ili
var
Label: array of TLabel; // i negde ga popuniš

ili
TLabel(FindComponent('Label' + IntToStr(i)).Caption;

> Ovako napisan kod stampa sve jedno ispod drugih, a ja bih voleo
> da mi stampa kako je i u programu, mnogo lepse izgleda.

To si i tražaio, WriteLn prikazuje sadržaj i prelazi na naredni red. Nisam najbolje shvatio šta želiš da dobiješ, možeš pogledati neke od report enginea poput QuickReporta gde možeš samostalno rasporediti položaj elemenata na izveštaju.
Ili možeš i tako kako si počeo, ako je potrebno da više elemenata bude u istom redu, onda ih moraš sve skupiti u jedan string i tek onda slati na štampu. Za pripremu jednog takvo stringa možeš koristiti Format funkciju.



offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

Ja ti definitivno savetujem da batalis ovakav nacin stampanja i da naucis da koristis neki reporting engine ( QuickReport ako koristis <= D7 ili Rave ako koristis > D7 ) koji dolaze uz Delphi.

U sustini ce ti jedan od ova 2 reporting enginea raditi sasvim OK i zadovoljavati 99% potreba, ali je po meni neprevazidjen ReportBuilder koji je beli0135 pominjao x puta i koji sam isprobao na njegov predlog i sada jednostavno ne mogu da se odvojim od RB-a Very Happy.

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

pretrazivao sam to u vezi stampanja i nasao neke price o report-u, ali nisam probao da ga koristim.
U svakom slucaju hvala, videcu da probram da se snadjem sa njim.
Koristim Delphi 6

Ko je trenutno na forumu
 

Ukupno su 810 korisnika na forumu :: 4 registrovanih, 2 sakrivenih i 804 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Dežurni pod palubom, DPera, lcc, TBF1D