In den Nachfolgeversionen wurde der Eingabepunkt behalten. Heute dient er der Änderung der Druckparameter, die dem Unterprogramm IMPRIME als Argumente TBPAR und TBVAL übergeben werden. Diese Argumente entsprechen den in der Maske des Druckauftrags erfassten Parametern.
Die folgenden Tabellen sind online :
Tabelle | Wichtiger Inhalt | Tabellentitel |
---|---|---|
AREPORT [ARP] | Ja |
Die Parameter werden in der Variable PARAMETRE in den Indizes 1 bis NBPAR gespeichert. Jeder Wert ist eine Zeichenkette im Format "Parameter = Wert" ohne weitere Trennzeichen. Die Berichtsparameter teilen sich auf vier Klassen auf:
Der Name des Druckservers ist kein Parameter, sondern ist in der lokalen Variable SERVEUR (char(30)) definiert.
Parameterliste
__REPORT Name des Crystal-Reports-Berichts
__DESTINATION 1 = Vorschau, 2 = Drucker, 3 = Nachricht, 4 = Datei
__TYPDBA Datenbanktyp (Lokales Menü 23)
__DBSERVER ODBC-Name
__DBDATABASE Datenbankname
__DBUSER DB-Benutzer
__DBPASSWORD Passwort
__WSTATION (*140) Portnummer für den Druckserver
__CDUSER (*140) Benutzercode
__APPLICATION Ordner; Maschine; Service (Ort, an dem die Ausgabe gestartet wird)
__APPRPT Ordner; Maschine, Server (Ort, wo sich der Bericht befindet)
__REQUETE Abfragenummer
_PreVisuOptions Vorschauoptionen (diese Funktionalität steht nicht zur Verfügung)
_PrinterName Druckername
_Orientation 0 = Hochformat, 1 = Querformat
_PrinterDriver (*) Name des Druckertreibers
_PrinterPort (*) Druckerport
_PrinterDescription (*) Druckereigenschaften
_FormatExport Format der Exportdatei (Lokales Menü 91)
_FormatDelString Zeichenkettentrennzeichen bei CSV-Format
_FormatDelRecord Feldtrennzeichen bei CSV-Format
_ExportFile Name der exportierten Datei
X3DOS Ordner; Maschine; Service; Version; Sprache (*140 Version + Sprache)
X3CLI Unternehmensname Kunde
X3EDT Copyright Herausgeber
X3ETA Berichtscode
X3TIT Berichtsname
X3USR (*130) Benutzercode
X3LAN (*140) Sprachverzeichnis des Berichts
X3FCY (*Warehousing) Standort
X3DEP (*Warehousing) Hinterleger
X3OPE Benutzername
X3SIT1 (*120) Berechtigte Standorte
X3SIT2 (*120) Unberechtigte Standorte
X3PRF (*130) Profil
X3FCT (*130) Berichtsfunktion
X3SIT (*130) Liste der unberechtigten Standorte
(*) Diese Parameter richten sich nach dem Drucker und können nicht beschrieben werden. In der Regel werden sie mit der Anweisung selimp übernommen (dies ist an einem der Drucker zu testen, wobei die Werte dieser Parameter zu notieren sind).
(*120) Verfügbar in V110 und V120, jedoch nicht mehr ab V130
(*130) Verfügbar ab Version V130
Geöffnete Tabellen
Lediglich die Tabelle AREPORT spielt eine Rolle. Sie enthält den Bericht, der gerade gedruckt wird.
####################################################################
# Verwendungsbeispiel für die Eingabepunkte der Verarbeitung AIMP3
####################################################################
$ACTION
Case ACTION
When "IMPRIME" : Gosub IMPRIME
When "PARAM" : Gosub PARAM
Endcase
Return
$IMPRIME
If find([F:ARP]RPTCOD,"ETAT1","ETAT2","ETAT3") : # Liste der zu verarbeitenden Berichte
GPE = 1 : # Überspringt die Erfassung des Druckers
Endif
Return
$PARAM
####################################################################
# Die Parameter sind in der Variable PARAMETRE(1, ..., NBPAR) enthalten
## Aber mit den Unterprogrammen GETPARAM und SETPARAM der Berichtsverarbeitung
## ist der Zugriff einfacher
####################################################################
Local Char XPARAM(250)(1..10) , XPAR(50) , XVAL(50) , XETAT(20)
Local Integer XNB , XK , XI
####################################################################
## Wurde die Ausgabe beim Drucker angefordert?
####################################################################
Call GETPARAM("__DESTINATION",NBPAR,PARAMETRE,XVAL) From ETAT
If XVAL<>"1"
Return : # Nein, also wird nichts getan
Endif
####################################################################
## Festlegung des Druckers in Abhängigkeit vom Bericht
####################################################################
Call GETPARAM("X3ETA",NBPAR,PARAMETRE,XETAT) From ETAT
Case XETAT
When "ETAT1" : XIMP = "mein_Drucker"
When "ETAT2" : XIMP = "spezieller_Laser"
When "ETAT3" : XIMP = "Nadeldrucker"
When Default : Return
Endcase
####################################################################
## Zuweisung des Druckservers
####################################################################
SERVEUR = "Maschine_die_druckt"
####################################################################
# Wiederherstellung der Standardparameter des Druckers
####################################################################
XNB = 0
XNB += 1 : XPARAM(XNB) = "_PrinterName=" + chr$(1) + XIMP : # Name des zuzuweisenden Druckers
XNB += 1 : XPARAM(XNB) = "_Orientation=" + chr$(1) + "1" : # Querformat
XNB += 1 : XPARAM(XNB) = "_NoVisible=" + chr$(1) + "1" : # Keine Erfassung
Selimp XPARAM = "" With XPARAM(1..XNB) : # Lesen der Standardparameter
XNB = stat1
For XI=1 To XNB
XK = instr(1,XPARAM(XI),"=")
If XK
XPAR = left$(XPARAM(XI),XK-1)
XVAL = right$(XPARAM(XI),XK+1)
# Wenn nicht mit den Standardparametern gearbeitet werden soll,
# können diese hier anders belegt werden
# If XPAR="_PrinterPort" : XVAL = "mon_port" : Endif
Case XPAR
When "_PrinterName" , "_PrinterDriver" , "_PrinterPort"
& , "_PrinterDescription" , "_Orientation"
Call SETPARAM(XPAR,NBPAR,PARAMETRE,XVAL) From ETAT
Endcase
Endif
Next XI
Return
Mit dem Eingabepunkt PARAM können beliebige Berichtsparameter geändert werden
Die folgenden Tabellen sind online :
Tabelle | Wichtiger Inhalt | Tabellentitel |
---|---|---|
AREPORT [ARP] | Ja |
Dieser Eingabepunkt befindet sich unmittelbar nach der Belegung der Variablen NBPAR und PARAMETRES und unmittelbar vor der Aktion EXEC.
Siehe Beschreibung der Variablen NBPAR und PARAMETRES im Eingabepunkt IMPRIME.
Mit dem Eingabepunkt REPORT kann nach der Berichtsausgabe eine Verarbeitung angestoßen werden. Dieser Eingabepunkt wird sofort im Anschluss an den Versand des Druckbefehls an den Client (oder Server) ausgeführt. Im Falle der Ausgabe in eine Datei kann mit diesem Eingabepunkt zur generierten Datei eine Verarbeitung angestoßen werden.
Die folgenden Tabellen sind online :
Tabelle | Wichtiger Inhalt | Tabellentitel |
---|---|---|
AREPORT [ARP] | Ja |
Dieser Eingabepunkt wird unmittelbar nach dem Druck ausgeführt, und zwar nach dem Befehl "Report".
Die Variable [F:ARP]CRYCOD(R) enthält den Namen des verwendeten Berichts, wobei R für den Laufindex der Schleife "For R = 0 to dim([F:ARP]CRYCOD)-1" steht.
Mit dem Eingabepunkt FILPAT kann die Variable GFILPATH übergeben werden, bevor sie unmittelbar nach dem Workflow-Aufruf zum Berichtsversand per Mail oder zur Berichtsverarbeitung durch die Archivierungsfunktion initialisiert wird.
Die folgenden Tabellen sind online :
Tabelle | Wichtiger Inhalt | Tabellentitel |
---|---|---|
AREPORT [ARP] | Ja |
Dieser Eingabepunkt wird unmittelbar vor dem Workflow-Versand (Drucktyp 3 - Nachricht) und der Archivierungsprozedur (Drucktyp 7 - Archivierung) aufgerufen.
Mit dem Eingabepunkt RPTFIL können auf mehreren Servern verteilte Dateien archiviert werden. Der Eingabepunkt ergänzt den Eingabepunkt ARCFIL.
Die folgenden Tabellen sind online :
Tabelle | Wichtiger Inhalt | Tabellentitel |
---|---|---|
AREPORT [ARP] | Ja |
Der Eingabepunkt befindet sich in der Dateiübertragungsschleife auf dem X3-Server.
Die Variable CHAINE enthält den Namen der übernommenen Datei. EXT ist mit der Dateierweiterung belegt.
Wenn die Variable GPE auf den Wert 1 gesetzt wird, kann die Standardkopie der Druckdatei deaktiviert werden.
Codebeispiel:
$ACTION
Case ACTION
When "RPTFIL" : Gosub RPTFIL
When "FILPAT" : Gosub FILPAT
When Default
Endcase
Return
$RPTFIL
# Hole die Berichtsdatei vom Server
If adxmac(0) <> "" & adxmac(0) <> adxmac(-1)
rptfile STAT With CHAINE, adxmac(-1)+"@"+"C:\TEMP\"+CHAINE+"."+EXT Using SERVEUR
Local Shortint G_APE_EXEC : G_APE_EXEC = 1
GPE=1 : # Um STD nicht auszuführen
Endif
Return
$FILPAT
# Korrekten Dateipfad setzen
If dim(G_APE_EXEC)>0 & G_APE_EXEC=1
Local Char WARCV1DIR(250)
Call PARAML("","ARCV1DIR",WARCV1DIR) From ADOVAL
GFILPATH = adxmac(-1)+"@"+filpath(WARCV1DIR,JOBID,EXT,"",adxmac(-1),"")
Endif
Return