Tuesday, 3 September 2013

SEPTEMBER 3

Programs using message class:

*&---------------------------------------------------------------------*
*& Report  Z92PROGRAM4
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z92PROGRAM4.

 
PARAMETERS: username TYPE char10.
PARAMETERS: password TYPE char10.

        
IF  
     USERNAME = 'SAPHUB' AND PASSWORD NE 'KHUSHI'.
     
CLEAR USERNAME. CLEAR PASSWORD.
         
MESSAGE 'INCORRECT PASSWORD, PLZ ENTER CORRECT PASSWORD'     TYPE 'I'.

         
ELSEIF
           USERNAME 
NE 'SAPHUB' AND PASSWORD = 'KHUSHI'.
            
CLEAR USERNAME. CLEAR PASSWORD.
           
MESSAGE 'INCORRECT USERNAME, PLZ ENTER CORRECT USERNAME' TYPE 'I'.

           
ELSEIF
             USERNAME 
NE 'SAPHUD' AND PASSWORD NE 'KHUSHI'.
              
CLEAR USERNAME. CLEAR PASSWORD.
             
MESSAGE 'INCORRECT USERNAME AND PASSWORD , PLZ ENTER CORRECT USERNAME AND PASSWORD' TYPE 'I'.
           
  ELSE.
      
 MESSAGE 'YOU MAY PROCEED' TYPE 'I'.
      
 WRITE : / 'USERNAME :' , USERNAME,
       / 
'PASSWORD:' , PASSWORD.
        
ENDIF.
          AT SELECTION-SCREEN OUTPUT.
     
LOOP AT SCREEN.
    
IF screen-name = 'PASSWORD'.
      
screen-invisible = 01.
      
MODIFY SCREEN.
     
ENDIF.
  
ENDLOOP
.

Monday, 2 September 2013

SEPTEMBER 2

 EXAMPLE-1:


**&-------------------------------------------------------------------*
*& Report  Zprogram
*&
*&-------------------------------------------------------------------*
*& Demo for Screen Painter.
*&
*&-------------------------------------------------------------------*
REPORT  ZPROGRAM.
******************************************************************
* TABLE DECLARATIONS.
******************************************************************
  
TABLES : zstudents.
******************************************************************
* DATA DECLARATIONS.
*****************************************************************
DATA :  rollnum TYPE zstudents-rollnum,
       name 
TYPE zstudents-name,
       phone 
TYPE zstudents-phone,
       address 
TYPE zstudents-address,

       DISPLAY 
TYPE C,
       
CLEAR TYPE C,
       
EXIT TYPE C,
       OK_CODE 
LIKE SY-UCOMM.
*****************************************************************
* CALLING SCREEN.
*****************************************************************
CALL SCREEN 100.
*&--------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&--------------------------------------------------------------*
*       text
*--------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
* SET PF-STATUS 'ZMENU'.
*  SET TITLEBAR 'ZMENU_PAINTER'.
CASE SY-UCOMM.
    
WHEN 'EXIT'.
      
LEAVE PROGRAM.
    
WHEN 'DISPLAY'.
      
SELECT SINGLE rollnum name phone address FROM zstudents
           
INTO (zstudents-rollnum , zstudents-name , zstudents-phone, zstudents-address)
      
WHERE rollnum = zstudents-rollnum.
WHEN 'CLEAR'.
      
CLEAR zstudents.
  
ENDCASE.
ENDMODULE.                 " STATUS_0100  OUTPUT&---------------------------------------------------------------------*


EXAMPLE-2:

*&---------------------------------------------------------------------*
*& REPORT ZDEMO_MULTIPLE_SUBSCREEN
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZDEMO_MULTIPLE_SUBSCREEN.
DATA :
      NAME(
20),  "NAME
      PHYSICS 
TYPE I,
      CHEMISTRY 
TYPE I ,
      MATHS 
TYPE I,
     TOTAL 
TYPE I ,   "TOTAL MARKS
      PERCENTAGE 
TYPE I,  "PERCENTAGE
      RESULT(
5).          "RESULT
data : SCREEN TYPE N LENGTH 4 VALUE 9100,
      OK_CODE 
LIKE SY-UCOMM.
CALL SCREEN 9000.
CALL SCREEN 9100.
CALL SCREEN 9200.

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
  OK_CODE = SY-UCOMM.
  
CASE OK_CODE.
      
"When first subscreen called
    
WHEN 'EDIT'.
      
CLEAR : NAME , PHYSICS ,  CHEMISTRY , MATHS.
      
WHEN 'BACK'.
      
SCREEN = 9100.
    
WHEN 'DISPLAY'.
      
SCREEN = 9200.
    
WHEN 'EXIT'.
      
LEAVE PROGRAM.
  
ENDCASE.
ENDMODULE.                 " USER_COMMAND_9000  INPUT

