Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Two ALV in Same Screen..

Former Member
0 Likes
928

Hello Guys.....

As Per My New Requirement I Have to Display Data in two ALV Drid . like.........

ALV1

ALV2

In a sample Program at SAP slis library I found Two ALV in same screen but they are in ALV1 ALV2 format.. it's will not fullfill my requirement..

any one have any idea..

Please send me test program ..

Regard

Swati Namdev..

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
881

check out following demo program,

BCALV_TEST_BLOCK_LIST

or

First use the following function.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IT_FIELDCAT = ZFIELD

IS_LAYOUT = Z_LAYOUT

I_TABNAME = 'ZDATA'

IT_EVENTS = GT_ZEVENTS

I_TEXT = TEXT-0B3

TABLES

T_OUTTAB = ZDATA.

  • You can update your internal table replace "Zdata" with another internal table and call this function again.

This will give you 2 ALV GRID blocks

Hello Guys.....

As Per My New Requirement I Have to Display Data in two ALV Drid . like.........

ALV1

ALV2

In a sample Program at SAP slis library I found Two ALV in same screen but they are in ALV1 ALV2 format.. it's will not fullfill my requirement..

any one have any idea..

Please send me test program ..

Regard

Swati Namdev..

9 REPLIES 9
Read only

Former Member
0 Likes
881

REPORT zkb_block_list_report .

TYPE-POOLS: slis.

DATA: BEGIN OF i_clients OCCURS 0,

mandt LIKE t000-mandt,

mtext LIKE t000-mtext,

ort01 LIKE t000-ort01.

DATA: END OF i_clients.

DATA: BEGIN OF i_industry OCCURS 0,

mandt LIKE t016t-mandt,

spras LIKE t016t-spras,

brsch LIKE t016t-brsch,

brtxt LIKE t016t-brtxt.

DATA: END OF i_industry.

DATA: i_fcat_c TYPE slis_t_fieldcat_alv,

i_fcat_i TYPE slis_t_fieldcat_alv.

DATA: i_layout_c TYPE slis_layout_alv.

DATA: i_layout_i TYPE slis_layout_alv.

DATA: i_events_c TYPE slis_t_event.

DATA: i_events_i TYPE slis_t_event.

DATA: gt_print TYPE slis_print_alv.

START-OF-SELECTION.

BREAK-POINT.

SELECT mandt mtext ort01

FROM t000 INTO CORRESPONDING FIELDS OF TABLE i_clients.

SELECT mandt spras brsch brtxt

FROM t016t INTO CORRESPONDING FIELDS OF TABLE i_industry.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = 'ZKB_BLOCK_LIST_REPORT'

i_internal_tabname = 'I_CLIENTS'

  • I_STRUCTURE_NAME = 'T000'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = 'ZKB_BLOCK_LIST_REPORT'

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = i_fcat_c

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.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = 'ZKB_BLOCK_LIST_REPORT'

i_internal_tabname = 'I_INDUSTRY'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = 'ZKB_BLOCK_LIST_REPORT'

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = i_fcat_i

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.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = 'ZKB_BLOCK_LIST_REPORT'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IT_EXCLUDING =

.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = i_layout_c

it_fieldcat = i_fcat_c

i_tabname = 'I_CLIENTS'

it_events = i_events_c

  • IT_SORT =

  • I_TEXT = ' '

TABLES

t_outtab = i_clients

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = i_layout_i

it_fieldcat = i_fcat_i

i_tabname = 'I_INDUSTRY'

it_events = i_events_i

  • IT_SORT =

  • I_TEXT = ' '

TABLES

t_outtab = i_industry

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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.

gt_print-reserve_lines = 2.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

is_print = gt_print

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

  • 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.

Read only

uwe_schieferstein
Active Contributor
0 Likes
881

Hello Swati

Following is a sample report using <b>three</b> ALV lists to display customers -> sales orders -> order items. Double-click on a customer and the 2nd list will display his sales orders. Double-click on a sales order and the 3rd list will display the items.

It should be quite obvious how to modify the program to have only two ALV lists.

*&---------------------------------------------------------------------*
*& Report  ZUS_SDN_THREE_ALV_GRIDS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zus_sdn_three_alv_grids.




DATA:
  gd_okcode        TYPE ui_func,
*
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_splitter      TYPE REF TO cl_gui_splitter_container,
  go_splitter_2    TYPE REF TO cl_gui_splitter_container,
  go_cell_top      TYPE REF TO cl_gui_container,
  go_cell_bottom   TYPE REF TO cl_gui_container,
  go_cell_left     TYPE REF TO cl_gui_container,
  go_cell_right    TYPE REF TO cl_gui_container,
  go_grid1         TYPE REF TO cl_gui_alv_grid,
  go_grid2         TYPE REF TO cl_gui_alv_grid,
  go_grid3         TYPE REF TO cl_gui_alv_grid.


DATA:
  gt_knb1          TYPE STANDARD TABLE OF knb1,
  gt_vbak          TYPE STANDARD TABLE OF vbak,
  gt_vbap          TYPE STANDARD TABLE OF vbap.




PARAMETERS:
  p_bukrs          TYPE bukrs  DEFAULT '1000'.



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS:
      handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
        IMPORTING
          e_row
          e_column
          es_row_no
          sender.


ENDCLASS.                    "lcl_eventhandler DEFINITION



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_double_click.
*   define local data
    DATA:
      ls_knb1      TYPE knb1,
      ls_vbak      TYPE vbak,
      ls_vbap      TYPE vbap.


    CASE sender.
      WHEN go_grid1.
        READ TABLE gt_knb1 INTO ls_knb1 INDEX e_row-index.
        CHECK ( ls_knb1-kunnr IS NOT INITIAL ).

        CALL METHOD go_grid1->set_current_cell_via_id
          EXPORTING
*              IS_ROW_ID    =
*              IS_COLUMN_ID =
            is_row_no    = es_row_no.


*         Triggers PAI of the dynpro with the specified ok-code
        CALL METHOD cl_gui_cfw=>set_new_ok_code( 'ORDERS' ).


      WHEN go_grid2.
        READ TABLE gt_vbak INTO ls_vbak INDEX e_row-index.
        CHECK ( ls_vbak-vbeln IS NOT INITIAL ).

        CALL METHOD go_grid1->set_current_cell_via_id
          EXPORTING
