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 Standard-Attribute steuern, finden Sie im Abschnitt Output Reports and Work Files 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.

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.

Vorangestellte Zeichen im Unicode-Format — der LCU Parameter

Der Session-Parameter LCU ist identisch mit dem Session-Parameter LC. Der Unterschied ist, dass alle vorangestellten Zeichen immer im Unicode-Format gespeichert werden.

Das gibt Ihnen die Möglichkeit, vorangestellte Zeichen mit Zeichen von verschiedenen Codepages gemischt anzugeben, und stellt sicher, dass unabhängig von der installierten Codepage immer das richtige Zeichen angezeigt wird.

Weitere Informationen siehe Unicode and Code Page Support in the Natural Programming Language, Session Parameters, Abschnitt EMU, ICU, LCU, TCU versus EM, IC, LC, TC.

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

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.

Einfügungszeichen im Unicode-Format — der ICU Parameter

Der Session-Parameter ICU ist identisch mit dem Session-Parameter IC. Der Unterschied ist, dass alle vorangestellten Zeichen immer im Unicode-Format gespeichert werden.

Das gibt Ihnen die Möglichkeit, Einfügungszeichen mit Zeichen von verschiedenen Codepages gemischt anzugeben, und stellt sicher, dass unabhängig von der installierten Codepage immer das richtige Zeichen angezeigt wird.

Weitere Informationen siehe Unicode and Code Page Support in the Natural Programming Language, Session Parameters, Abschnitt EMU, ICU, LCU, TCU versus EM, IC, LC, TC.

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

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.

Vorangestellte Zeichen im Unicode-Format — der TCU Parameter

Der Session-Parameter TCU ist identisch mit dem Session-Parameter TC. Der Unterschied ist, dass alle vorangestellten Zeichen immer im Unicode-Format gespeichert werden.

Das gibt Ihnen die Möglichkeit, Einfügungszeichen mit Zeichen von verschiedenen Codepages gemischt anzugeben, und stellt sicher, dass unabhängig von der installierten Codepage immer das richtige Zeichen angezeigt wird.

Weitere Informationen siehe Unicode and Code Page Support in the Natural Programming Language, Session Parameters, Abschnitt EMU, ICU, LCU, TCU versus EM, IC, LC, TC.

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.

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

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.

  • Standardmäßig gilt SG=ON, d.h. numerische Felder erhalten eine Vorzeichen-Stelle.

  • Wenn Sie SG=OFF angeben, werden negative Werte in numerischen Feldern ohne Minuszeichen (-) ausgegeben.

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).

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.

  • Standardmäßig gilt IS=OFF. Dies bedeutet, dass identische Werte angezeigt werden.

  • Ist IS=ON gesetzt, wird ein Wert, der identisch mit dem vorherigen Wert des Feldes ist, nicht angezeigt.

DerIS-Parameter kann angegeben werden:

  • in einem FORMAT-Statement; er gilt dann für den gesamten Report.

  • in einem DISPLAY- oder WRITE-Statement, und zwar sowohl auf Statement- als auch auf Elementebene.

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             

Nullwerte anzeigen — der ZP-Parameter

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

  • Standardmäßig gilt ZP=ON, d.h. für einen Feldwert, der Null ist, wird eine 0 (bei numerischen Feldern) bzw. der ganze Feldwert (bei Zeitfeldern) ausgegeben.

  • Wenn Sie ZP=OFF angeben, wird ein Feldwert, der Null ist, gar nicht ausgegeben.

Der ZP-Parameter kann angegeben werden:

  • in einem FORMAT-Statement; er gilt dann für den gesamten Report.

  • in einem DISPLAY- oder WRITE-Statement, und zwar sowohl auf Statement- als auch auf Elementebene.

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

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.

  • Standardmäßig gilt ES=OFF. Dies bedeutet, dass alle Zeilen, die Leerwerte enthalten, angezeigt werden.

  • Wenn Sie ES=ON angeben, wird eine mit einem DISPLAY- oder WRITE-Statement erzeugte Zeile, die nur Leerwerte enthält, unterdrückt. Die Verwendung des ES-Parameters empfiehlt sich, wenn bei der Ausgabe von multiplen Feldern oder Periodengruppen die Ausgabe vieler Leerzeilen zu erwarten ist.

Der ES-Parameter kann angegeben werden:

  • in einem FORMAT-Statement; er gilt dann für den gesamten Report.

  • in einem DISPLAY- oder WRITE-Statement, und zwar auf Statement-Ebene.

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

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.