FAQ: SAP ABAP Interactive Lists/ Reports
Q1: What is the significance of a stacked list?
A1: The secondary list is also called the stacked list and it will be shown on the entire screen if we don’t write its coordinates of the command window.
Q2: When it’s the right time to utilize the command GET CURSOR in interactive lists?
A2: The command GET CURSOR will be utilized when the hidden information is not enough for tracing the selected line, this command will give us the field name where the cursor is positioned in field that will be specified subsequently to the addition field. The selected field value will be in a field specified subsequently to the value.
Q3: How do we keep lists?
A3: The return from a high level in the list on the immediate lower position (SY-LSIND) is made by using Back from the secondary list. In this way the actual list that is displayed will disappear and we will see the previously made list. The list that disappeared was released by the system and deleted. The SY-LSIND field must be configured for indicating the list level at which we want the output to be. Just the index values that are the same with the levels of the list are accepted by the system and the list levels that have a higher index than the one we indicate or equal with it will be erased by the system. For instance when we configure SY-LSIND to be 0, every secondary list will be erased by the system and the basic list will be replaced by the actual secondary list.
Q4: What is the meaning of secondary lists?
A4: With secondary lists, the details from the basic list can be improved and if for instance, we want to choose a line from the basic list and we want more details about it to be displayed we can do it. The secondary information will be shown on the secondary list, which can be as an overlay of the basic list or it can appear in a separate window and this secondary list can be dynamical as well.
Q5: What is interactive reporting?
A5: With the use of interactive reporting we can be present in an active mode at the data presentation in a session. Actually, interactive reporting generates a simple list that encapsulates the details, it can be extended and we can see the details with the aid of the cursor or commands. Interactive reporting lowers the amount of retrieved details to the real requirement of data.
Q6: Which are the event keywords used in interactive reporting?
A6: AT LINE-SELECTION-this is a time when we choose a line with a double-click on the line or by moving the cursor over the line and hitting F2.
AT USER-COMMAND- this is a time when we hit a function key. TOP-OF-PAGE DURING LINE-SELECTION-this is a time when, while the list is processing a secondary list, a new page is starting.
Q7: Is it possible to invoke transactions or reports from the interactive reporting lists?
A7: Yes, it is possible because with interactive reporting we can as well invoke transactions or different reports from the lists, in this way the programs will use the values that are shown in the list as their input information. As an example, a transaction can be invoked from a list and the database table that shows its data in the list can be modified.
Q8: How can we make user interfaces for a list?
A8: A graphical user interface or GUI is made automatically if we have a list with simple functions regarding list processing like list printing or saving, the GUI is made by the R/3 system. For more complicated functions like pushbuttons for example, we have to define our personal interface status and for making a new status we have the Menu Painter from the Development Workbench. In this way we can generate toolbars or menus for the program, we can also put shortcut keys for various functions.When the statement block of AT END_OF_SELECTION is started the status of the main list can be enabled with the SET PF-STATUS “STATUS” statement.
Q9: What page headers do the secondary lists have?
A9: There is no standard page header regarding secondary lists and also there is no event TOP-OF-PAGE triggered by the system, so for making page headers for secondary lists we have to improve the TOP-OF-PAGE. When we use TOP-OF-PAGE DURING LINE-SELECTION this event will be invoked for every secondary list, when we want to make separate page headers for each specific list level, the processing block correspondent to this event has to be configured for this like for instance when we use SY-LSIND(system field) and SY-PFKEY.
Q10: Which is the best way to choose valid lines for a secondary list?
A10: There are many ways for us to avoid the use of invalid lines in ABAP/4 like the ones below. When the processing block END-OF-SELECTION finishes we have to erase the field content that we deposited in the past for valid lines with the aid of the HIDE statement. We must verify if the work place is the default one or if the HIDE statement deposited the content of the field in this place, this is done when the AT LINE-SELECTION event occurs. We can make a secondary list because we deposited the content of the field just for valid lines, we have to clean the workplace one more time for avoiding the creation of other secondary lists by the user starting from the secondary list on the screen.
Q11: When we make a new list, is it true that the main list will be erased?
A11: No way, the main list will not be erased and we can access it with the aid of the standard navigation functions such as the back or cancel buttons.
Q12: In what way should we transfer data from a list to a report?
A12: In ABAP/4 this can be made in 3 ways:
a) By fetching the data with the aid of statements.
b) By making an automated data transfer with the aid of the system fields.
c) By transferring the attributes of the list.
Q13: What is the standard construction of an ABAP application?
A13: The basic construction of an ABAP program is made of these steps:
a) The Reports are defined.
b) The Data and tables are defined.
c) The events are initialized.
d) We have the Screen Select Options and Inputs.
e) The selection screen events.
f) The start of selection events.
g) Performs and Events Statements.
h) The End-of selection event
i) The Initialization.
Q14: What is the significance of hotspots?
A14: The list place that makes our mouse pointer looking like an upright hand is called a hotspot, when a hotspot is active, single clicking is equivalent to double-clicking. This feature is compatible with versions 3.0c and above of SAP R/3.
Q15: What is the system field that has the name of the actual GUI STATUS?
A15: The System field SY-PFKEY contains the actual GUI STATUS name.
Q16: What is the meaning of report transaction and how are programscalled??
A16: The reports in ABAP can be called like transactions: for calling and returning- SUBMIT AND RETURN CALL TRANSACTION, for calling and not returning- SUBMIT LEAVE TO TRANSACTION. When we make an extensive application and we make one program, it will be very complicated and for reading the program in a simple way it is recommended to split the functions needed among the programs.
Q17: What is the meaning of Form Event?
A17: Form Event is just like PERFORM/SUBROUTINES, it STARTS by FORM and finishes by ENDFORM and the statements from ENDFORM to the finish of the application are not processed at all, every statement from ENDFORM to the event keyword will not be processed.
Q18: How do we describe START –OF-SELECTION and END-OF-SELECTION?
A18: The start and the finish of the main processing logic, which is default for every ABAP/4 application; the statements from START-OF-SELECTION to END-OF-SELECTION are executed automatically, there is no requirement for having END-OF-SELECTION. Every procedural statement in ABAP applications are dependent by default on the START-OF-SELECTION.
Q19: How do we transfer data by program statements?
A19: For transferring single output fields or supplementary details from lines to the processing blocks in the time of interactive events the following statements will be written: HIDE, READ LINE, GET CURSOR, SET CURSOR and others.
Q20: What system fields do we use for interactive reporting?
A20: The index of the actual list is found in the system field SY-LSIND , at the time of making the main list SY-LSIND is 0. The system fields below are configured automatically by the system at every interactive event: the system field information, SY-LINCT the whole line number of a list, SY-LINNO the number of line where the cursor is found, SY-LSIND is the index of the presently made list( in the time of the actual event-0), SY-LISTI is the index of the level that invoked the event, SYLILLI is the line number that invoked the event, SY-LISEL represents the content of the line that invoked the event, SY-CUROW represents the place in the window that the line which invoked the event has (beginning from 1), SY-CUCOL is the place in the window where the column that invoked the event is found (beginning from 2), SY-UCOMM represents the function code which invoked the event, SY-PFKEY has the actual list status.
Q21: How do we describe the HIDE AREA?
A21: With the aid of the HIDE command we can deploy the field content from actual line in a place that is named the HIDE AREA. This place a system controlled memory and the field content will be moved from the HIDE AREA when the interactive event occurs. If we invoke a secondary list from the HIDE AREA the values that were deposited will be moved in the program variables. When we write the program we have to use the HIDE statement in the present line after we use the WRITE statement.
Q22: What is the usage of GET CURSOR and SET CURSOR?
A22: GET CURSOR LINE and GET CURSOR FIELDare statements that we use to transfer an output fieldand an output line where, in the time of the interactive event the cursor was placed. Example of syntax: GET CUROSR FIELD [OFFSET] [LINE] [VALUE] [LENGTH]. SET CURSORis a statement used to set the cursor the latest list made which when we make a basic or main list, the latest will be exactly this one: the basic list. The basic list will become previous when we make a secondary list. The set cursor statement also places the cursor on the column that is on the output window’s line.
Q23: How do we get data from the system fields of interactive lists?
A23: The details that we get from the system fields are: the list index, the coordinates of the list in the output window and the place where the cursor is found. The system field which has the chosen line contents is SY-LISEL only.
Q24: What is the role of the READ LINE and READ CURRENT LINE statements?
A24: These statements are used for reading the current list level data lines explicitly and they are linked together with the technique named HIDE. The syntax looks like this: READ LINE [INDEX] [FIELD VALUE [INTO]] [OF CURRENT PAGE | OF PAGE]. We can see this example: READ LINE SY-INDEX FIELD VALUE BOX.