*              IS_ROW_ID    =
*              IS_COLUMN_ID =
            is_row_no    = es_row_no.

*         Triggers PAI of the dynpro with the specified ok-code
        CALL METHOD cl_gui_cfw=>set_new_ok_code( 'ORDER_DETAILS' ).



      WHEN go_grid3.
        READ TABLE gt_vbap INTO ls_vbap INDEX e_row-index.
        CHECK ( ls_vbap-matnr IS NOT INITIAL ).

        SET PARAMETER ID 'MAT' FIELD ls_vbap-matnr.
        CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.

      WHEN OTHERS.
        RETURN.
    ENDCASE.







  ENDMETHOD.                    "handle_double_click

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION






START-OF-SELECTION.

  SELECT        * FROM  knb1 INTO TABLE gt_knb1
         WHERE  bukrs  = p_bukrs.


* Create docking container
  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=>screen0
      ratio                       = 90
    EXCEPTIONS
      OTHERS                      = 6.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



* Create splitter container
  CREATE OBJECT go_splitter
    EXPORTING
      parent            = go_docking
      rows              = 1
      columns           = 2
*      NO_AUTODEF_PROGID_DYNNR =
*      NAME              =
    EXCEPTIONS
      cntl_error        = 1
      cntl_system_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.

* Get cell container
  CALL METHOD go_splitter->get_container
    EXPORTING
      row       = 1
      column    = 1
    RECEIVING
      container = go_cell_left.
  CALL METHOD go_splitter->get_container
    EXPORTING
      row       = 1
      column    = 2
    RECEIVING
      container = go_cell_right.


* Create 2nd splitter container
  CREATE OBJECT go_splitter_2
    EXPORTING
      parent            = go_cell_left
      rows              = 2
      columns           = 1
*      NO_AUTODEF_PROGID_DYNNR =
*      NAME              =
    EXCEPTIONS
      cntl_error        = 1
      cntl_system_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.

* Get cell container
  CALL METHOD go_splitter_2->get_container
    EXPORTING
      row       = 1
      column    = 1
    RECEIVING
      container = go_cell_top.
  CALL METHOD go_splitter_2->get_container
    EXPORTING
      row       = 2
      column    = 1
    RECEIVING
      container = go_cell_bottom.


* Create ALV grids
  CREATE OBJECT go_grid1
    EXPORTING
      i_parent          = go_cell_top
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



  CREATE OBJECT go_grid2
    EXPORTING
      i_parent          = go_cell_bottom
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  CREATE OBJECT go_grid3
    EXPORTING
      i_parent          = go_cell_right
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.





* Set event handler
  SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid1.
  SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid2.
  SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid3.


* Display data
  CALL METHOD go_grid1->set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNB1'
    CHANGING
      it_outtab        = gt_knb1
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  REFRESH: gt_vbak.
  CALL METHOD go_grid2->set_table_for_first_display
    EXPORTING
      i_structure_name = 'VBAK'
    CHANGING
      it_outtab        = gt_vbak    " empty !!!
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  REFRESH: gt_vbap.
  CALL METHOD go_grid3->set_table_for_first_display
    EXPORTING
      i_structure_name = 'VBAP'
    CHANGING
      it_outtab        = gt_vbap    " empty !!!
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

* Link the docking container to the target dynpro
  CALL METHOD go_docking->link
    EXPORTING
      repid                       = syst-repid
      dynnr                       = '0100'
*      CONTAINER                   =
    EXCEPTIONS
      OTHERS                      = 4.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* NOTE: dynpro does not contain any elements
  CALL SCREEN '0100'.
* Flow logic of dynpro:
*
*PROCESS BEFORE OUTPUT.
*  MODULE STATUS_0100.
**
*PROCESS AFTER INPUT.
*  MODULE USER_COMMAND_0100.



END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.  " contains push button "ORDERS"
*  SET TITLEBAR 'xxx'.


* Refresh display of detail ALV list
  CALL METHOD go_grid2->refresh_table_display
*    EXPORTING
*      IS_STABLE      =
*      I_SOFT_REFRESH =
    EXCEPTIONS
      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.


* Refresh display of detail ALV list
  CALL METHOD go_grid3->refresh_table_display
*    EXPORTING
*      IS_STABLE      =
*      I_SOFT_REFRESH =
    EXCEPTIONS
      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.

ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

*   User has pushed button "Display Orders"
    WHEN 'ORDERS'.
      PERFORM customer_show_orders.

    WHEN 'ORDER_DETAILS'.
      PERFORM order_show_details.

    WHEN OTHERS.
  ENDCASE.

  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*
*&      Form  CUSTOMER_SHOW_ORDERS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM customer_show_orders .
* define local data
  DATA:
    ld_row      TYPE i,
    ls_knb1     TYPE knb1.

  CALL METHOD go_grid1->get_current_cell
    IMPORTING
      e_row = ld_row.

  READ TABLE gt_knb1 INTO ls_knb1 INDEX ld_row.
  CHECK ( syst-subrc = 0 ).

  SELECT        * FROM  vbak INTO TABLE gt_vbak
         WHERE  kunnr  = ls_knb1-kunnr.


  REFRESH: gt_vbap.




ENDFORM.                    " CUSTOMER_SHOW_ORDERS

*&---------------------------------------------------------------------*
*&      Form  ORDER_SHOW_DETAILS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM order_show_details .
* define local data
  DATA:
    ld_row      TYPE i,
    ls_vbak     TYPE vbak.

  CALL METHOD go_grid1->get_current_cell
    IMPORTING
      e_row = ld_row.

  READ TABLE gt_vbak INTO ls_vbak INDEX ld_row.
  CHECK ( syst-subrc = 0 ).

  SELECT        * FROM  vbap INTO TABLE gt_vbap
         WHERE  vbeln  = ls_vbak-vbeln.



ENDFORM.                    " ORDER_SHOW_DETAILS

Regards

Uwe

Read only

p291102
Active Contributor
0 Likes
881

Hi,

I am sending sample coding to u. It is really helps to u.

REPORT CODING

REPORT YMS_EXDET MESSAGE-ID E4 NO STANDARD PAGE HEADING LINE-SIZE 350.

*REPORT ZMM_EXIN_DOC_ALV_HEADER .

TABLES : J_1IEXCHDR, " header table

J_1IEXCDTL, " item table

