Version 4.2.6
 —  Statements  —

MOVE ALL

MOVE ALL   operand1   TO   operand2   [UNTIL operand3]

Dieses Dokument behandelt folgende Themen:

Verwandte Statements: ADD | COMPRESS | COMPUTE | DIVIDE | EXAMINE | MOVE | MULTIPLY | RESET | SEPARATE | SUBTRACT

Gehört zur Funktionsgruppe: Arithmetische Funktionen und Datenzuweisungen


Funktion

Das Statement MOVE ALL dient dazu, den Wert von operand1 so oft nach operand2 zu übertragen, bis operand2 voll ist.

Bei Verwendung der UNTIL-Option kann in operand3 angegeben werden, wieviele Stellen in operand2 gefüllt werden sollen.

Seitenanfang

Syntax-Beschreibung

Operanden-Definitionstabelle:

Operand Mögliche Struktur Mögliche Formate Referenzierung erlaubt Dynam. Definition
operand1 C S       A U N       B             ja nein
operand2   S A     A U         B             ja ja
operand3 C S           N P I                 ja nein

Syntax-Element-Beschreibung:

operand1
Ausgangsoperand:

Dieser Operand enthält den zu übertragenden Wert.

Bei einem numerischen Operanden werden alle Stellen einschließlich vorangestellter Nullen übertragen.

TO operand2
Zieloperand:

In diesen Operanden wird der Wert übertragen. Der vorherige Inhalt des Operanden wird vor der MOVE ALL-Operation nicht zurückgesetzt. Dies ist insbesondere bei Verwendung der UNTIL-Option zu beachten, da bereits in operand2 enthaltene Daten dort behalten werden, es sei denn, sie werden während der MOVE ALL-Operation ausdrücklich überschrieben.

UNTIL operand3
UNTIL-Option:

Mit der UNTIL-Option können Sie die MOVE ALL-Operation auf eine bestimmte Anzahl von Stellen in operand2 begrenzen. Mit operand3 geben Sie an, wieviele Stellen in operand2 gefüllt werden sollen; ist diese Anzahl erreicht, wird die MOVE ALL-Operation beendet.

Übersteigt die Länge von operand3 die Länge von operand2, wird die MOVE ALL-Operation beendet, sobald operand2 vollständig gefüllt ist.

Die Option UNTIL kann auch verwendet werden, um einer dynamischen Variable einen Startwert zuzuweisen. Wenn operand2 eine dynamische Variable ist, entspricht ihre Länge nach der MOVE ALL-Operation dem Wert von operand3. Die aktuelle Länge einer dynamischen Variable kann unter Verwendung der Systemvariable *LENGTH festgestellt werden. Allgemeine Informationen zu dynamischen Variablen finden Sie im Abschnitt Benutzung dynamischer Variablen..

Seitenanfang

Beispiel

** Example 'MOAEX1': MOVE ALL                                           
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 FIRST-NAME                                                          
  2 NAME                                                                
  2 CITY                                                                
1 VEH-VIEW VIEW OF VEHICLES                                             
  2 PERSONNEL-ID                                                        
  2 MAKE                                                                
END-DEFINE                                                              
*                                                                       
LIMIT 4                                                                 
RD. READ EMPLOY-VIEW BY NAME                                            
  SUSPEND IDENTICAL SUPPRESS                                            
  /*                                                                    
  FD. FIND VEH-VIEW WITH PERSONNEL-ID = PERSONNEL-ID (RD.)              
    IF NO RECORDS FOUND                                                  
      MOVE ALL '*' TO FIRST-NAME (RD.)        
      MOVE ALL '*' TO CITY (RD.)              
      MOVE ALL '*' TO MAKE (FD.)              
    END-NOREC                                 
    /*                                        
    DISPLAY NOTITLE (ES=OFF IS=ON ZP=ON AL=15)
            NAME (RD.) FIRST-NAME (RD.)       
            CITY (RD.)                        
            MAKE (FD.) (IS=OFF)               
    /*                                        
  END-FIND                                    
END-READ                                      
END                                          

Ausgabe des Programms MOAEX1:

     NAME         FIRST-NAME         CITY            MAKE      
--------------- --------------- --------------- ---------------
                                                               
ABELLAN         *************** *************** ***************
ACHIESON        ROBERT          DERBY           FORD           
ADAM            *************** *************** ***************
ADKINSON        JEFF            BROOKLYN        GENERAL MOTORS

Seitenanfang