‎2007 Apr 18 9:51 AM
Hello All,
could anybody send me some sample ABAP assignments with code for training purpose. the assignments should include data retrival from more than 2-3 tables, loop-read (medium processing logic) and display logic (simple ALV, grid etc)...
i required it urgently...please send me the sample assignments on my email id at
cmmahajan@gmail.com
points will be rewarded...
Regards,
Chandra
‎2007 Apr 18 10:37 AM
hi chandar ,
hope u can try using this program....which will help u learn on ALV display using 2-3 tables...
<u><b>YOUR AIM</b></u>
Design a Report that would take display all the Sales Order between 2 dates. When the user double clicks on a sales order the report would then display additional details on that Sales Order.
<b>Description:</b>
1)Use Select Options for the range of dates (VBAK-ERDAT).
2)Display the fields
<b>
Document No.
Creation User Name
Creation Date
Customer Name</b>
for the Report from the Sales Document Header (VBAK). Customer name can be found in table (KNA1).
<b>WHEN DCUMENT NO. IS DOUBLE CLICKED DISPLAY THE FOLLOWING FIELDS :
Material No
Material Description.
Batch Number.
Item type</b>
from the Sales Document Item (VBAP). Material Description can be found in table (MAKT).
The program should handle exceptions and display proper error message where required.
<u><b>SAMPLE CODE</b></u>
REPORT sales_report NO STANDARD PAGE HEADING .
TABLES : vbak .
<u><b>STRUCTURE DECLARATION</b></u>
TYPES : BEGIN OF st_vbak ,
vbeln TYPE vbak-vbeln ,
ernam TYPE vbak-ernam ,
erdat TYPE vbak-erdat ,
name1 TYPE kna1-name1 ,
END OF st_vbak .
TYPES : BEGIN OF st_vbap ,
matnr TYPE vbap-matnr ,
maktx TYPE makt-maktx ,
charg TYPE vbap-charg ,
posar TYPE vbap-posar ,
END OF st_vbap .
<b>INTERNAL TABLE & WORK AREA</b>
DATA : it_vbak TYPE TABLE OF st_vbak ,
wa_vbak TYPE st_vbak ,
it_vbap TYPE TABLE OF st_vbap ,
wa_vbap TYPE st_vbap .
<b>
TOP-OF-PAGE .</b>
WRITE :4 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :130 sy-vline .
WRITE :/4 sy-vline ,
10 DOCUMENT NO ,
39 sy-vline ,
40 USER NAME
69 sy-vline ,
70 DATE
89 sy-vline ,
90 CUSTOMER NAME,
130 sy-vline.
WRITE :/130 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :4 sy-vline ,130 sy-vline .
<b>TOP-OF-PAGE DURING LINE-SELECTION .</b>
WRITE :4 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :130 sy-vline .
WRITE :/4 sy-vline ,
10 MATERIAL NO.,
39 sy-vline ,
40 MATERIAL DESCRIPTION
69 sy-vline ,
70 BATCH NUMBER
89 sy-vline ,
90 ITEM TYPE
130 sy-vline.
WRITE :/130 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :4 sy-vline ,
130 sy-vline .
SELECT-OPTIONS put_date FOR vbak-erdat .
AT LINE-SELECTION .
PERFORM select_and_write_vbap .
START-OF-SELECTION.
PERFORM sales_document .
END-OF-SELECTION.
FORM select_and_write_vbap .
SELECT
vbap~matnr
makt~maktx
vbap~charg
vbap~posar
FROM ( vbap INNER JOIN makt ON vbapmatnr = maktmatnr )
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
WHERE vbap~vbeln = wa_vbak-vbeln AND spras = 'EN' .
IF sy-subrc EQ 0 .
LOOP AT it_vbap INTO wa_vbap .
WRITE :/4 sy-vline ,
10 wa_vbap-matnr ,
39 sy-vline ,
40 wa_vbap-maktx ,
69 sy-vline ,
70 wa_vbap-charg ,
89 sy-vline ,
90 wa_vbap-posar ,
130 sy-vline .
ENDLOOP.
WRITE :/4 sy-vline.
WRITE AT 5(125) sy-uline.
WRITE 130 sy-vline.
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDFORM . "select_vbap
FORM sales_document .
IF put_date-low IS INITIAL AND put_date-high IS NOT INITIAL .
SELECT
vbak~vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat <= put_date-high.
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
IF put_date-low IS NOT INITIAL AND put_date-high IS INITIAL .
SELECT vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat EQ put_date-low .
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
IF put_date-high IS INITIAL AND put_date-low IS INITIAL .
MESSAGE s000(zginni) .
ELSE .
SELECT
vbak~vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat BETWEEN put_date-low AND put_date-high.
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
ENDFORM .
FORM looping_wa_vbak .
LOOP AT it_vbak INTO wa_vbak .
WRITE :/4 sy-vline ,
10 wa_vbak-vbeln .
<b> HIDE wa_vbak-vbeln .
WRITE: 39 sy-vline ,
40 wa_vbak-ernam ,
69 sy-vline ,
70 wa_vbak-erdat ,
89 sy-vline ,
90 wa_vbak-name1 ,
130 sy-vline .</b>
ENDLOOP.
WRITE :/4 sy-vline.
WRITE AT 5(125) sy-uline .
WRITE 130 sy-vline.
ENDFORM.
<b>
USING AT LINE SELECTION EVENT AND THE HIDE STAEMENT THE REPORT CAN BE MAD INTERACTIVE</b>
hope this assignment helps u
reward points if useful
Ginni
‎2007 Apr 18 9:58 AM
‎2007 Apr 18 10:15 AM
HI Chandra shekar..
If you have SAP system then go through
<b>ABAPDOCU transcation</b> which contain all the ABAP Examples
adn go to SE 80 Transaction and give package as
<b>BC400,bc410,bc420,bc470</b>,in these you can find so many sample programs just go through those
RegardsRk
‎2007 Apr 18 10:24 AM
hi chandra sekar
tcode:abapdocu
& in se 80, view all the pgms in SLIS package for alv pgms
fyi, never type anything as urgent.
regds
kiran
‎2007 Apr 18 10:37 AM
hi chandar ,
hope u can try using this program....which will help u learn on ALV display using 2-3 tables...
<u><b>YOUR AIM</b></u>
Design a Report that would take display all the Sales Order between 2 dates. When the user double clicks on a sales order the report would then display additional details on that Sales Order.
<b>Description:</b>
1)Use Select Options for the range of dates (VBAK-ERDAT).
2)Display the fields
<b>
Document No.
Creation User Name
Creation Date
Customer Name</b>
for the Report from the Sales Document Header (VBAK). Customer name can be found in table (KNA1).
<b>WHEN DCUMENT NO. IS DOUBLE CLICKED DISPLAY THE FOLLOWING FIELDS :
Material No
Material Description.
Batch Number.
Item type</b>
from the Sales Document Item (VBAP). Material Description can be found in table (MAKT).
The program should handle exceptions and display proper error message where required.
<u><b>SAMPLE CODE</b></u>
REPORT sales_report NO STANDARD PAGE HEADING .
TABLES : vbak .
<u><b>STRUCTURE DECLARATION</b></u>
TYPES : BEGIN OF st_vbak ,
vbeln TYPE vbak-vbeln ,
ernam TYPE vbak-ernam ,
erdat TYPE vbak-erdat ,
name1 TYPE kna1-name1 ,
END OF st_vbak .
TYPES : BEGIN OF st_vbap ,
matnr TYPE vbap-matnr ,
maktx TYPE makt-maktx ,
charg TYPE vbap-charg ,
posar TYPE vbap-posar ,
END OF st_vbap .
<b>INTERNAL TABLE & WORK AREA</b>
DATA : it_vbak TYPE TABLE OF st_vbak ,
wa_vbak TYPE st_vbak ,
it_vbap TYPE TABLE OF st_vbap ,
wa_vbap TYPE st_vbap .
<b>
TOP-OF-PAGE .</b>
WRITE :4 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :130 sy-vline .
WRITE :/4 sy-vline ,
10 DOCUMENT NO ,
39 sy-vline ,
40 USER NAME
69 sy-vline ,
70 DATE
89 sy-vline ,
90 CUSTOMER NAME,
130 sy-vline.
WRITE :/130 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :4 sy-vline ,130 sy-vline .
<b>TOP-OF-PAGE DURING LINE-SELECTION .</b>
WRITE :4 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :130 sy-vline .
WRITE :/4 sy-vline ,
10 MATERIAL NO.,
39 sy-vline ,
40 MATERIAL DESCRIPTION
69 sy-vline ,
70 BATCH NUMBER
89 sy-vline ,
90 ITEM TYPE
130 sy-vline.
WRITE :/130 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :4 sy-vline ,
130 sy-vline .
SELECT-OPTIONS put_date FOR vbak-erdat .
AT LINE-SELECTION .
PERFORM select_and_write_vbap .
START-OF-SELECTION.
PERFORM sales_document .
END-OF-SELECTION.
FORM select_and_write_vbap .
SELECT
vbap~matnr
makt~maktx
vbap~charg
vbap~posar
FROM ( vbap INNER JOIN makt ON vbapmatnr = maktmatnr )
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
WHERE vbap~vbeln = wa_vbak-vbeln AND spras = 'EN' .
IF sy-subrc EQ 0 .
LOOP AT it_vbap INTO wa_vbap .
WRITE :/4 sy-vline ,
10 wa_vbap-matnr ,
39 sy-vline ,
40 wa_vbap-maktx ,
69 sy-vline ,
70 wa_vbap-charg ,
89 sy-vline ,
90 wa_vbap-posar ,
130 sy-vline .
ENDLOOP.
WRITE :/4 sy-vline.
WRITE AT 5(125) sy-uline.
WRITE 130 sy-vline.
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDFORM . "select_vbap
FORM sales_document .
IF put_date-low IS INITIAL AND put_date-high IS NOT INITIAL .
SELECT
vbak~vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat <= put_date-high.
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
IF put_date-low IS NOT INITIAL AND put_date-high IS INITIAL .
SELECT vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat EQ put_date-low .
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
IF put_date-high IS INITIAL AND put_date-low IS INITIAL .
MESSAGE s000(zginni) .
ELSE .
SELECT
vbak~vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat BETWEEN put_date-low AND put_date-high.
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
ENDFORM .
FORM looping_wa_vbak .
LOOP AT it_vbak INTO wa_vbak .
WRITE :/4 sy-vline ,
10 wa_vbak-vbeln .
<b> HIDE wa_vbak-vbeln .
WRITE: 39 sy-vline ,
40 wa_vbak-ernam ,
69 sy-vline ,
70 wa_vbak-erdat ,
89 sy-vline ,
90 wa_vbak-name1 ,
130 sy-vline .</b>
ENDLOOP.
WRITE :/4 sy-vline.
WRITE AT 5(125) sy-uline .
WRITE 130 sy-vline.
ENDFORM.
<b>
USING AT LINE SELECTION EVENT AND THE HIDE STAEMENT THE REPORT CAN BE MAD INTERACTIVE</b>
hope this assignment helps u
reward points if useful
Ginni