J_1IPART1, " Excise part I detials

J_1IPART2, " Excise Part II details

LFA1, " vendor master table

J_1IMOVEND, " vendor excise details table

MSEG, " Document Segment: Material

MKPF, " Header: Material Document

DD07T, " domain text table

T001W. " Plant and Branch Details

DATA : BEGIN OF IT_CHDR OCCURS 100,

SERIALNO LIKE J_1IPART1-SERIALNO,

DOCNO LIKE J_1IEXCHDR-DOCNO,

DOCYR LIKE J_1IEXCHDR-DOCYR,

EXNUM LIKE J_1IEXCHDR-EXNUM,

EXDAT LIKE J_1IEXCHDR-EXDAT,

WERKS LIKE J_1IEXCHDR-WERKS,

EXBED LIKE J_1IEXCHDR-EXBED,

EXCCD LIKE J_1IEXCHDR-EXCCD,

ECS LIKE J_1IEXCHDR-ECS,

STATUS LIKE J_1IEXCHDR-STATUS, "CHALLAN STATUS

END OF IT_CHDR.

DATA : BEGIN OF IT_CDTL OCCURS 100,

SERIALNO LIKE J_1IPART1-SERIALNO,

DOCYR LIKE J_1IEXCDTL-DOCYR,

DOCNO LIKE J_1IEXCDTL-DOCNO,

EXNUM LIKE J_1IEXCDTL-EXNUM,

EXDAT LIKE J_1IEXCDTL-EXDAT,

LIFNR LIKE J_1IEXCDTL-LIFNR,

MATNR LIKE J_1IEXCDTL-MATNR,

MAKTX LIKE J_1IEXCDTL-MAKTX,

CHAPID LIKE J_1IEXCDTL-CHAPID,

EXBAS LIKE J_1IEXCDTL-EXBAS,

EXBED LIKE J_1IEXCDTL-EXBED,

ECS LIKE J_1IEXCDTL-ECS,

MENGE LIKE J_1IEXCDTL-MENGE,

MEINS LIKE J_1IEXCDTL-MEINS,

RDOC2 LIKE J_1IEXCDTL-RDOC2,

EXGRP LIKE J_1IEXCDTL-EXGRP,

RDOC1 LIKE J_1IEXCDTL-RDOC1,

STATUS LIKE J_1IEXCDTL-STATUS, "CHALLAN STATUS

END OF IT_CDTL.

DATA TEXT(10).

DATA : BEGIN OF IT_OUT OCCURS 0,

SERIALNO LIKE J_1IPART1-SERIALNO,

TEXT1 LIKE TEXT,

EXNUM LIKE J_1IEXCDTL-EXNUM,

EXDAT LIKE J_1IEXCDTL-EXDAT,

NAME LIKE LFA1-NAME1,

DDTEXT LIKE DD07T-DDTEXT,

EXCCD LIKE J_1IEXCHDR-EXCCD,

BUDAT LIKE MKPF-BUDAT,

EXBAS LIKE IT_CDTL-EXBAS,

EXBED LIKE IT_CDTL-EXBED,

ECS LIKE IT_CDTL-ECS,

MATNR LIKE IT_CDTL-MATNR,

MAKTX LIKE IT_CDTL-MAKTX,

CHAPID LIKE IT_CDTL-CHAPID,

MENGE LIKE IT_CDTL-MENGE,

MEINS LIKE IT_CDTL-MEINS,

DEL_IND(1),

END OF IT_OUT.

DATA IT_PART2 LIKE J_1IPART1 OCCURS 0 WITH HEADER LINE.

DATA S_NO(4) .

DATA DB_CNT LIKE SY-TABIX.

DATA EBELN_T LIKE MSEG-EBELN .

*----


TYPE-POOLS : SLIS.

DATA : AFIELD TYPE SLIS_FIELDCAT_ALV.

DATA : LIST_HEADER TYPE SLIS_T_LISTHEADER,

FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

LS_FTCAT TYPE LVC_S_FCAT,

SORTCAT TYPE SLIS_T_SORTINFO_ALV,

SORTCAT_LN LIKE LINE OF SORTCAT,

G_REPID LIKE SY-REPID,

G_BACK_GROUND(70), "like bapibds01-objkey,

GS_VARIANT LIKE DISVARIANT,

G_SAVE ,

GT_EVENTS TYPE SLIS_T_EVENT,

ALV_EVENT TYPE SLIS_ALV_EVENT,

EVENTCAT TYPE SLIS_T_EVENT,

EVENTCAT_LN LIKE LINE OF EVENTCAT,

LAYOUT_IN TYPE SLIS_LAYOUT_ALV,

LAYOUT_IN1 TYPE SLIS_LAYOUT_ALV.

CONSTANTS : GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE

'TOP_OF_PAGE',

GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE

'USER_COMMAND',

GC_FORMNAME_BEFORE_OUTPUT TYPE SLIS_FORMNAME VALUE

'BEFORE_OUTPUT'.

  • ALV_EVENT TYPE SLIS_ALV_EVENT,

*----


DATA EX_NO LIKE IT_CHDR-EXNUM VALUE 0.

DATA REGTYP_1 LIKE J_1IPART1-REGTYP.

SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.

PARAMETERS WERKS TYPE J_1IEXCHDR-WERKS.

SELECT-OPTIONS : BUDAT FOR J_1IEXCHDR-EXDAT.

PARAMETERS : R1 RADIOBUTTON GROUP GRP DEFAULT 'X',

R2 RADIOBUTTON GROUP GRP.

SELECTION-SCREEN END OF BLOCK B.

INITIALIZATION.

G_REPID = SY-REPID.

G_SAVE = 'A'.

  • PERFORM BUILD_EVENT USING GT_EVENTS[].

PERFORM ALV_EVENT_INIT.

AT SELECTION-SCREEN.

REFRESH LIST_HEADER.

PERFORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER.

START-OF-SELECTION.

  • PERFORM ALV_EVENT_INIT.

G_REPID = SY-REPID.

G_BACK_GROUND = ' ' .

IF R1 = 'X'.

CLEAR R2. CLEAR : REGTYP_1.

REGTYP_1 = 'A'.

  • set titlebar 'BALAJI' with DB_CNT.

ELSEIF R2 = 'X'.

CLEAR R1.CLEAR : REGTYP_1.

