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

Regarding ALV Heading

Former Member
0 Likes
930

Hi gurus,

I want to dispaly heading in ALV Grid. i want to shows my heading 3(three) times in primary page. JE entry is posted so i want to display "Posted entry" heading, same as JE entry is not posted so i want to display "yet not posted" , JE entry is parked so i want to display "Parked entry" heading

liek below:

Posted entry

C.code | Reference | Doc header text

004 A502 Audit fees

Parked entry

C.code | Reference | Doc header text

001 A710 Audit fees

Yet not Posted entry

C.code | Reference | Doc header text

004 A501 Audit fees

Give me some example code.

Thanks

zeni

Hi gurus,

I want to dispaly heading in ALV Grid. i want to shows my heading 3(three) times in primary page. JE entry is posted so i want to display "Posted entry" heading, same as JE entry is not posted so i want to display "yet not posted" , JE entry is parked so i want to display "Parked entry" heading

liek below:

Posted entry

C.code | Reference | Doc header text

004 A502 Audit fees

Parked entry

C.code | Reference | Doc header text

001 A710 Audit fees

Yet not Posted entry

C.code | Reference | Doc header text

004 A501 Audit fees

Give me some example code.

Thanks

zeni

6 REPLIES 6
Read only

Former Member
0 Likes
874

Hi,

Please refer the SAP standard demo program BCALV_TEST_HIERSEQ_LIST.

Thanks,

Sriram Ponna.

Read only

0 Likes
874

Hi Sriram,

I gone through your ALV prog, it contains no data. give some example code. give me some more idea.

Thanks

zeni

Read only

0 Likes
874
REPORT zm07mkon MESSAGE-ID m7.
*ENHANCEMENT-POINT RM07MKON_G4 SPOTS ES_RM07MKON STATIC.
*ENHANCEMENT-POINT RM07MKON_G5 SPOTS ES_RM07MKON.
*ENHANCEMENT-POINT RM07MKON_G6 SPOTS ES_RM07MKON STATIC.
*ENHANCEMENT-POINT RM07MKON_G7 SPOTS ES_RM07MKON.

CLASS cl_mmim_auth DEFINITION LOAD.

TABLES: msku, makt, mara, t001w, kna1.

SELECTION-SCREEN: BEGIN OF BLOCK dba WITH FRAME TITLE text-001.
SELECT-OPTIONS: matnr FOR mara-matnr,
werks FOR t001w-werks MEMORY ID wrk,
charg FOR msku-charg,
kunnr FOR msku-kunnr.
PARAMETERS: sobkz_w LIKE am07m-kukns AS CHECKBOX DEFAULT 'X',
sobkz_v LIKE am07m-lhgut AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN: END OF BLOCK dba.

SELECTION-SCREEN: BEGIN OF BLOCK anz WITH FRAME TITLE text-005.
PARAMETERS: alv_def LIKE disvariant-variant,
zero LIKE am07m-xmnul AS CHECKBOX.
SELECTION-SCREEN: END OF BLOCK anz.

INCLUDE rm07alvi.

DATA: BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE msku.
DATA: maktx LIKE makt-maktx,
name1_w LIKE t001w-name1,
name1_k LIKE kna1-name1,
meins LIKE mara-meins,
dummy TYPE alv_dummy,
farbe TYPE slis_t_specialcol_alv, " color
kunres LIKE mbew-salk3, "total unrestricted stock
kinqul LIKE mbew-salk3, "total in quality inspection
krest LIKE mbew-salk3. "total restricted stock
* ctotal LIKE mbew-salk3.
DATA: END OF itab.

DATA: BEGIN OF list OCCURS 0.
INCLUDE STRUCTURE itab.
DATA: END OF list.

DATA: BEGIN OF header OCCURS 0,
kunnr LIKE kna1-kunnr,
name1_k LIKE kna1-name1,
ctotal LIKE mbew-salk3,
END OF header.

DATA: fc TYPE slis_fieldcat_alv OCCURS 0 WITH HEADER LINE.
DATA: detail.

INITIALIZATION.
*ENHANCEMENT-POINT RM07MKON_01 SPOTS ES_RM07MKON.
PERFORM alv_init.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR alv_def.
PERFORM alv_f4.

AT SELECTION-SCREEN.
CALL FUNCTION 'MMIM_ENTRYCHECK_MAIN'
TABLES
it_matnr = matnr
it_werks = werks
it_kunnr = kunnr.
IF sobkz_w = space AND sobkz_v = space.
* message changed from e159(at) to e831 "XJD 14.11.2001
SET CURSOR FIELD 'SOBKZ_W'. "XJD 14.11.2001
MESSAGE e831. "Please choose at least one stock type
ENDIF.
PERFORM alv_check.

