Einsprungpunkte > Modul Supervisor > Standardskript AIMP3 

IMPRIME

Der Eingabepunkt IMPRIME wurde ursprünglich für eine der ersten X3-Versionen erstellt. Er wurde unmittelbar vor Auswahl des Druckers aufgerufen und umging die Druckererfassung, wenn die Variable GPE auf einen von 0 verschiedenen Wert gesetzt war.
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.

Kontext und Funktionsmodus

Die folgenden Tabellen sind online :

Tabelle

Wichtiger Inhalt

Tabellentitel

AREPORT [ARP]

Ja

Reportdictionary

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:

  • Parameter, die mit einem doppelten Unterstrich beginnen. Dabei handelt es sich um X3-Druckerparameter, die nicht an den Bericht übergeben werden (bzw. nicht unverändert).
  • Parameter, die mit einem einfach Unterstrich beginnen. Dabei handelt es sich um Parameter für Crystal Reports, die jedoch nicht unverändert übergeben werden. Die Werte dieser Parameter weisen zwingend das Präfix chr$(1) auf.
  • Parameter, die mit X3 beginnen. Dabei handelt es sich um Kontextparameter, die dem Bericht übergeben werden und automatisch vom Supervisor initialisiert werden.
  • Parameter, die im Berichtsdictionary beschrieben sind. Wenn das Dictionary einen Parameter enthält, der auf "deb" oder "str" endet, wird automatisch ein weiterer Parameter hinzugefügt, der dieselbe Wurzel aufweist und auf "fin" oder "end" endet.

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

 

####################################################################

# 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

PARAM

Mit dem Eingabepunkt PARAM können beliebige Berichtsparameter geändert werden

Kontext und Funktionsmodus

Die folgenden Tabellen sind online :

Tabelle

Wichtiger Inhalt

Tabellentitel

AREPORT [ARP]

Ja

Reportdictionary

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.

REPORT

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.

Kontext und Funktionsmodus

Die folgenden Tabellen sind online :

Tabelle

Wichtiger Inhalt

Tabellentitel

AREPORT [ARP]

Ja

Reportdictionary

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.

FILPAT: Druckerverwaltung

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.

Kontext und Funktionsmodus

Die folgenden Tabellen sind online :

Tabelle

Wichtiger Inhalt

Tabellentitel

AREPORT [ARP]

Ja

Reportdictionary

Dieser Eingabepunkt wird unmittelbar vor dem Workflow-Versand (Drucktyp 3 - Nachricht) und der Archivierungsprozedur (Drucktyp 7 - Archivierung) aufgerufen.

RPTFIL: Auf mehreren Servern verteilte Dateien

Mit dem Eingabepunkt RPTFIL können auf mehreren Servern verteilte Dateien archiviert werden. Der Eingabepunkt ergänzt den Eingabepunkt ARCFIL.

Kontext und Funktionsmodus

Die folgenden Tabellen sind online :

Tabelle

Wichtiger Inhalt

Tabellentitel

AREPORT [ARP]

Ja

Reportdictionary

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