cancel
Showing results for 
Search instead for 
Did you mean: 

alv

Former Member
0 Kudos

hi friends this is rajesh

i want realtime alv programs for analysing purpose so plz send me some real time programs

thank you very much

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

*******************************************************************************
*  Report  Z_PP_REP_000161                                                      *
*           *
*                                                                             *
*-----------------------------------------------------------------------------*
                                   *
*                                                                             *
*******************************************************************************

REPORT  z_pp_rep_000161 MESSAGE-ID zpp.

*------------------------------------------------------------------------------*
*               T Y P E S   D E C L A R A T I O N                              *
*------------------------------------------------------------------------------*

TYPE-POOLS :slis.
TYPE-POOLS:abap.                                                       "Type Pool Declaration

* Structure FOR AFKO
TYPES: BEGIN OF t_afko,
        plnbez TYPE afko-plnbez,
        aufnr TYPE aufnr,                                               "Article
        gamng TYPE gamng,                                               "Total order quantity
       END OF t_afko.
*Structure for Mara
TYPES: BEGIN OF t_mara,
        matnr TYPE matnr,                                               "Material Number
        mtart TYPE mtart,                                               "Size/fit
        pstat TYPE pstat_d,                                             "Variant
       END OF t_mara.
*Structure for Final
TYPES: BEGIN OF t_final,
        aufnr        TYPE aufnr,                                        "Production Order
        gamng        TYPE gamng,                                        "Move Number
        mtart        TYPE mtart,                                        "Size/fit
        pstat        TYPE pstat_d,                                      "Variant
        quantity     TYPE meng8,                                        "Quantity
        barcode(40)  TYPE c,
      END OF t_final.

*------------------------------------------------------------------------------*
*               INTERNAL TABLE,WORK AREA and variable DECLARATION              *
*------------------------------------------------------------------------------*
*Internal Table Declaration
data: gi_final     TYPE STANDARD TABLE OF t_final,                      "Final Internal Table
      gi_mara      TYPE STANDARD TABLE OF t_mara,                       "Internal Table for MARA
      gi_afko      TYPE STANDARD TABLE OF t_afko,                       "Internal Table for AFKO
      gi_fieldcat  TYPE STANDARD TABLE OF slis_fieldcat_alv.            "Internal Table for fieldcat ALV



* WORK Area Declaration.
DATA: gwa_final    TYPE   t_final,                                       "Work Area for FINAL
      gwa_mara     TYPE   t_mara,                                        "Work Area for MARA
      gwa_afko     TYPE   t_afko,                                        "Work Area for AFKO
      gwa_fieldcat TYPE   slis_fieldcat_alv,                             "Work Area For Fieldcat Structure
      wa_variant   TYPE   disvariant,
      wa_variant1  TYPE   disvariant.

* Local variable Declaration

DATA: v_aufnr  TYPE caufvd-aufnr,                                        "Variable for production order
      v_txt04  TYPE tj02t-txt04,                                         "Variable for production order Status
      v_plnbez TYPE afko-plnbez,                                         "variable for Article
      lv_aufnr  TYPE aufnr,                                              "Local Variable for production order
      lv_txt04  TYPE j_txt04,                                            "Local Variable for production order Status
      lv_plnbez TYPE matnr.                                              "Local Variable for Article

*------------------------------------------------------------------------------*
*         CONSTANT DECLARATION                                                 *
*------------------------------------------------------------------------------*
CONSTANTS:c_x(1)             TYPE c VALUE'X',
          lc_a(1)            TYPE c VALUE 'A',
          c_p2(2)            TYPE c VALUE 'P2',
          c_dir              TYPE string VALUE 'C:\',
          c_ext              TYPE string VALUE 'XLS'.


*------------------------------------------------------------------------------*
*                        S E L E C TI O N     S C R E E N                      *
*------------------------------------------------------------------------------*

*First Block
SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_po      FOR   v_aufnr,                               "Production Order.
                 s_pos     FOR   v_txt04,                               "Production Order Status.
                 s_art     FOR   v_plnbez .                             "Article