REGTYP_1 = 'C'.

  • set titlebar 'BALAJI1' with DB_CNT.

ENDIF.

  • SELECT * FROM J_1IPART1

  • INTO CORRESPONDING FIELDS OF TABLE IT_PART2

  • WHERE REGTYP = REGTYP_1 AND

  • TRNTYP = 'GRPO'.

    • AND BUDAT IN BUDAT.

    • DOCYR = IT_CDTL-DOCYR AND

    • DOCNO = IT_CDTL-DOCNO.

  • LOOP AT IT_PART2.

  • SELECT SINGLE * FROM J_1IEXCHDR

  • INTO CORRESPONDING FIELDS OF IT_CHDR

  • WHERE TRNTYP = 'GRPO' AND

*

    • STATUS NE ' ' AND

  • STATUS EQ ' ' AND

*

  • DOCYR = IT_PART2-DOCYR AND

  • DOCNO = IT_PART2-DOCNO AND

  • WERKS = WERKS AND

  • EXDAT IN BUDAT.

    • ORDER BY EXDAT.

  • IF SY-SUBRC = 0.

  • APPEND IT_CHDR.

  • ELSE.

  • CONTINUE.

  • ENDIF.

    • IF SY-SUBRC <> 0.

    • MESSAGE E084.

    • ENDIF.

  • ENDLOOP.

*

*******************SPD****************

SELECT * INTO CORRESPONDING FIELDS OF IT_CDTL FROM J_1IEXCDTL WHERE

TRNTYP = 'GRPO' AND WERKS = WERKS AND

EXDAT IN BUDAT AND STATUS NE 'B'.

SELECT SINGLE * FROM J_1IPART1 WHERE DOCNO = IT_CDTL-DOCNO AND

DOCYR = IT_CDTL-DOCYR AND

REGTYP = REGTYP_1.

IF SY-SUBRC EQ 0.

SELECT SINGLE * FROM J_1IPART2 WHERE DOCNO = IT_CDTL-DOCNO AND

DOCYR = IT_CDTL-DOCYR.

IF SY-SUBRC NE 0.

IT_CDTL-SERIALNO = J_1IPART1-SERIALNO.

APPEND IT_CDTL.

ENDIF.

ENDIF.

ENDSELECT.

***************SPD********************

  • SELECT BDOCNO BDOCYR BEXNUM BEXDAT BWERKS BEXBED B~EXCCD

  • B~ECS

  • B~STATUS

  • A~SERIALNO

  • FROM J_1IPART1 AS A INNER JOIN J_1IEXCHDR AS B

  • ON ADOCYR = BDOCYR AND ADOCNO = BDOCNO INTO CORRESPONDING

  • FIELDS OF TABLE IT_CHDR WHERE B~TRNTYP = 'GRPO' AND

  • BWERKS = WERKS AND BEXDAT IN BUDAT AND

  • B~STATUS = ' ' AND

    • B~STATUS = 'C' AND

  • A~REGTYP = REGTYP_1.

*

    • SORT IT_PART2 BY SERIALNO.

*

  • LOOP AT IT_CHDR.

  • SELECT * FROM J_1IEXCDTL

  • INTO CORRESPONDING FIELDS OF IT_CDTL

    • FOR ALL ENTRIES IN IT_CHDR

  • WHERE

  • TRNTYP = 'GRPO' AND

*

  • STATUS EQ ' ' AND

    • STATUS EQ 'C' AND

*

    • STATUS NE 'P' AND

*

  • DOCNO = IT_CHDR-DOCNO AND

  • DOCYR = IT_CHDR-DOCYR AND

  • EXNUM = IT_CHDR-EXNUM AND

  • EXDAT = IT_CHDR-EXDAT AND

  • WERKS = IT_CHDR-WERKS.

  • IF SY-SUBRC = 0.

  • APPEND IT_CDTL.

  • CLEAR IT_CDTL.

  • ELSE.

  • CONTINUE.

  • ENDIF.

  • ENDSELECT.

*

*

    • MODIFY IT_CDTL INDEX SY-TABIX.

    • CLEAR IT_CDTL.

*

  • ENDLOOP.

*

*****spd change**********

*LOOP AT IT_CDTL.

*SELECT SINGLE * FROM J_1IPART2 WHERE DOCNO = IT_CDTL-DOCNO AND

  • DOCYR = IT_CDTL-DOCYR.

*

*IF SY-SUBRC = 0.

  • DELETE IT_CDTL INDEX SY-TABIX.

*ENDIF.

*ENDLOOP.

**SELECT

*******spd ****************

  • SORT IT_CDTL BY EXNUM EXDAT.

  • DELETE ADJACENT DUPLICATES FROM IT_CDTL COMPARING MATNR EXNUM EXDAT.

LOOP AT IT_CDTL.

CLEAR TEXT.

DB_CNT = DB_CNT + 1.

READ TABLE IT_CHDR WITH KEY EXNUM = IT_CDTL-EXNUM DOCNO =

IT_CDTL-DOCNO.

  • READ TABLE IT_PART2 WITH KEY DOCNO = IT_CDTL-DOCNO .

  • IT_OUT-SERIALNO = IT_PART2-SERIALNO.

SELECT SINGLE NAME1 FROM LFA1

INTO IT_OUT-NAME

WHERE LIFNR = IT_CDTL-LIFNR.

SELECT SINGLE * FROM LFA1

WHERE LIFNR = IT_CDTL-LIFNR.

IF LFA1-LAND1 EQ 'IN'.

TEXT = 'INVOICE'.

IT_OUT-TEXT1 = TEXT.

ELSE.

TEXT = 'BOE'.

IT_OUT-TEXT1 = TEXT.

ENDIF.

SELECT SINGLE * FROM J_1IMOVEND

WHERE LIFNR = IT_CDTL-LIFNR.

SELECT SINGLE * FROM DD07T

  • INTO IT_OUT-DDTEXT

WHERE DOMNAME = 'J_1IVTYP' AND

DDLANGUAGE = 'EN' AND

DOMVALUE_L = J_1IMOVEND-J_1IVTYP.

IF DD07T-DDTEXT = 'First Stage Dealer of indigenous excisable goods'

OR

DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisablegoods'.

DD07T-DDTEXT = 'Dealer'.

ENDIF.

IT_OUT-DDTEXT = DD07T-DDTEXT.

  • ELSEIF DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisable

*goods'.

  • DD07T-DDTEXT =

CLEAR EBELN_T.

SELECT SINGLE LFBNR FROM MSEG

INTO EBELN_T

WHERE MBLNR = IT_CDTL-RDOC2 .

SELECT SINGLE * FROM MSEG

WHERE BWART EQ '106' AND

LFBNR = EBELN_T ."and

  • ebeln = ebeln_t.

IF SY-SUBRC = 0.

IT_OUT-DEL_IND = 'X'.

ELSE.

IT_OUT-DEL_IND = ' '.

ENDIF.

SELECT SINGLE BUDAT FROM MKPF

INTO IT_OUT-BUDAT

WHERE MBLNR = EBELN_T ."MSEG-LFBNR.

IT_OUT-EXNUM = IT_CDTL-EXNUM.

IT_OUT-EXDAT = IT_CDTL-EXDAT.

IT_OUT-EXCCD = IT_CHDR-EXCCD.

  • IT_OUT-SERIALNO = IT_CHDR-SERIALNO.

IT_OUT-SERIALNO = IT_CDTL-SERIALNO.

IT_OUT-EXBAS = IT_CDTL-EXBAS.

IT_OUT-EXBED = IT_CDTL-EXBED.

IT_OUT-ECS = IT_CDTL-ECS.

IT_OUT-MATNR = IT_CDTL-MATNR.

IT_OUT-MAKTX = IT_CDTL-MAKTX.

IT_OUT-CHAPID = IT_CDTL-CHAPID.

IT_OUT-MENGE = IT_CDTL-MENGE.

IT_OUT-MEINS = IT_CDTL-MEINS.

APPEND IT_OUT.

  • EX_NO = IT_CDTL-EXNUM.

ENDLOOP.

*

*----


  • Title Portion

IF REGTYP_1 = 'A'.

SET TITLEBAR 'BALAJI' WITH DB_CNT.

ELSEIF REGTYP_1 = 'C'.

SET TITLEBAR 'BALAJI1' WITH DB_CNT.

ENDIF.

*----


AFIELD-COL_POS = 1.

AFIELD-FIELDNAME = 'SERIALNO'.

AFIELD-SELTEXT_L = 'SERIAL NO.'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 2.

AFIELD-FIELDNAME = 'TEXT1'.

AFIELD-SELTEXT_L = 'TYPE OF DOC'.

AFIELD-JUST = 'L'.

AFIELD-DECIMALS_OUT = '0'.

AFIELD-NO_ZERO = 'X'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 3.

AFIELD-FIELDNAME = 'EXNUM'.

AFIELD-SELTEXT_L = 'DOC.NO'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 4.

AFIELD-FIELDNAME = 'EXDAT'.

AFIELD-SELTEXT_L = 'DOC.DATE'.

AFIELD-JUST = 'C'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 5.

AFIELD-FIELDNAME = 'NAME'.

AFIELD-SELTEXT_L = 'NAME OF THE SUPPLIER'.

AFIELD-NO_ZERO = 'X'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 6.

AFIELD-FIELDNAME = 'DDTEXT'.

AFIELD-SELTEXT_L = 'TYPE-OF-SUPPLIER'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 7.

AFIELD-FIELDNAME = 'EXCCD'.

AFIELD-SELTEXT_L = 'ECC OF THE SUPPLIER'.

AFIELD-NO_ZERO = 'X'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 8.

AFIELD-FIELDNAME = 'BUDAT'.

AFIELD-SELTEXT_L = 'INPUT RECV DATE'.

AFIELD-JUST = 'C'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 9.

AFIELD-FIELDNAME = 'EXBAS'.

AFIELD-SELTEXT_L = 'ASSESSABLE-VALUE'.

AFIELD-DO_SUM = 'X'.

AFIELD-JUST = 'R'.

AFIELD-DECIMALS_OUT = '2'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 10.

AFIELD-FIELDNAME = 'EXBED'.

AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN CENVAT'.

AFIELD-JUST = 'R'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 11.

AFIELD-FIELDNAME = 'ECS'.

AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN E-CESS'.

AFIELD-JUST = 'R'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 12.

AFIELD-FIELDNAME = 'MATNR'.

AFIELD-SELTEXT_L = 'MATERIAL-CODE'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 13.

AFIELD-FIELDNAME = 'MAKTX'.

AFIELD-SELTEXT_L = 'DESCRIPTION'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 14.

AFIELD-FIELDNAME = 'CHAPID'.

AFIELD-SELTEXT_L = 'TARIFF-ID'.

AFIELD-JUST = 'L'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 15.

AFIELD-FIELDNAME = 'MENGE'.

AFIELD-SELTEXT_L = 'QUANTITY'.

AFIELD-JUST = 'R'.

AFIELD-DO_SUM = ' '.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 16.

AFIELD-FIELDNAME = 'MEINS'.

AFIELD-SELTEXT_L = 'UOM'.

AFIELD-JUST = 'C'.

APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 17.

AFIELD-FIELDNAME = 'DEL_IND'.

AFIELD-SELTEXT_L = 'Deleted'.

AFIELD-JUST = 'C'.

APPEND AFIELD TO FIELDCAT.

  • AFIELD-COL_POS = 18.

  • AFIELD-FIELDNAME = 'PO NO'.

  • AFIELD-SELTEXT_L = 'PURDOCNO'.

  • AFIELD-JUST = 'C'.

  • APPEND AFIELD TO FIELDCAT.

  • * LAYOUT FOR ZEBRA CATLOG

LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.

LAYOUT_IN-ZEBRA = 'X'.

LAYOUT_IN-GET_SELINFOS = 'X'.

LAYOUT_IN-CONFIRMATION_PROMPT = 'X'.

LAYOUT_IN-DETAIL_POPUP = 'X' .

  • SORTCAT-decimals = '0'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_SAVE = G_SAVE

IS_VARIANT = GS_VARIANT

IT_FIELDCAT = FIELDCAT

IT_SORT = SORTCAT

IS_LAYOUT = LAYOUT_IN

IT_EVENTS = EVENTCAT

  • I_BACKGROUND_ID = g_back_ground

TABLES

T_OUTTAB = IT_OUT.

&----


*& Form TOP_OF_PAGE_LIST_HEADER

&----


  • text

