Quantcast
Channel: SCN : All Content - All Communities
Viewing all articles
Browse latest Browse all 8705

create an alv grid display using vbak and vbap.

$
0
0

the case is:

 

Create one ALV report Grid display with the following functionality.


1) Input fields on the selection screen

a) Sales order no range

b) A layout Variant

2) Do validation for the layout existence at the selection screen.


3) F4 help should be available for the variant on the selection screen.


3) Select VBAK data (fields vbeln, auart erdat ernam) based on screen input


4) Select vbap data ( fields matnr, netwr, waerk ) based on data selected

from VBAK


5) Prepare the final table with the output as 'AUART','VBELN'.'MATNR'. 'ERDAT'.

'ERNAM'.'NETWR'. 'WAERK'.


6) The output should have a heading as 'Training ALV Report'. and sub-heading

'Sales Doc. No:' where you display the input(on selection screen )

sales order no’s if given as a range of single values.

 

7) The output should have a subtotal based on document type.( field AUART)


8) On the output screen, if we click on the sales order no it should navigate to 

   sales order display screen (VA03 transaction)


9) The output should have a space reserved for end of list.

Display "Footer" "End of List" there.

 

 

 

 

 

TYPE-POOLS : slis.

 

 

TABLES : vbak,

         vbap.

 

 

DATA: fieldcatalog TYPE STANDARD TABLE OF slis_fieldcat_alv WITH HEADER LINE,

      t_listheader TYPE TABLE OF slis_listheader.

 

 

 

 

DATA : BEGIN OF ivbak OCCURS 0,

       vbeln LIKE vbak-vbeln,

       auart LIKE vbak-auart,

       erdat LIKE vbak-erdat,

       ernam LIKE vbak-ernam,

       waerk LIKE vbak-waerk,

  END OF ivbak.

 

 

DATA : BEGIN OF ivbap OCCURS 0,

       vbeln LIKE vbap-vbeln,

       matnr LIKE vbap-matnr,

       netwr LIKE vbap-netwr,

  END OF ivbap.

 

 

DATA : BEGIN OF final OCCURS 0,

       vbeln LIKE vbak-vbeln,

       auart LIKE vbak-auart,

       erdat LIKE vbak-erdat,

       ernam LIKE vbak-ernam,

       waerk LIKE vbak-waerk,

       matnr LIKE vbap-matnr,

       netwr LIKE vbap-netwr,

  END OF final.

 

 

 

 

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_vbeln FOR vbak-vbeln.

SELECTION-SCREEN END OF BLOCK b1.

 

 

PERFORM data_retrieval.

PERFORM build_fieldcatalog.

PERFORM display_alv_report.

 

 

 

 

*&---------------------------------------------------------------------*

*&      Form  data_retrieval

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM data_retrieval.

 

 

  SELECT vbeln auart erdat ernam waerk

    FROM vbak INTO TABLE ivbak

    WHERE vbeln IN s_vbeln.

 

 

  IF NOT ivbak[] IS INITIAL.

 

 

    SELECT vbeln matnr netwr

      FROM vbap INTO ivbap FOR ALL ENTRIES IN ivbak

      WHERE vbeln EQ ivbak-vbeln.

      SORT ivbap BY vbeln.

 

 

      LOOP AT ivbak.

        READ TABLE ivbap WITH KEY vbeln = ivbak-vbeln BINARY SEARCH.

 

 

        IF sy-subrc EQ 0.

          MOVE : ivbak-vbeln TO final-vbeln,

                 ivbak-auart TO final-auart,

                 ivbak-erdat TO final-erdat,

                 ivbak-ernam TO final-ernam,

                 ivbak-waerk TO final-waerk,

                 ivbap-matnr TO final-matnr,

                 ivbap-netwr TO final-netwr.

          APPEND final.

          CLEAR final.

          CLEAR ivbak.

          CLEAR ivbap.

        ELSE.

          CONTINUE.

        ENDIF.

      ENDLOOP.

      LOOP AT final.

        WRITE : / final-auart,

                  final-vbeln,

                  final-matnr,

                  final-erdat,

                  final-ernam,

                  final-waerk,

                  final-netwr.

 

 

      ENDLOOP.

    ENDSELECT.

 

 

  ENDIF.

 

 

ENDFORM.                    "data_retrieval

*&---------------------------------------------------------------------*