SELECTION-SCREEN: END OF BLOCK blk1.

*Second Block
SELECTION-SCREEN : BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
PARAMETER : rd1 RADIOBUTTON  GROUP g1 DEFAULT 'X' USER-COMMAND change,  "Radio Button For Display
            rd2 RADIOBUTTON GROUP g1.                                   "Radio Button for generate
SELECTION-SCREEN:END OF BLOCK blk2.

*Third Block
SELECTION-SCREEN : BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.
PARAMETER:p_var TYPE disvariant-variant MODIF ID p2.                    "Variant Part
SELECTION-SCREEN:END OF BLOCK blk3.

*------------------------------------------------------------------------------*
*                             VARIANT PART                                     *
*------------------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.
*Creating Variant for ALV
  PERFORM alv_variant.

*------------------------------------------------------------------------------*
*                SELECTION SCREEN VALIDATION                                   *
*------------------------------------------------------------------------------*
AT SELECTION-SCREEN.
*Validating Selection Screen Entries
  PERFORM validate_entries.

AT SELECTION-SCREEN OUTPUT.
*Perform To Hide the Selection  Screen  Variant block after clicking generate button
  PERFORM hide_block.

*------------------------------------------------------------------------------*
*                          Start Of Selection                                  *
*------------------------------------------------------------------------------*
*Perform for populating Internal table
START-OF-SELECTION.
  PERFORM data_fetch.
*------------------------------------------------------------------------------*
*                          End Of Selection                                    *
*------------------------------------------------------------------------------*
END-OF-SELECTION.

* TO Check Which radio button is pressed
  IF rd1 = c_x.
    PERFORM build_catalog.                                  "Build Catalog
    PERFORM alv_display.                                    "Alv display
  ELSE.

*For dynamic Internal Table
*   perform dynamic_table.

*For download of file
    PERFORM sub_export_error.                               "File transfer
  ENDIF.

*------------------------------------------------------------------------------*
*                      S C R E E N    D E S I G N                              *
*------------------------------------------------------------------------------*
  SET TITLEBAR 'TITLE'.   "Burberry Linen ticket Output

*----------------------------------------------------------------------*
*      Form  alv_variant
*----------------------------------------------------------------------*
*     To Create variant and display the ALV according to it
*----------------------------------------------------------------------*
FORM alv_variant .
  wa_variant-username = sy-uname.
  wa_variant-report = sy-repid.
*Constants
  CONSTANTS: lv_a(01) TYPE c VALUE 'A'.
*For variant Part
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      is_variant    = wa_variant
      i_save        = lv_a
    IMPORTING
      es_variant    = wa_variant1
    EXCEPTIONS
      not_found     = 1
      program_error = 2
      OTHERS        = 3.
  IF sy-subrc <> 0.
    p_var = wa_variant-variant.
  ELSE.
    p_var = wa_variant1-variant.
  ENDIF.
ENDFORM.                       " alv_variant

*----------------------------------------------------------------------*
*      Form  validate_entries
*----------------------------------------------------------------------*
* Validating The selection Screen input
*----------------------------------------------------------------------*

FORM validate_entries .
*Validation For Production Order
  IF s_po[] IS NOT INITIAL.
    SELECT aufnr UP TO 1 ROWS
           FROM aufk
           INTO lv_aufnr
           WHERE aufnr = s_po-low.
    ENDSELECT.
    IF lv_aufnr IS INITIAL.
      MESSAGE e001.            "Production order does not exist
    ENDIF.
  ENDIF.
*Validation For Production order Status
  IF s_pos[] IS NOT INITIAL.
    SELECT txt04 UP TO 1 ROWS
           FROM tj02t
           INTO lv_txt04
           WHERE txt04 = s_pos-low.
    ENDSELECT.
    IF lv_txt04 IS INITIAL.
      MESSAGE e002.          "Production Order status not Found
    ENDIF.
  ENDIF.