START-OF-SELECTION.
PERFORM data_selection.

END-OF-SELECTION.
PERFORM calculate_and_colorize.
PERFORM fieldcatalog.
PERFORM list_display.


************************************************************************
FORM data_selection.
DATA: BEGIN OF makt_key OCCURS 0,
matnr LIKE makt-matnr,
END OF makt_key.
DATA: BEGIN OF imakt OCCURS 0,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
END OF imakt.
DATA: BEGIN OF mara_key OCCURS 0,
matnr LIKE mara-matnr,
END OF mara_key.
DATA: BEGIN OF imara OCCURS 0,
matnr LIKE mara-matnr,
meins LIKE mara-meins,
END OF imara.
DATA: BEGIN OF t001w_key OCCURS 0,
werks LIKE t001w-werks,
END OF t001w_key.
DATA: BEGIN OF it001w OCCURS 0,
werks LIKE t001w-werks,
name1 LIKE t001w-name1,
END OF it001w.
DATA: BEGIN OF kna1_key OCCURS 0,
kunnr LIKE kna1-kunnr,
END OF kna1_key.
DATA: BEGIN OF ikna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF ikna1.
* New table to hold the costs
DATA: BEGIN OF imbew_key OCCURS 0,
charg LIKE mchb-charg,
END OF imbew_key.

DATA: BEGIN OF imbew OCCURS 0,
matnr LIKE mbew-matnr,
bwkey LIKE mbew-bwkey,
salk3 LIKE mbew-salk3,
charg LIKE mchb-charg,
END OF imbew.
* DATA: imbew TYPE STANDARD TABLE OF smbew.

RANGES sobkz FOR msku-sobkz.
* Main data
REFRESH sobkz.
sobkz-sign = 'I'. sobkz-option = 'EQ'.
IF sobkz_w = 'X'. sobkz-low = 'W'. APPEND sobkz. ENDIF.
IF sobkz_v = 'X'. sobkz-low = 'V'. APPEND sobkz. ENDIF.
SELECT * FROM msku INTO CORRESPONDING FIELDS OF TABLE itab
WHERE matnr IN matnr
AND werks IN werks
AND charg IN charg
AND sobkz IN sobkz
AND kunnr IN kunnr.
* Additional info: material text, plant name, debitor name
LOOP AT itab.
makt_key-matnr = itab-matnr. COLLECT makt_key.
mara_key-matnr = itab-matnr. COLLECT mara_key.
t001w_key-werks = itab-werks. COLLECT t001w_key.
kna1_key-kunnr = itab-kunnr. COLLECT kna1_key.
imbew_key-charg = itab-charg. COLLECT imbew_key.
ENDLOOP.

READ TABLE makt_key INDEX 1.
IF sy-subrc = 0.
SELECT matnr maktx INTO CORRESPONDING FIELDS OF TABLE imakt
FROM makt FOR ALL ENTRIES IN makt_key
WHERE matnr = makt_key-matnr
AND spras = sy-langu.
SORT imakt BY matnr.
ENDIF.
READ TABLE mara_key INDEX 1.
IF sy-subrc = 0.
SELECT matnr meins INTO CORRESPONDING FIELDS OF TABLE imara
FROM mara FOR ALL ENTRIES IN mara_key
WHERE matnr = mara_key-matnr.
SORT imara BY matnr.
ENDIF.
READ TABLE t001w_key INDEX 1.
IF sy-subrc = 0.
SELECT werks name1 INTO CORRESPONDING FIELDS OF TABLE it001w
FROM t001w FOR ALL ENTRIES IN t001w_key
WHERE werks = t001w_key-werks.
SORT it001w BY werks.
**new code to get costs
*selecting data into imbew, later reading imbew based on batch number
*and placing the necessary values in the final structure itab-*.
* SELECT a~matnr a~bwkey a~salk3 b~charg INTO TABLE imbew
* FROM mbew AS a
* JOIN mchb AS b
* ON a~matnr = b~matnr AND
* a~bwkey = b~werks
* FOR ALL ENTRIES IN imbew_key
* WHERE b~charg = imbew_key-charg AND
* a~bwkey = t001w_key-werks.

