Software development, photography, jokes, ....

Sites by me

 
tas-logoTransportation Administration System
snoezelkussen-logo-kleinstSnoezelkussens voor verstandelijk gehandicapten
ikzoekeenbegeleider-logoBegeleiders voor gehandicapten
Laat uw hond het jaarlijkse vuurwerk overwinnen
logo 50x50Hey Vos! Je eigen naam@vos.net emailadres?
Kunst in huis? Nicole Karrèr maakt echt bijzonder mooie dingen
nettylogo2Kunst in huis? Netty Franssen maakt ook bijzonder mooie dingen
Salarisadministratie en belastingadvies bij De Zaak Loont
Zutphense Bomenstichting

Hosting Favorites

 
ANU Internet Services
XelMedia .internet Services
register.com

Blogroll

 
Bomenstichting
LassoSoft
MacFreak
Quality that computes
The Economy of Motion
Wheel 2.0
IntrAktv



Website Hosting bij Xel Media

Marc's Place

E$PCLOSE - Sluit en queue een afdrukbestand




Aanroep
 
xcall e$pclose ([bestand][, [wachtrij][, [copieën][, [wissen][, [form]]]]])
 
Common velden vóór aanroep
e$print
Een record met gegevens met betrekking tot het automatisch printen van kop- en voetregels, regel-blokken, etc. Zie E$LIB:E$PRINT.H voor de individuele velden en hun doel.
Indien het afdrukbestand geopend is door e$popen dan bevat e$print.e$p_chan het kanaalnummer. Sluit dit kanaal NIET. Dat gebeurt in deze routine, want het kan zijn dat er nog additionele gegevens aan het afdrukbestand toegevoegd worden.
Ook wordt het afdrukken naar het scherm bepaald door e$popen. De afsluiting ervan vindt tevens in deze routine plaats.
chpdf
Een kanaalnummer dat gebruikt wordt om gegevens te lezen uit de Printer Definition File (PDF). Deze variabele bevindt zich in e$lib:earth.h.
Parameters te vullen bij aanroep
bestand (a*)
Het naar een wachtrij te sturen bestand. Het kanaal waarop het bestand geopend was moet nu gesloten zijn, anders treedt er een 'File in use'-fout op.
Indien het afdrukbestand door middel van e$popen is geopend, hoef je naam niet mee te geven, deze is reeds bekend in e$print.e$p_file, en mag het kanaal niet gesloten zijn omdat er nog additionele gegevens aan het afdrukbestand toegevoegd kunnen worden.
wachtrij (a*)
Geeft aan waar het afdrukbestand heen moet worden gestuurd:
De naam van een wachtrij
Een naam kan zijn "LTA10:" onder VMS of "EPSON Stylus COLOR 600" onder MS-Windows. Je kan die "EPSON Stylus COLOR 600" onder MS-Windows ook gewoon "LTA10:" noemen. Dan kan je programma gelijk blijven:
De tekst "EDIT!"
In dit geval wordt de routine geïnstrueerd een externe editor te starten waarmee het afdrukbestand bewerkt kan worden. Welke editor dat is wordt bepaald door de logical E$PCLOSE. Deze dient een volledige bestandsspecificatie te bevatten van de te starten editor. Onder VMS bijvoorbeeld de tekst "EDIT/TPU" en onder MS-Windows bijvoorbeeld de tekst "C:\WINDOWS\WRITE.EXE". De betreffende editor wordt gestart door middel van een XCALL SPAWN.
Een nummer van een DBL$LP logical
DBL$LP Logicals hoorden bij Vax/DIBOL. Bij de LPNUM parameter (LPQUE statement) gaf je dan een nummer mee (LPNUM:2) en, hop, het werd ergens afgedrukt. Dit nummer gaf de betreffende logical aan: DBL$LP + <nummer>, in dit voorbeeld dus DBL$LP2. Deze logical bevatte een verwijzing naar een wachtrij of printer. Dat is heel handig, want zo hoef je je programma niet aan te passen indien het afdrukbestand opeens naar een andere queue gestuurd moet worden. Een beperking was dat je maar 10 printers en/of queues kon definiëren, 0 t/m 9. Een andere beperking is dat Synergex deze systematiek niet heeft overgenomen. Maar wij wèl. En ongelimiteerd. Dus DBL$LP98 is nu ook mogelijk. Onder VMS definieer je ze gewoon met ASSIGN of DEFINE, onder Unix met SET en onder MS-Windows plaats je ze in de actieve SYNERGY.INI:

DBL$LP0=EPSON Stylus COLOR 600
DBL$LP1=LTA10:
Indien het afdrukbestand door middel van e$popen is geopend, hoef je de wachtrij niet mee te geven. In dat geval wordt de queue of printer opgehaald uit een DBL$LP logical aangegeven door e$pdf.e$pdf_num.
copieën (d*)
Het aantal keer dat een document afgedrukt moet worden.
Indien het afdrukbestand door middel van e$popen is geopend, hoef je dit aantal niet mee te geven. In dat geval wordt het aantal copieën bepaald door e$pdf.e$pdf_cop.
De standaard waarde is 1.
wissen (d1)
Geeft aan of het afdrukbestand verwijderd moet worden van schijf als het is afgedrukt of bekeken.
Indien niet meegegeven, wordt de waarde uit e$pdf.e$pdf_del genomen. Deze is altijd nul indien het afdrukbestand NIET via e$popen is geopend.
form (a20) (VMS / TSX)
Naam van de FORM volgens welke de lijst moet worden afgedrukt.
Parameters gevuld bij terugkeer
*N/A
Common velden gevuld bij terugkeer
e$_err
De opgetreden fout. NUL betekent alles OK.
e$_lin
Het regelnummer waar de fout optrad.
chpdf
Het kanaal, gesloten.
Voorbeelden
 

Een voorbeeld waarbij een LPQUE statement 1:1 wordt vervangen door e$pclose tbv een port van Vax/DIBOL naar Synergy/DBL:

oud:
lpque (pfile, lpnum:0, copies:1, delete)
nieuw:
xcall e$pclose (pfile, '0', 1, 1)

Nu een voorbeeld waarbij een afdrukbestand wordt geopend via de Printer Definition File (PDF), er naar toe wordt geschreven en waarbij het wordt afgesloten en gequeued via de PDF:

xcall e$popen
...
e$p_buff = 'Af te drukken gegevens'
...
xcall e$print
xcall e$pclose
© 1997- Marc Vos (and others) Contact Me