*&---------------------------------------------------------------------*
*&      Module  STATUS_9200  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_9200 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.

  TOTAL = PHYSICS + CHEMISTRY + MATHS.
  PERCENTAGE = ( TOTAL / 
3 ).
  
IF  PHYSICS LT 40 OR CHEMISTRY LT 40
      
OR  MATHS LT 40.
    RESULT = 
'FAIL'.
  
ELSE.
    RESULT = 
'PASS'.
  
ENDIF.
  
CASE OK_CODE.
      
"When first subscreen called
    
WHEN 'EDIT'.
      
CLEAR : NAME , TOTAL , PERCENTAGE , RESULT.
ENDCASE.
ENDMODULE.                 " STATUS_9200  OUTPUT

" STATUS_9100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9100 INPUT.
CASE OK_CODE.
      
"When first subscreen called
    
WHEN 'EDIT'.
      
CLEAR : NAME , PHYSICS , CHEMISTRY , MATHS.
ENDCASE.

ENDMODULE.                 " USER_COMMAND_9100  INPUT

Friday, 30 August 2013

AUGUST 30

Example programs using screen painter.
Example-1:

&---------------------------------------------------------------------*
*& Report  Z92PROGRAM2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

Report  Z92PROGRAM2

TABLES : zstudents, zpractice.
******************************************************************
* DATA DECLARATIONS.
*****************************************************************
DATA :  rollnum TYPE zstudents-rollnum,
       name 
TYPE zstudents-name,
       phone 
TYPE zstudents-phone,
       address 
TYPE zstudents-address,
       total 
type zpractice-total,
       branch 
TYPE zpractice-branch,
       
SUBMIT TYPE C,
       
RESET TYPE C,
       
EXIT TYPE C,
       OK_CODE 
LIKE SY-UCOMM.

*&---------------------------------------------------------------------*
*& CALLING SCREEN
*&---------------------------------------------------------------------*

CALL SCREEN 0101.

*&---------------------------------------------------------------------*
*&      Module  STATUS_0101  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0101 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.
CASE SY-UCOMM.
    
WHEN 'EXIT'.
      
LEAVE PROGRAM.
    
WHEN 'SUBMIT'.
      
SELECT SINGLE rollnum name phone address FROM zstudents
           
INTO (zstudents-rollnum , zstudents-name , zstudents-phone, zstudents-address)
where rollnum = zstudents-rollnum.
        
SELECT SINGLE branch total from zpractice
          
INTO (zpractice-branch , zpractice-total)
          
WHERE rollnum = zstudents-rollnum.

WHEN 'RESET'.
      
CLEAR zstudents.
      
CLEAR zpractice.

  
ENDCASE.
ENDMODULE.                 
" STATUS_0101  OUTPUT


Example-2:


*&---------------------------------------------------------------------*
*& Report  Z92PROGRAM3
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z92PROGRAM3 NO STANDARD PAGE HEADING .
TABLES: ZSTUDENTS, ZPRACTICE.
DATA :
   ROLLNUM 
TYPE ZSTUDENTS-ROLLNUM,
 BRANCH 
TYPE ZPRACTICE-BRANCH,
   TOTAL 
TYPE ZPRACTICE-TOTAL,
MARKS_1 
TYPE ZPRACTICE-MARKS_1,
MARKS_2 
TYPE ZPRACTICE-MARKS_2,
MARKS_3 
TYPE ZPRACTICE-MARKS_3,
MARKS_4 
TYPE ZPRACTICE-MARKS_4,
     NAME 
TYPE ZSTUDENTS-NAME,
   PHONE 
TYPE ZSTUDENTS-PHONE,
   ADDRESS 
TYPE ZSTUDENTS-ADDRESS.

DATA:
  
screen  TYPE n LENGTH 4 VALUE 0110,
  ok_code 
LIKE sy-ucomm.
CALL SCREEN 100.
CALL SCREEN 110.
CALL SCREEN 120.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  
SET PF-STATUS 'ZMENU'.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&----------------------------------------*
*&MODULE USER_COMMAND_100_INPUT
*&-----------------------------------------*
* TEXT
*&------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  
CASE SY-UCOMM.
    
WHEN 'DISPLAY'.
      
SCREEN =  0110.
      
WHEN 'EXIT' OR 'BACK' OR 'CANCEL'.
        
LEAVE PROGRAM.
            
WHEN 'NEXT'.
            
SCREEN = 0120.
        
ENDCASE.
        
ENDMODULE.    "USER_COMMAND_0110 INPUT
*&--------------------------------------------------------------------*
*&      Module  STATUS_0110  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0110 OUTPUT.
 
SELECT SINGLE MARKS_1  MARKS_2  MARKS_3  MARKS_4
   BRANCH TOTAL
  
FROM ZPRACTICE
  
INTO (ZPRACTICE-MARKS_1 , ZPRACTICE-MARKS_2 , ZPRACTICE-MARKS_3 ,
   ZPRACTICE-MARKS_4 , ZPRACTICE-BRANCH , ZPRACTICE-TOTAL)
  