*Validation for article Number
  IF s_art[] IS NOT INITIAL.
    SELECT matnr UP TO 1 ROWS
           FROM mara
           INTO lv_plnbez
           WHERE matnr IN s_art.
    ENDSELECT.
    IF lv_plnbez IS INITIAL.
      MESSAGE e003.         "Article not found
    ENDIF.
  ENDIF.
ENDFORM.                    "Validate_entries

*----------------------------------------------------------------------*
*                       Form  hide_block
*----------------------------------------------------------------------*
*Form To Hide the Selection  Screen block after clicking generate button
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM hide_block .
  IF rd2 EQ c_x.
    LOOP AT SCREEN.
      IF screen-group1 NE c_p2.
        screen-invisible = 0.
        screen-active = 1.
      ELSE.
        screen-invisible = 1.
        screen-active = 0.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ENDIF.
ENDFORM.                    " hide_block

*----------------------------------------------------------------------*
*    Form  data_fetch
*----------------------------------------------------------------------*
*    Populating The Internal Table
*----------------------------------------------------------------------*

FORM data_fetch .
*Fetching data from MARA and populating gi_mara
  IF s_art[] IS INITIAL.
    MESSAGE i008 DISPLAY LIKE 'E'.
    LEAVE LIST-PROCESSING.
  ELSE.
    SELECT matnr                        "Material Number
           mtart                        "Size/Fit
           pstat                        "Variant
           FROM mara
           INTO TABLE gi_mara
           WHERE matnr IN s_art.
  ENDIF.

*Fetching DATA from AFKO and Populating gi_afko
  SELECT plnbez                       "Article
         aufnr                        "Production order
         gamng                        "Move Number
         FROM afko
         INTO TABLE gi_afko
         WHERE plnbez IN s_art AND aufnr IN s_po.

*Looping at Internal Table of afko
  IF sy-subrc <> 0.
    MESSAGE i007 .
    LEAVE LIST-PROCESSING.
  ELSE.
    LOOP AT gi_afko INTO gwa_afko.
      READ TABLE gi_mara INTO gwa_mara WITH KEY matnr = gwa_afko-plnbez.           "Read internal table for mara for each record in internal table of afko
* Checking for record in gi_mara
      IF sy-subrc = 0.
        MOVE   gwa_mara-mtart TO gwa_final-mtart.
        MOVE   gwa_mara-pstat TO gwa_final-pstat.
        MOVE gwa_afko-aufnr TO gwa_final-aufnr.
        MOVE gwa_afko-gamng TO gwa_final-gamng.
        APPEND gwa_final      TO gi_final.
        CLEAR gwa_final .                                                          "Clear Work Area for final
      ENDIF.
      CLEAR gwa_afko.                                                              "Clear Work Area for afko
    ENDLOOP.
*Loop ing At final internal table
    LOOP AT gi_final INTO gwa_final.
      gwa_final-quantity = '1'.
      MODIFY gi_final FROM gwa_final INDEX sy-tabix TRANSPORTING quantity.
*Concatenate two field AUFNR and PSTAT to generate barcode
      CONCATENATE gwa_final-aufnr gwa_final-pstat INTO gwa_final-barcode .
      MODIFY gi_final FROM gwa_final INDEX sy-tabix TRANSPORTING barcode.
      CLEAR gwa_final.
    ENDLOOP.
  ENDIF.
ENDFORM.                    " data_fetch




*----------------------------------------------------------------------------*
*      Form  sub_export_error
*----------------------------------------------------------------------------*
*   Form for data tranfer to excel
*----------------------------------------------------------------------------*
FORM sub_export_error .

  DATA: fullpath TYPE string,              "Full path of the file
        filename TYPE string,              "Name of the excel file
        path     TYPE string,              "Path where the file will be stored
        user_action TYPE i ,               "To catch User Action
        l_title TYPE string.               "To display title
* encoding TYPE abap_encoding.
  l_title = 'Save File'(006).

