Version 4.2.6
 —  Leitfaden zur Programmierung  —

Parameter zur Beeinflussung der Ausgabe von Feldern

Dieses Dokument erörtert die Benutzung der Natural Profil- und/oder Session-Parameter, die Sie zum Steuern des Ausgabe-Formats von Feldern verwenden können.

Folgende Themen werden behandelt:

Eine Übersicht der Natural-Profilparameter, die während der Erstellung der Natural-Reports benutzte, verschiedene Standard-Attribute steuern, finden Sie im Abschnitt Output Reports and Workfiles in der Operations-Dokumentation.


Übersicht über Feldausgabe-relevante Parameter

Natural bietet eine Reihe von Profil- und/oder Session-Parametern, mit denen Sie die Art, in der Felder ausgegeben werden, beeinflussen können:

Parameter Funktion
LC, IC und TC Mit diesen Session-Parametern können Sie Zeichen angeben, die vor bzw. nach einem Feld bzw. vor einem Feldwert angezeigt werden sollen.
AL und NL Mit diesen Session-Parametern können Sie die Ausgabelänge von Feldern vergrößern oder verkleinern.
DL Mit diesem Session-Parameter können Sie die Standard-Ausgabelänge für ein alphanumerisches Maskenfeld des Formats U angeben.
SG Mit diesem Session-Parameter können Sie bestimmen, ob negative Werte mit oder ohne Minuszeichen angezeigt werden sollen.
IS Mit diesem Session-Parameter können Sie die Anzeige von Feldwerten, die mit dem jeweils vorigen Feldwert identisch sind, unterdrücken.
ZP Mit diesem Profil- und Session-Parameter können Sie bestimmen, ob Feldwerte, die 0 sind, angezeigt werden sollen oder nicht.
ES Mit diesem Session-Parameter können Sie die Anzeige von Leerzeilen, die von einem DISPLAY- oder WRITE-Statement erzeugt werden, unterdrücken.

Diese Parameter werden im Folgenden behandelt.

Seitenanfang

Vorangestellte Zeichen — der LC-Parameter

Mit dem Session-Parameter LC (Leading Characters) geben Sie an, welche Zeichen unmittelbar vor einem Feld ausgegeben werden, das von einem DISPLAY-Statement ausgegeben wird. Die Breite der Ausgabespalte wird entsprechend vergrößert. Sie können 1 bis 10 Zeichen angeben.