----


  • -->LIST_HEADERtext

----


FORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER TYPE SLIS_T_LISTHEADER.

DATA : HLINE TYPE SLIS_LISTHEADER,

TEXT(60) TYPE C.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

SELECT SINGLE * FROM T001W WHERE WERKS = WERKS.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE 'PLANT :' TO TEXT.

WRITE WERKS TO TEXT+8.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE T001W-NAME1 TO TEXT.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE T001W-STRAS TO TEXT.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE T001W-ORT01 TO TEXT.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.

HLINE-TYP = 'H'.

WRITE 'DATE :' TO TEXT.

WRITE BUDAT-LOW TO TEXT+7.

IF BUDAT-HIGH NE ''.

WRITE 'TO' TO TEXT+18.

WRITE BUDAT-HIGH TO TEXT+22.

ENDIF.

HLINE-INFO = TEXT.

APPEND HLINE TO LIST_HEADER.

ENDFORM. "TOP_OF_PAGE_LIST_HEADER

&----


*& Form ALV_EVENT_INIT

&----


  • text

----


FORM ALV_EVENT_INIT .

CLEAR ALV_EVENT.

ALV_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

ALV_EVENT-FORM = 'ALV_TOP_OF_PAGE'.

APPEND ALV_EVENT TO EVENTCAT.

CLEAR ALV_EVENT.

ALV_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

ALV_EVENT-FORM = 'ALV_TOP_OF_LIST'.

APPEND ALV_EVENT TO EVENTCAT.

  • CLEAR ALV_EVENT.

  • ALV_EVENT-NAME = SLIS_EV_END_OF_LIST.

  • ALV_EVENT-FORM = 'ALV_END_OF_LIST'.

  • APPEND ALV_EVENT TO GT_EVENTS.

  • CLEAR ALV_EVENT.

  • ALV_EVENT-NAME = SLIS_EV_END_OF_PAGE.

  • ALV_EVENT-FORM = 'ALV_END_OF_PAGE'.

  • APPEND ALV_EVENT TO GT_EVENTS.

ENDFORM. "ALV_EVENT_INIT

&----


*& Form ALV_TOP_OF_PAGE

&----


  • text

----


FORM ALV_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = LIST_HEADER

I_LOGO = 'ENJOYSAP_LOGO'.

ENDFORM. "ALV_TOP_OF_PAGE

&----


*& Form BUILD_EVENT

&----


  • text

----


  • -->P_GT_EVENTS[] text

----


FORM BUILD_EVENT USING P_EVENTS TYPE SLIS_T_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_EVENTS

EXCEPTIONS

LIST_TYPE_WRONG = 1

OTHERS = 2.

READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO

ALV_EVENT.

IF SY-SUBRC = 0.

MOVE GC_FORMNAME_USER_COMMAND TO ALV_EVENT-FORM.

APPEND ALV_EVENT TO P_EVENTS.

ENDIF.

READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT INTO

ALV_EVENT.

IF SY-SUBRC = 0.

MOVE GC_FORMNAME_BEFORE_OUTPUT TO ALV_EVENT-FORM.

APPEND ALV_EVENT TO P_EVENTS.

ENDIF.

ENDFORM. " BUILD_EVENT

Thanks,

Shankar

Read only

Former Member
0 Likes
882

check out following demo program,

BCALV_TEST_BLOCK_LIST

or

First use the following function.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IT_FIELDCAT = ZFIELD

IS_LAYOUT = Z_LAYOUT

I_TABNAME = 'ZDATA'

IT_EVENTS = GT_ZEVENTS

I_TEXT = TEXT-0B3

TABLES

T_OUTTAB = ZDATA.

  • You can update your internal table replace "Zdata" with another internal table and call this function again.

This will give you 2 ALV GRID blocks

Read only

Former Member
0 Likes
881

Hi Swati,

see given code

REPORT Z7RNP_ALV_SO_BLOCK MESSAGE-ID Z7NEW .

************************************************************************

TABLE DECLARATION

************************************************************************

TABLES: VBAK , "Sales Document: Header Data

VBAP , "Sales Document: Item Data

MAKT , "Material Descriptions

LIPS . "SD document: Delivery: Item data

************************************************************************

DECLARATION OF TYPE-POOL

*THIS TYPE-POOL CONTAINS THE EVENTS,

************************************************************************

TYPE-POOLS : SLIS.

************************************************************************

DECLARATION OF EVENTS

************************************************************************

************************************************************************

DECLARATION OF FIELD LAYOUT

************************************************************************

DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: T_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: T_EVENT TYPE SLIS_T_EVENT.

DATA: X_EVENT TYPE SLIS_ALV_EVENT.

************************************************************************

DECLARATION OF LIST HEADER

************************************************************************

DATA: I_LISTHEADER TYPE SLIS_T_LISTHEADER.

************************************************************************

DECLARATION OF FIELD CATALOG FOR SCREEN 1

************************************************************************

DATA: I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

************************************************************************

DECLARATION OF FIELD CATALOG FOR SCREEN 2

************************************************************************

DATA: I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

************************************************************************

SORTING OF OUTPUT

************************************************************************

DATA: I_SORT TYPE SLIS_T_SORTINFO_ALV.

DATA: T_SORT TYPE SLIS_T_SORTINFO_ALV.

************************************************************************

*DATA DECLARATION

************************************************************************

DATA: V_AUART TYPE TVAK-AUART,

V_VKORG TYPE TVKO-VKORG,

V_KUNNR TYPE KNA1-KUNNR,

V_MATNR TYPE MARA-MATNR ,

V_SPART TYPE TVTA-SPART .

DATA: V_REPID LIKE SY-REPID .

TYPES: BEGIN OF IT_SO ,

VBELN TYPE VBELN_VA , "SALES ORDER NO.

AUART TYPE AUART , "SALES DOC. TYPE

VKORG TYPE VKORG , "SALES ORG.

SPART TYPE SPART , "DIVISION

KUNNR TYPE KUNAG , "SOLD TO PARTY

POSNR TYPE POSNR_VA , "SALES DOC. ITEM

MATNR TYPE MATNR , "MATERIAL NO

MAKTX TYPE MAKTX , "DESCRIPTION

KWMENG TYPE KWMENG , "QUANTITY

VRKME TYPE VRKME , "SALES UNIT

END OF IT_SO .