SORT imbew BY matnr bwkey charg.
ENDIF.
READ TABLE kna1_key INDEX 1.
IF sy-subrc = 0.
SELECT kunnr name1 INTO CORRESPONDING FIELDS OF TABLE ikna1
FROM kna1 FOR ALL ENTRIES IN kna1_key
WHERE kunnr = kna1_key-kunnr.
SORT ikna1 BY kunnr.
ENDIF.
LOOP AT itab.
READ TABLE imakt WITH KEY matnr = itab-matnr BINARY SEARCH.
IF sy-subrc = 0. itab-maktx = imakt-maktx. ENDIF.
READ TABLE imara WITH KEY matnr = itab-matnr BINARY SEARCH.
IF sy-subrc = 0. itab-meins = imara-meins. ENDIF.
READ TABLE it001w WITH KEY werks = itab-werks BINARY SEARCH.
IF sy-subrc = 0. itab-name1_w = it001w-name1. ENDIF.
READ TABLE ikna1 WITH KEY kunnr = itab-kunnr BINARY SEARCH.
IF sy-subrc = 0. itab-name1_k = ikna1-name1. ENDIF.
*new code
*get data from imbew to final structure
* READ TABLE imbew WITH KEY matnr = itab-matnr
* bwkey = itab-werks
* charg = itab-charg BINARY SEARCH.
* IF sy-subrc = 0. itab-kunres = imbew-salk3. ENDIF.

MODIFY itab.
ENDLOOP.
SORT itab BY kunnr matnr charg.
ENDFORM. "data_selection

************************************************************************
FORM fieldcatalog.
REFRESH fc. CLEAR fc.

fc-tabname = 'HEADER'.
fc-fieldname = 'KUNNR'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'HEADER'.
fc-fieldname = 'NAME1_K'.
fc-ref_tabname = 'KNA1'.
fc-ref_fieldname = 'NAME1'.
* APPEND fc. CLEAR fc.
* fc-tabname = 'HEADER'.
* fc-fieldname = 'TOTAL'.
* fc-ref_tabname = 'MBEW'.
* fc-ref_fieldname = 'SALK3'.

APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'MATNR'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'MAKTX'.
fc-ref_tabname = 'MAKT'.
fc-no_out = 'X'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'CHARG'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'WERKS'.
fc-ref_tabname = 'MSKU'.
fc-no_out = 'X'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'NAME1_W'.
fc-ref_tabname = 'T001W'.
fc-ref_fieldname = 'NAME1'.
fc-no_out = 'X'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'SOBKZ'.
fc-ref_tabname = 'MSKU'.
fc-no_out = 'X'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'KULAB'.
fc-qfieldname = 'MEINS'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'KUINS'.
fc-qfieldname = 'MEINS'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'KUEIN'.
fc-qfieldname = 'MEINS'.
fc-ref_tabname = 'MSKU'.
APPEND fc. CLEAR fc.
fc-tabname = 'LIST'.
fc-fieldname = 'MEINS'.
fc-ref_tabname = 'MARA'.
fc-seltext_l = 'WMU'.
fc-seltext_m = 'WMU'.
fc-seltext_s = 'WMU'.
APPEND fc. CLEAR fc.

* fc-tabname = 'HEADER'.
* fc-fieldname = 'CTOTAL'.
* fc-ref_tabname = 'MARA'.
* fc-seltext_l = 'WMU'.
* fc-seltext_m = 'WMU'.
* fc-seltext_s = 'WMU'.
* APPEND fc. CLEAR fc.
*New code
fc-fieldname = 'DUMMY'.
fc-tabname = 'LIST'.
fc-row_pos = '2'.
fc-outputlen = 59.
APPEND fc. CLEAR fc.

fc-tabname = 'LIST'.
fc-fieldname = 'KUNRES'.
fc-row_pos = '2'.
fc-seltext_s = 'Total'.
fc-do_sum = 'X'.
APPEND fc. CLEAR fc.

fc-tabname = 'LIST'.
fc-fieldname = 'KINQUL'.
fc-row_pos = '2'.
fc-seltext_s = 'Total'.
fc-outputlen = 18.
fc-do_sum = 'X'.
APPEND fc. CLEAR fc.

fc-tabname = 'LIST'.
fc-fieldname = 'KREST'.
fc-row_pos = '2'.
fc-seltext_s = 'Total'.
fc-outputlen = 18.
fc-do_sum = 'X'.
APPEND fc. CLEAR fc.

ENDFORM. "fieldcatalog

************************************************************************
FORM list_display.
REFRESH header.

LOOP AT list.
ON CHANGE OF list-kunnr.
MOVE-CORRESPONDING list TO header.
APPEND header.
ENDON.