Standardmäßig sind die Werte in alphanumerischen Feldern linksbündig ausgerichtet und die Werte in numerischen Feldern rechtsbündig. (Mit dem Session-Parameter AD können Sie diese Ausrichtung ändern. Bei einem alphanumerischen Feld erscheint ein vorangestelltes Zeichen daher unmittelbar vor dem Feldwert; bei einem numerischen Feld kann es dagegen vorkommen, dass zwischen dem LC-Zeichen und dem Feldwert Leerstellen bleiben.

Der LC-Parameter kann mit den folgenden Statements verwendet werden:

Er kann dort sowohl auf Statement- als auch auf Elementebene gesetzt werden.

Seitenanfang

Einfügungszeichen — der IC-Parameter

Mit dem Session-Parameter IC (Insertion Characters) geben Sie an, welche Zeichen unmittelbar vor einem Feldwert eingefügt werden, der von einem DISPLAY-Statement ausgegeben wird. Sie können 1 bis 10 Zeichen angeben.

Bei einem numerischen Feld werden die Einfügungszeichen unmittelbar vor die erste signifikante Stelle, die ausgegeben wird, gestellt, und zwar ohne Leerstellen zwischen dem Einfügungszeichen und dem Feldwert. Bei alphanumerischen Feldern hat der IC-Parameter die gleiche Wirkung wie der LC-Parameter.

Die Parameter LC und IC dürfen nicht beide gleichzeitig für ein Feld angegeben werden.

Der IC-Parameter kann mit den folgenden Statements verwendet werden:

Der IC-Parameter kann dort sowohl auf Statement- als auch auf Elementebene gesetzt werden.

Seitenanfang

Nachgestellte Zeichen — der TC-Parameter

Mit dem Session-Parameter TC (Trailing Characters) geben Sie an, welche Zeichen unmittelbar hinter einem Feld ausgegeben werden, das von einem DISPLAY-Statement ausgegeben wird. Die Breite der Ausgabespalte wird entsprechend vergrößert. Sie können 1 bis 10 Zeichen angeben.

Der TC-Parameter kann mit den folgenden Statements verwendet werden:

Der TC-Parameter kann dort sowohl auf Statement- als auch auf Elementebene gesetzt werden.

Seitenanfang

Ausgabelänge — der AL- und der NL-Parameter

Mit dem Session-Parameter AL bestimmen Sie die Ausgabelänge eines alphanumerischen Feldes; mit dem NL-Parameter bestimmen Sie die Ausgabelänge eines numerischen Feldes. Diese Länge ist die Länge, in der das Feld ausgegeben wird, und kann kürzer oder länger sein als die tatsächliche Länge des Feldes (die für ein Datenbankfeld im DDM bzw. für eine Benutzervariable im DEFINE DATA-Statement definiert ist).

Beide Parameter können mit den folgenden Statements verwendet werden:

Sie können dort sowohl auf Statement- als auch auf Elementebene gesetzt werden.

Anmerkung:
Wenn eine Editiermaske angegeben ist, hat diese Vorrang vor einer AL- bzw. NL-Angabe. Editiermasken werden im Abschnitt Editiermasken - der EM-Parameter beschrieben.

Seitenanfang

Ausgabelänge — der DL Parameter

Anmerkung:
Um die Möglichkeiten, die der DL-Parameter bietet, voll nutzen zu können, müssen Sie das Web I/O Interface benutzen. Wenn Sie eine Terminal-Emulation verwenden, ist es nicht möglich, in der Anzeige in einem Feld zu "blättern", wenn der mit dem DL-Parameter angegebene Wert kleiner als die Länge des Feldinhaltes ist.

Mit dem Session-Parameter DL bestimmen Sie die Ausgabelänge eines Felds des Formats A oder U, weil die Ausgabelänge einer Unicode-Zeichenkette doppelt so lang sein kann wie die Zeichenkette und der Benutzer die Möglichkeit haben muss, die ganze Zeichenkette anzuzeigen. Der Standardwert ist zum Beispiel die Länge für ein Format/Länge U10, die Anzeigelänge kann 10 bis 20 sein, während die Standardlänge (ohne DL-Angabe) 10 ist.

Der DL-Parameter kann mit den folgenden Statements verwendet werden:

Der DL-Parameter kann sowohl auf Statement- als auch auf Elementebene gesetzt werden.

Der Unterschied zwischen den Session-Parametern AL und DL besteht darin, dass der AL-Parameter die Datenlänge eines Feldes bestimmt, während der DL-Parameter die Anzahl der Spalten bestimmt, die zur Anzeige des Feldes auf dem Schirm benutzt werden. Der Benutzer kann in Einabefeldern "blättern", um den ganzen Inhalt eines Feldes zu sehen, wenn der mit dem DL-Parameter angegebene Wert kleiner als die Länge der Felddaten ist.

Die Benutzung des DL-Parameters mit einer Länge, die kürzer als die Feldlänge ist, wird nur empfohlen, wenn Sie mit dem Web I/O Interface arbeiten. Wenn Sie Natural in einer Terminal-Emulation ausführen, ist das Blättern in einem Feld nicht möglich; Sie haben denselben Effekt wie mit dem AL-Parameter. Wenn Sie den Feldinhalt ändern, gehen außerdem alle Zeichen verloren, die sich hinter der Anzeigelänge befinden.

Anmerkung:
Der DL-Parameter ist auch bei Feldern des Formats A zulässig. In Verbindung mit dem Web I/O Interface kann die Edit-Control-Size kleiner als der Inhalt eines Feldes gemacht werden.

Beispiel:

DEFINE DATA LOCAL
1    #U1 (U10)
1    #U2 (U10)
END-DEFINE
*
#U1 := U'latintxt00'
#U2 := U'graphics/u2.gif'
*
INPUT (AD=M) #U1 #U2
END

Das obige Programm liefert die folgende Ausgabe, in der der Inhalt des Feldes #U2 unvollständig ist:

#U1 latintxt00 #U2 graphics/u2-incomplete.gif

Wird bei dem Feld #U2 der Session-Parameter DL verwendet, dann wird der Inhalt dieses Feldes korrekt angezeigt.

DEFINE DATA LOCAL
1    #U1 (U10)
1    #U2 (U10)
END-DEFINE
*
#U1 := U'latintxt00'
#U2 := U'graphics/u2.gif'
*
INPUT (AD=M) #U1 #U2 (DL=20)
END

Ergebnis:

#U1 latintxt00 #U2 graphics/u2.gif

Seitenanfang

Vorzeichen-Stelle — der SG-Parameter

Mit dem Session-Parameter SG (Sign Position) bestimmen Sie, ob numerische Felder eine zusätzliche Stelle zur Anzeige des Vorzeichens erhalten sollen.

Der SG-Parameter kann mit den folgenden Statements verwendet werden:

Er kann dort sowohl auf Statement- als auch auf Elementebene gesetzt werden.

Anmerkung:
Wenn eine Editiermaske angegeben ist, hat diese Vorrang vor einer SG-Angabe. Editiermasken sind im Abschnitt Editiermasken - der EM-Parameter beschrieben.

Beispielprogramm ohne Parameter

** Example 'FORMAX03': FORMAT (without FORMAT and compare with FORMAX04)
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 NAME
  2 FIRST-NAME
  2 SALARY (1:1)
  2 BONUS  (1:1,1:1)
END-DEFINE
*
READ (5) VIEWEMP BY NAME STARTING FROM 'JONES'
  DISPLAY NAME
          FIRST-NAME
          SALARY (1:1)
          BONUS  (1:1,1:1)
END-READ
END

Ausgabe des Programms FORMAX03:

Das obige Programm enthält keine Parameterangaben und erzeugt folgende Ausgabe:

  Page      1                                                  04-11-11  11:11:11  
                                                                                 
          NAME              FIRST-NAME        ANNUAL     BONUS   
                                              SALARY             
  -------------------- -------------------- ---------- ----------
                                                                 
  JONES                VIRGINIA                  46000       9000
  JONES                MARSHA                    50000          0
  JONES                ROBERT                    31000          0
  JONES                LILLY                     24000          0
  JONES                EDWARD                    37600          0

Beispielprogramm mit Parametern AL, NL, LC, IC und TC

In diesem Beispiel werden die Session-Parameter AL, NL, LC, IC und TC benutzt.

** Example 'FORMAX04': FORMAT (with parameters AL, NL, LC, TC, IC and
**                     compare with FORMAX03)
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 NAME
  2 FIRST-NAME
  2 SALARY (1:1)
  2 BONUS  (1:1,1:1)
END-DEFINE
*
FORMAT AL=10 NL=6
*
READ (5) VIEWEMP BY NAME STARTING FROM 'JONES'
  DISPLAY NAME            (LC=*)
          FIRST-NAME      (TC=*)
          SALARY (1:1)    (IC=$)
          BONUS (1:1,1:1) (LC=>)
END-READ
END

Das obige Programm erzeugt folgende Ausgabe. Vergleichen Sie sie mit der Ausgabe des vorigen Programms, um zu sehen, wie sich die einzelnen Parameter auswirken:

  Page      1                                                  04-11-11  11:11:11  
                                                                                 
     NAME     FIRST-NAME   ANNUAL   BONUS  
                           SALARY          
  ----------- ----------- -------- --------
                                           
  *JONES      VIRGINIA  *   $46000 >   9000
  *JONES      MARSHA    *   $50000 >      0
  *JONES      ROBERT    *   $31000 >      0
  *JONES      LILLY     *   $24000 >      0
  *JONES      EDWARD    *   $37600 >      0

Wie Sie im obigen Beispiel sehen, schließt eine mit einem AL- oder NL-Parameter angegebene Ausgabelänge die mit einem LC-, IC- und TC-Parameter angegebenen Zeichen nicht mit ein: die Breite der NAME-Spalte ist z.B. 11 Stellen: 10 für den Feldwert (AL=10) plus 1 vorangestelltes Zeichen.

Die Spalten SALARY und BONUS sind jeweils 8 Stellen breit: 6 Stellen für den Feldwert (NL=6), plus 1 vorangestelltes bzw. eingefügtes Zeichen, plus 1 Vorzeichen-Stelle (da SG=ON gilt).

Seitenanfang

Ausgabe identischer Werte unterdrücken — der IS-Parameter

Mit dem Session-Parameter IS (Identical Suppress) können Sie die mehrmalige Ausgabe identischer Werte in aufeinanderfolgenden Zeilen, die von einem WRITE- oder DISPLAY-Statement erzeugt werden, unterdrücken.

DerIS-Parameter kann angegeben werden:

Die Wirkung des Parameters IS=ON kann für einen Datensatz mit dem Statement SUSPEND IDENTICAL SUPPRESS ausgesetzt werden. Näheres zu diesem Statement finden Sie in der Statements-Dokumentation.

Vergleichen Sie die Ausgaben der beiden folgenden Beispielprogramme miteinander, um die Wirkung des IS-Parameters zu sehen. Im zweiten Programm wird die Anzeige identischer Werte im Feld NAME unterdrückt.

Beispielprogramm ohne IS-Parameter

** Example 'FORMAX05': FORMAT (without parameter IS
**                     and compare with FORMAX06)
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 NAME
  2 FIRST-NAME
END-DEFINE
*
READ (3) VIEWEMP BY NAME STARTING FROM 'JONES'
  DISPLAY NAME FIRST-NAME
END-READ
END

Ausgabe des Programms FORMAX05:

  Page      1                                                  04-11-11  11:11:11  
                                                                                 
          NAME              FIRST-NAME     
  -------------------- --------------------
                                           
  JONES                VIRGINIA            
  JONES                MARSHA              
  JONES                ROBERT             

Beispielprogramm mit IS-Parameter

** Example 'FORMAX06': FORMAT (with parameter IS
**                     and compare with FORMAX05)
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 NAME
  2 FIRST-NAME
END-DEFINE
*
FORMAT IS=ON
*
READ (3) VIEWEMP BY NAME STARTING FROM 'JONES'
  DISPLAY NAME FIRST-NAME
END-READ
END

Ausgabe des Programms FORMAX06:

Page      1                                                 04-11-11  11:54:01  
                                                                                
        NAME              FIRST-NAME     
-------------------- --------------------
                                           
JONES                VIRGINIA            
                     MARSHA              
                     ROBERT             

Seitenanfang

Nullwerte anzeigen — der ZP-Parameter

Mit dem Profil- und Session-Parameter ZP (Zero Printing) bestimmen Sie, wie ein Feldwert, der Null ist, ausgegeben wird.

Der ZP-Parameter kann angegeben werden:

Vergleichen Sie die Ausgaben der beiden folgenden Beispielprogramme miteinander, um die Wirkung der Parameter ZP und ES zu sehen.

Seitenanfang

Leerzeilen unterdrücken — der ES-Parameter

Mit dem Parameter ES (Empty Line Suppression) können Sie die Ausgabe von mit einem DISPLAY- oder WRITE-Statement erzeugten Leerzeilen unterdrücken.

Der ES-Parameter kann angegeben werden:

Anmerkung:
Um die Leerwertunterdrückung auch für numerische Werte zu erhalten, muss für die betreffenden Felder neben ES=ON auch der Parameter ZP=OFF gesetzt werden, was bewirkt, dass Nullwerte in Leerwerte umgesetzt und dann ebenfalls nicht ausgegeben werden.

Vergleichen Sie die Ausgaben der beiden folgenden Beispielprogramme miteinander, um die Wirkung der Parameter ZP und ES zu sehen.

Beispielprogramm ohne Parameter ZP und ES

** Example 'FORMAX07': FORMAT (without parameter ES and ZP
**                     and compare with FORMAX08)
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 NAME
  2 FIRST-NAME
  2 BONUS (1:2,1:1)
END-DEFINE
*
READ (4) VIEWEMP BY NAME STARTING FROM 'JONES'
  DISPLAY NAME FIRST-NAME BONUS (1:2,1:1)
END-READ
END

Ausgabe des Programms FORMAX07:

Page      1                                                  04-11-11  11:58:23
                                                                               
        NAME              FIRST-NAME        BONUS
-------------------- -------------------- ----------
                                           
JONES                VIRGINIA                   9000
                                                6750
JONES                MARSHA                        0
                                                   0
JONES                ROBERT                        0
                                                   0
JONES                LILLY                         0
                                                   0

Beispielprogramm mit den Parametern ZP und ES

** Example 'FORMAX08': FORMAT (with parameters ES and ZP
**                     and compare with FORMAX07)
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 NAME
  2 FIRST-NAME
  2 BONUS (1:2,1:1)
END-DEFINE
*
FORMAT ES=ON
*
READ (4) VIEWEMP BY NAME STARTING FROM 'JONES'
  DISPLAY NAME FIRST-NAME BONUS (1:2,1:1)(ZP=OFF)
END-READ
END

Ausgabe des Programms FORMAX08:

Page      1                                                  04-11-11  11:59:09
                                                                               
        NAME              FIRST-NAME        BONUS
-------------------- -------------------- ----------
                                           
JONES                VIRGINIA                   9000
                                                6750
JONES                MARSHA
JONES                ROBERT
JONES                LILLY

Seitenanfang

Weitere Beispiele für Feldausgabe-relevante Parameter

Weitere Beispiele für die Parameter LC, IC, TC, AL, NL, IS, ZP und ES und das SUSPEND IDENTICAL SUPPRESS-Statement finden Sie in den folgenden Beispielprogrammen.

Seitenanfang