TYPES: BEGIN OF IT_DEL ,

VBELN TYPE VBELN_VL , "SALES ORDER NO.

POSNR TYPE POSNR_VL , "SALES DOC. ITEM

MATNR TYPE MATNR , "MATERIAL NO

WERKS TYPE WERKS_D , "PLANT

LGORT TYPE LGORT_D , "STORAGE LOCATION

CHARG TYPE CHARG_D , "BATCH NO.

LFIMG TYPE LFIMG , "ACTUAL DELIVERY QTY.

VRKME TYPE VRKME , "SALES UNIT

END OF IT_DEL .

TYPES: BEGIN OF TYPE_VBFA ,

VBELV TYPE VBELN_VON ,

"Preceding sales and distribution document

POSNV TYPE POSNR_VON , "Preceding item of an SD document

VBELN TYPE VBELN_NACH ,

"Subsequent sales and distribution document

POSNN TYPE POSNR_NACH,

"Document category of subsequent document

VBTYP_N TYPE VBTYP_N ,

END OF TYPE_VBFA .

DATA: IT_SO1 TYPE STANDARD TABLE OF IT_SO ,

IT_DEL1 TYPE STANDARD TABLE OF IT_DEL ,

IT_VBFA TYPE STANDARD TABLE OF TYPE_VBFA,

IT_DEL_FUL TYPE STANDARD TABLE OF IT_DEL.

DATA: WA_SO TYPE IT_SO ,

WA_DEL TYPE IT_DEL ,

WA_VBFA TYPE TYPE_VBFA,

wa_IT_DEL_FUL TYPE IT_DEL.

************************************************************************

*SELECTION SCREEN

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-004 .

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN ,

S_AUART FOR V_AUART ,

S_VKORG FOR V_VKORG ,

S_SPART FOR V_SPART ,

S_KUNNR FOR V_KUNNR ,

S_MATNR FOR V_MATNR .

SELECTION-SCREEN END OF BLOCK BLK1 .

************************************************************************

*AT SELECTION SCREEN

************************************************************************

AT SELECTION-SCREEN.

SELECT SINGLE VBELN

FROM VBAK INTO VBAK-VBELN

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E202.

ENDIF.

************************************************************************

*START OF SELECTION

************************************************************************

INITIALIZATION.

V_REPID = SY-REPID.

START-OF-SELECTION .

PERFORM DATA_SELECT.

************************************************************************

  • FOR BLOCK 1

************************************************************************

PERFORM INITIALIZE_BLOCK .

PERFORM FLD_CAT USING I_FLDCAT[] .

PERFORM T_LAYOUT USING I_LAYOUT .

PERFORM I_SORT USING I_SORT .

PERFORM EVENT USING T_EVENT .

PERFORM CALL_ALV.

************************************************************************

  • FOR BLOCK 2

************************************************************************

PERFORM FLD_CAT2 USING I_FLDCAT2[] .

PERFORM I_LAYOUT USING I_LAYOUT .

  • PERFORM T_SORT USING I_SORT .

PERFORM EVENT1 USING T_EVENT .

PERFORM CALL_ALV1.

PERFORM BLOCK-DISPLAY .

&----


*& Form DATA_SELECT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DATA_SELECT .

REFRESH: IT_VBFA, IT_SO1, IT_DEL1, IT_DEL_FUL.

SELECT

A~VBELN

A~AUART

A~VKORG

A~SPART

A~KUNNR

B~POSNR

B~MATNR

C~MAKTX

B~KWMENG

B~VRKME

INTO TABLE IT_SO1 FROM VBAK AS A

JOIN VBAP AS B ON BVBELN = AVBELN

JOIN MAKT AS C ON CMATNR = BMATNR

AND C~SPRAS = SY-LANGU

WHERE A~VBELN IN S_VBELN .

IF SY-SUBRC = 0.

SELECT VBELV POSNV VBELN POSNN VBTYP_N INTO TABLE IT_VBFA

FROM VBFA

FOR ALL ENTRIES IN IT_SO1

WHERE VBELV = IT_SO1-VBELN

AND POSNN = IT_SO1-POSNR

AND VBTYP_N ='J' .

IF SY-SUBRC = 0.

SELECT VBELN POSNR MATNR WERKS LGORT CHARG LFIMG VRKME

FROM LIPS INTO TABLE IT_DEL_FUL

FOR ALL ENTRIES IN IT_VBFA

WHERE VBELN = IT_VBFA-VBELN

AND POSNR = IT_VBFA-POSNN.

ENDIF.

ENDIF .

V_REPID = SY-REPID .

ENDFORM. " DATA_SELECT

&----


*& Form INITIALIZE_BLOCK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM INITIALIZE_BLOCK .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID .

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IT_EXCLUDING =

ENDFORM. " INITIALIZE_BLOCK

&----


*& Form FLD_CAT

&----


  • text

----


  • -->P_I_FLDCAT[] text

----


FORM FLD_CAT USING P_I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'SALES ORDER NO.'.

I_FLDCAT-COL_POS = 1. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'SALES DOC. TYPE'.

I_FLDCAT-COL_POS = 2. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'SALES ORG.'.

I_FLDCAT-COL_POS = 3. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'DIVISION'.

I_FLDCAT-COL_POS = 4. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'SOLD TO PARTY'.

I_FLDCAT-COL_POS = 5. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'SALES DOC. ITEM'.

I_FLDCAT-COL_POS = 6. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'MATERIAL NO.'.

I_FLDCAT-COL_POS = 7. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'DESCRIPTION'.

I_FLDCAT-COL_POS = 8. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'QUANTITY'.

I_FLDCAT-COL_POS = 9. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

CLEAR I_FLDCAT.

I_FLDCAT-FIELDNAME = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT-TABNAME = 'IT_SO1'.

I_FLDCAT-SELTEXT_M = 'SALES UNIT'.

I_FLDCAT-COL_POS = 10. " POSITION OF THE COLUMN.

I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT-KEY = 'X'.

" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT.

ENDFORM. " FLD_CAT

&----


*& Form T_LAYOUT

&----


  • text

----


  • -->P_I_LAYOUT text

----


FORM T_LAYOUT USING P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .

P_I_LAYOUT-ZEBRA = 'X'.

P_I_LAYOUT-KEY_HOTSPOT = 'X'.

P_I_LAYOUT-F2CODE = 'DISP'.