ENDLOOP.

alv_keyinfo-header01 = 'KUNNR'.
alv_keyinfo-item01 = 'KUNNR'.
alv_keyinfo-item02 = 'MATNR'.

CLEAR detail.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_interface_check = ' '
i_callback_program = alv_repid
i_callback_pf_status_set = 'SET_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = alv_layout
it_fieldcat = fc[]
i_default = 'X'
i_save = 'A'
is_variant = alv_variant
i_tabname_header = 'HEADER'
i_tabname_item = 'LIST'
is_keyinfo = alv_keyinfo
is_print = alv_print
TABLES
t_outtab_header = header
t_outtab_item = list.

ENDFORM. "list_display


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

************************************************************************
FORM calculate_and_colorize.
DATA: sum LIKE msku-kulab,
cust_sum LIKE mbew-salk3.
REFRESH list.

LOOP AT itab.
* CHECK cl_mmim_auth=>check( i_object = 'M_MATE_WRK'
* i_value1 = itab-werks ) IS INITIAL.

* Authorization for total fields
* CHECK ZCL_NAME1_AUTH=>check( i_object = 'ZSALK3'
* i_value1 = itab-kunres ) IS INITIAL.

cust_sum = itab-kunres + cust_sum.

AT NEW kunnr.
* itab-ctotal = cust_sum.
* CLEAR cust_sum.
ENDAT.

IF zero = ' '.
sum = itab-kulab + itab-kuein + itab-kuins.
CHECK sum <> 0.
ENDIF.
MOVE-CORRESPONDING itab TO list.

PERFORM convert_to_ea.

APPEND list.
ENDLOOP.
ENDFORM. "calculate_and_colorize

************************************************************************
FORM set_status USING rt_extab TYPE slis_t_extab.
DATA: wa TYPE slis_extab.
IF cl_mmim_auth=>level( ) IS INITIAL.
APPEND 'AUTH' TO rt_extab.
ENDIF.
IF cl_mmim_auth=>level( ) = cl_mmim_auth=>c_error.
MESSAGE s124(m7).
ENDIF.
* Deactivate detail list if in detail list
IF detail = 'X'.
wa-fcode = 'DETAIL'.
APPEND wa TO rt_extab.
ENDIF.
SET PF-STATUS 'STANDARD' EXCLUDING rt_extab.
ENDFORM. "set_status

************************************************************************
FORM user_command USING rf_ucomm LIKE sy-ucomm
rs TYPE slis_selfield.

* Call from detail list: Change tablename
IF rs-tabname = '1'.
rs-tabname = 'LIST'.
ENDIF.
* Read the correct table
CLEAR: list, header.
CASE rs-tabname.
WHEN 'HEADER'.
READ TABLE header INDEX rs-tabindex.
MOVE-CORRESPONDING header TO list.
WHEN 'LIST'.
READ TABLE list INDEX rs-tabindex.
ENDCASE.
CHECK sy-subrc = 0.
* Double click targets
IF rf_ucomm = '&IC1'.
CASE rs-tabname.
WHEN 'HEADER'.
rf_ucomm = 'ADDR'.
WHEN 'LIST'.
CASE rs-fieldname.
WHEN 'MATNR'.
rf_ucomm = 'MMBE'.
WHEN OTHERS.
rf_ucomm = 'DOCU'.
ENDCASE.
ENDCASE.
ENDIF.
* Commands
CASE rf_ucomm.
WHEN 'MMBE'.
CHECK rs-tabname = 'LIST'. "only for items
SET PARAMETER ID 'MAT' FIELD list-matnr.
SET PARAMETER ID 'WRK' FIELD list-werks.
CALL TRANSACTION 'MMBE' AND SKIP FIRST SCREEN.
WHEN 'DOCU'.
CHECK rs-tabname = 'LIST'.
SUBMIT rm07docs WITH matnr = list-matnr
WITH werks = list-werks
WITH charg = list-charg
WITH sobkz = list-sobkz
WITH kunnr = list-kunnr
AND RETURN.
WHEN 'ADDR'.
SET PARAMETER ID 'KUN' FIELD list-kunnr.
CALL TRANSACTION 'VD03' AND SKIP FIRST SCREEN.
WHEN 'AUTH'.
CALL METHOD cl_mmim_auth=>display.
WHEN 'DETAIL'.
PERFORM detail_list.
ENDCASE.
CLEAR rf_ucomm.
ENDFORM. "user_command

