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)   -   Privacy Statement   -    Contact Me

On this website, Google Analytics is used to track visitor statistics. These are anonymised data about the number of visitors, which pages they visit on this site, from which regions they visit, which web browsers they use, etc.. You will also see non-personalised ads via Google AdSense. Cookies from Paddle or Paypal are placed when you click on a 'Buy now!' or 'Donate!' button, and possible cookies from Disqus when you use that system to comment on one or more blogposts.
Privacy Statement