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)