* Open the save dialog
  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      window_title         = l_title
      default_extension    = c_ext
      initial_directory    = c_dir
    CHANGING
      filename             = filename
      path                 = path
      fullpath             = fullpath
      user_action          = user_action
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.

  IF sy-subrc <> 0.
    EXIT.
  ENDIF.

** Check which button is pressed
  IF user_action <> cl_gui_frontend_services=>action_ok.
    MESSAGE i006.              "Action Cancelled By User
    EXIT.
  ENDIF.

* Download error data collected from the internal table
  CALL METHOD cl_gui_frontend_services=>gui_download
    EXPORTING
      filename                = fullpath
      filetype                = 'ASC'
      write_field_separator   = '#'
    CHANGING
      data_tab                = gi_final   "dy_table
    EXCEPTIONS
      file_write_error        = 1
      no_batch                = 2
      gui_refuse_filetransfer = 3
      invalid_type            = 4
      no_authority            = 5
      unknown_error           = 6
      header_not_allowed      = 7
      separator_not_allowed   = 8
      filesize_not_allowed    = 9
      header_too_long         = 10
      dp_error_create         = 11
      dp_error_send           = 12
      dp_error_write          = 13
      unknown_dp_error        = 14
      access_denied           = 15
      dp_out_of_memory        = 16
      disk_full               = 17
      dp_timeout              = 18
      file_not_found          = 19
      dataprovider_exception  = 20
      control_flush_error     = 21
      not_supported_by_gui    = 22
      error_no_gui            = 23
      OTHERS                  = 24.

* If selection is successful
  IF sy-subrc EQ 0.
    MESSAGE s004 . " File  created successfully
  ELSE.
    MESSAGE i005 . " File is not created successfully
  ENDIF.

ENDFORM. " sub_export_error
*&---------------------------------------------------------------------*
*&      Form  dynamic_table
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM dynamic_table .

  FIELD-SYMBOLS:
      <dyn_table>      TYPE STANDARD TABLE.


  TYPES: BEGIN OF lt_tarfc,
         intlen    TYPE i,
         decimals  TYPE i,
         datatype  TYPE abap_typekind,
         inttype   TYPE abap_typekind,
         fieldname TYPE abap_compname,
     END OF lt_tarfc.
  DATA:
      lt_fdetails        TYPE abap_compdescr_tab,
      lt_tarfc           TYPE lvc_t_fcat,
      wa_fdetails        TYPE abap_compdescr,

      wa_tarfc           TYPE lvc_s_fcat,
*      li_tarfc           type standard table of lt_tarfc,
      wa_dd04            TYPE dd04v,
      dy_table           TYPE REF TO data,
      lp_ref_table_des   TYPE REF TO cl_abap_structdescr.

  DATA: fullpath TYPE string,              "Full path of the file
      filename TYPE string,              "Name of the excel file
      path     TYPE string,              "Path where the file will be stored
      user_action TYPE i ,               "To catch User Action
      l_title TYPE string.               "To display title
* encoding TYPE abap_encoding.
  l_title = 'Save File'(006).

** Get the structure of the table.
  lp_ref_table_des ?=
      cl_abap_typedescr=>describe_by_name('MARA').
  lt_fdetails[] = lp_ref_table_des->components[].

* Making internal table compitable for Function module
  LOOP AT lt_fdetails INTO wa_fdetails.
    CLEAR wa_tarfc.
    wa_tarfc-fieldname = wa_fdetails-name .
    wa_tarfc-datatype  = wa_fdetails-type_kind.
    wa_tarfc-inttype  = wa_fdetails-type_kind.
    wa_tarfc-intlen   = wa_fdetails-length.
    wa_tarfc-decimals = wa_fdetails-decimals.
    APPEND wa_tarfc TO lt_tarfc.
  ENDLOOP.

* Create dynamic internal table and assign to FS
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = lt_tarfc
    IMPORTING
      ep_table        = dy_table.

