CT-Professional_100 – High-Quality-CBT

Course 4: “Field symbols, SELECT clauses and list commands …”

The course 4 focuses among other things on the use of field symbols. Here you will find a powerful feature to work with variables. Further the typical commands for the report list processing, data gathering, comparing of different variable types and so forth are described.

Together with the courses 1 – 4 you should be able to realize programming demands of the subject “list generation”. It should now not be difficult for you to explorer further commands on your own within the SAP® system.

How much learning content is available?

The course 1 consists of approx. 2500 text sections with approx. 10000 lines in total and 118 formal and example reports. The report examples are illustrated through approx. 400 overlay drawings within the syntax explanations and during the debugging session.

The single topics of each lesson are subsequently listed here as a continuous text. These are mainly the headings from the single text elements. They give an overview of the volume and the detailed structure of the presented knowledge. Of course these course information are properly arranged in the learning tool. You can determine the processing sequence of the single topics and you can:

  • follow the “red thread or learning path” or
  • branch into another learn mode or
  • call individual courses by using direct access or
  • display text elements or
  • access report examples or
  • use the CT-Debug_Simulator.

A detailed listing of the course content

We subsequently listed the essential contents of each course as continuous text. These are mainly the headings of the single text elements. Please look at the volume of the respective course (… and show us something comparable …). Of course these course information are properly arranged in the learning tool.

Continuous text:

arious Addressing Modes . What Is a Field Symbol? . What Is the Effect of the Command “ASSIGN …”? . Which Commands Belong to the Command Group “ASSIGN…”? . Using a Variable under a Different Name . Changing Data Field Attributes . Editing Subparts of Data Fields . Treating Field Symbols Like Data Fields . General Information Concerning the addressing of … . Data Declaration and Field Attributes . Transfer of Field Attributes to the Variable Type . Transferring Field Attributes . Transferring Existing Field Attributes to Field . Differentiated Processing of Data Fields . ASSIGN v1 TO <FS> (General Command Syntax) . ASSIGN . v1 (transmit area/source field) . TO <FS> . The Command ASSIGN (Fundamentals) . General Informations on Field Symbols . The Field Symbol, a Special Variable Type . Assigning of Field Attributes . A Field Symbol Does Not Occupy Any . A Data Field with Multiple Field Symbols . Field Symbols with Variable Field Attributes . Basic Effects of “ASSIGN …” . Declared Data Fields (= Variables) Receive Field Symbol Names . Usage of Previously Allocated Memory . Modifications Take Effect in the Original Field . Declaring the Involved Command Variables . Declaring Real Memory Locations . Declaring Field Symbols . Command Modes of “ASSIGN …” . ASSIGN v1 TO <fs>. . ASSIGN v1+o(l) TO <fs> . ASSIGN <fs1>+o(l) TO <fs2> . ASSIGN (v1) TO <fs> . ASSIGN TABLE FIELD (v1) TO <fs1> . ASSIGN COMPONENT n OF STRUCTURE struc TO <fs1> . ASSIGN LOCAL COPY OF MAIN TABLE FIELD (v1) TO <fs1> . Application Levels of “ASSIGN …” . Association of Data Fields to Field Symbols . Assignment of Declared Memory Areas . Single Fields . Internal Structures (Internal Field Strings) . Literals . Internal Tables . External Structures (External Table Fields) . Assignment of Addresses . Field Symbols . Addressing Modes . Symbolic Addressing . Further Information . Relative Addressing . Addressing by Field Symbols . Further Information . Time of memory assignment . Static ASSIGN . Adressing Modes . Static ASSIGN Commands . ASSIGN v1 TO <fs1>. . Symbolic Addressing . ASSIGN v1+o(l) TO <fs1>. . Relative Addressing . ASSIGN <fs1>+o(l) TO <fs1>. . Field Symbol Addressing . ASSIGN COMPONENT n OF STRUCTURE stru TO <fs1>. . Addressing Parts of an Internal Structure . Dynamic ASSIGN . Addressing Mode . Dynamic ASSIGN Commands . ASSIGN (v1) TO <fs1>. . Symbolic Addressing . ASSIGN TABLE FIELD (v1) TO <fs1>. . Symbolic Addressing External Table Field . ASSIGN LOCAL COPY OF MAIN TABLE FIELD (v1) TO <fs1>. . Symbolic Addressing (Main Program) . The Scope of Field Symbols in a Program . Global Field Symbol . Local Field Symbol . Changing the Field Type . ASSIGN … TYPE t. . ASSING LOCAL COPY OF v1 TO <fs>. . Modifying a Copy of a Real Data Field . Syntax of the Extension “LOCAL COPY OF” . ASSIGN v1 TO <fs1> – die Adresszuordnung . Short Description . ASSIGN v1 TO <fs1> (Syntax Description) . Name of the Data Field that … . Location of the Declaration . Scope of the Variable . Global Variable . Global Variable Requires Global Field Symbol . Local Variable . Local Variable Requires Local Field Symbol . Name of the field symbol . Using Angle Brackets . Naming . In Practice . Scope of the Field Symbol . Global Field Symbol . Local Field Symbol . Adressing a Field Symbol . TYPE t. . ASSIGN LOCAL COPY OF v1 TO <fs1> TYPE t. . ASSIGN v1 TO <fs1> . LOCAL COPY OF . General Effects of “ASSIGN v1 TO <fs1>” . Copying Field Attributes from Declared Data Fields . Transferred Field Attributes . Address of the Entire Field . The Type of the Data Field (Assigning a Different Type is Another . The Length of the Data Field . Existing Data Declaration as a Prerequisite . Declaring a Field Symbol Using “FIELD-SYMBOLS” . Field Symbols Can Be Treated Like “Normal” Variables . Further Information . Effects of the Command “ASSIGN v1 TO <fs1>” . Addressing Mode . Assigning Different Field Types . Single Fields . C-Fields (Strings) . N-Fields (Numerical Characters, Numbers) . I-Fields (Integer) . P-Fields (Packed Number) . F-Fields (Floating Point Number) . D-Fields (Date) . T-Fields (Time) . X-Fields (Hexadecimal Number) . Internal Structures (as Complete C-Field) . Internal Tables (Processing of the Header Line) . Literals . Numbers as Literals . Character Literal . ASSIGN v1 TO <fs1> in Report Examples . The Sample Programs . Evaluation of the Data Fields . The Association of C-Fields (Strings) . The Association of N-Fields (Numerical Characters, Number) . The Association of I-Fields (Integer) . Hint . The Association of P-Fields (Packed Number) . The Association of F-Fields (Floating Point Number) . Hint . The Association of D-Fields (Date) . Hint . The Association of T-Fields (Time) . Hint . The Association of X-Fields (Hexadecimal) . Example Report XField . Field String Example, Symbolic Adressing . Field Strings as C-Field . Example Report Field String . Associating Internal Table Lines Using ASSIGN . Examples Literals, Symbolic Addressing . Number as “Literal” . Hint . Character Literal . Example Report String . Hint . The Command Extension TYPE t. . ASSIGN v1 TO <fs1> . TYPE t . Appropriate ABAP/4® Commands . The Field Type Conforming with the Field Length . Data Type I = 4 Bytes Origin Field . Data Type F = 8 Bytes Origin Field . Data Type D = 8 Bytes Origin Field . Data Type T = 6 Bytes Origin Field . Other Data Types . DECIMALS n. . Only Suitable for P-Fields . The Extension “LOCAL COPY OF v1 TO <fs1> TYPE t.” . ASSIGN v1 TO <fs1> . LOCAL COPY OF . The Origin Field is not Changed . Local Copy Requires Local Field Symbol . Example Report Local . A Selection of Run Time Errors from Practice . Improper Field Length . Local Data Field – Global Field Symbol . Literals Cannot Be Changed . ASSIGN v1+o(l) … – relative addressing . ASSIGN v1+o(l) TO <fs1> . The 3 syntax areas . ASSIGN . v1 (= declared data field) . TO <FS> . ASSIGN v1+o(l) TO <fs1> (syntax description) . The name of the data field, that transports its field attributes . The location of the declaration . The scope of the variable . The global variable . Global variable requires global field symbol . The local variable . Local variables require local field symbols . The addressing elements offset and length . First an addressing with integers . Example with integers . Here, the relative addressing is … . Example with variable names . Offset “+o” as integer . Only a positive offset is permitted . Omitting the offset specification . Length “(l)” as integer . Only positive numbers are permitted as … . Omitting the length specification . An example from practice . Specification of the length by the asterisk ( * ) . Offset and length can also be contained in variables . The data type of address variables . The valid content of address variables . The instruction word “TO” . The name of the $field symbol$ . Using angle brackets . Naming . The practice . Scope of the field symbol . Global field symbol . Local field symbol . Addressing of the field symbol . ASSIGN v1+o(l) TO <fs1> TYPE t . No conversion when applying “TYPE ‘t'” . LOCAL COPY OF v1+o(l) TO <fs1> . The general functions of “ASSIGN v1+o(l) TO . Copying the field attributes of declared . Transported field attributes . Address of the entire field or . The type of the data field (a different . The length of the data field or a partial length . Existing data declaration as prerequisite . Declaration of the field symbol by “FIELD SYMBOLS” . Field symbols can be treated like “normal” variables . Further information . The effect of the command “ASSIGN v1+o(l) TO <fs1>” . Relative addressing of the origin variable . The essential elements of relative … . Symbolic field name . Offset . Length . Relative addressing by . Offset . Length . Variabler application area . Application fields . ASSIGN AFELD(6) TO <FS1>. . ASSIGN AFELD+3(4) TO <FS1>. . ASSIGN AFELD+0(2) TO <FS1>. . ASSIGN AFELD+3(50) TO <FS1>. . ASSIGN AFELD+22(3) TO <FS1>. . ASSIGN AFELD+3(0) TO <FS1>. . ASSIGN AFELD-3(4) TO <FS1>. . The field content must suit the field type . Destruction of contiguous field contents . Relative addressing of certain data types . Appropriate data types for “ASSIGN …” . C-Fields (strings) . N-Fields (numerical character, number) . D-Fields (date) . T-Fields (time) . X-Fields (hexadecimal number) . Data types that require special attention … . I-Fields (integer) . P-Fields (packed number) . F-Fields (floating point number) . Addressing beyond the data field is problematic . ASSIGN v1+o(l) TO <fs1> in report examples . Evaluation of the data fields . Examples of single fields (suitable for relative addressing) . C-Fields (strings) . Partial association . Relative addressing by numeric values . Relative addressing by addressing fields . Modification only in the addressed part . Addressing other C-fields . N-Fields (numbers) . Partial association . Relative addressing by numeric values . Relative addressing by addressing fields . Modification only in the addressed part . Addressing other N-fields . T-Fields (TIME) . Partial association . T-Fields have a constant field length . Relative addressing by numeric values . Relative addressing by addressing fields . Modification only in the addressed part . Addressing other T-fields . D-Fields (date) . D-Fields have a constant field length . Relative addressing by numeric values . Relative addressing by addressing fields . Modification only in the addressed part . Addressing other D-fields . X-Fields (hexadecimal field) . Partial association . Relative addressing by numeric values . Relative addressing by addressing fields . Modification only in the addressed part . P-Fields (packed field content) . Partial association . Relative addressing of a P-field . Example 1 – 5 . Relative addressing of a I-field . Memory alignment of I-fields . Example 1 – 4 . F-Fields (floating point number) . Partial association . Relative addressing of a F-field . Example 1 – 4 . Possible runtime errors . A choice of runtime errors from practice . Incorrect association of the field symbol . Length incorrect . Negative length . Local variable – global field symbol . Another program’s memory area . ASSIGN <fs1> TO <fs2> – field symbols themseleves . ASSIGN . <Fs1>+o(l) . The name of the 1st field symbol . Location of the declaration . Scope of the field symbol <fs1> . Global field symbol <fs1> . Local field symbol <fs1> . Using angle brackets . Naming . The addressing elements offset and length . Example with integers . Example with variable names . Offset “+o” as integer . Only a positive offset is permitted . Omitting the offset specification . Length “(l)” as integer . Only a positive number is permitted as length . Omitting the length specification . An example from practice (length 0) . Length * (from Release 3.0 upward) . Offset and length can also be contained in variables . Data type of address variables . Valid content of the address variable . Length negative . Instruction word “TO” . Name of the 2nd field symbol . Using angle brackets . Naming . The practice . Scope of the field symbol . Global field symbol . Local field symbol . Addressing of the field symbol . ASSIGN <fs1>+o(l) TO <fs2> . TYPE t . Special hint . ASSIGN <fs1>+o(l) TO <fs2> . LOCAL COPY OF . Copying the field attributes of declared … . Multiple associations of field symbols are … . Transported field attributes . Address region of the first field symbol . The type of the field symbol (a different . The length of the field symbol or a partial length . Declaration of the field symbol by “FIELD SYMBOLS” . An example for the declaration of a field symbol . The field symbol – just an address . Field symbols can be treated like “normal” variables . Further information . The effect of the command “<fs1>+o(l) TO <fs2>” . Comparable functions of … . Relative addressing for the association to the . An example: ASSIGN <fs1>+o(l) TO <fs2> . The essential elements of relative … . The first field symbol (which address … . The address to an address … . Offset . The offset refers to <fs1> . Application options in report examples . General information . Associating a part of a variable . The print output . Unintentional assign of another … . The partial association . The association of the length . Where is actually modified? . A somewhat complicated case . The association in a do-loop . The propagation of the field attributes . Checking the print output . Using “LOCAL COPY OF”. . Partial association to multiple field symbols . The ASSIGN associations in detail: . Field contents before the modification of <FS1> . Associated from CFELD50 to <FS1> . Associated from <FS1> to <LOCFS2> . Modification of the field symbol <FS1> . Field contents a f t e r the modification of <FS1> . Content of CFELD50 . Associated from CFELD50 to <FS1> . Associated from <FS1> to <LOCFS2> as a copy . Summary . Using 2 field symbols with dynamic addressing . For beginners, this example belongs into . The comparison . The inner do-loop . The outer do-loop . Comparing several strings . String1 (outer loop) . String2 (inner loop) . Number of iterations . Calling other programs . CASE v1. WHEN v2. ENDCASE – In the case … . Short description . CASE v1 (match field) . WHEN v2/L . WHEN OTHERS . ENDCASE . The complete syntax . CASE . WHEN x (WHEN y …) . WHEN OTHERS . ENDCASE . The order of the elements of the syntax . The beginning and the end of the CASE command . WHEN . WHEN OTHERS . Description of the elements of the syntax . CASE . v1 . The conditional variable . No alteration of data . Data type adjustment . Pay attention to the length specification . WHEN v2 . The conditional criterion “WHEN” . WHEN condition and WHEN instruction . The WHEN condition . The WHEN instruction . The comparison value . Variable or literal . Multiple use . Data field operations of the instruction section . v2 (Conditional variables) . contents of the variable or of the literal . Data declaration for the variable . The contents od C fields . WHEN OTHERS . Eligible use . OTHERS is used for the “remainig condition” . Summarized formulation . ENDCASE . Ending instruction . A functional analogy . The CASE command in combination with other … . The CASE variable v1 as a main constituent of the CASE query . LOOP . DO Loop . SELECT Loop . Sub programm control using CASE . The parameters of the PERFORM control the “CASE…” . Check of the return code when several acknowledgement . Combinations within the CASE instruction . For the beginning a synopsis of the whole statement . Fixed location for “CASE” … . limiting the report instructions … . Sequence of WHEN queries . Remaining condition by “WHEN OTHERS” . Definition of the CASE variables . A literal as a WHEN variable . Date of the declaration of the variable . Characteristics of the variables v1 und v2/L . Adressing the CASE variables . Problems arising with the CASE comparison of v1 with v2 . Report example (CASE query with C fields) . General explanation for the examples . Core, focus on “CASE/WHEN” . Test case no. 1 til no. 11 . Test case no. 9 contains relative addressing . REPORT CASE N, P, I (CASE queries with fields N, P, I) . Test case no. 1 to no. 6 . Test case no. 7 (Decimal point, I type field) . Test case no. 11 (Decimal point P field) . Test case (Rest) . Report example (CASE querry using P and I type fields) . Test case no. 11 to no. 19 . Report example (CASE query, main focus on P fields) . Report example (CASE query, main focus on D fields) . Report example (CASE query, main focus on X fields) . Report example (CASE query, main focus on T fields) . Test cases 15, 16 . Test case no. 23 . CONDENSE v1 – Push together … ? . Short description . CONDENSE v1 (syntax description) . Using the command . General way of opperation of “CONDENSE” . Only single fields . Only C type data (character strings) . CONDENSE in case of different data types . General mode of operation of “CONDENSE v1” . Removing blanks and left justified alignement . Only a single program variable is processed . C fields (C= character) as the main field of operation . The normal case: CONDENSE of a C field . The location of blank characters is of no importance . CONDENSE v1 NO-GAPS . CONDENSE with a N type field (N= numerical field contents) . The ineffective CONDENSE . CONDENSE with an I type field (I= integer) . The CONDENSE without action (from release 3.0 on: syntax error) . CONDENSE with a P type field (P= packed decimal) . The CONDENSE command is not active … . CONDENSE with an X type field (X= hexadecimal) . The CONDENSE command finds no blanks . CONDENSE with a F type field (F= floating point number) . The CONDENSE searches with no result . CONDENSE with a D type field (D= data field) . The CONDENSE should find no blank characters in a D field . CONDENSE with a T type field (T= time field) . Usually, no application for the CONDENSE command . Global vs. local fields . Change of data fields . No compression on field strings or table header lines . Don´t address data structures with CONDENSE . No good example . The result and the consequences . Process single fields of a data structure with CONDENSE . Report example . Defective application of “CONDENSE” . Correct application of “CONDENSE” . CONDENSE with relative addressing of variables . Process subsets (parts) of fields . The effect of unique “CONDENSE” . The effect of repeated “CONDENSE” in sequence . CONDENSE in a DO-loop . Assembling partial strings . Changing the sequence . “CONDENSE” in a loop command . CONDENSE in connection with a field symbol . Some basics about field symbols . A simple matter … . Symmetrical or non symmetrical distance for ASSIGN . “CONDENSE” on a field symbol in a DO loop . Remember possible applications . Example of report . Field symbols and “CONDENSE” . CONDENSE in connection with REPLACE . Balancing text gaps . The system date is inserted . The system time is transfered to it . The user name is taken over from the system area . Testing own supplements . CONDENSE in connection with run time information . Determine and print out execution times . CONDENSE v1 NO-GAPS . “NO-GAPS” as a supplement to the command “CONDENSE v1” . No blank characters within the condensed Strings . The beginning of the string in the data field . The right part of the data field contains blanks . Only blanks within the string are removed . “NO-GAP” as a supplement to the command “WRITE” . Prerequisites for the application of the command . The program field must be available . Are side effects to be considered? . Only the field mentioned in the command is processed . No further effects after the use of the command . D-fields – within the MOVE command… . Converting of C; N; I; P; F; D; T; X; . The syntax and descriptions of functions of “MOVE …” . The transfer of D fields (individual representation) . General information . The field contents in the Memory . The representation of the field contents in the Memory . The field content in the print output . The printed output of a D-field . The print output after country conversion. . The transfer of a D field in a C-field . The target field is too small . The target field is too large . A date of a D-field is transmitted to a C-field . MOVE D(008) TO C(008). . The Target field of the C type is too large . MOVE D(008) TO C(015). . The Target field of the C type is too small . MOVE D(008) TO C(003). . The transfer of a D-field to an N-field . The target field is too small . The target field is too large . A date is transmitted from a D-field into a . MOVE D(008) TO N(008). . The target field of the N type is too small . MOVE D(008) TO N(006). . The target field of the N type is too large for a date . MOVE D(008) TO N(010). . The transfer of a D-field to an I-field . An I-field accepts a date from a D-field . MOVE D(008) TO I(004). . The maximum date is transmitted ((after this . MOVE D(008) TO I(004). . A incorrect content in a D field is transmitted . MOVE D(008) TO I(004). . The transfer of a D-field to a P-field . The target field is too small . The target field is too large . The transfer of a date of a D-field into a P-field . MOVE D(008) TO P(008). . An invalid date is transmitted into a P-field . MOVE D(008) TO P(008). . Please note: Incorporate plausibility checks. . The transfer of a D-field to a D field . From a D-field to another D-field . MOVE D(008) TO D(008). . D fields amongst each other can not be trusted. . MOVE D(008) TO D(008). . No transfer of a D field to a T-field . A not executable operation . MOVE D(008) TO T(006). . A run-time error results, this conversion is . The transfer of a D field to an X-field . The target field is too small . The target field is too large . A date is transmitted into an X-field . MOVE D(008) TO X(003). . The maximum date “fits” into an X-field with 3 . MOVE D(008) TO X(005). . An invalid date is loaded into an X-field . MOVE D(008) TO X(005). . The target field is too small . MOVE D(008) TO X(002). . The transfer of a D field to an F-field . A date is transmitted into an F-field . MOVE D(008) TO F(008). . Also the maximum “fits” (just) in an F-field . MOVE D(008) TO F(008). . An invalid date is also transmitted to an F-field . MOVE D(008) TO F(008). . T-Felder – within the MOVE … . Converting C; N; I; P; F; D; T; X . The syntax and descriptions of functions of “MOVE …” . The transfer of T-fields (individual display) . The field contents of an data field of the type ‘T’ are . The field content in the Memory . The field contents in the print output . The print output of a T-field . The transfer of a T-field in a C-field . The target field is too small . The target field is too large . A time is transmitted from a T-field to a C-field . MOVE T(006) TO C(006). . A value is copied from a T-field to a C-field . MOVE T(006) TO C(008). . The transfer of a T-field to an N-field . The target field is too small . The target field is too large . A value from a T-field is set into a N-field . MOVE T(006) TO N(006). . The target field is larger than the source field . MOVE T(006) TO N(008). . The transfer of a T-field to an I-field . The transmitted value of a T-field is converted . MOVE T(006) TO I(004). . An I-field can incorporate every valid time in . MOVE T(006) TO I(004). . The transfer of a T-field to a P-field . The target field is too small . The target field is too large . The time from a T-field is also converted for . MOVE T(006) TO P(007). . The P-field must be of 3 Bytes in order to . MOVE T(006) TO P(007). . No transfer of a T-field to a D field . No individual examples . MOVE T(006) TO D(008). . The transfer of the field contents of T to D is . The transfer of a T-field to a T-Feld . The content transfer of a T-field into another T-field occurs . MOVE T(006) TO T(006). . The transfer of a T-field to an X-field . The target field is too small . The target field is too large . A single example . MOVE T(006) TO X(003). . The 3 Bytes of an X-field are sufficient . MOVE T(006) TO X(003). . The transfer of a T-field to an F-field . A floating point field can also incorporate a . MOVE T(006) TO F(008). . A F-field has “sufficient reserves” (1E303) for . MOVE T(006) TO F(008). . READ LINE n – Evaluation of printline n ? . READ LINE N (syntax explanation) . Numerical value is necessary . Invalid line number . HIDE information . SY-SUBRC (return code) . Some notes on use of “READ LINE n” . The different “READ LINE …”-commands . ” READ LINE n1 INDEX n2 ” . ” READ LINE n1 FIELD VALUE V1…” . ” READ LINE n1 FIELD VALUE v1 INTO va…” . READ LINE n1 OF CURRENT PAGE . “READ LINE n1 OF CURRENT PAGE INDEX n2” . “READ LINE n1 OF CURRENT PAGE FIELD VALUE v1 INTO va …” . “READ LINE n1 OF PAGE p1” . “READ LINE n1 OF PAGE p1 INDEX N2” . “READ LINE n1 OF PAGE p1 FIELD VALUE v1 INTO va …” . “READ CURRENT LINE” . “READ CURRENT LINE FIELD VALUE v1 INTO va …” . The point in time “AT LINE SELECTION” . The “HIDE” available after “READ LINE n” . Only existing HIDE information is transmitted back . Reading the print lines in the current list . Basic values of variables in . The absolute line number of the total list . Specifications about list information . “DESCRIBE LIST LINE n1 PAGE n2” . “DESCRIBE LIST PAGE n2” . “… LINES n” . “… LINE-COUNT n” . “… LINE-SIZE n” . “… FIRST-LINE n” . “… HEAD-LINES n” . “… TOP-LINES n” . “… TITLE-LINES n” . “… END-LINES n” . The possible applications in report examples . REPORT READ LINE HIDE . HIDE information . Avoid an endless loop . The print output . HIDE information (processor times) . READ LINE n1 INDEX n2 – Evaluation of printline x on level Y . The short description of “READ LINE n1 INDEX n2” . The command supplements . Numeric literal or variables as an index . A numeric value is necessary . Invalid index specification . HIDE information . SY-SUBRC (return code) . Individual notes on the “READ LINE n1 INDEX n2” . The return code “SY-SUBRC ” . The content of SY-LISEL . The possible applications in report examples . Report-LINE-SELECTION . Start and “operating instructions” . The printed output . The system fields . SY-PAGNO . SY-COLNO . SY-LINNO . SY-LILLI . SY-CUCOL . SY-CUROW . SY-LSIND . SY-DYNNR . SY-CPAGE . SY-PFKEY . SY-UCOMM . SY-UZEIT . SY-LISEL . SY-XCODE . SY-STACO . SY-STARO . Report WITH-WINDOWS . “AT LINE-SELECTION” . “IF SY-LSIND = 1 ” . Evaluation of the INPUT field . Output the print lines to a window . The report (list) outputs . List step 0 – 2 . READ LINE n OF CURRENT PAGE – Printline n of the current page . A short description . The command extensions . “READ LINE n1 OF CURRENT PAGE INDEX n2” . “READ LINE n1 OF CURRENT PAGE FIELD VALUE v1 INTO va …” . line differences between list and screen . Modifications via “NEW-PAGE LINE-COUNT n1” . Notes on use for the CURRENT PAGE READ LINE n OF . The absolute line number within the list . The line number within the current page . Change the line number per page. . The “SCROLL ….” command . The system fields SY-CPAGE and SY-PAGNO . The system field SY-LISEL . The supplement ” … FIELD VALUE ….” . Application possibilities in report examples . REPORT READ LINE . “FORM SELECT-T100 USING SPR ARB MSG STEP” . “AT LINE-SELECTION” . Different line count . “TOP-OF-PAGE” . “TOP-OF-PAGE DURING LINE SELECTION” . REPORT READ LINE CURR . “FORM SELECT-T100” . “AT LINE-SELECTION” . Read headings of the previous list steps . Processor time . READ LINE n1 OF PAGE n2 – Printline n from page m . Short description . “READ LINE n1 OF PAGE n2 INDEX n3” . “READ LINE n1 OF PAGE n2 FIELD VALUE v1 INTO va …” . List pages only in case of “… LINE-COUNT n1” . Specifying the page number as a constant . The validity of the page specification . No numerical specification . The specified page number is too large . The specified number is negative . List line differences Display list . Changes by NEW-PAGE LINE-COUNT n2 . Application notes on “READ LINE n1 OF PAGE n2” . Specifying the line number in “READ LINE n1 …” . The line number within the page “n2” . The line number within the current page . The absolute line number within the list . Example report for “READ LINE …” . Report READ LINE. . “FORM SELECT-T100 USING ‘D’ ’00’ ‘010’” . “TOP-OF-PAGE” . “TOP-OF-PAGE DURING LINE SELECTION” . AT LINE SELECT ION . List output . List level 0 . List level 1 . List level 2 . Indication 1 . Indication 2 . The GROUP clause – Part of SELECT … . “SELECT command … {GROUP BY tf1 tf2 tfn)… . The individual SELECT operation codes . SELECT clause . INTO clause . FROM clause . WHERE clause . GROUP clause . ORDER clause . The direct specification of the GROUP fields . ARBGB SELECT SPRSL … . … MIN( MSGNR ) MAX( MSGNR ) COUNT( MSGNR ) . WHERE SPRSL = ‘D’ … . ARBGB GROUP BY SPRSL . ENDSELECT . Several GROUP fields . The dynamic specification of the GROUP fields as a . The report example 02 . The specification of the internal table “itab” in . The declaration of the internal table “itab” . The names of the GROUP fields in the internal . Parameter lines for the GROUP fields . An empty internal table for GROUP fields . The ORDER cause – Part of SELECT … . “SELECT commands … {ORDER BY spez} . The report example (formal) . The individual constituents of the SELECT command: . SELECT clause . INTO clause . FROM clause . WHERE clause . GROUP clause . ORDER clause . SELECT … ORDER BY PRIMARY KEY … . The report example 01 . ORDER BY PRIMARY KEY . The delivery without ORDER clause . The report example 02 . SELECT * … UP TO 79 ROWS . ORDER BY PRIMARY KEY . “SELECT … ORDER BY PRIMARY KEY in combination with other command clauses . The report example 03 . ORDER BY PRIMARY KEY . No separated specification of “ASCENDING” or . The different external table types . SELECT … ORDER BY tf1 {ASCENDING | DESCENDING} tfn … . The report example 04 . ORDER BY MSGNR DESCENDING . The validity of this ORDER clause . Do not let the DB server sort . SELECT … ORDER BY (itab) . The report example 05 . …ORDER BY (TABFIELD) . The table name must be parenthesized . Point in time of completion of “itab” . An empty control table “itab” . Defective field (array) names in “iatab” . String – and range operators – WHERE clause . The formal application options of … . String operators . LIKE ‘string’ . CO, CN , CA , NA, CS, NS, CP, NP . IS ZERO . Range operators . BETWEEN lv1 AND lv2 . IN (lf1, lf2 …) . The use of the operators (value ranges, . The interrelationship of WHERE clause and SELECT command . SELECT command {INTO destination} FROM source {WHERE cond} . The different clauses of the SELECT command . SELECT clause . INTO clause . FROM clause . WHERE clause . GROUP clause . ORDER clause . The WHERE clause in different commands . SELECT … . UPDATE … . DELETE … . OPEN CURSOR … . LOOP AT itab … . The operator “LIKE” in the WHERE clause ” . WHERE tf1 LIKE lv2 . The report example 01 . WHERE … LIKE … . Wildcard character . The tf1 table field . The permissible data types from DB point of view . The command word “LIKE” . The lv2 reference value . Take account of uppercase/lowercase . The length of the comparison string . The wildcard characters . The comparison field . The report example 02 . The data declaration of CFIELD . The variable specification without . The NOT operator . WHERE tf1 LIKE lv2 ESCAPE lv3 . The report example 03 . The individual conditions . The special character ‘$’ (or any other . List output . The string operators in the WHERE . A listing of string operators for LOOP AT itab. . CO = Contains only . CN = Contains not only . CA = Contains any . NA = Contains not any . CS = Contains string . NS = Contains not string . CP = Contains pattern . NP = Contains not pattern . WHERE tf1 strOP lv2 (only with “LOOP AT itab…”) . The report example 04 . The tf1 table field . String operators (lsOp) . The comparison field as a 2nd operand (lv2) . The operator “IS ZERO” in the WHERE . WHERE tf1 IS ZERO … . The report example 05 . WHERE tf1 IS NOT ZERO . The “BETWEEN lv2 AND lv3” operator in the . WHERE tf1 BETWEEN lv2 AND lv3 . The report example 06 . MSGNR BETWEEN ‘050’ AND ‘999’ . A general note . “WHERE …BETWEEN” comparable with “IF …” . The tf1 table field . The command word “BETWEEN” . The range of values “lv2 AND” lv3 . Numerical literal or variable specification . The report example 07 . MSGNR BETWEEN LOW1 AND HIGH1 . Literal and variables jointly . The operator “IN (lf2, lv3 …)” in the WHERE clause ” . WHERE tf1 IN (lv2, lv3, lv4 …) . The report example 08 . The WHERE clause . The incomplete primary key . The tf1 table field . The command word “IN” . The reference values in the bracket term . The logical combination within the brackets . Join the IN operator with NOT . Set the reference values into variables . Fill the variables before the SELECT . The report example 09 . The individual values contained in . Determine the individual values in the . Changes within the SELECT loop . Some information on the practical use of the string . The specification of a “WHERE … BETWEEN…” value range . The range of values “lv2 AND lv3” . First name the smaller value . No direct value as a literal substitute . The application areas of WHERE … BETWEEN” . SELECT * FROM etab WHERE … BETWEEN … . LOOP AT itab WHERE …BETWEEN … . DELETE FROM etab WHERE … BETWEEN … . UPDATE in conjunction with WHERE … BETWEEN . A report example with “SELECT … WHERE … BETWEEN” . The specification of character patterns in “WHERE … LIKE …” . The wildcard characters of the “LIKE” operator . The character “_” (underscore character) . The “%” character (percent) . The areas of application of WHERE … LIKE… . SELECT * FROM etab WHERE … LIKE … . DELETE FROM etab WHERE … LIKE … . Warning … . LOOP AT itab WHERE … LIKE … . UPDATE in conjunction with WHERE … LIKE…. . A report example with “SELECT …WHERE…LIKE” . The use of WHERE tf1 IN (lv2, lv3, lv4 …) . An report example with “SELECT … WHERE … IN individual value” . The string operators in the WHERE clause . General information . String operators only in “LOOP AT itab WHERE …” . . Relative addressing in “LOOP AT itab WHERE …”. . The SY-FDPOS system field . The string operator CO (tf1 contains only) . An example report with “LOOP … WHERE … CO” . The string operator CN (tf1 contains not only) . An example report with “loop … WHERE … CN” . The string operator CA (tf1 contains any) . An example report with “LOOP … WHERE … CA” . The string operator NA (tf1 contains not any) . An example report with “LOOP … WHERE … CA” . The string operator CS (tf1 contains string) . An example report with “LOOP … WHERE … CS” . The string operator NS (tf1 contains NOT string ) . An example report with “LOOP … WHERE … NS” . The string operator CP (tf1 contains pattern) . Wildcard characters . The “+” character . The character * . An example report with “LOOP … WHERE … CP” . The string operator NP (tf1 contains not pattern) . An example report with “LOOP … WHERE … CP” . “LOOP-WHERE-BETWEEN” REPORT . SELECT-WHERE-LIKE REPORT . The wildcard character ‘%’ . Uppercase/lowercase . SELECT-WHERE-IN-FIELD1 REPORT . LOOP-WHERE-CO-REPORT . LOOP-WHERE-CN-REPORT . LOOP-WHERE-CA-REPORT . LOOP-WHERE-NA-REPORT . “LOOP-WHERE-CS” REPORT . LOOP-WHERE-NS-REPORT . LOOP-WHERE-CP-REPORT . Further parameter entries . LOOP-WHERE-NP-REPORT . Further parameter entries . Trial 1 up to 3 . Dynamic elements – SELECT, WHERE clause . Dynamic WHERE clause; ranges of values . Create selection tables for WHERE …; inclusive; . SELECT … WHERE tf1 . The WHERE clause in conjunction with WHERE tables . Table content with elements of the WHERE clause . SELECT … WHERE tf1 IN itab . SELECT … FOR ALL ENTRIES in vtab . Table content with code lines for representation of the . SELECT WHERE … (itab) . SELECT … WHERE logBed AND (itab) . The correlation between WHERE clause and . SELECT command {INTO destination} FROM source {WHERE cond} . The various clauses of the SELECT command . SELECT clause . INTO clause . FROM clause . WHERE clause . GROUP clause . ORDER clause . The WHERE clause in different commands . SELECT … . UPDATE etab SET tf1… WHERE condition … . DELETE FROM etab WHERE condition … . OPEN CURSOR cf1 FOR SELECT … WHERE . LOOP AT itab WHERE condition … . WHERE clauses with dynamic elements . SELECT … WHERE tf1 IN itab . SELECT … FOR ALL ENTRIES in vtab . SELECT WHERE … (itab) . SELECT … WHERE logBed ND (itab) . The operator in “… WHERE tf1 IN itab …” . WHERE tf1 IN itab . The example report 01 . The search terms in ITAB1 . The WHERE condition . The sequence of entries in ITAB1 . The tf1 table field . The command word “IN” . The reference values in the internal table . A empty internal table . The use of multiple operators “IN itab” . The application of “SELECT OPTIONS …” . Program-internal generation of the SELECT . The example report 02 . The WHERE conditions . Table declaration . USER input after start of program . The individual specifications of . The operator in “… FOR ALL ENTRIES IN vtab WHERE…” . The difference to “WHERE tf1 IN itab …” . The application “ENTRIES FOR ALL … …” only . Exclusion of operators . The example report 03 . IT declaration . The search keys in IT . The conversion of the SELECT command . The operator in “… WHERE (itab) …” . The example report 04 . Declaration of ITAB . “APPEND ‘literal’ TO ITAB . WHERE (itab) . The list result . The effect and possible application of the dynamic . Use is only allowed in the SELECT command . UPDATE … . DELETE … . OPEN CURSOR … . LOOP AT itab … . The effect in the case of empty table (itab) . Formal prerequisites for the content of “itab” . Layout of the individual conditions as in the . Only the specification of actual values is allowed . The format of the itab table . The parentheses (round brackets) around (itab) . The last individual condition without full . The use of the different operators . Boolean operators (AND, OR, NOT) . The combination with other operators . The example report 05 . SPRSL EQ ”D” AMD ‘ . ‘ARBGB IN (”04 ”, 06) AND’ . MSGNR GT 100 AND . TEXT like ‘%bitte% . Syntax check and run-time error . No complete syntax check for control of the . Run-time error caused by invalid entry in (itab) . The operator in “… WHERE logBed . The variable individual condition check . The permissible boolean operators . The report example 06 . PARAMETERS . The internal table “ITAB” . The WHERE clause . The application of WHERE tf1 IN itab . The selection table is in the centre of interest . The structure of the selection table itab . The example report 07 . The individual fields of the table “SELTAB” . Selection condition (IE, C1) . I. = inclusive . An example on the SELTAB table . E = exclusive . An example on the SELTAB table . Selection operator (ORDER C2) . Selection value LOW (C, n) . Selection value HIGH (C, n) . An empty selection table . Complete (unintentional) deletion of tables . Portion-wise processing for COMMIT WORK . General procedure . The areas of application of “WHERE … IN … itab” . SELECT * FROM etab WHERE … IN itab . DELETE FROM etab WHERE … IN itab . LOOP AT itab WHERE … IN itab . UPDATE in conjunction with WHERE… IN itab . An example report with “select … WHERE … IN itab” . Possible applications in example reports . SELECT WHERE IN ITAB REPORT . Selection condition (C, 1) . Selection operator (C, 2) . Selection value LOW (C, n) . Selection value HIGH (C, n) .