*&      Form  BUILD_FIELDCATALOG

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM build_fieldcatalog.

 

 

  fieldcatalog-fieldname   = 'AUART'.

  fieldcatalog-seltext_m   = 'SALES DOCUMENT TYPE'.

  fieldcatalog-col_pos     = 0.

  APPEND fieldcatalog TO fieldcatalog.

  CLEAR  fieldcatalog.

 

 

  fieldcatalog-fieldname   = 'VBELN'.

  fieldcatalog-seltext_m   = 'SALES DOCUMENT'.

  fieldcatalog-col_pos     = 1.

  APPEND fieldcatalog TO fieldcatalog.

  CLEAR  fieldcatalog.

 

 

 

 

  fieldcatalog-fieldname   = 'MATNR'.

  fieldcatalog-seltext_m   = 'ARTICLE NUMBER'.

  fieldcatalog-col_pos     = 2.

  APPEND fieldcatalog TO fieldcatalog.

  CLEAR  fieldcatalog.

 

 

  fieldcatalog-fieldname   = 'ERDAT'.

  fieldcatalog-seltext_m   = 'DATE'.

  fieldcatalog-col_pos     = 3.

  APPEND fieldcatalog TO fieldcatalog.

  CLEAR  fieldcatalog.

 

 

  fieldcatalog-fieldname   = 'ERNAM'.

  fieldcatalog-seltext_m   = 'NAME OF PERSON'.

  fieldcatalog-col_pos     = 4.

  APPEND fieldcatalog TO fieldcatalog.

  CLEAR  fieldcatalog.

 

 

  fieldcatalog-fieldname   = 'NETWR'.

  fieldcatalog-seltext_m   = 'NET VALUE ORDER'.

  fieldcatalog-col_pos     = 5.

  APPEND fieldcatalog TO fieldcatalog.

  CLEAR  fieldcatalog.

 

 

  fieldcatalog-fieldname   = 'WAERK'.

  fieldcatalog-seltext_m   = 'SD DOCUMENT CURRENCY'.

  fieldcatalog-col_pos     = 6.

  APPEND fieldcatalog TO fieldcatalog.

  CLEAR  fieldcatalog.

 

 

ENDFORM.                    "build_fieldcatalog

 

 

*&---------------------------------------------------------------------*

*&      Form  DISPLAY_ALV_REPORT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM display_alv_report.

 

 

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

   EXPORTING

     i_callback_program                = sy-repid

*     I_CALLBACK_USER_COMMAND           = ' '

     i_callback_top_of_page            = ' top_of_page  '

*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '

*     I_CALLBACK_HTML_END_OF_LIST       = ' '

*     I_STRUCTURE_NAME                  =

*     I_BACKGROUND_ID                   = ' '

*     I_GRID_TITLE                      =

*     I_GRID_SETTINGS                   =

*     IS_LAYOUT                         =

     it_fieldcat                       = fieldcatalog[]

*     IT_EXCLUDING                      =

*     IT_SPECIAL_GROUPS                 =

*     IT_SORT                           =

*     IT_FILTER                         =

*     IS_SEL_HIDE                       =

*     I_DEFAULT                         = 'X'

*     i_save                            = ' X '

*     is_variant                        = g_variant

*     IT_EVENTS                         =

*     IT_EVENT_EXIT                     =

*     IS_PRINT                          =

*     IS_REPREP_ID                      =

*     I_SCREEN_START_COLUMN             = 0

*     I_SCREEN_START_LINE               = 0

*     I_SCREEN_END_COLUMN               = 0

*     I_SCREEN_END_LINE                 = 0

*     IT_ALV_GRAPHICS                   =

*     IT_HYPERLINK                      =

*     IT_ADD_FIELDCAT                   =

*     IT_EXCEPT_QINFO                   =

*     I_HTML_HEIGHT_TOP                 =

*     I_HTML_HEIGHT_END                 =

*   IMPORTING

*     E_EXIT_CAUSED_BY_CALLER           =

*     ES_EXIT_CAUSED_BY_USER            =

    TABLES

      t_outtab                          = final

   EXCEPTIONS

     program_error                     = 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.

ENDFORM.                    "display_alv_report

 

 

 

 

 

 

 

 

*&---------------------------------------------------------------------*

*&      Form  top_of_page

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM top_of_page .

  DATA:lw_header TYPE  slis_listheader.

 

 

  CLEAR:lw_header.

  lw_header-typ = 'H'.

  lw_header-info = 'TRAINING ALV REPORT'.

  APPEND lw_header TO t_listheader.

 

 

  CLEAR:lw_header.

  lw_header-typ = 'S'.

  lw_header-key = 'SALES DOCUMENT NUMBER :'.

  APPEND lw_header TO t_listheader.

 

 

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

    EXPORTING

      it_list_commentary = t_listheader.

ENDFORM.                    "top_of_page


Viewing all articles
Browse latest Browse all 8705

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>