* Open the save dialog
  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      window_title         = l_title
      default_extension    = c_ext
      initial_directory    = c_dir
    CHANGING
      filename             = filename
      path                 = path
      fullpath             = fullpath
      user_action          = user_action
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.

  IF sy-subrc <> 0.
    EXIT.
  ENDIF.

** Check which button is pressed
  IF user_action <> cl_gui_frontend_services=>action_ok.
    MESSAGE i006.              "Action Cancelled By User
    EXIT.
  ENDIF.

*  <dyn_table> = dy_table.
** Download error data collected from the internal table
*  CALL METHOD cl_gui_frontend_services=>gui_download
*    EXPORTING
*      filename                = fullpath
*      filetype                = 'ASC'
*      write_field_separator   = '#'
*    CHANGING
*      data_tab                = dy_table
*    EXCEPTIONS
*      file_write_error        = 1
*      no_batch                = 2
*      gui_refuse_filetransfer = 3
*      invalid_type            = 4
*      no_authority            = 5
*      unknown_error           = 6
*      header_not_allowed      = 7
*      separator_not_allowed   = 8
*      filesize_not_allowed    = 9
*      header_too_long         = 10
*      dp_error_create         = 11
*      dp_error_send           = 12
*      dp_error_write          = 13
*      unknown_dp_error        = 14
*      access_denied           = 15
*      dp_out_of_memory        = 16
*      disk_full               = 17
*      dp_timeout              = 18
*      file_not_found          = 19
*      dataprovider_exception  = 20
*      control_flush_error     = 21
*      not_supported_by_gui    = 22
*      error_no_gui            = 23
*      OTHERS                  = 24.
*
** If selection is successful
*  IF sy-subrc EQ 0.
*    MESSAGE s004 . " File  created successfully
*  ELSE.
*    MESSAGE i005 . " File is not created successfully
*  ENDIF.

ENDFORM.                    " dynamic_table

*----------------------------------------------------------------------*
*      Form  alv_display                                               *
*----------------------------------------------------------------------*
*      Form for Alv_display                                            *
*----------------------------------------------------------------------*
FORM alv_display .
  DATA : lwa_layout TYPE slis_layout_alv.  " optimize column width
* Optimize the column width so that all contents are displayed
  lwa_layout-colwidth_optimize = c_x.

*  display variant
  wa_variant-report = sy-repid.
  IF NOT p_var IS INITIAL.
    wa_variant-variant = p_var.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'PF_STATUS'
      i_callback_user_command  = 'USER_COMMAND'
      is_layout                = lwa_layout
      it_fieldcat              = gi_fieldcat
      is_variant               = wa_variant
      i_default                = c_x
      i_save                   = lc_a
    TABLES
      t_outtab                 = gi_final
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.
  IF sy-subrc <> 0.

  ENDIF.
ENDFORM.                    " alv_display

************************************************************************
*                              PF_STATUS FORM                          *
************************************************************************

FORM pf_status                                              "#EC *
  USING p_extab TYPE slis_t_extab.
  SET PF-STATUS 'STAT1' EXCLUDING p_extab.
ENDFORM.                    "PF_STATUS

*-----------------------------------------------------------------------*
*      Form  user_command
*-----------------------------------------------------------------------*
*   Form For user Command
*-----------------------------------------------------------------------*
*      -->R_UCOMM      Input parameter
*      -->RS_SELFIELD   Input parameter
*-----------------------------------------------------------------------*

FORM user_command USING p_ucomm TYPE sy-ucomm
p_selfld TYPE slis_selfield.                                "#EC *
  CASE p_ucomm.
    WHEN 'GENERATE'.
      perform dynamic_table.
      PERFORM sub_export_error.
  ENDCASE.
ENDFORM.                    "USER_COMMAND

