Alaska Xbase++

Alaska Xbase++
Programiranje u Xbase++
Prikazani su postovi s oznakom Štampanje dokumenata. Prikaži sve postove
Prikazani su postovi s oznakom Štampanje dokumenata. Prikaži sve postove

15. 03. 2015.

2.1 Alaska Xbase++ Tehnika štampanja tekst dokumenta


Uvod

U Clipper-u je štampanje dokumenata, koji su proizvođeni od strane poslovne aplikacije, vršeno na matrične printere (najčešće Epson kompatibilne) koji su bili povezani na računar preko paralelnog lpt1 ili prn porta. Ovo štampanje je vršeno direktno na printer putem komandi:

SET CONSOLE OFF
SET PRINT ON
? „Tekst“
SET PRINT OFF
SET CONSOLE ON

ili

SET DEVICE TO PRINTER
@ 01,01 SAY „Tekst“
SET DEVICE TO SCREEN   

Ali je najčešće korišćena tehnika da se dokument prvo štampa u tekst fajl komandama:

SET CONSOLE OFF
SET PRINTER TO dokument.txt
SET PRINT ON
 ? „Tekst“
SET PRINTER TO
SET PRINT OFF
SET CONSOLE ON

Pa se dobijeni tekst fajl dokument.txt zatim koristi i za ekranski pregled iz nekog od editora ili viewera teksta, i za štampu na matričnom printeru komandama:

fajlzastampu = "dokument.txt"+" LPT1"
RUN COPY &fajlzastampu

ili

fajlzastampu = "dokument.txt"+" LPT1/B"
RUN COPY &fajlzastampu

Iz ovog razloga, većina starih Clipper aplikacija ima skoro ceo mehanizam za štampanje dokumenata prilagođen ovoj vrsti štampe, koja se pokazala kao najprostija i najbrža za realizovanje (za kodiranje) a ujedno jasna i pregledna u DOS CRT modu ekranskog pregleda. Takođe, i svi komandni CHR kodovi ugrađeni u finalni tekst fajl dokument.txt kao što su kodovi: EJECT odnosno CHR(12), zatim CHR(13), CHR(10), CHR(14),CHR(15), CHR(18) i ostali, bili su aktivirani i u štampanom dokumentu koji je kasnije štampan komandom: 

fajlzastampu = "dokument.txt"+" LPT1/B"
RUN COPY &fajlzastampu

Sve opisano može se bez ikakvih problema i bez ikakvih izmena u izvornom kodu izvesti i iz Alaska Xbase++. Dobiće se identičan tekst fajl dokument.txt i isti fajl može se pregledati na ekranu monitora iz bilo kog editora, najčešće iz Windows standardnog editora NOTEPAD.EXE komandom: RunShell(„dokument.txt“,“notepad.exe“). Ovaj fajl može se štampati na svakom Windows printeru iz notepad.exe sa File -> Print. Ovaj fajl može se takođe pod Windowsom štampati iz aplikacije ili iz BAT fajla i na matričnom printeru povezanom na LPT1 port komandom:
fajlzastampu = "dokument.txt"+" LPT1/B";  RUN COPY &fajlzastampu
ali ova komanda će često praviti problem, jer najnovije verzije Windows-a ne dozvoljavaju direktan pristup printeru kao što je to dozvoljavao DOS.

Alaska Xbase++ pored ovog štampanja na matričnom printeru vezanom na lpt1 port i pored štampanja iz notepad.exe na Windows printer (laserski, stylus, i matrični printeri koji štampaju preko Windows drajvera i koji su najčešće vezani na USB port) može da iz aplikacije, iz svojih procedura,  štampa direktno na izabrani Windows printer red po red teksta ili ceo tekst fajl dokument.txt. Ovo štampanje iz Alaska Xbase++ realizuje se preko Xbase Part odnosno preko klase XbpPrinter() i objekata izvedenih iz ove klase.

Pisanje koda za štampanje jednog komplikovanijeg tekst dokumenta koji ima i zaglavlje (heder) i tabelu i podnožje (footer), numeraciju strana, međuzbirove i zbirove po stranama, fiksiran broj redova na strani, i ostalo, takođe je komplikovan posao, jer se većim delom mora koristiti objektno programiranje u Xbase++. Upotreba eXpress++ biblioteka u mnogome uprošćava stvar eliminisanjem objektnog programiranja i svođenjem celog posla kodiranja na stare Clipper komande ? i @.

Ovaj deo knjige o Xbase++ ima zadatak da prikaže, razrađenu, testiranu i korišćenu u CSYSTEMS™ aplikacijama, jednu od mogućih tehnika štampanja tekst dokumenta iz Xbase++ aplikacije na Windows printere putem Xbase++ komandi za štampanje, i na kraju preko upotrebe eksternog programa report generatora: FastReport for Xbase++.


Uz ovaj deo knjige proložena je kompletna Xbase++/eXpress++ aplikacija sa izvornim kodom, koja demonstrira opisane tehnike štampanja (CSYSTEMS_STAMPANJE.EXE)


PREUZMI IZVORNI KOD ZA OVAJ PROGRAM