************************************************************************
FORM detail_list.
DATA: fc_detail TYPE slis_fieldcat_alv OCCURS 0 WITH HEADER LINE.
DATA: variant_detail LIKE disvariant.
DATA: lt_base_list LIKE list[]. "401421
* The detail ALV may modify the list (sorting). If returned to the
* base list, the original list needs to be restored.
lt_base_list[] = list[]. "401421
REFRESH fc_detail.
LOOP AT fc.
MOVE-CORRESPONDING fc TO fc_detail.
CLEAR fc_detail-tabname.
APPEND fc_detail.
ENDLOOP.
CLEAR variant_detail.
variant_detail-report = alv_repid.
variant_detail-handle = 'DETA'.
detail = 'X'. "needed for GUI status differentiation

CALL FUNCTION alv_detail_func
EXPORTING
i_callback_program = alv_repid
i_callback_pf_status_set = 'SET_STATUS'
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = fc_detail[]
i_default = 'X'
is_variant = variant_detail
i_save = 'A'
is_layout = alv_layout
is_print = alv_print
TABLES
t_outtab = list[].
CLEAR detail.
list[] = lt_base_list[]. "401421
ENDFORM. "detail_list
*&---------------------------------------------------------------------*
*& Form convert_to_ea
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM convert_to_ea .
DATA: l_lvsme TYPE lvs_lvsme,
l_lgnum TYPE lgnum,
l_lbkum TYPE lbkum,
l_salk3 TYPE salk3,
l_peinh TYPE peinh,
l_verpr TYPE verpr,
l_bwtty TYPE bwtty_d,
factor TYPE f.

l_lgnum = list-werks+1.

SELECT SINGLE lvsme
INTO l_lvsme
FROM mlgn
WHERE matnr = list-matnr
AND lgnum = l_lgnum.

*...for Standard materials...
SELECT SINGLE lbkum salk3 peinh verpr bwtty
INTO (l_lbkum, l_salk3, l_peinh, l_verpr, l_bwtty)
FROM mbew
WHERE matnr = list-matnr
AND bwkey = list-werks.

IF l_lbkum = 0.
factor = l_verpr / l_peinh.
ELSE.
factor = l_salk3 / l_lbkum.
ENDIF.

*Totals
* Total unrestricted stock
list-kunres = list-kulab * factor.
* Total stock in quality
list-kinqul = list-kuins * factor.
* Total restricted stock
list-krest = list-kuein * factor.

*.......for Configurable items.........
IF l_bwtty = 'X'.
SELECT SINGLE salk3 INTO (l_salk3)
FROM mbew
WHERE matnr = list-matnr AND
bwkey = list-werks AND
bwtar = list-charg.
list-kunres = l_salk3.
ENDIF.
*.........................................
IF NOT l_lvsme IS INITIAL.
CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'
EXPORTING
input = list-kulab
matnr = list-matnr
meinh = l_lvsme
meins = list-meins
charge = list-charg
werks = list-werks
IMPORTING
output = list-kulab
EXCEPTIONS
conversion_not_found = 1
input_invalid = 2
material_not_found = 3
meinh_not_found = 4
meins_missing = 5
no_meinh = 6
output_invalid = 7
overflow = 8
OTHERS = 9.

CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'
EXPORTING
input = list-kuins
matnr = list-matnr
meinh = l_lvsme
meins = list-meins
charge = list-charg
werks = list-werks
IMPORTING
output = list-kuins
EXCEPTIONS
conversion_not_found = 1
input_invalid = 2
material_not_found = 3
meinh_not_found = 4
meins_missing = 5
no_meinh = 6
output_invalid = 7
overflow = 8
OTHERS = 9.

CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'
EXPORTING
input = list-kuein
matnr = list-matnr
meinh = l_lvsme
meins = list-meins
charge = list-charg
werks = list-werks
IMPORTING
output = list-kuein
EXCEPTIONS
conversion_not_found = 1
input_invalid = 2
material_not_found = 3
meinh_not_found = 4
meins_missing = 5
no_meinh = 6
output_invalid = 7
overflow = 8
OTHERS = 9.

list-meins = l_lvsme.
ENDIF.

ENDFORM. " convert_to_ea
Read only

venkat_o
Active Contributor
0 Likes
874

Hi Zeni, Using ALV Grid, It is not possible as per my knowledge, But you can display each part differently one by one using Blocked ALV. Regards, Venkat.O

Read only

venkat_o
Active Contributor
0 Likes
874