*----------------------------------------------------------------------*
*      Form  build_catalog
*----------------------------------------------------------------------*
*      For bulding field Catalog
*----------------------------------------------------------------------*
FORM build_catalog .
  CONSTANTS:lc_aufnr(5)         TYPE c VALUE 'AUFNR',
            lc_table(8)         TYPE c VALUE 'gi_final',
            lc_color(4)         TYPE c VALUE 'C210',
            lc_gamng(5)         TYPE c VALUE 'GAMNG',
            lc_mtart(5)         TYPE c VALUE 'MTART',
            lc_pstat(5)         TYPE c VALUE 'PSTAT',
            "lc_pstat_head(8)   TYPE c VALUE 'Variant',
            lc_quantity(8)      TYPE c VALUE 'QUANTITY',
            lc_barcode(7)       TYPE c VALUE 'BARCODE'.

  gwa_fieldcat-fieldname = lc_aufnr.
  gwa_fieldcat-seltext_l = text-013."lc_aufnr_head.
  gwa_fieldcat-tabname = lc_table.
  gwa_fieldcat-emphasize = lc_color.
  APPEND gwa_fieldcat TO gi_fieldcat.
  CLEAR gwa_fieldcat.

  gwa_fieldcat-fieldname = lc_gamng.
  gwa_fieldcat-seltext_l = text-015."lc_gamng_head.
  gwa_fieldcat-tabname = lc_table.
  gwa_fieldcat-emphasize = lc_color.
  APPEND gwa_fieldcat TO gi_fieldcat.
  CLEAR gwa_fieldcat.

  gwa_fieldcat-fieldname = lc_mtart.
  gwa_fieldcat-seltext_l = text-005."lc_mtart_head.
  gwa_fieldcat-tabname = lc_table.
  gwa_fieldcat-emphasize = lc_color.
  APPEND gwa_fieldcat TO gi_fieldcat.
  CLEAR gwa_fieldcat.

  gwa_fieldcat-fieldname = lc_pstat.
  gwa_fieldcat-seltext_l = text-009."lc_pstat_head.
  gwa_fieldcat-tabname = lc_table.
  gwa_fieldcat-emphasize = lc_color.
  APPEND gwa_fieldcat TO gi_fieldcat.
  CLEAR gwa_fieldcat.

  gwa_fieldcat-fieldname = lc_quantity.
  gwa_fieldcat-seltext_l = text-011."lc_quantity_head.
  gwa_fieldcat-tabname = lc_table.
  gwa_fieldcat-emphasize = lc_color.
  APPEND gwa_fieldcat TO gi_fieldcat.
  CLEAR gwa_fieldcat.

  gwa_fieldcat-fieldname = lc_barcode.
  gwa_fieldcat-seltext_l = text-017."lc_barcode_head.
  gwa_fieldcat-tabname = lc_table.
  gwa_fieldcat-emphasize = lc_color.
  APPEND gwa_fieldcat TO gi_fieldcat.
  CLEAR gwa_fieldcat.

ENDFORM.                    " build_catalog

This is a real Time ALV Program

Go through It.

Regards

Sandipan

Answers (2)

Answers (2)

Former Member
0 Kudos

HI,

REPORT ZALVINTER.

&----


*& tables declaration

&----


TABLES: VBRK,VBRP.

&----


*& type-pools declaration

&----


TYPE-POOLS: SLIS.

&----


*& data declaration

&----


DATA: G_REPID TYPE SY-REPID.

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

WA_EVENT TYPE SLIS_ALV_EVENT,

T_EVENT TYPE SLIS_T_EVENT.

DATA: V_VBELN LIKE VBRK-VBELN,

V_MATNR LIKE VBRP-MATNR.

DATA: BEGIN OF IT_VBRK OCCURS 0,

VBELN LIKE VBRK-VBELN,

WAERK LIKE VBRK-WAERK,

VKORG LIKE VBRK-VKORG,

FKDAT LIKE VBRK-FKDAT,

BUKRS LIKE VBRK-BUKRS,

NETWR LIKE VBRK-NETWR,

END OF IT_VBRK.

DATA: BEGIN OF IT_VBRP OCCURS 0,

VBELN LIKE VBRP-VBELN,

POSNR LIKE VBRP-POSNR,

