BitacoraSapAbap

30-03-2008

WRITE – Output to a variable (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:26

Variants
1. WRITE f TO g[+off][(len)].
2. WRITE f TO itab[+off][(len)] INDEX idx.
Variant 1
WRITE f TO g[+off][(len)].
Addition
… option
Effect
Assigns the contents of the
source field f to the target field g as a new value.
In contrast to MOVE , the format of the target field g
is the same as when outputting to a list with WRITE .
The field type C is always used, regardless of the actual data type.
As with list output, the settings in the user’s master record for decimal point
(period or comma) and date format are taken into account.
Other formatting options are also possible with list
output.
Instead of specifying a static source field f , you can make a dynamic source
field specification (name) . In this case, the contents of the field name is
interpreted as the source field name at runtime and the contents are formatted
accordingly.
You can identify the target field g more precisely by specifying the offset
and/or length in the form g+off(len) . Both the offset and the length
specifications off and len can also be dynamic.
The return code value SY-SUBRC is undefined.
Example
WRITE … TO with dynamic source field specification and
dynamic offset and length specification for the target field:
DATA: NAME(5)  VALUE ‘FIELD’,
      FIELD(5) VALUE ‘Harry’,
      DEST(18) VALUE ‘Robert James Smith’,
      OFF      TYPE I,
      LEN      TYPE I.
OFF = 7.
LEN = 8.
WRITE (NAME) TO DEST+OFF(LEN).
The field DEST noew contains the value ” Robert Harry
ith “.
Notes
Only values between 0 and the length of the target field g are
allowed as offset specifications. Any other offset specifications result in a
runtime error.
Only values >= 0 are allowed as length specifications. Negative length
specifications result in a runtime error. Excessive length specifications are
automatically truncated.
If you specify the field length as the offset or the value 0 as the length, the
target field is blank. In this case, the statement has no effect.
Addition
… option
Effect
Modifies the output format with the aid of special formatting options .
Variant 2
WRITE f TO itab[+off][(len)] INDEX idx.
Additions like variant 1.
Effect
Like variant 1, except that output is to the idx -th line of
the internal table itab .
Ayn offset and/or length specifications refer to the table line used for
output.
The return code value is set as follows:
SY-SUBRC = 0 Valid index specification, i.e. the internal table itab contains a
line with the index idx .
SY_SUBRC = 4 Index specification is too large, i.e. the internal table itab
contains fewer than idx entries.
Note
Invalid index specifications, i.e. idx <= 0, result in a
runtime error.
Note
Runtime errors
WRITE_TO_LENGTH_NEGATIVE
: Negative length specification in len .
WRITE_TO_OFFSET_NEGATIVE :
Negative offset specification in off .
WRITE_TO_OFFSET_TOOLARGE :
Offset specification in off is greater than field length.
TABLE_INVALID_INDEX : Invalid
index specification <= 0
in idx (variant 2 only).
Related MOVE , WRITE

Anuncios

WRITE – Output as symbol (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:25

Effect
You can output certain characters as symbols using the
addition … AS SYMBOL . You should only address these characters with their
system-defined names. The include (or the more comprehensive include
) contains the relevant identifiers as constants, e.g. SYM_PHONE ,
SYM_CIRCLE .
Example
INCLUDE .
WRITE: / SYM_RIGHT_HAND AS SYMBOL,    ” output as symbol
         ‘Tip, Note’,
         SYM_LEFT_HAND  AS SYMBOL.    ” output as symbol
Note
An output length of one character is enough for most
symbols, but some (e.g. SYM_FAX ) are twice as long.
You can determine the length of a symbol with DESCRIBE
FIELD SYM_… OUTPUT-LENGTH …
Index
© SAP AG 1996

WRITE – Output formatting options (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:23

Options
… NO-ZERO
… NO-SIGN
… DD/MM/YY
… MM/DD/YY
… DD/MM/YYYY
… MM/DD/YYYY
… DDMMYY
… MMDDYY
… YYMMDD
… CURRENCY w
… DECIMALS d
… ROUND r
… UNIT u
… EXPONENT e
… USING EDIT MASK mask
… USING NO EDIT MASK
… UNDER g (only with WRITE )
… NO-GAP (only with WRITE )
… LEFT-JUSTIFIED
… CENTERED
… RIGHT-JUSTIFIED
Note
The formatting options UNDER g and NO-GAP are intended only
output to lists and therefore cannot be used with WRITE
… TO .
Option
… NO-ZERO
Effect
If the contents of f are equal to zero, only blanks are
output; if f is of type C or N , leading zeros are replaced by blanks.
Option
… NO-SIGN
Effect
The leading sign is not output if f is of type I , P or F .
Option
… DD/MM/YY
Option
… MM/DD/YY
Effect
If f is a date field (type D ), the date is output with a
2-character year as specified in the user’s master record. Both of these
formatting options have the same value.
Option
… DD/MM/YYYY
Option
… MM/DD/YYYY
Effect
If f is a date field (type D ), the date is output with a
4-character year as specified in the user’s master record. Both of these
formatting options have the same value.
Option
… DDMMYY
Option
… MMDDYY
Effect
Date formatting like the additions … DD/MM/YY and …
MM/DD/YY , but without separators.
Option
… YYMMDD
Effect
If f is a date field (type D ), the date is output in the
format YYMMDD (YY = year, MM = month, DD = Day).
Option
… CURRENCY w
Effect
Correct format for currency specified in the field w .
Treats the contents of f as a currency amount. The currency specified in w
determines how many decimal places this amount should have.
The contents of w are used as a currency key for the table TCURX ; if there is
no entry for w , the system assumes that the currency amount has 2 decimal
places.
Option
… DECIMALS d
Effect
d specifies the number of decimal places for a number field
(type I , P or F ) in d . If this value is smaller than the number of decimal places
in the number, the number is rounded. If the value is greater, the number is
padded with zeros.
Since accuracy with floating point arithmetic is up to about 15 decimal places
(see ABAP/4 number types ), up to 17 digits are output with floating point
numbers (type F ). (In some circumstances, 17 digits are needed to
differentiate between two neighboring floating point numbers.) If the output
length is not sufficient, as many decimal places as possible are output.
Negative DECIMALS specifications are treated as DECIMALS 0 .
Example
Effect of different DECIMALS specifications:
DATA: X TYPE P DECIMALS 3 VALUE ‘1.267’,
      Y TYPE F            VALUE ‘125.456E2’.
WRITE: /X DECIMALS 0,  “output: 1
       /X DECIMALS 2,  “output: 1.27
       /X DECIMALS 5,  “output: 1.26700
       /Y DECIMALS 1,  “output: 1.3E+04
       /Y DECIMALS 5,  “output: 1.25456E+04
       /Y DECIMALS 20. “output: 1.25456000000000E+04
Option
… ROUND r
Effect
Scaled output of a field of type P .
The decimal point is first moved r places to the left ( r > 0) or to the
right ( r < 0); this is the same as dividing with the appropriate exponent
10** r . The value determined in this way is output with the valid number of
digits before and after the decimal point. If the decimal point is moved to the
left, the number is rounded.
For further information about the interaction between the formatting options
CURRENCY and DECIMALS , see the notes below.
&ABAP-EXAMPLE& Effect of different ROUND specifications:
DATA: X TYPE P DECIMALS 2 VALUE ‘12493.97’.
WRITE: /X ROUND -2,   “output: 1,249,397.00
       /X ROUND  0,   “output:    12,493,97
       /X ROUND  2,   “output:       124.94
       /X ROUND  5,   “output:         0.12
Option
… UNIT u
Effect
Formats a value according to the unit specified in the field
u .
The contents of f are treated as a quantity. The unit specified in u determines
how many decimal places should be output.
If f has more places after the decimal point than determined in u , the output
value will only have the number of decimal places determined by u , unless the
operation truncates digits other than zero.
If f has fewer places after the decimal point than determined by u , the option
has no effect.
The contents of u are used as a unit in the table T006 , but if there is no
entry, the formatting option has no effect.
The field f which is to be output must have the type P . This option is used
for table fields which have the Dictionary type QUAN , or for fields defined
with reference to such fields (DATA … LIKE … ).
This formatting option excludes the options DECIMALS and ROUND .
Example
Suppose the unit ‘STD’ has 3 decimals
DATA HOUR TYPE P DECIMALS 3 VALUE ‘1.200’.
WRITE (6) HOUR UNIT ‘STD’. “output:   1,2
HOUR = ‘1.230’.
WRITE (6) HOUR UNIT ‘STD’. “output: 1,230
Option
… EXPONENT e
Effect
The field e defines a fixed exponent for a floating point
number (type F ). The mantissa is adjusted to the exponent by moving the
decimal point and padding with zeros. With EXPONENT 0 , the exponent
specification is suppressed.
However, if the output length is too short to accommodate all digits before the
decimal point, the standard output format is used.
Example
Effect of different EXPONENT specifications:
DATA: X TYPE P VALUE ‘123456789E2’.
WRITE: /X     EXPONENT 0,    “output:     12345678900,000000
       /X(10) EXPONENT 0,    “output:  1,235E+10
       /X     EXPONENT 3,    “output:  12345678,90000000E+03
       /Y     EXPONENT -3,   “output:  12345678900000,00E-03
       /Y     EXPONENT 9,    “output:  12,34567890000000E+09
       /Y     EXPONENT 2
       /Y     DECIMALS 4.    “output:     123456789,0000E+02
Option
… USING EDIT MASK mask
Effect
Outputs f according to the formatting template mask .
Without this addition, f is output in the standard format for that particular
type or with a format defined in the ABAP/4 Dictionary . The addition allows
you to define a different format.
You can specify the formatting template as follows:
‘_’
represents one character of the field f
or one digit with type P or I
‘V’
only with fields of type P or I :
output of leading sign
‘LL’
at beginning of template:
left
justify (standard)
‘RR’
at beginning of template:
right
justify
‘==conv’
perform output conversion conv
‘:’,
… separator
(all
other characters)
When formatting, the characters ‘_’ in the template are replaced from the left
( ‘LL’ ) or from the right ( ‘RR’ ) by the characters or digits (type P or I )
of the field f .
Notes
When using a template, you must specify the an explicit
output length because otherwise the implicit output length of the field f is
used. Usually, the template is longer than the implicit output length.
If the leading sign is to be output with a field of type P or I , you must
specify the wildcard character V at the desired place. If this character does
not appear in the template, no leading sign will be output if the value of f is
negative.
When formatting a field of type P with decimal places, the value is not aligned
with a character in the template representing the decimal point (either a
period or a comma). If you want to have this character in the output, you must
insert it in the correct position in the template and define the formatting
from the right. If there is no character for the decimal point in the template,
no such character is output.
Fields of type F are first converted to the standard format and the resulting
sequence is then copied to the template in the case of a field of type C .
You implement the user-specific conversion conv with a function module called
CONVERSION_EXIT_conv_OUTPUT , e.g. COONVERSION_EXIT_ALPHA_OUTPUT for the
conversion of numeric values with leading zeros to a format without leading
zeros for type C fields. If a Dictionary field is output and the domain of that
field defines a conversion routine, this is executed automatically. For a
description of the conversion, refer to the documentation of the appropriate
function module.
Example
Formatted output of the time:
DATA TIME TYPE T VALUE ‘154633’.
WRITE (8) TIME USING EDIT MASK ‘__:__:__’.  “Output: 15:46:33
If the output length ” (8) ” was not specified here, the output would
be ” 15:46: ” because the implicit output length for the type T is 6.
Option
… USING NO EDIT MASK
Effect
Switches off a conversion routine specified in the ABAP/4
Dictionary .
Option
… UNDER g
Effect
Output of the field f begins at the column from which the
field g was output. If this happens in the same output line, the output of the
field g is overwritten.
Note
After UNDER , the field g must be written exactly as the
reference field in the previous WRITE statement, i.e. with an offset and length
if necessary. The exception to this rule is if g is a text symbol. In this
case, the reference field is determined by the number of the text symbol (not
by the text stored there).
Example
Align output to the reference fields:
FIELD-SYMBOLS .
ASSIGN ‘First Name’ TO .
WRITE: /3 ‘Name'(001), 15 , 30 ‘RoomNo’, 40 ‘Age'(002).

WRITE: /   ‘Peterson’ UNDER ‘Name'(001),
           ‘Ron’      UNDER ,
           ‘5.1’      UNDER ‘RoomNo’,
       (5) 24         UNDER TEXT-002.
This produces the following output (numbers appear right-justified in their
output fields!):
Name First Name RoomNo Age
Peterson Ron 5.1 24
Option
… NO-GAP
Effect
Suppresses the blank after the field f . Fields output one after
the other are then displayed without gaps.
Example
Output
several literals without gaps:
WRITE: ‘A’ NO-GAP, ‘B’ NO-GAP, ‘C’.  “Output: ABC
If NO-GAP was not specified here, the output would have been ” A B C
” because one blank is always implicitly generated between consecutive
output fields.
Option
… LEFT-JUSTIFIED
… CENTERED
… RIGHT-JUSTIFIED
Effect
Left-justified, centered or right-justified output.
For number fields (types I , P and F ), RIGHT-JUSTIFIED is the standard output
format, but LEFT-JUSTIFIED is used for all other types, as well as for
templates.
Examples
Output to a list ( WRITE ):
DATA: FIELD(10) VALUE ‘abcde’.
  WRITE: / ‘|’ NO-GAP, FIELD LEFT-JUSTIFIED  NO-GAP, ‘|’,
         / ‘|’ NO-GAP, FIELD CENTERED        NO-GAP, ‘|’,
         / ‘|’ NO-GAP, FIELD RIGHT-JUSTIFIED NO-GAP, ‘|’.
* Output: |abcde     |
*         |  abcde   |
*         |     abcde|
Formatting in a program field ( WRITE…TO… )
DATA: TARGET_FIELD1(10),
      TARGET_FIELD2 LIKE TARGET-FIELD1,
      TARGET_FIELD3 LIKE TARGET-FIELD1.
WRITE: ‘123’ LEFT-JUSTIFIED  TO TARGET-FIELD1,
      ’456′ CENTERED        TO TARGET-FIELD2,
       ‘789’ RIGHT-JUSTIFIED TO TARGET-FIELD3.
  WRITE: / ‘|’ NO-GAP, TARGET_FIELD1 NO-GAP, ‘|’,
         / ‘|’ NO-GAP, TARGET-FIELD2 NO-GAP, ‘|’,
         / ‘|’ NO-GAP, TARGET_FIELD3 NO-GAP, ‘|’.
* Output: |123       |
*         |   456    |
*         |       789|
Notes
Specifying several formatting options
You can use the additions of the first group ( NO-ZERO , NO-SIGN , DD/MM/YY
etc., CURRENCY , DECIMALS , ROUND , EXPONENT ) simultaneously, provided it
makes sense. You can combine the additions UNDER and NO-GAP with all other
additions in any permutation; however, they are not taken into account until
the field f has been formatted according to all the other options.
Templates, conversion routines and alignment
If you want to format a field using a special conversion routine , all the
other additions (apart from UNDER and NO-GAP ) are ignored. This also applies
if the conversion routine is not explicitly specified, but comes from the
ABAP/4 Dictionary .
If you want to format a field using a template , the system first takes into
account the options of the first group, and then places the result in the
template. However, if you specify one of the date-related formatting options (
DD/MM/YY etc.), the template is ignored.
Finally, the formatted field or the template is copied to the target field
according to the requested alignment . For type C fields, it is the occupied
length that is relevant, not the defined length; this means that trailing
blanks are not taken into account.
Combined usage of CURRENCY , DECIMALS and ROUND
The rounding factor (from the right) in
WRITE price CURRENCY c ROUND r DECIMALS d
results from the formula
rounding factor = c + r – d .
If DECIMALS is not specified, d = c applies.
You read this formula in the following manner:
The field price is supposed to be of ABAP/4 type P (or I ); it contains a
currency amount. The CURRENCY specification expresses how many decimal places
price is to have and may differ from the definition of price (the decimal point
is not stored internally, but comes from the type attributes of price ).
Normally, price is output with as many decimal places as the field has
internally according to the type attributes or the CURRENCY specification. You
can override this number of output decimal places with DECIMALS . The addition
ROUND addition moves the decimal point r places to the left, if r is positive,
otherwise to the right. This means that a $ amount is output with ROUND 3 in the unit 1000 $.
According to the above formula, there can also be a “negative”
rounding factor; then, the corresponding number of zeros is appended to the amount
price on the right using the “rounding factor”. However, the value of
“rounding factor” must be at least equal to -14.
Currency fields and DATA with DECIMALS
If the field price is normally formatted with decimal places (e.g. fields for
currency amounts), these are treated like a CURRENCY specification when
rounding, if CURRENCY was not expressly specified.
If present, the DECIMALS specification defines how many decimal places are to
be output after rounding.
If the DECIMALS and the (explicit or implicit) CURRENCY specifications are
different, rounding takes place according to the above formula, even if no
ROUND specification was made (i.e. r = 0).
If a field in the DATA statement was declared with
DECIMALS n , WRITE treats it like a currency field with n decimal places.
Examples
Sales in pfennigs or lira: 246260
Unit TDM or TLira with 1 decimal place.
DATA SALES TYPE P VALUE 246260.
WRITE SALES CURRENCY ‘DEM’ ROUND 3 DECIMALS 1. “    2,5  TDM
WRITE SALES CURRENCY ‘ITL’ ROUND 3 DECIMALS 1. “  246,3  TLira
Sales in pfennigs or lira: 99990
Unit TDM or TLira with 1 decimal place.
SALES = 99990.
WRITE SALES CURRENCY ‘DEM’ ROUND 3 DECIMALS 1. “   1,0  TDM
WRITE SALES CURRENCY ‘ITL’ ROUND 3 DECIMALS 1. ” 100,0  TLira
Sales in pfennigs or lira: 93860
Unit 100 DM or 100 lira with 2 decimal places:
SALES = 93860.
WRITE SALES CURRENCY ‘DEM’ ROUND 2 DECIMALS 2. “   9,38 HDM
WRITE SALES CURRENCY ‘ITL’ ROUND 2 DECIMALS 2. ” 938,60 HLira
Sales in pfennigs: 93840
Unit 1 DM without decimal places.
SALES = 93860
WRITE SALES CURRENCY ‘DEM’         DECIMALS 0. ” 938    DM
Sales in pfennigs: 93860
Unit 1 DM without decimal places.
SALES = 93860.
WRITE SALES CURRENCY ‘DEM’         DECIMALS 0. ” 939    DM
Note
Runtime errors
WRITE_CURRENCY_ILLEGAL_TYPE
: CURRENCY parameter with WRITE is not type C
WRITE_ROUND_TOO_SMALL
: Rounding parameter is less than -14
WRITE_UNIT-ILLEGAL_TYPE
: UNIT parameter with WRITE is not type C
Index
© SAP
AG 1996

WRITE – Output as line (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:22

Effect
On list output, automatically links certain characters together
to form continuous lines or boxes, if there is no space between them:
vertical
lines, output with the system field SY-VLINE or using a field with the
contents ” | ” (vertical line)
horizontal
lines, output with the system field SY-ULINE or using a field with at
least 2 consecutive minus signs ” — “.
Exactly how each line segment is output (e.g. whether as straight line, corner,
T-piece or cross) depends on the adjoining characters.
A good rule of thumb sipulates that if the cell adjacent to a line character
also contains a line character, the missing piece required to form a connection
is added. If an adjacent cell does not also contain a line character, the line
character is truncated on that side. Line characters standing on their own remain
unchanged.
This technique is sufficient to cope with most cases (e.g. tables, boxes,
simple hierarchies). However, no matter how carefully you use some empty
characters and lines, it is not possible to stop adjacent line characters being
joined in an inappropriate way (e.g. very compact hierarchy diagrams, or
densely boxes). The solution here is to output the required line segment
explicitly using the addition … AS LINE .
The include (or the more comprehensive include )
contains the relevant identifiers for lines as constants, e.g.
LINE_TOP_LEFT_CORNER , LINE_BOTTOM_MIDDLE_CORNER .
Note
Lines cannot have any other display attributes. If
attributes such as color ( COLOR ), reverse video ( INVERSE ) or intensified (
INTENSIFIED ) are set, these are ignored on output. If the ready for input
attribute ( INPUT ) is set, the actual characters (minus sign, vertical line)
are displayed.
Example
Output two nested corner segments:
INCLUDE .
ULINE /1(50).
WRITE: / SY-VLINE NO-GAP, LINE_TOP_LEFT_CORNER AS LINE.
ULINE 3(48).
WRITE: / SY-VLINE NO-GAP, SY-VLINE NO-GAP.
Index
© SAP AG 1996

WRITE – Output as icon (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:21

Effect
You can output certain characters as icons using the
addition …AS ICON . You should only address these characters with their
system-defined names. The include (or the more comprehensive
include ) contains the relevant identifiers as constants, e.g.
ICON_OKAY (see List of icons ).
Example
INCLUDE .
WRITE: / ICON_OKAY AS ICON,         “output as icon
         ‘Text line’.
Note
Although an output length of 2 characters is enough for most
icons, some (e.g. the traffic light icons ICON_RED_LIGHT , …) have a greater
output length.
You can determine the length of an icon with DESCRIBE
FIELD ICON_… output length … .
You cannot print out all list icons. The printable icons are flagged as such in
the ‘list of icons’ mentioned above.
Index
© SAP AG 1996

WRITE – Output as checkbox (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:21

Effect
Outputs the field f as a checkbox. The contents of the first
character of f is interpreted as the “status”:
‘ ‘ = not selected
‘X’ = selected
The user can change this as required.
Note
To prevent the user changing the contents of the checkbox,
you can use the addition … INPUT OFF . The checkbox is then nothing more than
a status display and can only be changed by programming.
In technical terms, a checkbox behaves exactly like an input field with a
length of 1 (FORMAT INPUT ).
Examples
DATA: MARKFIELD(1) TYPE C VALUE ‘X’.

WRITE MARKFIELD AS CHECKBOX.           “checkbox selected
MARKFIELD = SPACE.
WRITE MARKFIELD AS CHECKBOX.           “deselected
WRITE MARKFIELD AS CHECKBOX INPUT OFF. “deselected, protected
Index
© SAP AG 1996

WRITE – Output to a list (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:20

Basic form
WRITE f.
Additions
1. … AT pl (position and length specification,
before the field)
2. … option (formatting option)
3. … ofmt (output format by field)
4. … AS CHECKBOX (output as checkbox)
5. … AS SYMBOL (output as symbol)
6. … AS ICON (output as icon)
7. … AS LINE (output as line)
Effect
Outputs the field f in the correct format for its type to
the current list. The field f can be:
a
field declared by DATA ,
a
component of a structure declared by TABLES ,
a
field symbol (FIELD-SYMBOLS ),
a
text literal which is not language-specific
a
language-specific text literal (text symbol).
Examples
TABLES SPFLI.
DATA N TYPE I VALUE 123.

WRITE N.
WRITE SPFLI-FLTIME.
FIELD-SYMBOLS .
ASSIGN ‘NEW YORK’ TO .
WRITE .
WRITE: ‘—->’, SPFLI-DISTANCE.
WRITE: TEXT-001, SPFLI-ARRTIME.
or
WRITE: ‘Time:'(001), SPFLI-ARRTIME.
Text symbols can be addressed in two different ways (TEXT-001 or’Time:’(001)) .
Notes
If no explicit position is specified for a field on a new
line, it is output on the left (in column 1). Otherwise, output is one column
removed from the previously output field. If a field does not fit on one line,
a new line is started.
You can perform explicit positioning with a position and length specification
(see addition 1) or with ABAP/4 statements (e.g. POSITION
). In this case, the field is always output at the defined position, even if
the line is not quite long enough for it to fit completely.
If a field is too long to fit completely on the line, the excess characters are
truncated.
Each field occupies a number of characters in the list. If this number is not
explicitly defined (see addition 1), the system uses a type-specific standard
length or the output length specified in the ABAP/4 Dictionary .
Type-specific output: (len = field length)
Type
length
C
D
F
I
N
P
T
X
Number fields (types P , I and F ) are always output
right-justified, but all other types are left-justified; if required, blanks are
used for padding. With number fields, leading zeros are replaced by blanks. If
there is enough space, types P and I have thousands separators. To accommodate
the decimal point, the output length of type P fields is 1 byte longer.
Addition 1
WRITE AT pl (position and length
specification before the field)
Effect
You can use the position and length specification pl to
define the precise output position and length of a field. The specification
consists of:
/ New line
c Output position (1-3 character number or variable)
(l) Output length (1-3 character number or variable)
Combinations are possible.
Examples
DATA: WORD(16), VALUE ‘0123456789ABCDEF’,
      COL TYPE I VALUE 5,
      LEN TYPE I VALUE 10.
WRITE AT / WORD.          “new line
WRITE AT 5 WORD.          “column 5
WRITE AT (10) WORD.       ”output length 10
WRITE AT /5(10) WORD.     “new line, column 5, length 10
WRITE AT COL WORD.        “column = contents of COL
WRITE AT (LEN) WORD.      “output length = contents of LEN
WRITE AT /COL(LEN) WORD.  “new line, column = contents of COL
                          ”output length = contents of LEN
Note
The position and length specification must appear before the
field. If the position and length specification contains only constants, you
the introductory AT is unnecessary. (In the first four of the above examples,
you can therefore omit AT .) Always write the position and length specification
without gaps and in the specified order. Leave at least one space between the
position and length specification and the field name. For dynamic positioning,
see also POSITION . No output results from
positioning to the right of the far right edge of the page. With explicit
column specifications, the field is output from this column, even if it no
longer completely fits on the line or overwrites another field. If the output
length is too short, number fields (types P , I and F are prefixed with an
asterisk (’*’), while all other types are truncated on the right. If you want
the abbreviated output of a variable, you should always use WRITE (10)
T100-TEXT rather than WRITE T100-TEXT(10) (sub-field access).
On the one hand, the first form is always allowed and the second form can be
forbidden for certain data types (e.g. TYPE P ). On the other hand, only the
first form guarantees the identity of the variables for GET
CURSOR … FIELD and F1 help.
Addition 2
… option (formatting option)
Effect
You can modify the output of the field f by using one of the
special formatting options .
Addition 3
… ofmt (output format by field)
Effect
Outputs the field with the specified output formats (color,
intensity, ready for input, …).
You can use the same output options as for FORMAT . If
no specifications are made, the field is output with the standard formats or
with the format set by a preceding FORMAT statement.
Example
DATA F.
FORMAT INTENSIFIED OFF INPUT.
WRITE F INPUT OFF INVERSE COLOR 3.
Note
The format specifications with WRITE apply only for output
of the field f . They modify the currently valid format for this field. This
means that, in the above example, the non-highlighted output remains for the
field F . When f has been output, the system reverts to the old format.
Addition 4
… AS CHECKBOX (output as
checkbox)
Addition 5
… AS SYMBOL (output as
symbol)
Addition 6
… AS ICON (output as icon)
Addition 7
… AS LINE (output as line)
Note
General notes on outputting boxes to lists
When you output a list, this is sometimes combined with vertical and horizontal
lines to form closed boxes:
Vertical
lines are output by the system field SY-VLINE or by a field containing
” | ” (vertical bar),
Horizontal
lines are output by the system field SY-ULINE or by a field containing
only ” – ” (minus sign),
Vertical
and horizontal lines converge (without gaps).
Index
© SAP AG 1996

WRITE (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:19

Output to a list
– WRITE f.
Output to a field or internal table
– WRITE f TO g.
– WRITE f TO itab INDEX idx.
Index
© SAP AG 1996

WINDOW (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:18

Basic form
WINDOW STARTING AT x1 y1.
Addition
… ENDING AT x2 y2
Effect
Displays the current secondary list as a modal dialog box (see
CALL SCREEN ). The same rules apply as for
displaying a list on the full screen, i.e. the page size corresponds to the
window size.
The left upper edge of the window appears at column x1 and line y1 . If you do
not specify the addition ENDING AT , the position of the right lower edge
corresponds to the coordinates of the current screen.
You can use variables to specify the coordinates.
All the functions for secondary lists are supported. These include:
Scrolling
in the window.
Hiding
field contents (see HIDE ).
Line
selection in the window (see AT LINE-SELECTION
, …)
Set
the window title (see SET TITLEBAR )
Addition
… ENDING AT x2 y2
Effect
Positions the right lower edge of the window in column x2
and line y2 .
You can use variables to specify the coordinates.
Example
Define a
window covering columns 1 to 79 and lines 15 to 23:
WINDOW STARTING AT 1  15
       ENDING   AT 79 23.
WRITE ‘Text’.
Note
Inserts a window on the normal screen .
You can insert the windows described above only within the context of list
processing, i.e. not until after an interactive event (see AT LINE-SELECTION ).
You can use the technique shown in the example below to insert a window
containing a list during a dialog (see CALL SCREEN
).
Example
Display a list as a modal dialog box:
CALL SCREEN 100.     “Screen of modal dialog box type
*    STARTING AT 10 10  “… can be started as
*    ENDING   at 60 15. “… separate window with
*                       “… these additions
In the flow logic of the screen 100, the processing branches to list processing
in the PBO ( Process Before Output ) module (see LEAVE
TO LIST-PROCESSING ).
Flow logic:
PROCESS BEFORE OUTPUT.
MODULE LIST.
Program:
MODULE LIST OUTPUT.
  LEAVE TO LIST-PROCESSING.
*    AND RETURN TO SCREEN 0. “Alternative to LEAVE SCREEN
*                            “at end
PERFORM OUTPUT. “Output list
  LEAVE SCREEN.
ENDMODULE.
Index
© SAP AG 1996

WHILE (glosario ingles)

Filed under: abap : glosario — bitacorasapabap @ 20:36:17

Basic form
WHILE logexp.
Addition
… VARY f FROM f1 NEXT f2.
Effect
Repeats the processing enclosed between the WHILE and ENDWHILE
statements as long as the logical expression logexp is true.
Checks the condition before each loop pass. If it is no longer true, processing
resumes after ENDWHILE .
You can use the CONTINUE statement to leave the current
loop pass prematurely and skip to the next loop pass.
Example
DATA: SEARCH_ME TYPE I,
      MIN       TYPE I VALUE 0,
      MAX       TYPE I VALUE 1000,
      TRIES     TYPE I,
      NUMBER    TYPE I.
SEARCH_ME = 23.
WHILE NUMBER SEARCH_ME.
  ADD 1 TO TRIES.
  NUMBER = ( MIN + MAX ) / 2.
  IF NUMBER > SEARCH_ME.
    MAX = NUMBER – 1.
  ELSE.
    MIN = NUMBER + 1.
  ENDIF.
ENDWHILE.
The above code performs a (binary) search for the “unknown” number
SEARCH_ME which lies between MIN and MAX . TRIES contains the number of
attempts needed to find it.
Notes
WHILE loops can be nested any number of times within
themselves and other loops.
The termination condition and the processing you want to perform in the loop
should be well thought out beforehand, so as to avoid the occurrence of endless
loops.
Addition
… VARY f FROM f1 NEXT f2.
Effect
Varies the value of the field f during loop processing.
At the start of each loop pass, f receives a new value. During the first loop
pass, f has the value of the field f1 ; on the second loop pass, it has the
value of the field f2 , and so on.
The difference between the fields f1 and f2 determines the size of the step
varying the value of the variable f in all subsequent loop passes, i.e. it is
important that the fields you want to process within the loop have the same
distance between each other in memory (see also DO VARYING
).
If the value of f changes when processing passes through the loop, the new
value is placed in the field fn just assigned (transfer type: by value and
result) at the end of the relevant loop pass. If the loop pass is terminated by
a dialog message, any changed value of f is not transported back for this loop
pass.
VARY can declare any number of variables.
Example
DATA: BEGIN OF WORD,
        ONE   VALUE ‘E’,
        TWO   VALUE ‘x’,
        THREE VALUE ‘a’,
        FOUR  VALUE ‘m’,
        FIVE  VALUE ‘p’,
        SIX   VALUE ‘l’,
        SEVEN VALUE ‘e’,
        EIGHT VALUE ‘!’,
      END   OF WORD,
      LETTER1, LETTER2.
WHILE LETTER2 ‘!’
  VARY LETTER1 FROM WORD-ONE NEXT WORD-THREE
  VARY LETTER2 FROM WORD-TWO NEXT WORD-FOUR.
  WRITE: LETTER1, LETTER2.
ENDWHILE.
This code outputs the character string
” E x a m p l e !” .
Note
If VARY fields (i.e. fields which are filled with a new
value on every loop pass) also occur in the WHILE condition, you must ensure
that the WHILE condition is evaluated first. Then, if the WHILE condition is
(still) true, the VARY fields can be reset.
Related DO , LOOP .
Index
© SAP AG 1996

Older Posts »

Blog de WordPress.com.