Hi Zeni, But it is somewhat possible using REUSE_ALV_LIST_DISPLAY. I have just changed TOP_OF_PAGE to make it . Check the sample program..


REPORT  zvenkat_alv_1_list.
TYPES:
      BEGIN OF t_mard,
       werks TYPE mard-werks,
       lgort TYPE mard-lgort,
       matnr TYPE mard-matnr,
       insme TYPE mard-insme,
       einme TYPE mard-einme,
       speme TYPE mard-speme,
      END OF t_mard.
DATA:
      w_mard TYPE t_mard.
DATA:
      i_mard TYPE STANDARD TABLE OF t_mard.
*&---------------------------------------------------------------------*
* ALV Declarations
*----------------------------------------------------------------------*
* Types Pools
TYPE-POOLS:
   slis.
* Types
TYPES:
   t_fieldcat         TYPE slis_fieldcat_alv,
   t_events           TYPE slis_alv_event,
   t_layout           TYPE slis_layout_alv.
* Workareas
DATA:
   w_fieldcat         TYPE t_fieldcat,
   w_events           TYPE t_events,
   w_layout           TYPE t_layout.
* Internal Tables
DATA:
   i_fieldcat         TYPE STANDARD TABLE OF t_fieldcat,
   i_events           TYPE STANDARD TABLE OF t_events.

*&---------------------------------------------------------------------*
*&      START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM get_data_from_database .

*&---------------------------------------------------------------------*
*&      END-OF-SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.

  PERFORM build_fieldcatalog.
  PERFORM build_events.
  PERFORM display_data.
*&---------------------------------------------------------------------*
*&      Form  get_data_from_database
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_data_from_database .
  CLEAR :i_mard,
         i_mard[].

  SELECT werks lgort matnr insme einme speme
  FROM mard
  INTO CORRESPONDING FIELDS OF TABLE i_mard
    UP TO 100 ROWS.

ENDFORM.                    " get_data_from_database
*&---------------------------------------------------------------------*
*&      Form  build_fieldcatalog
*&---------------------------------------------------------------------*
FORM build_fieldcatalog .
  CLEAR :
    w_fieldcat,
   i_fieldcat[].

  PERFORM build_fcat USING:
        "Field   Int Tab  Text
        'WERKS' 'I_MARD' 'WERKS',
        'LGORT' 'I_MARD' 'LGORT',
        'MATNR' 'I_MARD' 'MATNR',
        'INSME' 'I_MARD' 'INSME',
        'EINME' 'I_MARD' 'EINME',
        'SPEME' 'I_MARD' 'SPEME'.
ENDFORM.                    " build_fieldcatalog
*&---------------------------------------------------------------------*
*&      Form  build_events
*&---------------------------------------------------------------------*
FORM build_events .
  CLEAR:
        w_events, i_events[].
  w_events-name = 'TOP_OF_PAGE'. "Events Name
  w_events-form = 'TOP_OF_PAGE'. "Call back subroutine name
  APPEND w_events TO i_events.
  CLEAR  w_events.
  "You can see all the events existed for REUSE_ALV_LIST_DISPLAY by
  "executing REUSE_ALV_EVENTS_GET function modul by giving input = 0.
ENDFORM.                    " build_events

*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
FORM display_data .
  DATA :program LIKE sy-repid VALUE sy-repid.

  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      i_callback_program = program
      it_fieldcat        = i_fieldcat
      it_events          = i_events
    TABLES
      t_outtab           = i_mard.
  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_data
*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM top_of_page.

  ULINE (66).
  WRITE / sy-vline.
  WRITE AT 66 sy-vline.
  WRITE AT 3  'Material1'.
  WRITE AT 35 'Material2'.
  WRITE AT 33 sy-vline.

ENDFORM.                    "top_of_page
*&---------------------------------------------------------------------*
*&      Form  BUILD_FCAT
*&---------------------------------------------------------------------*

FORM build_fcat  USING  l_field l_tab l_text.

  w_fieldcat-fieldname = l_field.
  w_fieldcat-tabname   = l_tab.
  w_fieldcat-seltext_m = l_text.
  APPEND w_fieldcat TO i_fieldcat.
  CLEAR w_fieldcat.

ENDFORM.                    " BUILD_FCAT
regards, Venkat.O

Read only

Former Member
0 Likes
874

Hi venkat,

suppose i use "block_alv" in my report so its not possible for secondary window, my requirement is when primary window comes, then we double click on BELNR(Document No). thats directly goes to FB03 or FB50 T-code.........

so give me any other idea

Thanks

zeni