FKIMG LIKE VBRP-FKIMG,

VRKME LIKE VBRP-VRKME,

NETWR LIKE VBRP-NETWR,

MATNR LIKE VBRP-MATNR,

ARKTX LIKE VBRP-ARKTX,

END OF IT_VBRP.

&----


*& selection screen

&----


SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,

S_FKDAT FOR VBRK-FKDAT,

S_MATNR FOR VBRP-MATNR.

SELECTION-SCREEN END OF BLOCK B.

**INITIALIZATION.

INITIALIZATION.

G_REPID = SY-REPID.

S_FKDAT-LOW = SY-DATUM - 200.

S_FKDAT-HIGH = SY-DATUM.

APPEND S_FKDAT.

***AT SELECTION-SCREEN.

AT SELECTION-SCREEN.

IF NOT S_VBELN IS INITIAL.

SELECT SINGLE VBELN FROM VBRK

INTO V_VBELN

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E001(ZZ2).

ENDIF.

ENDIF.

IF NOT S_MATNR IS INITIAL.

SELECT SINGLE MATNR FROM MARA

INTO V_MATNR

WHERE MATNR IN S_MATNR.

IF SY-SUBRC <> 0.

MESSAGE E001(ZZ2).

ENDIF.

ENDIF.

***START-OF-SELECTION.

START-OF-SELECTION.

PERFORM GET_DATA_VBRK.

&----


*& Form GET_DATA_VBRK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_VBRK .

SELECT VBELN

WAERK

VKORG

FKDAT

BUKRS

NETWR

INTO TABLE IT_VBRK

FROM VBRK

WHERE VBELN IN S_VBELN

AND FKDAT IN S_FKDAT.

ENDFORM. " GET_DATA_VBRK

&----


*& Form GET_DATA_VBRP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_VBRP .

SELECT VBELN

POSNR

FKIMG

VRKME

NETWR

MATNR

ARKTX

FROM VBRP

INTO TABLE IT_VBRP

WHERE VBELN = IT_VBRK-VBELN.

ENDFORM. " GET_DATA_VBRP

***END-OF-SELECTION.

END-OF-SELECTION.

PERFORM EVENT_LIST.

PERFORM GET_FIELD_CATALOG.

PERFORM LIST_DISP .

&----


*& Form list_disp

&----


  • text

----


FORM LIST_DISP .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = 'POPUP'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_CALLBACK_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 = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_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 = IT_VBRK

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. " LIST_DISP

&----


*& Form GET_FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_FIELD_CATALOG .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = G_REPID

I_INTERNAL_TABNAME = 'IT_VBRK'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = G_REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = IT_FIELDCAT

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3

.

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. " GET_FIELD_CATALOG

&----


*& Form event_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EVENT_LIST .

CLEAR WA_EVENT.

WA_EVENT-NAME = 'USER_COMMAND'.

WA_EVENT-FORM = 'USER_COMMAND'.

APPEND WA_EVENT TO T_EVENT.

CLEAR WA_EVENT.

ENDFORM. " event_list

&----


*& Form user_command

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_VBRK INDEX RS_SELFIELD-TABINDEX.

PERFORM GET_DATA_VBRP.

PERFORM BUILD_FIELDCATALOG_VBRP .

PERFORM DISPLAY_ALV_VBRP.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATALOG_VBRP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FIELDCATALOG_VBRP .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = G_REPID

I_INTERNAL_TABNAME = 'IT_VBRP'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = G_REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = IT_FIELDCAT

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3

.

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. " BUILD_FIELDCATALOG_VBRP

&----


*& Form DISPLAY_ALV_VBRP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_ALV_VBRP .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_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 = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_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 = IT_VBRP

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_VBRP

Former Member
0 Kudos

Hi,

Please check out with the following standard programs:

BALVSD01

BALVSD02

BALVHT01

BALVHD01_GROUP

BALVEX01

BALVBT01

Reward if useful.

Regards,

Sayee