Open the ABAP Editor by using the Transaction Code SE38 . Give a Program name starting with Z/Y (customer namespace) and click on Create . Give a small title , choose type 1 program ( report program )
and save it in local object or any package. Then write the program code , save it (Ctrl + S) , Check it ( Ctrl + F2) for syntax check , activate it (Ctrl + F3) and then execute it (F8) . To come back to editor press (F3).
*************************************************************************************************************************************************************
########### INITIAL KEY WORD ###########
if flag is initial.
write :/ 'flag is initial'.
else.
write :/ 'flag is not initial'.
endif.
uline.
clear flag.
if flag is initial.
write :/ 'flag is initial'.
else.
write :/ 'flag is not initial'.
endif.
############## MATH FUNCTIONS ##############
data : x type p decimals 2.data : y type p decimals 2 value '-4.67'.
x = abs( y ). write :/ 'abs=', x.
x = ceil( y ). write :/ 'ceil=', x.
x = floor( y ). write :/ 'floor=', x.
x = sign( y ). write :/ 'sign=', x.
x = frac( y ). write :/ 'frac=', x.
x = trunc( y ). write :/ 'trunc=', x.
########### SELECT-OPTIONS ################
data : wa_sflight type sflight.select-options : s_carrid for wa_sflight-carrid.
if 'BA' in s_carrid.
write :/ 'BA selected'.
else.
write :/ 'BA not selected'.
endif.
############## SELECT-OPTION ################
DATA WA_CARRID TYPE SPFLI-CARRID.SELECT-OPTIONS AIRLINE FOR WA_CARRID.
WRITE: 'Inside', 'Outside'.
SELECT CARRID FROM SPFLI INTO WA_CARRID.
IF WA_CARRID IN AIRLINE.
WRITE: / WA_CARRID UNDER 'Inside'.
ELSE.
WRITE: / WA_CARRID UNDER 'Outside'.
ENDIF.
ENDSELECT.
*********** RANGE INPUT BY ELECT-OPTIONS ******************
tables : spfli.select-options : S_carrid for spfli-carrid.
TYPES : BEGIN OF TAB1,
CARRID TYPE SPFLI-CARRID,
CONNID TYPE SPFLI-CONNID,
COUNTRYFR TYPE SPFLI-COUNTRYFR,
CITYFROM TYPE SPFLI-CITYFROM,
AIRPFROM TYPE SPFLI-AIRPFROM,
COUNTRYTO TYPE SPFLI-COUNTRYTO,
CITYTO TYPE SPFLI-CITYTO,
AIRPTO TYPE SPFLI-AIRPTO,
DISTANCE TYPE SPFLI-DISTANCE,
END OF TAB1.
DATA : IT_FLIGHT1 TYPE TABLE OF TAB1,
WA_FLIGHT1 TYPE TAB1.
INITIALIZATION.
S_CARRID-LOW = 'AA'.
S_CARRID-HIGH = 'ZZ'.
S_CARRID-SIGN = 'I'.
S_CARRID-OPTION = 'BT'.
APPEND S_CARRID.
START-OF-SELECTION.
SELECT CARRID
CONNID
COUNTRYFR
CITYFROM
AIRPFROM
COUNTRYTO
CITYTO
AIRPTO
DISTANCE FROM SPFLI INTO TABLE IT_FLIGHT1 UP TO 20 ROWS WHERE CARRID IN S_CARRID .
*SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE IT_FLIGHT1 UP TO 20 ROWS.
LOOP AT IT_FLIGHT1 INTO WA_FLIGHT1.
WRITE :/ WA_FLIGHT1-CARRID,
WA_FLIGHT1-CONNID,
WA_FLIGHT1-COUNTRYFR,
WA_FLIGHT1-CITYFROM ,
WA_FLIGHT1-AIRPFROM,
WA_FLIGHT1-COUNTRYTO,
WA_FLIGHT1-CITYTO,
WA_FLIGHT1-AIRPTO,
WA_FLIGHT1-DISTANCE.
ENDLOOP.
########## SELECT WITH FORMATTING OPTION ##################
TABLES spfli.SKIP.
ULINE AT /(62).
SELECT * FROM spfli .
WRITE: / sy-vline, spfli-connid, sy-vline,
(15) spfli-cityfrom, 26 sy-vline,
31 spfli-cityto, 51 sy-vline, 62 sy-vline,
/ sy-vline, 8 sy-vline,
spfli-deptime UNDER spfli-cityfrom, 26 sy-vline,
spfli-arrtime UNDER spfli-cityto, 51 sy-vline,
spfli-fltime, 62 sy-vline.
ULINE AT /(62).
ENDSELECT.
WRITE: /10 'SAP *** SAP *** SAP *** SAP *** SAP *** SAP',
/19(43) 'Flight Information System',
/19(43) 'International Connections'.
########## SCROLLING LIST #####################
REPORT ZTASK1 line-size 40 no standard page heading.TOP-OF-PAGE.
WRITE: 'Top of Page', sy-pagno, 'SY-SROWS:', sy-srows.
ULINE.
START-OF-SELECTION.
DO 100 TIMES.
WRITE / sy-index.
ENDDO.
DO 1 TIMES.
SCROLL LIST FORWARD.
ENDDO.
##########SCROLL LIST TO COLUMN#############
REPORT ZTASK1 NO STANDARD PAGE HEADING LINE-SIZE 200.TOP-OF-PAGE.
WRITE: AT 161 'Top of Page', sy-pagno,
'SY-SCOLS:', sy-scols.
ULINE.
START-OF-SELECTION.
DO 200 TIMES.
WRITE sy-index.
ENDDO.
SCROLL LIST TO COLUMN 178.
###########SCROLL BOUNDARY LEFT RIGHT ##################
REPORT YPGM NO STANDARD PAGE HEADING LINE-COUNT 3 LINE-SIZE 140.START-OF-SELECTION.
DO 3 TIMES.
WRITE: /10 'SY-INDEX:'.
DO 10 TIMES.
WRITE sy-index.
ENDDO.
ENDDO.
SET RIGHT SCROLL-BOUNDARY COLUMN 20.
DO 3 TIMES.
WRITE: / 'SY-INDEX:'.
DO 10 TIMES.
WRITE sy-index.
ENDDO.
ENDDO.
SET RIGHT SCROLL-BOUNDARY COLUMN 10.
#############SCROLL TO PAGE#############
REPORT YPGM NO STANDARD PAGE HEADING LINE-SIZE 40 LINE-COUNT 8(2).
DATA: pag TYPE i VALUE 15,
lin TYPE i VALUE 4.
TOP-OF-PAGE.
WRITE: 'Top of Page', sy-pagno.
ULINE.
END-OF-PAGE.
ULINE.
WRITE: 'End of Page', sy-pagno.
START-OF-SELECTION.
DO 100 TIMES.
DO 4 TIMES.
WRITE / sy-index.
ENDDO.
ENDDO.
SCROLL LIST TO PAGE pag LINE lin.
############SCROLL FORWARD###############
REPORT YPGM NO STANDARD PAGE HEADING LINE-SIZE 40.
TOP-OF-PAGE.
WRITE: 'Top of Page', sy-pagno, 'SY-SROWS:', sy-srows.
ULINE.
START-OF-SELECTION.
DO 100 TIMES.
WRITE / sy-index.
ENDDO.
DO 3 TIMES.
SCROLL LIST FORWARD.
ENDDO.
###########SCROLL RIGHT###############
REPORT ZTASK1 NO STANDARD PAGE HEADING LINE-SIZE 200.TOP-OF-PAGE.
WRITE: AT 161 'Top of Page', sy-pagno,
'SY-SCOLS:', sy-scols.
ULINE.
START-OF-SELECTION.
DO 200 TIMES.
WRITE sy-index.
ENDDO.
SCROLL LIST RIGHT.
#########NO SCROLLING##########
REPORT YPGM NO STANDARD PAGE HEADING LINE-COUNT 3 LINE-SIZE 140.START-OF-SELECTION.
DO 3 TIMES.
WRITE: / 'SY-INDEX:'.
DO 10 TIMES.
WRITE sy-index.
ENDDO.
ENDDO.
NEW-LINE NO-SCROLLING.
ULINE AT 20(20).
NEW-LINE NO-SCROLLING.
WRITE AT 20 '| **** Fixed! **** |'.
NEW-LINE NO-SCROLLING.
ULINE AT 20(20).
DO 3 TIMES.
WRITE: / 'SY-INDEX:'.
DO 10 TIMES.
WRITE sy-index.
ENDDO.
ENDDO.
###########CHECK BOX IN LIST################
DATA: flag1(1) TYPE c VALUE ' ',
flag2(1) TYPE c VALUE 'X',
flag3(5) TYPE c VALUE 'Xenon'.
WRITE: / 'Flag 1 ', flag1 AS CHECKBOX,
/ 'Flag 2 ', flag2 AS CHECKBOX,
/ 'Flag 3 ', flag3 AS CHECKBOX.
############COLOR CODES################
DATA i TYPE i VALUE 0.DATA col(15) TYPE c.
WHILE i < 8.
CASE i.
WHEN 0. col = 'COL_BACKGROUND '.
WHEN 1. col = 'COL_HEADING '.
WHEN 2. col = 'COL_NORMAL '.
WHEN 3. col = 'COL_TOTAL '.
WHEN 4. col = 'COL_KEY '.
WHEN 5. col = 'COL_POSITIVE '.
WHEN 6. col = 'COL_NEGATIVE '.
WHEN 7. col = 'COL_GROUP '.
ENDCASE.
FORMAT INTENSIFIED COLOR = i.
WRITE: /(4) i, AT 7 sy-vline,
col, sy-vline,
col INTENSIFIED OFF, sy-vline,
col INVERSE.
i = i + 1.
ENDWHILE.
############INPTU ON AT LIST################
WRITE 'Please fill in your name before printing:'.WRITE / ' Enter name here ' INPUT ON.
ULINE.
WRITE 'You can overwrite the following line:'.
FORMAT INPUT ON INTENSIFIED OFF.
ULINE.
FORMAT INPUT OFF INTENSIFIED ON.
############OUTPUT WITH SYMBOL AND ICON############
REPORT YPGM.INCLUDE <symbol>. " FOR TYPE-POOLS : SYM
INCLUDE <icon>.
WRITE :/ 'Phone Symbol:', SYM_PHONE AS SYMBOL.
SKIP.
WRITE: / 'Alarm Icon: ', icon_alarm AS ICON.
###########FORAMTTING HOT SPOT############
INCLUDE <list>.START-OF-SELECTION.
WRITE 'Now comes a'.
FORMAT HOTSPOT ON COLOR 5 INVERSE ON.
WRITE 'HOTSPOT'.
FORMAT HOTSPOT OFF COLOR OFF.
AT LINE-SELECTION.
WRITE / 'New list AT-LINE-SELECTION'.
SKIP.
WRITE 'This is also a hotspot:'.
WRITE icon_list AS ICON HOTSPOT.
#########RESERVE LINE#############
REPORT ZTASK1 line-count 8(2) no standard page heading.
end-of-page.
uline.
start-of-selection.
do 4 times.
write :/ sy-index.
enddo.
reserve 3 lines.
do 2 times.
write :/ sy-index.
enddo.
reserve 3 lines.
do 3 times.
write :/ 'index ', sy-index.
enddo.
#################TRIANGLE STAR DISPLAY #############
PARAMETERS : NO_LINE TYPE I DEFAULT 5.DATA : POS TYPE I value 30.
DATA : POS1 TYPE I value 27 .
DATA : N TYPE I VALUE 1.
data : indx like sy-index.
data : line type i.
line = no_line - 1.
DO NO_LINE TIMES.
indx = sy-index.
do n times.
WRITE AT pos(1) '*' RIGHT-JUSTIFIED.
pos = pos + 1.
enddo.
NEW-LINE.
n = n + 2.
pos = pos - ( indx * 2 ).
ENDDO.
pos1 = pos + 2.
new-line.
n = n - 4.
DO LINE TIMES.
do n times.
WRITE AT pos1(1) '*' RIGHT-JUSTIFIED.
pos1 = pos1 + 1.
indx = sy-index.
enddo.
NEW-LINE.
n = n - 2.
pos1 = ( pos1 + 1 ) - indx.
ENDDO.
###########SELECT-SCREEN WITH NO INTERVAL#############
SELECTION-SCREEN BEGIN OF BLOCK RAD1 WITH FRAME TITLE TEXT-002 no intervals.PARAMETERS R1 RADIOBUTTON GROUP GR1.
PARAMETERS R2 RADIOBUTTON GROUP GR1.
PARAMETERS R3 RADIOBUTTON GROUP GR1.
SELECTION-SCREEN END OF BLOCK RAD1.
##########SELECTION-SCREEN POSITON#################
DATA WA_SPFLI TYPE SPFLI.SELECT-OPTIONS AIRLINE FOR WA_SPFLI-CARRID.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION POS_low.
PARAMETERS FIELD(5).
SELECTION-SCREEN END OF LINE.
#########MACROS#############
data : num1 type i value 20.data : num2 type i value 230.
data : res type i .
define addition.
&3 = &1 + &2.
write : 'sum of two numbers =', &3.
end-of-definition.
addition num1 num2 res.
uline.
addition '30' '40' res.
uline.
addition '100' '200' res.
##########NEW PAGE################
TOP-OF-PAGE.WRITE: 'TOP-OF-PAGE', sy-pagno.
ULINE AT /(17).
START-OF-SELECTION.
DO 2 TIMES.
WRITE / 'Loop:'.
DO 3 TIMES.
WRITE / sy-index.
ENDDO.
NEW-PAGE.
ENDDO.
###########NEW PAGES########
WRITE: 'Page', sy-pagno.NEW-PAGE NO-TITLE.
WRITE: 'Page', sy-pagno.
NEW-PAGE NO-HEADING.
WRITE: 'Page', sy-pagno.
NEW-PAGE WITH-TITLE.
WRITE: 'Page', sy-pagno.
NEW-PAGE WITH-HEADING.
WRITE: 'Page', sy-pagno.
#######GET RUN TIME FIELD##########
data : r_t type i.do 10 times.
get run time field r_t.
write :/ sy-index , 'relative run time = ' , r_t , 'microseconds'.
enddo.
* ********* output every time varies depending on system load ****************
1 relative run time = 0 microseconds
2 relative run time = 70 microseconds
3 relative run time = 81 microseconds
4 relative run time = 90 microseconds
5 relative run time = 99 microseconds
6 relative run time = 107 microseconds
7 relative run time = 116 microseconds
8 relative run time = 124 microseconds
9 relative run time = 133 microseconds
10 relative run time = 141 microseconds
###########PUSH BUTTON AT SELECTION SCREEN#################
TABLES SSCRFIELDS.DATA FLAG.
SELECTION-SCREEN: BEGIN OF SCREEN 500 AS WINDOW TITLE TIT,
BEGIN OF LINE,
PUSHBUTTON 2(10) BUT1 USER-COMMAND CLI1,
PUSHBUTTON 12(10) TEXT-020 USER-COMMAND CLI2,
END OF LINE,
BEGIN OF LINE,
PUSHBUTTON 2(10) BUT3 USER-COMMAND CLI3,
PUSHBUTTON 12(10) TEXT-040 USER-COMMAND CLI4,
END OF LINE,
END OF SCREEN 500.
AT SELECTION-SCREEN.
CASE SSCRFIELDS.
WHEN 'CLI1'.
FLAG = '1'.
WHEN 'CLI2'.
FLAG = '2'.
WHEN 'CLI3'.
FLAG = '3'.
WHEN 'CLI4'.
FLAG = '4'.
ENDCASE.
START-OF-SELECTION.
TIT = 'Four Buttons'.
BUT1 = 'Button 1'.
BUT3 = 'Button 3'.
CALL SELECTION-SCREEN 500 STARTING AT 10 10.
CASE FLAG.
WHEN '1'.
WRITE / 'Button 1 was clicked'.
WHEN '2'.
WRITE / 'Button 2 was clicked'.
WHEN '3'.
WRITE / 'Button 3 was clicked'.
WHEN '4'.
WRITE / 'Button 4 was clicked'.
WHEN OTHERS.
WRITE / 'No Button was clicked'.
ENDCASE.
##########SELECTION SCREEN AS SUBSCREEN##################
SELECTION-SCREEN BEGIN OF SCREEN 1100 AS SUBSCREEN.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-010.
PARAMETERS: p1(10) TYPE c,
p2(10) TYPE c,
p3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 1100.
SELECTION-SCREEN BEGIN OF SCREEN 1200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.
PARAMETERS: q1(10) TYPE c OBLIGATORY,
q2(10) TYPE c OBLIGATORY,
q3(10) TYPE c OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 1200.
DATA: ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
DATA: number(4) TYPE n VALUE '1100'.
START-OF-SELECTION.
CALL SCREEN 100.
MODULE status_0100 OUTPUT.
SET PF-STATUS 'SCREEN_100'.
ENDMODULE.
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'BUTTON1'.
number = 1100.
WHEN 'BUTTON2'.
number = 1200.
ENDCASE.
ENDMODULE.
AT SELECTION-SCREEN.
MESSAGE s888(sabapdocu) WITH text-030 sy-dynnr.
* *************************************************
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
CALL SUBSCREEN area INCLUDING sy-repid number.
PROCESS AFTER INPUT.
module cancel at exit-command .
CALL SUBSCREEN area.
MODULE USER_COMMAND_0100.
##########SELECTION SCREEN AS TABBED BLOCK##############
DATA flag(1) TYPE c.SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p1(10) TYPE c,
p2(10) TYPE c,
p3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 100.
* SUBSCREEN 2
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS: q1(10) TYPE c OBLIGATORY,
q2(10) TYPE c OBLIGATORY,
q3(10) TYPE c OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 200.
* STANDARD SELECTION SCREEN
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
TAB (20) button1 USER-COMMAND push1,
TAB (20) button2 USER-COMMAND push2,
TAB (20) button3 USER-COMMAND push3
DEFAULT SCREEN 300,
END OF BLOCK mytab.
INITIALIZATION.
button1 = text-010.
button2 = text-020.
button3 = text-030.
mytab-prog = sy-repid.
mytab-dynnr = 100.
mytab-activetab = 'BUTTON1'.
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN 1000.
CASE sy-ucomm.
WHEN 'PUSH1'.
mytab-dynnr = 100.
mytab-activetab = 'BUTTON1'.
WHEN 'PUSH2'.
mytab-dynnr = 200.
mytab-activetab = 'BUTTON2'.
ENDCASE.
WHEN 100.
MESSAGE s888(sabapdocu) WITH text-040 sy-dynnr.
WHEN 200.
MESSAGE s888(sabapdocu) WITH text-040 sy-dynnr.
ENDCASE.
MODULE init_0100 OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = 'MOD'.
CASE flag.
WHEN 'X'.
screen-input = '1'.
WHEN ' '.
screen-input = '0'.
ENDCASE.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.
MODULE user_command_0100 INPUT.
MESSAGE s888(sabapdocu) WITH text-050 sy-dynnr.
CASE sy-ucomm.
WHEN 'TOGGLE'.
IF flag = ' '.
flag = 'X'.
ELSEIF flag = 'X'.
flag = ' '.
ENDIF.
ENDCASE.
ENDMODULE.
START-OF-SELECTION.
WRITE: / 'P1:', p1,'Q1:', q1,
/ 'P2:', p2,'Q2:', q2,
/ 'P3:', p3,'Q3:', q3.
############SELECTION SCREEN TABBED BLOCK WITH APPLICATION TOOLBAR#########
TABLES sscrfields.* SUBSCREEN 1
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-010.
PARAMETERS: p1(10) TYPE c,
p2(10) TYPE c,
p3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 100.
* SUBSCREEN 2
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.
PARAMETERS: q1(10) TYPE c,
q2(10) TYPE c,
q3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 200.
* SUBSCREEN 3
SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-030.
PARAMETERS: r1(10) TYPE c,
r2(10) TYPE c,
r3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN END OF SCREEN 300.
* STANDARD SELECTION SCREEN
SELECTION-SCREEN: FUNCTION KEY 1,
FUNCTION KEY 2.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK sub FOR 10 LINES,
END OF BLOCK sub.
INITIALIZATION.
sscrfields-functxt_01 = '@0D@'.
sscrfields-functxt_02 = '@0E@'.
sub-prog = sy-repid.
sub-dynnr = 100.
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN 100.
IF sscrfields-ucomm = 'FC01'.
sub-dynnr = 300.
ELSEIF sscrfields-ucomm = 'FC02'.
sub-dynnr = 200.
ENDIF.
WHEN 200.
IF sscrfields-ucomm = 'FC01'.
sub-dynnr = 100.
ELSEIF sscrfields-ucomm = 'FC02'.
sub-dynnr = 300.
ENDIF.
WHEN 300.
IF sscrfields-ucomm = 'FC01'.
sub-dynnr = 200.
ELSEIF sscrfields-ucomm = 'FC02'.
sub-dynnr = 100.
ENDIF.
ENDCASE.
START-OF-SELECTION.
WRITE: / 'P1:', p1,'Q1:', q1, 'R1:', r1,
/ 'P2:', p2,'Q2:', q2, 'R2:', r2,
/ 'P3:', p3,'Q3:', q3, 'R3:', r3.
###########SELECTION SCREEN TABSTRIP##########
SELECTION-SCREEN BEGIN OF SCREEN 1100 AS SUBSCREEN NO INTERVALS.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-010.
PARAMETERS: p1(10) TYPE c,
p2(10) TYPE c,
p3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 1100.
SELECTION-SCREEN BEGIN OF SCREEN 1200 AS SUBSCREEN NO INTERVALS.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.
PARAMETERS: q1(10) TYPE c OBLIGATORY,
q2(10) TYPE c OBLIGATORY,
q3(10) TYPE c OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 1200.
CONTROLS mytabstrip TYPE TABSTRIP.
DATA: ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
DATA: number(4) TYPE n VALUE '1100'.
START-OF-SELECTION.
mytabstrip-activetab = 'BUTTON1'.
CALL SCREEN 100.
MODULE status_0100 OUTPUT.
SET PF-STATUS 'SCREEN_100'.
ENDMODULE.
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'BUTTON1'.
mytabstrip-activetab = save_ok.
number = 1100.
WHEN 'BUTTON2'.
mytabstrip-activetab = save_ok.
number = 1200.
ENDCASE.
ENDMODULE.
AT SELECTION-SCREEN.
MESSAGE s888(sabapdocu) WITH text-030 sy-dynnr.
* *********************
PROCESS BEFORE OUTPUT.
MODULE status_0100.
CALL SUBSCREEN area INCLUDING sy-repid number.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
CALL SUBSCREEN area.
MODULE user_command_0100.
#######NESTED SELECTION SCREEN#############
SELECTION-SCREEN BEGIN OF BLOCK SEL1 WITH FRAME TITLE TIT1.PARAMETERS: CITYFR LIKE SPFLI-CITYFROM,
CITYTO LIKE SPFLI-CITYTO.
SELECTION-SCREEN END OF BLOCK SEL1.
SELECTION-SCREEN BEGIN OF SCREEN 500 AS WINDOW.
SELECTION-SCREEN INCLUDE BLOCKS SEL1.
SELECTION-SCREEN BEGIN OF BLOCK SEL2 WITH FRAME TITLE TIT2.
PARAMETERS: AIRPFR LIKE SPFLI-AIRPFROM,
AIRPTO LIKE SPFLI-AIRPTO.
SELECTION-SCREEN END OF BLOCK SEL2.
SELECTION-SCREEN END OF SCREEN 500.
INITIALIZATION.
TIT1 = 'Cities'.
AT SELECTION-SCREEN.
CASE SY-DYNNR.
WHEN '0500'.
MESSAGE W159(AT) WITH 'Screen 500'.
WHEN '1000'.
MESSAGE W159(AT) WITH 'Screen 1000'.
ENDCASE.
START-OF-SELECTION.
TIT1 = 'Cities for Airports'.
TIT2 = 'Airports'.
CALL SELECTION-SCREEN 500 STARTING AT 10 10.
TIT1 = 'Cities again'.
CALL SELECTION-SCREEN 1000 STARTING AT 10 10.
##########BUTTON IN APPLICATION TOOLBAR########
TABLES : SSCRFIELDS.PARAMETERS: p_NAME TYPE C LENGTH 10.
SELECTION-SCREEN: FUNCTION KEY 1,
FUNCTION KEY 2,
FUNCTION KEY 3,
FUNCTION KEY 4,
FUNCTION KEY 5.
INITIALIZATION.
sscrfields-functxt_01 = 'INDIA'.
sscrfields-functxt_02 = 'PAK'.
sscrfields-functxt_03 = 'SRILANKA'.
sscrfields-functxt_04 = 'AUSTRALIA'.
sscrfields-functxt_05 = 'SOUTHAFRICA'.
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN'FC01'.
P_NAME = 'SACHIN'.
WHEN 'FC02'.
P_NAME = 'ANWAR'.
WHEN 'FC03'.
P_NAME = 'MURALI'.
WHEN 'FC04'.
P_NAME = 'POINTING'.
WHEN 'FC05'.
P_NAME = 'SMITHHH'.
ENDCASE.
START-OF-SELECTION.
WRITE : / 'CRICKTER NAME = ', P_NAME.
#########LIST BOX AT SELECTION SCREEN #############
TYPE-POOLS : VRM.DATA: NAME TYPE VRM_ID,
LIST TYPE VRM_VALUES,
VALUE LIKE LINE OF LIST.
PARAMETERS : P_NAME(10) TYPE C OBLIGATORY AS LISTBOX VISIBLE LENGTH 10.
AT SELECTION-SCREEN OUTPUT.
NAME = 'P_NAME'.
VALUE-KEY = 'SIVA'.
VALUE-TEXT = 'SIVA'.
APPEND VALUE TO LIST.
VALUE-KEY = 'PRASAD'.
VALUE-TEXT = 'PRASAD'.
APPEND VALUE TO LIST.
VALUE-KEY = 'SUDIPTA'.
VALUE-TEXT = 'SUDIPTA'.
APPEND VALUE TO LIST.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = NAME
VALUES = LIST
EXCEPTIONS
ID_ILLEGAL_NAME = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
start-of-selection.
WRITE : / 'SELECTED VALUE =', P_NAME.
###########NESTED INTERNAL TABLE###########
DATA: BEGIN OF LINE1,COL1(3) TYPE C,
COL2(2) TYPE N,
COL3 TYPE I,
END OF LINE1.
DATA : ITAB1 LIKE TABLE OF LINE1.
DATA: BEGIN OF LINE2,
COL1 TYPE C,
COL2 LIKE ITAB1,
END OF LINE2.
DATA ITAB2 LIKE TABLE OF LINE2 .
LINE1-COL1 = 'ABC'.
LINE1-COL2 = '12'.
LINE1-COL3 = '3'.
APPEND LINE1 TO ITAB1.
LINE1-COL1 = 'DEF'.
LINE1-COL2 = '34'.
LINE1-COL3 = '35'.
APPEND LINE1 TO ITAB1.
LINE2-COL1 = 'X'.
LINE2-COL2 = ITAB1.
APPEND LINE2 TO ITAB2.
REFRESH ITAB1.
LINE1-COL1 = 'GHI'.
LINE1-COL2 = '56'.
LINE1-COL3 = '7'.
APPEND LINE1 TO ITAB1.
LINE1-COL1 = 'JKL'.
LINE1-COL2 = '78'.
LINE1-COL3 = '9'.
APPEND LINE1 TO ITAB1.
LINE2-COL1 = 'Y'.
LINE2-COL2 = ITAB1.
APPEND LINE2 TO ITAB2.
LOOP AT ITAB2 INTO LINE2.
WRITE :/ LINE2-COL1.
LOOP AT LINE2-COL2 INTO LINE1.
WRITE :/ LINE1-COL1, LINE1-COL2, LINE1-COL3.
ENDLOOP.
ENDLOOP.
########SELECTION SCREEN WITH RADIOBUTTON GROUP##############
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.PARAMETERS: R1 RADIOBUTTON GROUP RAD1 DEFAULT 'X',
R2 RADIOBUTTON GROUP RAD1,
R3 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
PARAMETERS: R4 RADIOBUTTON GROUP RAD2 DEFAULT 'X',
R5 RADIOBUTTON GROUP RAD2,
R6 RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN END OF BLOCK B2.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP RAD1.
IF R1 = 'X'.
MESSAGE 'GROUP1 SELECTED' TYPE 'I'.
ENDIF.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP RAD2.
IF R4 = 'X'.
MESSAGE 'GROUP2 SELECTED' TYPE 'I'.
ENDIF.
#######SELECTION SCREEN WITH BLOCK###########
SELECTION-SCREEN BEGIN OF BLOCK PART1 WITH FRAME.PARAMETERS: NUMBER1 TYPE I,
NUMBER2 TYPE I,
NUMBER3 TYPE I.
SELECTION-SCREEN END OF BLOCK PART1.
SELECTION-SCREEN BEGIN OF BLOCK PART2 WITH FRAME.
PARAMETERS: NUMBER4 TYPE I,
NUMBER5 TYPE I,
NUMBER6 TYPE I.
SELECTION-SCREEN END OF BLOCK PART2.
AT SELECTION-SCREEN ON BLOCK PART1.
IF NUMBER3 LT NUMBER2 OR NUMBER3 LT NUMBER1 OR NUMBER2 LT NUMBER1.
MESSAGE 'INVAID INPUT IN BLOCK 1' TYPE 'E'.
ENDIF.
AT SELECTION-SCREEN ON BLOCK PART2.
IF NUMBER6 LT NUMBER5 OR NUMBER6 LT NUMBER4 OR NUMBER5 LT NUMBER4.
MESSAGE 'INVAID INPUT IN BLOCK 2' TYPE 'E'.
ENDIF.
##########SELECTION SCREEN WITH DYNAMIC CHANGE########
PARAMETERS: TEST1(10) MODIF ID SC1,TEST2(10) MODIF ID SC2,
TEST3(10) MODIF ID SC1,
TEST4(10) MODIF ID SC2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'SC1'.
SCREEN-INTENSIFIED = '1'.
MODIFY SCREEN.
CONTINUE.
ENDIF.
IF SCREEN-GROUP1 = 'SC2'.
SCREEN-INTENSIFIED = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
#######USE OF CONTINUE, CHECK, EXIT AND SKIP STATEMENT ###########
do 5 times.if sy-index eq 2.
continue.
endif.
write :/ sy-index.
enddo.
uline.
do 5 times.
check sy-index between 2 and 4.
write :/ sy-index.
enddo.
uline.
do 5 times.
if sy-index eq 3.
exit.
endif.
write :/ sy-index.
enddo.
uline.
do 3 times.
write sy-index.
skip.
do 4 times.
write sy-index.
enddo.
skip.
enddo.
1 comment:
nice post thank you
Post a Comment