07.Advanced Abap

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    07.Advanced Abap - Presentation Transcript

    1. ABAP Advanced List  Control Break Report  ALV Report
    2. Types of ABAP Report 1 3 1. Report Listing 4 2. Drill-down Report 3. Control-break Report 4. ALV Report
    3. Internal Table Processing Technique Control-Break Report
    4. Control Break Report Technique  AT FIRST  AT NEW <Control Break field>  AT END OF <Control Break field> ENDAT  AT LAST  SUM
    5. Program Structure … LOOP AT tab. tab *Print Header AT FIRST. … name qty ENDAT. *Print Control Break Field AT NEW name. … ENDAT. *Print Normal Data WRITE: / … *Sub Total AT END OF name. … ENDAT. *Report Total AT LAST. … ENDAT. ENDLOOP.
    6. Example I sales name qty A 10 A 20 A 30 B 5 B 10
    7. Example I … LOOP AT SALES. *Print Header AT FIRST. FORMAT COLOR 1. WRITE: / 'Name', 23 'Qty', 35 ' '. ULINE: /(35). FORMAT COLOR OFF. ENDAT. *Print Control Break Field AT NEW NAME. WRITE: / SALES-NAME. ULINE: /(5). ENDAT. *Print Normal Data WRITE: /15 SALES-QTY.
    8. Example I *Print Total for each group data AT END OF NAME. ULINE: /(35). SUM. WRITE: /5 'Total' ,15 SALES-QTY COLOR 3. ENDAT. *Print Grand Total for the report AT LAST. ULINE: /(35). SUM. WRITE: /2 'Grand Total', 15 SALES-QTY COLOR 7. ULINE: /(35). ENDAT. ENDLOOP.
    9. Example II sales name qty A 10 A 20 A 30 B 5 B 10
    10. Example II … LOOP AT SALES. AT FIRST. FORMAT COLOR 1. WRITE: / 'Name', 23 'Qty', 35 ' '. ULINE: /(35). FORMAT COLOR OFF. ENDAT. AT END OF NAME. SUM. WRITE: / SALES-NAME, 15 SALES-QTY. ULINE: /(35). ENDAT. AT LAST. SUM. WRITE: /5 'Total', 15 SALES-QTY. ULINE: /(35). ENDAT. ENDLOOP.
    11. Exercise I ZSALES cust_id prod_id sale_date qty 1 A1 20020318 10 1 A1 20020319 100 1 A1 20020329 50 1 A2 20020318 50 1 A2 20020329 200 3 X1 20020321 90
    12. Exercise I ID Product ID Quantity 1 A1 10 A1 100 A1 50 A2 50 A2 200 ------------------------------ Total 410 3 X1 90 ------------------------------ Total 90 ------------------------------ Grand Total 500 ----------------------------------
    13. Example Data for Example III spfli Carrid Connid Cityfrom cityto distance LH 0400 NY BK 100 LH 0402 BK NY 540 SQ 0110 SQ BK 250
    14. Example III Data flight like spfli occurs 0 with Header line. Select * from spfli into table flight. loop at flight. at new carrid. LH 0400 0402 write : / flight-carrid. ___________ SQ 0110 endat. ___________ write flight-connid. at end of carrid. uline / (25). endat. endloop.
    15. Internal Table Processing Example tab(internal table) ID Name prodno Month YTD Accum 1 A 01 100.00 400.00 1,000.00 1 A 02 50.00 100.00 100.00 1 A 03 100.00 100.00 100.00 2 B 02 100.00 1,000.00 2,000.00 2 B 03 100.00 100.00 100.00
    16. ID Name Month Y-T-D Accumulated Product No. ------------------------------------------------------------------------------------ 4 A ----------------- 01 100.00 400.00 1,000.00 02 50.00 100.00 100.00 03 100.00 100.00 100.00 ---------------------------------------------------- 250.00 600.00 1,200.00 2 B ----------------- 02 100.00 1,000.00 2,000.00 03 100.00 100.00 100.00 ---------------------------------------------------- 200.00 1,100.00 2,100.00 ---------------------------------------------------- Total 450.00 1,340.00 3,200.00 ----------------------------------------------------
    17. ABAP Program ... loop at tab. at first. write: / ‘ID’ , 10 ‘Name’, 30 ‘Month’, 50 ‘Y-T-D’ , 70 ‘Accumulated’. write: /5 ‘Product No’. uline /. endat. on change of tab-id. write: / tab-id, 10 tab-name. uline: /(20). endon. write: /5 tab-prodno, 30 tab-month, 50 tab-ytd, 70 tab-accum.
    18. ABAP Program at end of id. uline /30(60). sum. write: /30 tab-month, 50 tab-ytd, 70 tab-accum. skip. endat. at last. sum. uline /30(60). write: /10 ‘Total’, 30 tab-month, 50 tab-ytd, 70 tab-accum. uline /30(60). endat. endloop.
    19. Exercise II ZCUSTOMERS ZSALES id name city cust_id prod_id sale_date qty 1 John New York 1 A1 20020318 10 2 Peter London 1 A1 20020319 100 3 David Singapore 1 A1 20020329 50 1 A2 20020318 50 1 A2 20020329 200 3 X1 20020321 90
    20. Exercise II ID Name ____Product ID Quantity 1 John A1 10 A1 100 A1 50 A2 50 A2 200 ---------------------------- Total 410 3 Peter X1 90 ---------------------------- Total 90 ---------------------------- Grand Total 500 -------------------------------
    21. Control Break Report > 1 Level Loop at tab. tab sort tab by f1 f2. … Group Header Level 1 at new f1. f1 f2 f3 … endat. Group Header Level 2 A 1 1 at new f2. … A 1 2 endat. write: / … “normal data A 2 1 at end of f2. Sub Total Level 2 … B 2 1 endat. B 2 2 at end of f1. … Sub Total Level 1 B 3 3 endat. … C 3 4 Endloop.
    22. Example IV (Control-break 2 Levels) sales name date qty A 20070126 10 A 20070126 20 A 20070128 30 B 20070126 5 B 20070126 10
    23. Example IV (Control-break 2 Levels) … AT NEW NAME. WRITE: / SALES-NAME. ULINE: /(5). ENDAT. AT NEW DATE. WRITE: /10 SALES-DATE. ULINE: /10(10). ENDAT. WRITE: /30 SALES-QTY. AT END OF DATE. ULINE: /(50). SUM. WRITE: /15 'Sub Total(Date)' ,30 SALES-QTY COLOR COL_TOTAL. ENDAT. AT END OF NAME. ULINE: /(50). SUM. WRITE: /5 'Sub Total(Name)' ,30 SALES-QTY COLOR COL_TOTAL. ENDAT. …
    24. Exercise III ZSALES cust_id prod_id sale_date qty 1 A1 20020318 10 1 A1 20020319 100 1 A1 20020329 50 1 A2 20020318 50 1 A2 20020329 200 3 X1 20020321 90
    25. Exercise III
    26. ALV Report
    27. ALV Report  ALV Report Listing using Function Module  ALV Report using Control (ABAP Object)
    28. ALV Grid Listing  Call function ‘REUSE_ALV_GRID_DISPLAY’
    29. ALV Grid Listing Example REPORT ZALV01 NO STANDARD PAGE HEADING. * Internal table DATA: GT_TAB LIKE SFLIGHT OCCURS 0 WITH HEADER LINE. * Load Data from DB into internal table SELECT * FROM SFLIGHT INTO TABLE GT_TAB. * Call ABAP List Viewer function CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' TABLES T_OUTTAB = GT_TAB.
    30. ALV Example I List/Grid Display
    31. ALV List/Grid Display REPORT ZALV02 NO STANDARD PAGE HEADING. PARAMETERS: list radiobutton group grp1, grid radiobutton group grp1. DATA: gt_tab LIKE sflight OCCURS 0 WITH HEADER LINE. START-OF-SELECTION. SELECT * FROM sflight INTO TABLE gt_tab. IF list = 'X'. * Call ALV List Viewer CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' TABLES T_OUTTAB = GT_TAB. ELSE. * Call ALV Grid Viewer CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' TABLES T_OUTTAB = GT_TAB. ENDIF..
    32. ALV Report : Exercise I
    33. ALV Example II Using Field Catalog
    34. ALV Field Catalog REPORT ZALV03 NO STANDARD PAGE HEADING. type-pools slis. types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, end of i_structure. data: gt_fieldcat type slis_t_fieldcat_alv, gt_outtab type i_structure occurs 0 with header line. initialization. perform field_cat_init using gt_fieldcat[].
    35. ALV Field Catalog FORM field_cat_init using rt_fieldcat type slis_t_fieldcat_alv. data: ls_fieldcat type slis_fieldcat_alv, pos type i value 1. clear LS_FIELDCAT. *Column 1 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'CARRID'. ls_fieldcat-ref_fieldname = 'CARRID'. ls_fieldcat-ref_tabname = 'SFLIGHT'. ls_fieldcat-key = 'X'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1.
    36. ALV Field Catalog *Column 2 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'CONNID'. ls_fieldcat-ref_fieldname = 'CONNID'. ls_fieldcat-ref_tabname = 'SFLIGHT'. ls_fieldcat-key = 'X'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1. *Column 3 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'FLDATE'. ls_fieldcat-ref_fieldname = 'FLDATE'. ls_fieldcat-ref_tabname = 'SFLIGHT'. ls_fieldcat-key = 'X'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1.
    37. ALV Field Catalog *Column 4 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'PRICE'. ls_fieldcat-ref_fieldname = 'PRICE'. ls_fieldcat-ref_tabname = 'SFLIGHT'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1. endform.
    38. ALV Field Catalog START-OF-SELECTION. SELECT carrid connid fldate price FROM SFLIGHT INTO TABLE GT_OUTTAB. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'I_STRUCTURE' IT_FIELDCAT = gt_fieldcat[] TABLES T_OUTTAB = gt_outtab.
    39. ALV Field Catalog
    40. ALV Report : Exercise II
    41. ALV Example III Using Field Catalog (Add Derived Column)
    42. ALV Field Catalog – Add Field … types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, avail_seat like SFLIGHT-SEATSOCC, end of i_structure. … START-OF-SELECTION. select * from sflight. move-corresponding sflight to gt_outtab. gt_outtab-avail_seat = sflight-seatsmax - sflight-seatsocc. append gt_outtab. endselect.
    43. ALV Field Catalog – Add Field form field_cat_init using rt_fieldcat type slis_t_fieldcat_alv. … *Column 4 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'PRICE'. ls_fieldcat-ref_fieldname = 'PRICE'. ls_fieldcat-ref_tabname = 'SFLIGHT'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1. *Column 5 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'AVAIL_SEAT'. ls_fieldcat-SELTEXT_L = 'Available Seat'. ls_fieldcat-DDICTXT = 'L'. *ls_fieldcat-ref_fieldname = 'SEATSOCC'. *ls_fieldcat-ref_tabname = 'SFLIGHT'. append ls_fieldcat to rt_fieldcat. clear ls_fieldcat. pos = pos + 1. endform.
    44. ALV Field Catalog – Add Field
    45. ALV Report : Exercise III
    46. ALV Example IV Using Field Catalog (SELECT … INNER JOIN…)
    47. ALV Field Catalog – Select … Inner Join … … types: begin of i_structure, carrid LIKE spfli-carrid, connid LIKE spfli-connid, fldate LIKE sflight-fldate, cityto LIKE spfli-cityto, price LIKE sflight-price, end of i_structure. … START-OF-SELECTION. SELECT spfli~carrid spfli~connid sflight~fldate spfli~cityto sflight~price INTO TABLE gt_outtab FROM spfli INNER JOIN sflight ON spfli~carrid = sflight~carrid AND spfli~connid = sflight~connid.
    48. ALV Field Catalog form field_cat_init using rt_fieldcat type slis_t_fieldcat_alv. … *Column 4 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'CITYTO'. ls_fieldcat-ref_fieldname = 'CITYTO'. ls_fieldcat-ref_tabname = 'SPFLI'. APPEND ls_fieldcat TO rt_fieldcat. CLEAR ls_fieldcat. pos = pos + 1. *Column 5 ls_fieldcat-col_pos = pos. ls_fieldcat-fieldname = 'PRICE'. ls_fieldcat-ref_fieldname = 'PRICE'. ls_fieldcat-ref_tabname = 'SFLIGHT'. APPEND ls_fieldcat TO rt_fieldcat. CLEAR ls_fieldcat. pos = pos + 1. ENDFORM. "field_cat_init
    49. ALV Report : Example IV
    50. Exercise IV ZCUSTOMERS ZSALES id name city cust_id prod_id sale_date qty 1 John New York 1 A1 20020318 10 2 Peter London 1 A1 20020319 100 3 David Singapore 1 A1 20020329 50 1 A2 20020318 50 ZPRODUCTS 1 A2 20020329 200 p_id prod_name on_hand 3 X1 20020321 90 A1 Pen 100 A2 Pencil 125 B1 Ruler 80 X1 Tape 120
    51. ALV Report : Exercise IV zsales-sale_date zcustomers-id zcustomers-name zproducts-prod_name zsales-qty
    52. ALV Technique
    53. ALV : Variant
    54. ALV : Variant REPORT ZALV06 NO STANDARD PAGE HEADING. type-pools slis. types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, end of i_structure. data: gt_fieldcat type slis_t_fieldcat_alv, isvariant like DISVARIANT. "ADD gt_outtab type i_structure occurs 0 with header line. initialization. perform field_cat_init using gt_fieldcat[]. isvariant-report = 'ZALV06'. "ADD
    55. ALV : Variant START-OF-SELECTION. SELECT carrid connid fldate price FROM SFLIGHT INTO TABLE GT_OUTTAB. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'I_STRUCTURE' IT_FIELDCAT = gt_fieldcat[] IS_VARIANT = isvariant "ADD I_SAVE = 'A' "ADD “ A = user&Global,U = user,X = global TABLES T_OUTTAB = gt_outtab.
    56. ALV : Zebra
    57. ALV : Zebra REPORT ZALV2 NO STANDARD PAGE HEADING. type-pools slis. types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, end of i_structure. data: gt_fieldcat type slis_t_fieldcat_alv, GT_LAYOUT TYPE SLIS_LAYOUT_ALV, "ADD gt_outtab type i_structure occurs 0 with header line. initialization. perform field_cat_init using gt_fieldcat[]. GT_LAYOUT-ZEBRA = 'X'. "ADD
    58. ALV : Zebra START-OF-SELECTION. SELECT carrid connid fldate price FROM SFLIGHT INTO TABLE GT_OUTTAB. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'I_STRUCTURE' IT_FIELDCAT = gt_fieldcat[] IS_LAYOUT = GT_LAYOUT "ADD TABLES T_OUTTAB = gt_outtab.
    59. ALV : Title
    60. ALV : Title REPORT ZALV2 NO STANDARD PAGE HEADING. type-pools slis. types: begin of i_structure, carrid like sflight-carrid, connid like sflight-connid, fldate like sflight-fldate, price like sflight-price, end of i_structure. data: gt_fieldcat type slis_t_fieldcat_alv, GT_GID_TITLE TYPE LVC_TITLE, "ADD gt_outtab type i_structure occurs 0 with header line. initialization. perform field_cat_init using gt_fieldcat[]. concatenate 'Flight Information' ' for ALV Report' into GT_GID_TITLE. "ADD
    61. ALV : Title START-OF-SELECTION. SELECT carrid connid fldate price FROM SFLIGHT INTO TABLE GT_OUTTAB. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'I_STRUCTURE' IT_FIELDCAT = gt_fieldcat[] I_GRID_TITLE = GT_GID_TITLE "ADD TABLES T_OUTTAB = gt_outtab.
    62. Exercise
    63. Exercise : Sale Order KNA1 VBAK VBAP
    64. Exercise : Control-break Report vbak-audat vbap-matnr vbak-vbeln vbak-kunnr kna1-name1 vbap-netwr
    65. Exercise : ALV Report vbak-audat vbap-matnr vbap-netwr vbak-vbeln vbak-kunnr kna1-name1
    SlideShare Zeitgeist 2009

    + Ed  daiEd dai Nominate

    custom

    414 views, 0 favs, 3 embeds more stats

    You can find more SAP ABAP documents at http://sapd more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 414
      • 381 on SlideShare
      • 33 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 63
    Most viewed embeds
    • 28 views on http://www.erpgenie.com
    • 4 views on http://erpgenie.com
    • 1 views on http://translate.googleusercontent.com

    more

    All embeds
    • 28 views on http://www.erpgenie.com
    • 4 views on http://erpgenie.com
    • 1 views on http://translate.googleusercontent.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags