Lesson 9 Dialogs and Screens
Screens are made up of more than just a monitor display with input and output fields.
Screens'  integration with the ABAP-Dictionary allows the system to perform  consistency checks for their input fields automatically. These checks  include required input check, type checks, foreign key checks, and fixed  value checks. All of these checks rely upon ABAP Dictionary  information.
Checks  like the ones above can be complemented by other program specific  checks. There are techniques available for screens that allow you to  control in what order checks are then performed.
When  an error is detected, the corresponding field is called and displayed  ready for input. Screen layout is also very flexible. Input fie lds,  output fields, radio buttons, check boxes, and even pushbuttons can be  placed on screens. They allow users to determine in which direction the  program will proceed.
On  the whole, such user influence on program progression allows for more  program flexibility in those programs that do contain screens.
You can call screens from any ABAP processing block that you want.
You can link several screens to one another and then call them from within a program by simply calling the first screen.
Some ABAP programs are made up exclusively of screens and their correponding ABAP
processing blocks. In this case the first screen is called directly using a transaction code.
Double-click on an entry in the basic list 'timetable' to reach a screen. This screen displays data
The major steps in creating a screen:
specifying its properties (Screen Attributes)
specifying its layout (in Fullscreen Editor)
defining attributes for the elements on the screen (Field List)
programming its flow logic
You  should be able to call your screen by double -clicking a line within  the basic list and you should be able to return to the basic list by  choosing the appropriate function key on the screen. 
There are several ways to create screens:
Forward  Navigation: You can create screens from within the ABAP Editor by  double –clicking on the screen number. This transfers you into Screen  Painter automatically
Object Navigator: You can also create a screen from the object list in the Object Navigator 
When creating a screen for the first time the system will ask you to enter screen attributes. Enter a short description of the screen, select screen type Normal and enter the number of the subsequent screen in the Next Screen input field.
If you enter 0 or leave the Next Screen field  blank, the system first processes your screen completely and then  returns to processing the program at the point immediately following the  screen call. Be aware that in the Next screen input field, the 0 is suppressed, since it is the same as the initial value of the field.
There are two ways of assigning field attributes to screen fields:
Adopt them from the Dictionary: You can adopt types and field attributes from existing
ABAP Dictionary structures. This makes all information about the object available to you,
including  semantic information about its data elements and foreign key  dependencies. The name of the Dictionary field is automatically adopted  as a field name.
Adopt them from a program:  You can adopt field attributes from data objects already defined within  a program. In order to do this, however, an activated copy of the  program must already exist. The name of the data object is automatically  adopted as a field name.
The  Graphical Screen Painter's interface allows you to define screen  elements (for example, input and output fields, keyword texts, borders,  and so on) with relative ease. Choose the desired screen element from  the column on the left and then place it on the screen using your mouse.
You can delete screen elements simply by selecting them with your mouse and then choosing delete. 
You can move screen elements by holding down your left mouse button and dragging them to a new position.
You can maintain screen field attributes by selecting a field and choosing Attributes.
You  can classify certain fields as 'mandatory'.(. "Required field"). A  question mark is displayed at runtime if the field is initial.
If  not all required fields have been filled at runtime and a user action  is performed, an error dialog is triggered and all input fields are once  again displayed ready for input.
You can also edit screen field attributes by choosing Field list.
The field list is then displayed as a tab.
This same function can also be accessed in a different format from within the Graphical Screen Painter.
The statement TABLES declares an internal data object that serves as an interface for the screen.  
TABLES always refers to a structure that is defined in the ABAP Dictionary.
If a TABLES statement  and a screen field both refer to the same Dictionary structure, this  data object's data is transported to the screen fields every time the  screen is called. Any new entries or changes that the user makes on the  screen are then transferred back into this data object.
Data transport takes place automatically between screens and program data objects of the same name:
Immediately before a screen is sent to the presentation server (after all PBO event  modules have been processed) the system copies field contents out of  the ABAP work area into their corresponding fields in the screen work  area.
ABAP statements facilitate data transport between program data objects and the work area designated as the screen interface.
Data transport takes place automatically between screens and program data objects of the same name:
Immediately after a user action (before the first PAI module  has been processed) the system copies field contents out of the screen  work area and into their corresponding fields in the ABAP work area.
ABAP statements facilitate data transport between the work area designated as the screen interface and program data objects.
In  order to ensure that the database data that is displayed on the screen  is up-to-date, the record is read again from the database at the  beginning of AT LINE-SELECTION.
 Advantages of this method:
 For  the basic list, only those columns of the database table that are  displayed on the list need to be read. This can improve performance with  large lists.
 The  data that is displayed on the screen is always up-to-date, even if the  data record selected has only just been changed using this program. This  would not happen if all screen data was placed in the HIDE area when the basic list is created.
 Changes  made to the database using the screen do not lead to incorrect values  in the basic list, as the modifiable fields are not contained in the  list.
 Looking ahead to the lock concept: The lock times can be shortened. You find more detailed information on this topic in the Database Dialogs II unit.
 The  program can be extended: Additional information from the data record  can be displayed on the screen without having to make many changes.
To display data on the screen, the TABLES structure  must be filled with current data before the screen is sent to the  presentation server. The example above shows one way of doing this.
The data record is read from the database using SELECT SINGLE.  This ensures that the structure contains current data, even if the user  has just changed the data. The structure is assigned the same type as  the database table line type, so that suitable fields are available for  all data in the data record.
The system transports the structure data to the screen fields automatically.
Each screen has two corresponding event blocks:
PROCESS BEFORE OUTPUT (PBO) is processed immediately before a screen is displayed. At this time modules are called that take care of tasks such as inserting recommended values into input fields.
PROCESS AFTER INPUT (PAI) is processed immediately after a user action. All program logic that is influenced by user action must be processed at PAI. You will learn more about this in step three.
Note: The code for the events PBO and PAI is written using the Screen Painter and not the ABAP Editor. These two event blocks make up a screen's flow logic.
When programming flow logic, use the set of commands called Screen ABAP. MODULE  is the most important Screen ABAP command. It calls a special ABAP processing block called a module.
Modules are  ABAP processing blocks with no interface that can only be called from  within a program's flow logic. Modules begin with the ABAP statement MODULE and end at ENDMODULE. 
Program logic that logically belongs to a specific screen should normally be processed at the screen's PBO and PAI events.
If you enter 0 or leave the Next Screen field  blank, the system first processes your screen completely and then  carries on processing the program from where the screen was called.
If you set the Next screen of screen 100 to 100, the system processes the screen again, after it has finished processing the PAI module.
You can use the ABAP statement SET SCREEN  within a PAI module to override dynamically the value set in the Next screen attribute.
Often the same screen number is entered in both the Screen number and Next screen fields. In this case, when you choose Enter, a  field check is performed and the system returns you to the same screen.  In order to leave the screen, an appropriate pushbutton must be defined  that then triggers a Next screen change within the PAI module.
With the help of the OK_CODE field, different program logic can now be processed by the PAI modules depending on what the user inputs.
If an OK_CODE field  is not initialized, errors can occur since not every pushbutton is  required to have a function code. There are two ways of doing this:
 Initialize the OK_CODE field  in a PBO module. Then it is set to the initial value at PAI, unless the  user has carried out a user action to which a function code is  assigned. In this case, the OK_CODE field contains the function code.
 Use an auxiliary field and copy the contents of the OK_CODE field to the auxiliary field in a PAI module, and then initialize the OK_CODE field. In this case, the auxiliary field must be queried in the PAI module for the function code evaluation.
You can implement calls such as MODULE within a screen's flow controls (PBO and PAI events). 
The modules themselves are, however, created using ABAP.
There are two ways to create a module:
using forward navigation: Double-click on the module name from within the Screen Painter Editor to create the module.
Using the Object Navigator:  If you want to create a module using the object list in the Object  Navigator, first display your program, then choose 'PBO module' or 'PAI  module' in the ProgramObjects display and create a new development object by selecting the create icon.
A module can be called from more than one screen. (Reusability)
No comments:
Post a Comment