Transfers characters from Source to the Target, left-adjusted with optional padding on the right.
MOVEL Source (Expression) Target (Character Expression) Fill (*NOPAD | *PAD) Pos (Indicator Variable) Neg (Indicator Variable) Boz (Indicator Variable) Type (*NONE | *BINARY | *BOOLEAN | *BYTE | *CHAR | *DECIMAL | *FLOAT | *FLOAT4 | *FLOAT8 | *IND |
*INTEGER | *INTEGER2 | *INTEGER4 | *INTEGER8 | *ONECHAR | *PACKED | *ZONED) Len (length integer, decimal integer) TimFmt (*NONE | *DMY | *EUR | *HMS | *ISO | *JIS | *JUL | *MDY | *USA | *YMD)
Required. If Source is longer than the Target, the excess rightmost characters of Source are not moved. If the Target is longer than Source, the rightmost excess characters of Target are left untouched, unless padding is specified (Fill (*PAD)).
Resulting indicators cannot be specified if the Target is an array. They can be specified if the Target is a non-array field or array element.
When Data is moved to a numeric field, if Source is as long or longer than the Target, the sign (+ or -) will not be retained.
Required. If Source is longer than the Target, the excess rightmost characters of Source are not moved. If the Target is longer than Source, the rightmost excess characters of Target are left untouched, unless padding is specified (Fill (*PAD)).
Resulting indicators cannot be specified if the Target is an array. They can be specified if the Target is a non-array field or array element.
When Data is moved to a numeric field, if Source is as long or longer than the Target, the sign (+ or -) will not be retained.
Optional. Specifies if padding will be specified on the right of the Target. *NOPAD is the default.
*NOPAD indicates that the Target will not be padded with blanks.
*PAD indicates that the Target will be padded from the right with blanks.
Optional only if Target is numeric. Turned on if the value of Target is a positive number.
Optional only if Target is numeric. Turned on if the value of Target is a negative number.
Optional. Turned on if the value of Target is blank or zero.
Optional. Can be any of the Types listed. *NONE is the default. See Type Parameter for further information.
Optional. Defines the length of the field. If Len is decimal (3,1) *ZONED is assigned as the default. If Len is character (3), *CHAR is assigned as the default.
Depending upon the Type specified, the Len parameter may be required. For instance, Types of *CHAR, *PACKED, *ZONED will require a Len. A compiler message will display if the Len parameter is needed.
Optional. TimFmt specifies the format for time, date, and timestamp variables. If the TimFmt parameter is not specified, the format specified by the program is assumed.
Moving Text from a Control to a Field
When moving text from a control into a field, be aware that the contents is a null-terminated string and does not assume the field length. MOVE and MOVEL operations will move only the number of characters in the string into the field, which may result in extraneous data remaining in the field. Be sure to use Fill(*Pad) in the operation to prevent this.
When moving Date, Time or Timestamp fields
TimFmt must be blank unless either the source or the target is a character or numeric field. Otherwise, TimFmt contains the date or time format compatible with the character or numeric field that is the source or target of the operation.
If Source is *DATE and the result is a Date field, TimFmt is not required. If TimFmt contains a date format it must be compatible with the format of *DATE. See Moving Date-Time Data for more information.
Source and Result are the same length.
Numeric to Numeric
Value1 = 78425
Value2 = 56784
Movel Value1
Value2
Value2 now = 78425.
Numeric to Character
Value1 = 78425
Value2 = 'ASNA4'
Movel Value1
Value2
Value2 now = '78425'.
Character to Numeric
Value1 = 'ASNA4'
Value2 = 78425
Movel Value1
Value2
Value2 is no longer a valid field.
Character to Character
Value1 = 'ASNA4'
Value2 = 'MENOW'
Movel Value1 Value2
Value2 now = 'ASNA4'
Source Longer than Result.
Numeric to Numeric
Value1 = 000258425
Value2 = 56784
Movel
Value1 Value2
Value2 now = 00025.
Numeric to Character
Value1 = 903178425
Value2 = 'ASNA4'
Movel Value1
Value2
Value2 now = 90317.
Character to Numeric
Value1 = 'ASNA4MEEE'
Value2 = '56784
Movel Value1
Value2
Value2 is no longer a valid field.
Character to Character
Value1 = 'ASNA4MEE'E
Value2 = 'OK4EU'
Movel Value1
Value2
Value2 now = 'ASNA4'.
Source is shorter than Result.
Numeric to Numeric
Value1 = 78425
Value2 = 130943210
Movel Value1
Value2
Value2 now = 784253210.
Character to Numeric
Value1 = 'ASNA4'
Value2 = 130943210
Movel Value1
Value2
Value2 is no longer a valid field.
Numeric to Character
Value1 = 78425
Value2 = 'ASNA4MEEE'
Movel Value1
Value2
Value2 now = '78425MEEE'.
Character to Character
Value1 = 'ASNA4'
Value2 = 'NOMORERPG'
Movel Value1
Value2
Value2 now = 'ASNA4ERPG'.
Source is shorter than Result with Fill(*Pad).
Numeric to Numeric
Value1 = 78425
Value2 = 130943210
Movel Value1
Value2 Fill(*Pad)
Value2 now = 784250000.
Character to Numeric
Value1 = 'ASNA4'
Value2 = 130943210
Movel Value1
Value2 Fill(*Pad)
Value2 is no longer a valid field.
Numeric to Character
Value1 = 78425
Value2 = 'ASNA4MEEE'
Movel Value1
Value2 Fill(*Pad)
Value2 now = '78425 '
Character to Character
Value1 = 'ASNA4'
Value2 = 'NOMORERPG'
Movel Value1
Value2 Fill(*Pad)
Value2 now = 'ASNA4 '