WHERE ROLLNUM = ZSTUDENTS-ROLLNUM.
    
CASE SY-UCOMM.
       
WHEN 'RESET'.
      
CLEAR ZSTUDENTS.
      
CLEAR ZPRACTICE.
      
ENDCASE.
ENDMODULE.                 " STATUS_0110  OUTPUT
*----------------------------------------------------------------------*
*---------------------------------------------------------------------*
*&      Module  STATUS_0120  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0120 OUTPUT.
  
SELECT SINGLE PHONE NAME ADDRESS
  
FROM ZSTUDENTS
  
INTO (ZSTUDENTS-PHONE , ZSTUDENTS-NAME , ZSTUDENTS-ADDRESS)
  
WHERE ROLLNUM = ZSTUDENTS-ROLLNUM.
    
CASE SY-UCOMM.
    
WHEN 'RESET'.
      
CLEAR ZSTUDENTS.
      
CLEAR ZPRACTICE.
      
ENDCASE.
ENDMODULE.                 
" STATUS_0110  OUTPUT

Thursday, 29 August 2013

AUGUST 29

 Screen painter is a tool in ABAP  workbench used to create the screens using the T-code SE51. In the screen painter, we can define the following interface elements with their associated attributes.

  • 1. Input/Output Fields
  • 2. Field Names
  • 3. Checkboxes
  • 4. Radio Buttons
  • 5. Group Boxes
  • 6. Sub screens.
  • 7. Pushbuttons with No Fixed Position


Steps to create a screen in a ABAP program:

1. Create a Z program in SE38.


     Click on Save. We will write the code later in this. 

2. Go to transaction SE51.


3. Enter the created program name and screen number.


4.  Enter the short description and click on save.

5. Click on flow logic tab.


6. Un-comment the statement “ MODULE STATUS_0100 “ and Double click the “ status_0100.”  A dialog box will appear "PBO Module STATUS_0100 does not exist. Create object?"

7. Click on yes.

A pop-up screen appears. Select the “zdemo_screen_painter”  “main program” and click on continue.
A dialog box appears " Screen Zdemo_screen_painter 0100 has been changed. Do you want to save?"

8. Click on yes.

Screen would be displayed as follows: 


Now come back to the transaction SE51. Select flow logic. Click in layout. 

9. Screen painter window will be displayed like this. Here we will design the required screen fields. 
Click on the middle icon    dictionary / program fields window. Or F6. 


following screen appears:


10. Enter the table name in the table field name and Click on get from dictionary. 
Select the required fields from MARA table from dictionary. Click on OK or continue. 


11. Now place them appropriately on the screen created.


After placing the required fields on screen we can see the screen as follows:


12. Create the push button from the toolbox. Select the push button, drag and drop the button onto the screen. 

13. Create the other required buttons in the same procedure mentioned above and assign the name, text, and function code for each one. 

14. After creating the screen click on save check and activate. 


15.  press flow logic button on the screen.


16. Click on tab Element List enter OK_CODE. 

The below Code is written in ZPROGRAM created earlier: 
*&-------------------------------------------------------------------**& Report ZDEMO_SCREEN_PAINTER*&*&-------------------------------------------------------------------**& Demo for Screen Painter.*& By Vikramchellappa.*&-------------------------------------------------------------------*REPORT ZDEMO_SCREEN_PAINTER.******************************************************************* TABLE DECLARATIONS.****************************************************************** TABLES: MARA.******************************************************************* DATA DECLARATIONS.*****************************************************************DATA: MATNR TYPE MARA-MATNR, ERSDA TYPE MARA-ERSDA, ERNAM TYPE MARA-ERNAM, MTART TYPE MARA-MTART, MATKL TYPE MARA-MATKL, DISPLAY TYPE C, SAVE TYPE C, DELETE TYPE C, CLEAR TYPE C, EXIT TYPE C, OK_CODE LIKE SY-UCOMM.****************************************************************** CALLING SCREEN.*****************************************************************CALL SCREEN 100.*&--------------------------------------------------------------**& Module STATUS_0100 OUTPUT*&--------------------------------------------------------------** text*--------------------------------------------------------------*MODULE STATUS_0100 OUTPUT.* SET PF-STATUS 'ZMENU'.* SET TITLEBAR 'ZMENU_PAINTER'.CASE SY-UCOMM. WHEN 'EXIT'. LEAVE PROGRAM. WHEN 'BACK'. LEAVE PROGRAM. WHEN 'DISPLAY'. SELECT SINGLE ERSDA ERNAM MTART MATKL FROM MARA
INTO (MARA-ERSDA, MARA-ERNAM, MARA-MTART, MARA-MATKL)
WHERE MATNR = MARA-MATNR. WHEN 'CLEAR'. CLEAR MARA. ENDCASE.ENDMODULE. " STATUS_0100 OUTPUT

OUTPUT:
 Enter Material number On Material Field. Click on Display. 


Material Information is displayed as shown below: