Wednesday, February 1, 2017

Multiple ALVs with Different Header

In the following example we have prepared two ALV Grid report in one single screen. There are two custom screens – one is for finished goods materials and another is for Raw materials. We also have mentioned two different header texts by using the Layout. Step by step approach is as follows:

1. At first create a report and create a custom screen (9000) without modifying the standard one.


2. Go to Layout and then create the custom containers (here 2 is in our example).


3. Now create the PBO & PAI modules at the custom screen.


4. In PBO we are creating custom container, ALV grid & calling the ALV grid method along with PF status & Title Bar.





5. In PAI the BACK, EXIT & CANCEL buttons are activated.


The detailed coding is as follows.

REPORT zsr_test NO STANDARD PAGE HEADING.

TABLESmara.

"-General Material Data
TYPESBEGIN OF ty_mara,
         matnr TYPE mara-matnr,
         ersda TYPE mara-ersda,
         mtart TYPE mara-mtart,
       END OF ty_mara.
DATAwa_mara TYPE ty_mara,
      it_mara TYPE TABLE OF ty_mara.

"-Material Descriptions
TYPESBEGIN OF ty_makt,
         matnr TYPE makt-matnr,
         maktx TYPE makt-maktx,
       END OF ty_makt.
DATAwa_makt TYPE ty_makt,
      it_makt TYPE TABLE OF ty_makt.

"-Output Table
TYPESBEGIN OF ty_out,
         matnr TYPE mara-matnr,
         maktx TYPE makt-maktx,
         ersda TYPE mara-ersda,
         mtart TYPE mara-mtart,
       END OF ty_out.
DATAwa_out TYPE ty_out,
      it_fg  TYPE TABLE OF ty_out"-Finished Goods Table
      it_rm  TYPE TABLE OF ty_out"-Raw Materials Table

"-Field Catalouge
DATAwa_fcat TYPE lvc_s_fcat,
      it_fcat TYPE TABLE OF lvc_s_fcat.

"-Custom Container Object
DATAob_cont_fg TYPE REF TO cl_gui_custom_container,
      ob_cont_rm TYPE REF TO cl_gui_custom_container.

"-ALV Grid Object
DATAob_grid_fg TYPE REF TO cl_gui_alv_grid,
      ob_grid_rm TYPE REF TO cl_gui_alv_grid.

"-Layout
DATAwa_lay_fg TYPE lvc_s_layo,
      wa_lay_rm TYPE lvc_s_layo,
      ok_code   TYPE sy-ucomm.

INITIALIZATION.
  SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
  SELECT-OPTIONS   s_ersda FOR mara-ersda OBLIGATORY.
  SELECTION-SCREEN END OF BLOCK b1.

CLASS cl_material DEFINITION.
  PUBLIC SECTION.
    METHODS:
      get_material,
      prepare_output,
      fieldcat.
ENDCLASS.

CLASS cl_material IMPLEMENTATION.
  METHOD get_material.
    IF s_ersda[] IS NOT INITIAL.
      SELECT matnr ersda mtart
        FROM mara INTO TABLE it_mara
        WHERE ersda IN s_ersda
          AND mtart IN 'FERT''ROH' ).

      "-FERT - Finished Goods
      "-ROH  - Raw Materials

      IF sy-subrc 0.
        SORT it_mara BY matnr.
        SELECT matnr maktx
          FROM makt INTO TABLE it_makt
          FOR ALL ENTRIES IN it_mara
          WHERE matnr it_mara-matnr.

        IF sy-subrc 0.
          SORT it_makt BY matnr.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDMETHOD.

  METHOD prepare_output.
    IF it_mara IS NOT INITIAL.
      LOOP AT it_mara INTO wa_mara.
        READ TABLE it_makt INTO wa_makt
        WITH KEY matnr wa_mara-matnr
        BINARY SEARCH.
        IF sy-subrc 0.
          wa_out-maktx wa_makt-maktx.
        ENDIF.
        wa_out-matnr wa_mara-matnr.
        wa_out-ersda wa_mara-ersda.
        wa_out-mtart wa_mara-mtart.

        IF wa_out-mtart 'FERT'.
          APPEND wa_out TO it_fg.         "-Finished Goods Table
          CLEARwa_outwa_marawa_makt.

        ELSE.
          APPEND wa_out TO it_rm.         "-Raw Materials Table
          CLEARwa_outwa_marawa_makt.
        ENDIF.
      ENDLOOP.
    ENDIF.
    FREEit_marait_makt.
  ENDMETHOD.

  METHOD fieldcat.

    "-Creating Field Catalouge
    REFRESH it_fcat.
    DATAlv_col TYPE VALUE 0.
    lv_col            lv_col + 1.
    wa_fcat-col_pos   lv_col.
    wa_fcat-fieldname 'MATNR'.
    wa_fcat-reptext   'Material Code'.
    APPEND wa_fcat TO it_fcat.
    CLEAR wa_fcat.

    lv_col            lv_col + 1.
    wa_fcat-col_pos   lv_col.
    wa_fcat-fieldname 'MAKTX'.
    wa_fcat-reptext   'Description'.
    APPEND wa_fcat TO it_fcat.
    CLEAR wa_fcat.

    lv_col            lv_col + 1.
    wa_fcat-col_pos   lv_col.
    wa_fcat-fieldname 'ERSDA'.
    wa_fcat-reptext   'Created On'.
    APPEND wa_fcat TO it_fcat.
    CLEAR wa_fcat.

    lv_col            lv_col + 1.
    wa_fcat-col_pos   lv_col.
    wa_fcat-fieldname 'MTART'.
    wa_fcat-reptext   'Material Type'.
    APPEND wa_fcat TO it_fcat.
    CLEAR wa_fcat.

    "-Creating Layout
    wa_lay_fg-zebra      'X'.
    wa_lay_fg-cwidth_opt 'X'.
    wa_lay_fg-grid_title 'Finished Goods Materials'.
    wa_lay_rm-zebra      'X'.
    wa_lay_rm-cwidth_opt 'X'.
    wa_lay_rm-grid_title 'Raw Materials'.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  DATAob_material TYPE REF TO cl_material.
  CREATE OBJECT ob_material.
  CALL METHODob_material->get_material,
               ob_material->prepare_output,
               ob_material->fieldcat.
  CALL SCREEN 9000.                  "-Calling Custom Screen

*&---------------------------------------------------------------------*
*&      Module  STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*       PBO of 9000
*----------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
  SET PF-STATUS 'PF_9000'.
  SET TITLEBAR 'MAT'.

  PERFORM finished_goods_alv.
  PERFORM raw_materials_alv.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       PAI of 9000
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.

  IF   ok_code 'BACK'
    OR ok_code 'EXIT'
    OR ok_code 'CANCEL'.
    FREEob_cont_fgob_grid_fgob_cont_rmob_grid_rm,
          it_fcatit_fgit_rm.
    LEAVE TO SCREEN 0.
  ENDIF.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Form  FINISHED_GOODS_ALV
*&---------------------------------------------------------------------*
*       ALV of FG
*----------------------------------------------------------------------*
FORM finished_goods_alv .
  CREATE OBJECT ob_cont_fg
    EXPORTING
      container_name 'CONT_FG'"-Creating Container
  "-In layout CONT_FG name is given

  CREATE OBJECT ob_grid_fg
    EXPORTING
      i_parent ob_cont_fg"-Creating ALV Grid

  "-ALV Grid Display Method
  CALL METHOD ob_grid_fg->set_table_for_first_display
    EXPORTING
      is_layout       wa_lay_fg
    CHANGING
      it_fieldcatalog it_fcat
      it_outtab       it_fg.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  RAW_MATERIALS_ALV
*&---------------------------------------------------------------------*
*       ALV of RM
*----------------------------------------------------------------------*
FORM raw_materials_alv .
  CREATE OBJECT ob_cont_rm
    EXPORTING
      container_name 'CONT_RM'"-Creating Container
  "-In layout CONT_RM name is given

  CREATE OBJECT ob_grid_rm
    EXPORTING
      i_parent ob_cont_rm"-Creating ALV Grid

  "-ALV Grid Display Method
  CALL METHOD ob_grid_rm->set_table_for_first_display
    EXPORTING
      is_layout       wa_lay_rm
    CHANGING
      it_fieldcatalog it_fcat
      it_outtab       it_rm.
ENDFORM.

Output.



49 comments:


  1. Well it Was Very Good Information. Thanks for sharing this Information. sap video

    ReplyDelete

  2. This article is really contains lot more information about This Topic on sap training videos

    ReplyDelete


  3. Thank you for giving this best information. It’s a very nice topic. sap video tutorials

    ReplyDelete
  4. Thank you sir.Thanks for Nice and Informative Post on.Sap videos

    ReplyDelete
  5. Thank you sir.I get a lot of great information from this blog on sap video

    ReplyDelete
  6. Thankyou for wonderful article. It has more Information in Your Website sap video tutorials.

    ReplyDelete
  7. Thank you sir.It was so nice article Thank you for valuable information.Sap videos

    ReplyDelete

  8. Thank you sir.This article is really contains lot more information about This Topic on. Sap videos

    ReplyDelete

  9. I get a lot of great information from this blog on sap video

    ReplyDelete

  10. It was so nice article.I was really satisified by seeing this article. Sap videos

    ReplyDelete

  11. Thank you sir.It was so nice article.I was really satisified by seeing this article. sap video tutorials

    ReplyDelete
  12. Thank you sir.The information you have given here is truly helpful to me. Sap videos

    ReplyDelete

  13. I get a lot of great information from this blog. Thank you for your sharing this informative blog sap video

    ReplyDelete

  14. Well it Was Very Good Information. Thanks for sharing this Information sap video tutorials

    ReplyDelete
  15. SAP Success Factors Real Time Hands on Training in Chennai...

    Don't always Depend on Training Institute Alone and so please aware of Best Trainers too..

    http://thecreatingexperts.com/sap-successfactors-training-in-chennai/

    If You need a Best Trainer over SAP Success Factors Means??? Please ready for an DEMO From the Trainer MR.Karthick
    CONTACT:8122241286

    Both Classroom/Online Training is Available!!!!!!

    ReplyDelete
  16. It was so nice article.I was really satisified by seeing this article..Sap videos

    ReplyDelete
  17. Thank you sir.It was so nice article.I was really satisified by seeing this article.sap video tutorials

    ReplyDelete


  18. Thank you for giving this best information. It’s a very nice topic.. Sap videos

    ReplyDelete
  19. Thank you sir.I am very greatful to you that you share very informative post with us sap video

    ReplyDelete
  20. Thank you sir.Thanks for Nice and Informative Post on. Sap videos

    ReplyDelete

  21. Thank you sir.Thanks for Nice and Informative Post on. sap video

    ReplyDelete


  22. Thankyou for information excellent blog have a great possible. Sap videos

    ReplyDelete

  23. Well, I found this information really useful. Thanks a ton for this.. Sap videos

    ReplyDelete
  24. Thank you. sir, Really I like your post on. sap video tutorials

    ReplyDelete
  25. Thankyou for information excellent blog have a great possible .Sap videos

    ReplyDelete

  26. Thank you sir.It is such a wonderful post. sap video

    ReplyDelete
  27. Thankyou for Sharing Great Information. It is Very Helpful Information on.Sap videos

    ReplyDelete
  28. Fabulous..!!! The information you Provided is much useful.. Sap videos

    ReplyDelete
  29. Thankyou for Sharing Great Information. It is Very Helpful Information on. sap video

    ReplyDelete
  30. The information you posted here is useful to make my career better keep updates. Sap videos

    ReplyDelete
  31. It was so nice article Thank you for valuable information. sap video

    ReplyDelete

  32. I get a lot of great information from this blog.. Sap videos

    ReplyDelete
  33. Thanks for sharing this informative blog. sap training videos

    ReplyDelete
  34. Thanks for sharing this informative blog..Your blog is really useful for me..Sap videos

    ReplyDelete
  35. Thank you sir.This website is providing the lot of topics. sap video

    ReplyDelete

  36. Thanks for providing this information. Sap videos

    ReplyDelete
  37. I am very grateful to you that you share very informative post with us. sap video tutorials

    ReplyDelete

  38. The information you have posted here is really useful and interesting too & here. Sap videos

    ReplyDelete
  39. Thanks for the great information in your blog on It was so nice article Thank you for valuable informationsap video tutorials

    ReplyDelete
  40. Thanks for your info...Here THE CREATING EXPERTS provide hands on training with real time scenarios

    http://thecreatingexperts.com/sap-abap-training-in-chennai/

    contact +91-08122241286

    ReplyDelete
  41. Very informative blog...SAP ABAP real Time Hands on Training in Chennai…

    http://thecreatingexperts.com/sap-abap-training-in-chennai/

    CONTACT:8122241286

    Both Classroom/Online Training is Available.

    ReplyDelete
  42. Fabulous..!!! The information you Provided is much useful. sap video

    ReplyDelete

  43. Thanks for the interesting information. sap videos online

    ReplyDelete
  44. Fabulous..!!! The information you Provided is much useful.. sap video training

    ReplyDelete

  45. Thanks for the great information in your blog on It was so nice article. Sap videos

    ReplyDelete
  46. It was so nice article Thank you for valuable information. sap videos tutorials

    ReplyDelete
  47. Thank you for giving this best information. It’s a very nice topic. sapvideos

    ReplyDelete
  48. Good post! Thanks for sharing this Information.The information you Provided is much useful onsap-hr abap online classes

    ReplyDelete

Note: Only a member of this blog may post a comment.