Abap Code Practice
Abap Code Practice
*****______ work area --workarea is nothing but it holdes the single record at
runtime during the session of the program
program --------(1)
-----------
if lv_input = 1.
case lv_input .
when 1 .
write : 'the output is ', lv_input.
when 2.
write : 'the output is ', lv_input.
when 3 .
write : 'the output is ', lv_input.
when others .
write : 'wrong input '.
endcase.
program(5) ..do
do 10 times.
write : / 'the output is ' , lv_input.
lv_input = lv_input + 1.
enddo.
-----------------------------------
program(6) ..exit
------------
program(8) ....while
program(9)..... check
-----------------
program(10) ....system variables
write : 'the user name of the system is ' , sy-uname. "user name
--------------------------
program(11) ......string operations concatenate
data : lv_input type string value ' welcome to sap abap '.
data : lv_length(2) type n.
condense lv_input.
"CONDENSE
---------
program(13) .......string operations FIND
---------------------
program(14).........string operations TRANSLATE
.......another way
---------------------
progran(16) ...SHIFT (TRAILING ,LEADING )
condense lv_x1.
write : / ' result after deletion ' , lv_x1.
------------------
lv_cntry = lv_input+0(2).
write : / ' country code is ' , lv_cntry.
lv_city = lv_input+3(3).
write : / 'city code is ' , lv-city.
lv_number = lv_input+7(10).
write : / 'number is ' , lv_number.
-------------------------
lwa_data-ono = 1.
lwa_data-pm = 'C'.
append lwa_data to lt_data.
clear lwa_data.
lwa_data-ono = 1.
lwa_data-pm = 'D'.
append lwa_data to lt_data.
clear lwa_data.
lwa_data-ono = 2.
lwa_data-pm = 'C'.
append lwa_data to lt_data.
clear lwa_data.
lwa_data-ono = 2.
lwa_data-pm = 'D'.
append lwa_data to lt_data.
clear lwa_data.
lwa_data-ono = 3.
lwa_data-pm = 'C'.
append lwa_data to lt_data.
clear lwa_data.
* loop ---------
* MODIFY
loop at lt_data into lwa_data.
if lwa_data-ono = 1.
lwa_data-pm = 'N'.
modify lt_data from lwa_data transporting pm .
write : / lwa_data-ono , lwa_data-pm.
endif.
endloop.
(or)
clear : lt_data.
refresh : lt_data.
*create data : lv_lines type I.
* SORT
-----------------
program(19)......with headerline
pm type zdepm_28,
end of lty_data.
data : lt_data type table of lty_data with header line.
lt_data-ono = 1.
lt_data-pm = 'C'.
append lt_data.
clear : lt_data.
lt_data-ono = 2.
lt_data-pm = 'C'.
append lt_data.
clear : lt_data
loop at lt_data.
write : / lt-data-ono , lt_data-pm.
endloop.
_____________________________________
program(20) ........*PARAMETERS
parameter : p_ono type zdeono_28 default 1. " we can use *obligatory means
mandatory
* radiobuttons
parameters : p_r1 type c radiobutton group g1,
p_r2 type c radiobutton group g1,
p_r3 type c radiobutton group g1,
p_r4 type c radiobutton group g1 default 'X'.
* CHECKBOXES
parameters : p_chk1 as checkbox,
P_chk2 as checkbox,
p_chk3 as checkbox.
__________________________________
program(21)...
*parameters sum
------------------
* database table
* using read table (at the time of using read table comment the loop statment)
if sy-subrc = 0.
write : / lv_ono , lv_odate , lv_ta , lv_curr.
endif.
_________________________________
* range or select-options
--------------------------
* MULTIPLE DATABASE table
types : begin of lty_data,
ono type zdeono_28,
odate type zdeodate_28,
pm type zdepm_28,
curr type zdecur_28,
end of lty_data.
data : lt_data type table of lty_data.
data : lwa_data type lty_data.
data : lv_ono type zdeono-28.
---------------
program...classical_report_join
* error message(E)
if sy-subec <> 0.
message E000(zmessage).
endif.
*INFORAMTION(I)
if sy-subec <> 0.
message i001(zmessage).
lv_flag = 'X'.
endif.
___________________________________________________________________________________
_________________________________
INITIALIIZATION.
s_odate-sign = 'I'.
s_odate-option = 'BT'.
s_odate-low = sy-datum - 100.
s-odate-high = sy-dattum.
append s_odate.
AT SELECTION-SCREEN.
if s_pm-low is not initial.
if s_pm-low <> 'C' AND s_pm-low <> 'D' AND s_pm-low <> 'N'.
message e004(message) " tcode-se91
endif.
endif.
START-OF-SELECTION.
END-OF-SELECTION.
write : / text-000.
TOP-of-PAGE.
write : / text-001 , sy-pagno.
s
*****( 6th evevnt ------- END-OF-PAGE)-----------------------------
END-OF-PAGE.
* ***write LINE-COUNT 10(2) in abap editor name
write : / text-006 , sy-pagno.
AT SELCTION-SCREEN OUTPUT.
if p_chk = ' '.
loop at screen.
if screen-group1 = 'CUR'.
screen-active = 0.
modify screen.
endif.
endloop.
endif.
if p_chk = 'X'.
loop at screen.
IF screen-group1 = 'CUR'.
screen-active = 1.
modify screen.
endif.
endloop.
endif.
lwa_pm-pm = 'C'.
lwa_pm-desc = text-008. "credit card payment
append lwa_pm to lt_pm.
clear : lwa_pm.
lwa_pm-pm = 'D'.
lwa_pm-desc = text-009. " debit card payment
append lwa_pm to lt_pm.
clear : lwa_pm.
lwa_pm-pm = 'N'.
lwa_pm-desc = text-010. " Net banking payment
append lwa_pm to lt_pm.
clear : lwa_pm.
TABLES
value_tab = lt_pm
EXCEPTIONS
parameter_error = 1
no_value_found = 2
others = 3.
if sy-subrc <> 0.
endif.
* for currency
lwa_cur-cur = 'INR'.
lwa_cur-desc = text-011 "Indian Rupees
append lwa_cur to lt_cur.
clear : lwa_cur.
lwa_cur-cur = 'USD'.
lwa_cur-desc = text-012 " United States Dollers'.
append lwa_cur to lt_cur.
clear : lwa_cur.
EXCEPTIONS
parameter_error = 1
no_value_found = 2
others = 3.
if sy-subrc <> 0.
endif.
******( 9th event AT SELECTION-SCREEN ON HELP REQUEST FOR <FIELD>) " TECHNICAL
INFO --------------------------------------------
* TCODE - SE61
* select --text ....TX
* give name --- zdoccur
* and save
TABLES
links = lt_links
EXCEPTIONS
object_not_found = 1
sapscript_erroe = 2
others = 3
if sy-subrc <> 0.
endif.
AT SELCTION-SCREEN ON s_pm.
if s_pm-low is not initial.
if s_pm-low <> 'C' AND s_pm-low <> 'D' and s_pm-low <> 'N'.
message e005(zmessage). "se91
endif.
endif.
AT SELCTION-SCREEN ON s_curr
-low.
if s_cur-low is not initial.
if s_cur-low <> 'INR' AND s_cur-low <> 'USD'.
message e005(zmessage). "se91
endif.
endif.
___________________________________________________________________________________
_____________________________________________________________________________
start-of-selection.
select ono odate pm curr
from zordeh_28
into table lt_data
where ono in s_ono.
at line-selection.
select ono oin icost
from zordi_28
into table lt_data1
where ono = sy-lisel+0(10).
start-of-selection.
select ono odate pm curr
from zordeh_28
into table lt_data
where ono in s_ono.
loop at lt_data into lwa_data.
write : / lwa_data-ono , lwa_data-odate , lwa_data-pm , lwa_data-curr.
endloop.
AT USER-COMMAND.
if sy-ucomm = 'ASCENDING'.
sort lt_data by ono.
loop at lt_data into lwa_data.
write : / lwa_data-ono , lwa_data-odate , lwa_data-pm , lwa_data-curr.
endloop.
if sy-ucomm = 'DESCENDING'.
sort lt_data by ono DESCENDING.
loop at lt_data into lwa_data.
write : / lwa_data-ono , lwa_data-odate , lwa_data-pm , lwa_data-curr.
endloop.
start-of-selection.
select ono odate pm curr
from zordeh_28
into table lt_data
where ono in s_ono.
at line-selection.
select ono oin icost
from zordi_28
into table lt_data1
where ono = sy-lisel+0(10).
TOP-OF-PAGE.
data : lv_pm type zdepm_28.
select pm ta
from zordeh_28
into table lt_data
where pm in s_pm.
AT FIRST .
write : / text-000. " the sum based upon paymentmode is as follows
ENDAT.
AT NEW pm.
write : / lwa_data-pm.
ENDAT.
AT END OF pm.
SUM.
write : lwa_data-ta.
AT LAST.
write : / text-001. " end of collection
ENDAT.
endloop.
-----------------------------------------------------------------------------------
------------------------------
select pm ta
from zordeh_28
into table lt_data
where pm in s_pm.
AT FIRST .
write : / text-000.
AT NEW pm.
write : / lwa_data1-pm.
ENDAT.
AT END OF pm.
SUM.
write : lwa_data1-ta.
AT LAST.
write : / text-001. " end of collection
ENDAT.
endloop.
___________________________________________________________________________________
_________________________
*********DATABASE OPERATIONS************
**insert
start-of-selection.
if p_r1 = 'X'.
lwa_data-ono = p_ono.
lwa_data-odate = p_odate.
lwa_data-pm = p_pm.
lwa_data-ta = p_ta.
lwa_data-curr = p_curr.
if sy-subrc = 0.
write : text-000. "recored inserted sucessfully
else.
write : text-001. "record failed to insert
endif.
at selection-screen.
if p_r1 = 'X'.
select ono
from zordeh_28
into table lt_ono
where ono = p_ono.
(or)
if sy-subrc = 0.
message e003(zmessage) with p_ono . "order number & already exists
endif.
endif.
*****DELETE***
start-of-selection.
if p_r2 = 'X'.
lwa_data- ono = p_ono.
at selection-screen.
if p_r2 = 'X'.
select single ono
from zordeh_28
into lwa_ono
where ono = p_ono.
if sy-subrc <> 0.
message e007(zmessage) with p_ono.
endif.
endif.
at selection-screen output.
if p_r2 = 'X'.
loop at screen.
********update***********
start-of-selection.
if p_r3 = 'X'.
lwa_data-ono = p_ono.
lwa_data-odate = p_odate.
lwa_data-pm = p_pm.
lwa_data-ta = p_ta.
lwa_data-curr = p_curr.
if sy-subrc = 0.
write : text-003.
endif.endif.
at selection-screen.
if p_r3 = 'X'.
select single ono
from zordeh_28
into lwa_ono
where ono = p_ono.
if sy-subrc <> 0.
message e007(zmessage) with p_ono.
else.
select single odate pm ta curr
from zordeh_28
into lwa_display
where ono = p_ono.
endif.
endif.
at selection-screen output.
if p_r3 = 'X'.
p_odate = lwa_display-odate.
p_pm = lwa_display-pm.
p_curr = lwa_display-curr.
endif.
*******MODIFY *********
start-of-selection.
if p_r4 = 'X'.
lwa_data-ono = p_ono.
lwa_data-odate = p_odate.
lwa_data-pm = p_pm.
lwa_data-ta = p_ta.
lwa_data-curr = p_curr.
if sy-subrc = 0.
write : text-004, ':', p_ono. " record modified sucesfully
endif.endif.
at selection-screen.
if p_r4 = 'X'.
SELECT single odate pm ta curr
from zordeh_28
into lwa_display
where ono = p_ono.
if sy-subrc <> 0.
clear : lwa_display.
endif.
endif.
at selection-screen output.
if p_r4 = 'X'.
p_odate = lwa_display-odate.
p_pm = lwa_display-pm.
p_ta = lwa_display-ta.
p_curr = lwa_display-curr.
endif.