Dieses Dokument behandelt die folgenden Themen:
Den Inhalt der globalen Variablen in GL-STD (Global Data Area von Con-nect) ausgeben.
Z-GLOBAL muss sich in derselben Bibliothek befinden wie die Con-nect-Module.
Z-GLOBAL ist eine Natural-Subroutine. Daher müssen Sie sie mit dem PERFORM-Statement aufrufen.
Im Parameter Variablenliste müssen Sie die Nummer jeder Variablen angeben, von der Sie den Inhalt ausgeben möchten.
Nummer | Variablenname | Beschreibung |
---|---|---|
01 | G-CURRENT-CABINET | Name des Büros, in dem der Benutzer gerade arbeitet. |
02 | G-USER-ID | Name des Privatbüro, das unter Angabe des Passworts benutzt wird. |
03 | G-USER-NAME | Nachname und Vorname des Benutzers. |
04 | G-CURR-ISN | Adabas-ISN des gerade bearbeiteten Con-nect-Objekts. |
05 | G-LAST-ISN | Adabas-ISN des zuletzt bearbeiteten Con-nect-Objekts. |
06 | G-COMMAND | Con-nect-Befehl, der vom Benutzer in der Befehlszeile eingegeben wurde. |
07 | G-LAST-COMMAND | Letzter Con-nect-Befehl (dies entspricht dem Con-nect-Befehl *= der standardmäßig der Taste PF11 zugeordnet ist). |
08 | G-COMMAND-SEQ | Leerzeichen für die Befehlsfolge "Befehl Objekt Name". Ein X für die alternative Befehlsfolge "Objekt Name Befehl".* |
09 | G-CURRENT-MAP | Name der aktuellen Map. |
10 | G-LANGUAGE | Sprachcode.* |
11 | G-DEFAULT-FOLDER | Name des Standardfachs.* |
12 | G-DEFAULT-FILE | Name des Standardordners im Standardfach.* |
13 | G-PRINT-TID | Terminal-ID des Druckers oder "PC".* |
14 | G-PRINT-DEST | Name des logischen Druckers.* |
15 | G-PRINT-PROFILE-NAME | Name des Druckerprofils.* |
16 | G-FMT-PROFILE-NAME | Name des Formatierprofils.* |
17 | G-PRINT-PS | Seitenlänge.* |
18 | G-PRINT-LS | Zeilenbreite.* |
19 | G-S-SUBJECT-LINE | Betreff der Post. |
20 | G-S-SEND-ISN | Adabas-ISN der Originalpost. |
21 | G-S-OUTISN | Adabas-ISN der Post im Fach Tageskopien. |
Anmerkung:
Ein Stern (*) in der oben aufgeführten Liste kennzeichnet einen
Wert, der im Profil des Büros definiert ist oder der mit dem Befehl AUSGABE für
die laufende Session definiert wurde.
Nach dem Aufruf von Z-GLOBAL enthält der Parameter Ausgabebereich den Inhalt der von Ihnen angegebenen Variablen.
Wenn der Inhalt aller Variablen 250 Bytes übersteigt (dies wird durch Return-Code 99 kenntlich gemacht), müssen Sie die Nummer jeder Variablen, für die keine Ausgabe erfolgte, erneut im Parameter Ausgabebereich eingeben und Z-GLOBAL erneut aufrufen, um den Inhalt der restlichen Variablen auszugeben.
Jede Variable im Parameter Ausgabebereich hat ein 6 Byte langes Präfix:
Byte-Nummer | Beschreibung |
---|---|
1 und 2 | Variablennummer (siehe Liste oben). |
3 | Format der Variablen: A oder N. |
4 bis 6 | Länge der Variablen. |
Wenn Sie zum Beispiel im Parameter Variablenliste 01 angeben und der aktuelle Inhalt von G-CURRENT-CABINET (Format A8) LS ist, wird im Parameter Ausgabebereich Folgendes ausgegeben:
01A008LS
In diesem Beispiel werden 6 Leerzeichen nach LS ausgegeben, weil LS nur 2 Byte lang ist.
Parameter | Format | Ein | Aus | Bemerkung |
---|---|---|---|---|
Return-Code | N2 | X | ||
Variablenliste | N2/1:10 | E | Die Nummer jeder Variablen, von der der Inhalt ausgegeben werden soll. Siehe die Liste oben. | |
Ausgabebereich | A250 | X | Der Inhalt jeder Variablen mit einem 6 Byte langen Präfix. |
00 | Erfolg |
99 | Ausgabebereich ist nicht groß genug |
Keine
0010 DEFINE DATA LOCAL 0020 01 RETURN-CODE (N2) 0030 01 VARIABLENLISTE (N2/10) INIT <01,19,21> 0040 01 AUSGABEBEREICH (A250) 0050 01 REDEFINE AUSGABEBEREICH 0060 02 AUSGABEBEREICH-ARRAY (A1/250) 0070 01 AUSGABEINDEX (P3) INIT <1> /* zeigt auf Position im AUSGABEBEREICH- 0080 * ARRAY 0090 01 I (P3) /* Schleifenzaehler 0100 01 J (P3) /* Schleifenzaehler 0110 01 K (P3) /* Schleifenzaehler 0120 * 0130 01 PRAEFIX (A1/6) 0140 01 REDEFINE PRAEFIX 0150 02 VAR-NUM (N2) 0160 02 VAR-FMT (A1) 0170 02 VAR-LAENGE (N3) 0180 * 0190 01 VAR-INHALT (A1/60) 0200 01 REDEFINE VAR-INHALT 0210 02 ALPHA (A60) 0220 01 REDEFINE VAR-INHALT 0230 02 NUMERISCH (N12) 0240 END-DEFINE 0250 * 0260 PERFORM Z-GLOBAL RETURN-CODE VARIABLENLISTE(*) AUSGABEBEREICH 0270 * 0280 FOR I 1 TO 3 0290 * 0300 IF RETURN-CODE EQ 99 /* Ausgabebereich nicht gross genug 0310 AND 0320 AUSGABEBEREICH-ARRAY(AUSGABEINDEX) EQ ' ' /* Leerzeichen statt Nummer 0330 OR 0340 AUSGABEINDEX > 250 /* letzte Variable endet im 250. Byte 0350 WRITE 'Erneut aufrufen, um Inhalt der restlichen Variablen auszugeben' 0360 ESCAPE BOTTOM 0370 END-IF 0380 * 0390 FOR J 1 TO 6 /* Nummer der Variablen und Format 0400 MOVE AUSGABEBEREICH-ARRAY(AUSGABEINDEX) TO PRAEFIX (J) 0410 ADD 1 TO AUSGABEINDEX 0420 END-FOR 0430 * 0440 IF VAR-FMT EQ 'A' 0450 PERFORM MOVE-ALPHA 0460 ELSE /* wenn 'N' 0470 PERFORM MOVE-NUMERISCH 0480 END-IF 0490 * 0500 IF VAR-NUM = 1 0510 WRITE ' Buero : ' ALPHA 0520 END-IF 0530 IF VAR-NUM = 19 0540 WRITE ' Betreff : ' ALPHA 0550 END-IF 0560 IF VAR-NUM = 21 0570 WRITE ' Tageskopien-ISN: ' NUMERISCH 0580 END-IF 0590 * 0600 END-FOR 0610 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 0620 DEFINE SUBROUTINE MOVE-ALPHA /* linksbuendig 0630 RESET ALPHA 0640 FOR K 1 TO VAR-LAENGE 0650 MOVE AUSGABEBEREICH-ARRAY(AUSGABEINDEX) TO VAR-INHALT(K) 0660 ADD 1 TO AUSGABEINDEX 0670 END-FOR 0680 END-SUBROUTINE 0690 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 0700 DEFINE SUBROUTINE MOVE-NUMERISCH /* alle numerischen Variablen in N12 0710 RESET NUMERISCH 0720 COMPUTE J = 12 - VAR-LAENGE 0730 FOR K 1 TO VAR-LAENGE 0740 MOVE AUSGABEBEREICH-ARRAY(AUSGABEINDEX) TO VAR-INHALT(J+K) 0750 ADD 1 TO AUSGABEINDEX 0760 END-FOR 0770 END-SUBROUTINE 0780 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 0790 END