ENDFORM. " T_LAYOUT

&----


*& Form I_SORT

&----


  • text

----


  • -->P_I_SORT text

----


FORM I_SORT USING P_I_SORT TYPE SLIS_T_SORTINFO_ALV .

DATA: I_SORT TYPE SLIS_SORTINFO_ALV .

REFRESH P_I_SORT .

CLEAR I_SORT.

I_sort-spos = 1.

I_sort-fieldname = 'VBELN'.

I_sort-up = 'X'.

I_sort-subtot = 'X'.

I_sort-group = '*'.

APPEND I_SORT TO P_I_SORT.

ENDFORM. " I_SORT

&----


*& Form CALL_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALL_ALV .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = T_LAYOUT

IT_FIELDCAT = I_FLDCAT[]

I_TABNAME = 'IT_SO1'

IT_EVENTS = T_EVENT

  • IT_SORT = I_SORT

  • I_TEXT = TEXT-202

TABLES

T_OUTTAB = IT_SO1

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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.

REFRESH T_EVENT .

CLEAR T_EVENT .

ENDFORM. " CALL_ALV

&----


*& Form FLD_CAT2

&----


  • text

----


  • -->P_I_FLDCAT2[] text

----


FORM FLD_CAT2 USING P_I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV.

CLEAR I_FLDCAT2.

I_FLDCAT2-FIELDNAME = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT2-SELTEXT_M = 'DELIVERY NO.'.

I_FLDCAT2-COL_POS = 1. " POSITION OF THE COLUMN.

I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

I_FLDCAT2-HOTSPOT = 'X'.

APPEND I_FLDCAT2.

CLEAR I_FLDCAT2.

I_FLDCAT2-FIELDNAME = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT2-SELTEXT_M = 'DELIVERY ITEM'.

I_FLDCAT2-COL_POS = 2. " POSITION OF THE COLUMN.

I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT2.

CLEAR I_FLDCAT2.

I_FLDCAT2-FIELDNAME = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT2-SELTEXT_M = 'MATERIAL NO.'.

I_FLDCAT2-COL_POS = 3. " POSITION OF THE COLUMN.

I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT2.

CLEAR I_FLDCAT2.

I_FLDCAT2-FIELDNAME = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT2-SELTEXT_M = 'PLANT.'.

I_FLDCAT2-COL_POS = 4. " POSITION OF THE COLUMN.

I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT2.

CLEAR I_FLDCAT2.

I_FLDCAT2-FIELDNAME = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT2-SELTEXT_M = 'ST. LOCATION'.

I_FLDCAT2-COL_POS = 5. " POSITION OF THE COLUMN.

I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT2.

CLEAR I_FLDCAT2.

I_FLDCAT2-FIELDNAME = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT2-SELTEXT_M = 'BATCH NO.'.

I_FLDCAT2-COL_POS = 6. " POSITION OF THE COLUMN.

I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT2.

CLEAR I_FLDCAT2.

I_FLDCAT2-FIELDNAME = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT2-SELTEXT_M = 'ACT. DEL. QTY.'.

I_FLDCAT2-COL_POS = 7. " POSITION OF THE COLUMN.

I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT2.

CLEAR I_FLDCAT2.

I_FLDCAT2-FIELDNAME = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED

I_FLDCAT2-SELTEXT_M = 'SALES UNIT.'.

I_FLDCAT2-COL_POS = 8. " POSITION OF THE COLUMN.

I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.

I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.

I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

  • I_FLDCAT-HOTSPOT = 'X'.

APPEND I_FLDCAT2.

ENDFORM. " FLD_CAT2

&----


*& Form I_LAYOUT

&----


  • text

----


  • -->P_I_LAYOUT text

----


FORM I_LAYOUT USING P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .

P_I_LAYOUT-ZEBRA = 'X'.

P_I_LAYOUT-KEY_HOTSPOT = 'X'.

P_I_LAYOUT-F2CODE = 'DISP'.

ENDFORM. " I_LAYOUT

&----


*& Form CALL_ALV1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALL_ALV1 .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = I_FLDCAT2[]

I_TABNAME = 'IT_DEL_FUL'

IT_EVENTS = T_EVENT

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_DEL_FUL

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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. " CALL_ALV1

&----


*& Form BLOCK-DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BLOCK-DISPLAY .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

  • EXPORTING

  • I_INTERFACE_CHECK = ' '

  • IS_PRINT =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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. " BLOCK-DISPLAY

&----


*& Form EVENT

&----


  • text

----


  • -->P_T_EVENT text

----


FORM EVENT USING P_T_EVENT type slis_t_event.

x_event-form = 'TOP_OF_LIST1'.

x_event-name = slis_ev_top_of_list.

append x_event to p_t_event.

clear x_event .

ENDFORM. " EVENT

&----


*& Form EVENT1

&----


  • text

----


  • -->P_T_EVENT text

----


FORM EVENT1 USING P_T_EVENT type slis_t_event.

x_event-form = 'TOP_OF_LIST2'.

x_event-name = slis_ev_top_of_list.

append x_event to p_t_event.

ENDFORM. " EVENT1

FORM TOP_OF_LIST1.

SKIP 1.

WRITE: 10 'BLOCK LIST 1 FOR SALES ORDER DETAILS ' COLOR 4 .

skip 1.

format reset.

endform.

FORM TOP_OF_LIST2.

skip 1.

WRITE: 10 'BLOCK LIST 2 FOR DELIVERY ORDER DETAILS ' COLOR 4 .

skip 1.

format reset.

endform.

Reward point if useful.

Read only

0 Likes
881

Hello Ravindra Patil,

I am working with Code send by you, it's is working Fine , But the Event TOP OF PAGE for

both LIST1 and LIST2 (ALV1 and ALV2) is not Working.

I am unable to Add any text before list. same code I am using .

please reply .

Thanks

Swati....

Read only

Former Member
0 Likes
881

Hi,

Use two different containers on the screen and populate the ALV's in each container.

This is the simplest and easiest way.

Regards

Subramanian

Read only

Former Member
0 Likes
881

for this kind of situations, u need to print the data in blocked list.

Read only

Former Member
0 Likes
881

Hi,

As you create single container for a ALV, now create two containers for two ALV screens and populate the data in the PBO or in the event handling methods.

Regards,

Prasanth