Application Development 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: 

ALV grid

Former Member
0 Kudos

I want to display the fields from two internal tables into an ALV Grid display?

can any one give me the complete code for this?

thanks in advance

1 ACCEPTED SOLUTION

Former Member
0 Kudos

&----


*& Report YKTEST *

*& *

&----


REPORT yktest.

&----


*& TABLES DECLARATION *

&----


TABLES : ekko, ekpo, t001w, t161t, lfa1.

&----


*& INTERNAL TABLE DECLARATION *

&----


TYPES : BEGIN OF tp_itab1,

bukrs TYPE ekko-bukrs,

lifnr TYPE ekko-lifnr,

ebeln TYPE ekko-ebeln,

waers TYPE ekko-waers,

bsart TYPE ekko-bsart,

ekorg TYPE ekko-ekorg,

ekgrp TYPE ekko-ekgrp,

ebelp TYPE ekpo-ebelp,

txz01 TYPE ekpo-txz01,

matnr TYPE ekpo-matnr,

werks TYPE ekpo-werks,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

netpr TYPE ekpo-netpr,

netwr TYPE ekpo-netwr,

name1 TYPE t001w-name1,

header_text(132),

chk TYPE c,

END OF tp_itab1.

DATA : t_itab1 TYPE STANDARD TABLE OF tp_itab1,

wa_itab1 TYPE tp_itab1,

ws_name1 TYPE t001w-name1.

DATA : f_itab1 TYPE STANDARD TABLE OF tp_itab1,

wa_fitab1 TYPE tp_itab1.

DATA : f_itab2 TYPE STANDARD TABLE OF tp_itab1,

wa_fitab2 TYPE tp_itab1.

TYPES : BEGIN OF tp_name1,

werks TYPE t001w-werks,

name1 TYPE t001w-name1,

END OF tp_name1.

DATA : t_name1 TYPE STANDARD TABLE OF tp_name1,

wa_name1 TYPE tp_name1.

DATA : t_lfa1 TYPE STANDARD TABLE OF lfa1,

wa_lfa1 TYPE lfa1.

DATA: hold_tabix TYPE sy-tabix.

DATA : t_tlinetab TYPE STANDARD TABLE OF tline,

wa_tlinetab TYPE tline.

DATA: ws_name TYPE thead-tdname,

ws_repid TYPE sy-repid VALUE 'YKTEST'.

DATA : repid TYPE sy-repid.

DATA : total TYPE p DECIMALS 2,

quantity TYPE p DECIMALS 3.

CONSTANTS : ws_id TYPE thead-tdid VALUE 'F01',

ws_object TYPE thead-tdobject VALUE 'EKKO',

lc_view(1) TYPE c VALUE 'F',

lc_form(10) TYPE c VALUE 'YK_FORM'.

&----


*& ALV DECLARATION *

&----


TYPE-POOLS : slis.

DATA: lt_fieldcat TYPE slis_t_fieldcat_alv,

lf_fieldcat TYPE slis_fieldcat_alv.

DATA: lh_index LIKE lf_fieldcat-col_pos.

DATA: l_layout TYPE slis_layout_alv.

DATA : l_sort TYPE slis_t_sortinfo_alv,

w_sort TYPE slis_sortinfo_alv.

&----


*& SELECTION-SCREEN *

&----


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

SELECTION-SCREEN SKIP 2.

SELECT-OPTIONS: s_bukrs FOR ekko-bukrs OBLIGATORY.

SELECT-OPTIONS: s_lifnr FOR ekko-lifnr OBLIGATORY.

SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.

PARAMETERS: p_bsart TYPE ekko-bsart.

SELECT-OPTIONS: s_matnr FOR ekpo-matnr.

SELECT-OPTIONS: s_ekorg FOR ekko-ekorg.

SELECT-OPTIONS: s_ekgrp FOR ekko-ekgrp.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN END OF BLOCK a1.

&----


*& START-OF-SELECTION *

&----


START-OF-SELECTION.

  • FETCHING DATA

PERFORM fetch_data.

  • BUILD FIELD CATALOG

PERFORM build_fieldcatalog.

  • BUILD LAYOUT

PERFORM build_layout.

  • SORT LAYOUT

PERFORM sort_layout.

&----


*& END-OF-SELECTION. *

&----


END-OF-SELECTION.

*DISPLAY GRID

PERFORM display_grid.

&----


*& Form fetch_data *

&----


FORM fetch_data.

IF p_bsart IS INITIAL.

SELECT ekko~bukrs

ekko~lifnr

ekko~ebeln

ekko~waers

ekko~bsart

ekko~ekorg

ekko~ekgrp

ekpo~ebelp

ekpo~txz01

ekpo~matnr

ekpo~werks

ekpo~menge

ekpo~meins

ekpo~netpr

ekpo~netwr

INTO TABLE t_itab1 FROM

ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

WHERE ekko~ebeln IN s_ebeln AND

ekko~bukrs IN s_bukrs AND

ekko~lifnr IN s_lifnr AND

ekko~ekorg IN s_ekorg AND

ekko~ekgrp IN s_ekgrp AND

ekpo~matnr IN s_matnr.

ELSE.

SELECT ekko~bukrs

ekko~lifnr

ekko~ebeln

ekko~waers

ekko~bsart

ekko~ekorg

ekko~ekgrp

ekpo~ebelp

ekpo~txz01

ekpo~matnr

ekpo~werks

ekpo~menge

ekpo~meins

ekpo~netpr

ekpo~netwr

INTO TABLE t_itab1 FROM

ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

WHERE ekko~ebeln IN s_ebeln AND

ekko~bukrs IN s_bukrs AND

ekko~lifnr IN s_lifnr AND

ekko~ekorg IN s_ekorg AND

ekko~ekgrp IN s_ekgrp AND

ekpo~matnr IN s_matnr AND

ekko~bsart = p_bsart.

ENDIF.

IF NOT t_itab1[] IS INITIAL.

  • FETCHING NAME1

SELECT werks

name1

FROM t001w

INTO TABLE t_name1

FOR ALL ENTRIES IN t_itab1

WHERE werks = t_itab1-werks.

SORT t_itab1 BY werks.

SORT t_name1 BY werks.

IF sy-subrc = 0.

LOOP AT t_itab1 INTO wa_itab1.

hold_tabix = sy-tabix.

READ TABLE t_name1 INTO wa_name1 WITH KEY werks = wa_itab1-werks

BINARY SEARCH.

IF sy-subrc = 0.

wa_itab1-name1 = wa_name1-name1.

MODIFY t_itab1 INDEX hold_tabix FROM wa_itab1.

ENDIF.

  • FETCHING HEADER TEXT

MOVE wa_itab1-ebeln TO ws_name.

CALL FUNCTION 'READ_TEXT'

EXPORTING

id = ws_id

language = sy-langu

name = ws_name

object = ws_object

TABLES

lines = t_tlinetab

EXCEPTIONS

id = 1

language = 2

name = 3

not_found = 4

object = 5

reference_check = 6

wrong_access_to_archive = 7

OTHERS = 8.

IF sy-subrc = 0.

LOOP AT t_tlinetab INTO wa_tlinetab.

wa_itab1-header_text = wa_tlinetab-tdline.

MODIFY t_itab1 FROM wa_itab1.

ENDLOOP.

ENDIF. " IF sy-subrc = 0.

CLEAR : wa_itab1,

hold_tabix,

wa_name1.

ENDLOOP.

ENDIF.

ENDIF. " IF NOT t_itab1[] IS INITIAL.

IF t_itab1[] IS INITIAL.

MESSAGE i000(zg) WITH text-008.

ENDIF.

SORT : t_itab1 BY bukrs lifnr ebeln ebelp.

ENDFORM. " fetch_data

&----


*& Form build_fieldcatalog *

&----


FORM build_fieldcatalog .

  • COMPANY CODE

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'BUKRS'.

lf_fieldcat-ref_tabname = 'EKKO'.

lf_fieldcat-ref_fieldname = 'BUKRS'.

lf_fieldcat-fix_column = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • VENDOR

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'LIFNR'.

lf_fieldcat-ref_tabname = 'EKKO'.

lf_fieldcat-ref_fieldname = 'LIFNR'.

lf_fieldcat-fix_column = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • PURCHASING DOCUMENT NUMBER

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'EBELN'.

lf_fieldcat-ref_tabname = 'EKKO'.

lf_fieldcat-ref_fieldname = 'EBELN'.

  • lf_fieldcat-key = 'X'.

lf_fieldcat-do_sum = 'X'.

lf_fieldcat-fix_column = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • ITEM NUMBER OF PURCHASING DOCUMENT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'EBELP'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'EBELP'.

APPEND lf_fieldcat TO lt_fieldcat.

  • SHORT TEXT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'TXZ01'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'TXZ01'.

APPEND lf_fieldcat TO lt_fieldcat.

  • MATERIAL NUMBER

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'MATNR'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'MATNR'.

APPEND lf_fieldcat TO lt_fieldcat.

  • PLANT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'WERKS'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'WERKS'.

APPEND lf_fieldcat TO lt_fieldcat.

  • NAME

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'NAME1'.

lf_fieldcat-ref_tabname = 'T001W'.

lf_fieldcat-ref_fieldname = 'NAME1'.

APPEND lf_fieldcat TO lt_fieldcat.

  • PURCHASE ORDER QUANTITY

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'MENGE'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'MENGE'.

lf_fieldcat-do_sum = 'X'.

lf_fieldcat-qfieldname = 'MEINS'.

APPEND lf_fieldcat TO lt_fieldcat.

  • UNIT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'MEINS'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'MEINS'.

APPEND lf_fieldcat TO lt_fieldcat.

  • NET PRICE IN PURCHASING DOCUMENT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'NETPR'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'NETPR'.

lf_fieldcat-cfieldname = 'WAERS'.

lf_fieldcat-do_sum = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • NET ORDER VALUE IN PO CURRENCY

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'NETWR'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'NETWR'.

lf_fieldcat-cfieldname = 'WAERS'.

lf_fieldcat-do_sum = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • CURRENCY

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'WAERS'.

lf_fieldcat-ref_tabname = 'EKKO'.

lf_fieldcat-ref_fieldname = 'WAERS'.

APPEND lf_fieldcat TO lt_fieldcat.

  • HEADER TEXT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'HEADER_TEXT'.

lf_fieldcat-seltext_m = 'Header Text'.

APPEND lf_fieldcat TO lt_fieldcat.

ENDFORM. " build_fieldcatalog

&----


*& Form display_grid *

&----


FORM display_grid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = ws_repid

i_callback_pf_status_set = 'PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

is_layout = l_layout

it_fieldcat = lt_fieldcat

it_sort = l_sort

i_save = 'X'

  • IMPORTING

TABLES

t_outtab = t_itab1

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_grid

&----


*& Form build_layout *

&----


FORM build_layout .

l_layout-colwidth_optimize = 'X'.

l_layout-zebra = 'X'.

l_layout-box_fieldname = 'CHK'.

l_layout-box_tabname = 'T_ITAB1' .

ENDFORM. " build_layout

&----


*& Form sort_layout *

&----


FORM sort_layout .

CLEAR w_sort.

w_sort-fieldname = 'BUKRS'.

w_sort-tabname = 'T_ITAB1'.

w_sort-spos = 1.

w_sort-up = 'X'.

w_sort-subtot = 'X'.

APPEND w_sort TO l_sort.

CLEAR w_sort.

w_sort-fieldname = 'EBELN'.

w_sort-tabname = 'T_ITAB1'.

w_sort-spos = 1.

w_sort-up = 'X'.

w_sort-subtot = 'X'.

APPEND w_sort TO l_sort.

ENDFORM. " sort_layout

&----


*& Form PF_STATUS

&----


FORM pf_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'STANDARD1' EXCLUDING rt_extab.

ENDFORM. " PF_STATUS

&----


*& Form user_command

&----


FORM user_command USING s_ucomm TYPE sy-ucomm

rs_selfield TYPE slis_selfield.

CLEAR wa_itab1.

READ TABLE t_itab1 INTO wa_itab1 INDEX rs_selfield-tabindex.

CASE s_ucomm.

WHEN 'POD'.

SET PARAMETER ID 'BES' FIELD wa_itab1-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

CLEAR wa_itab1.

WHEN 'MAT'.

SET PARAMETER ID 'MAT' FIELD wa_itab1-matnr.

CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

WHEN '&IC1'.

IF rs_selfield-fieldname = 'MATNR'.

SET PARAMETER ID 'MAT' FIELD wa_itab1-matnr.

CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

ELSEIF rs_selfield-fieldname = 'EBELN'.

SET PARAMETER ID 'BES' FIELD wa_itab1-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

WHEN 'PRINT'.

PERFORM multiple_sel.

PERFORM call_form.

CLEAR : f_itab1, f_itab2.

WHEN 'SMART'.

PERFORM multiple_sel.

PERFORM call_smartform.

ENDCASE.

3 REPLIES 3

Former Member
0 Kudos

&----


*& Report YKTEST *

*& *

&----


REPORT yktest.

&----


*& TABLES DECLARATION *

&----


TABLES : ekko, ekpo, t001w, t161t, lfa1.

&----


*& INTERNAL TABLE DECLARATION *

&----


TYPES : BEGIN OF tp_itab1,

bukrs TYPE ekko-bukrs,

lifnr TYPE ekko-lifnr,

ebeln TYPE ekko-ebeln,

waers TYPE ekko-waers,

bsart TYPE ekko-bsart,

ekorg TYPE ekko-ekorg,

ekgrp TYPE ekko-ekgrp,

ebelp TYPE ekpo-ebelp,

txz01 TYPE ekpo-txz01,

matnr TYPE ekpo-matnr,

werks TYPE ekpo-werks,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

netpr TYPE ekpo-netpr,

netwr TYPE ekpo-netwr,

name1 TYPE t001w-name1,

header_text(132),

chk TYPE c,

END OF tp_itab1.

DATA : t_itab1 TYPE STANDARD TABLE OF tp_itab1,

wa_itab1 TYPE tp_itab1,

ws_name1 TYPE t001w-name1.

DATA : f_itab1 TYPE STANDARD TABLE OF tp_itab1,

wa_fitab1 TYPE tp_itab1.

DATA : f_itab2 TYPE STANDARD TABLE OF tp_itab1,

wa_fitab2 TYPE tp_itab1.

TYPES : BEGIN OF tp_name1,

werks TYPE t001w-werks,

name1 TYPE t001w-name1,

END OF tp_name1.

DATA : t_name1 TYPE STANDARD TABLE OF tp_name1,

wa_name1 TYPE tp_name1.

DATA : t_lfa1 TYPE STANDARD TABLE OF lfa1,

wa_lfa1 TYPE lfa1.

DATA: hold_tabix TYPE sy-tabix.

DATA : t_tlinetab TYPE STANDARD TABLE OF tline,

wa_tlinetab TYPE tline.

DATA: ws_name TYPE thead-tdname,

ws_repid TYPE sy-repid VALUE 'YKTEST'.

DATA : repid TYPE sy-repid.

DATA : total TYPE p DECIMALS 2,

quantity TYPE p DECIMALS 3.

CONSTANTS : ws_id TYPE thead-tdid VALUE 'F01',

ws_object TYPE thead-tdobject VALUE 'EKKO',

lc_view(1) TYPE c VALUE 'F',

lc_form(10) TYPE c VALUE 'YK_FORM'.

&----


*& ALV DECLARATION *

&----


TYPE-POOLS : slis.

DATA: lt_fieldcat TYPE slis_t_fieldcat_alv,

lf_fieldcat TYPE slis_fieldcat_alv.

DATA: lh_index LIKE lf_fieldcat-col_pos.

DATA: l_layout TYPE slis_layout_alv.

DATA : l_sort TYPE slis_t_sortinfo_alv,

w_sort TYPE slis_sortinfo_alv.

&----


*& SELECTION-SCREEN *

&----


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

SELECTION-SCREEN SKIP 2.

SELECT-OPTIONS: s_bukrs FOR ekko-bukrs OBLIGATORY.

SELECT-OPTIONS: s_lifnr FOR ekko-lifnr OBLIGATORY.

SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.

PARAMETERS: p_bsart TYPE ekko-bsart.

SELECT-OPTIONS: s_matnr FOR ekpo-matnr.

SELECT-OPTIONS: s_ekorg FOR ekko-ekorg.

SELECT-OPTIONS: s_ekgrp FOR ekko-ekgrp.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN END OF BLOCK a1.

&----


*& START-OF-SELECTION *

&----


START-OF-SELECTION.

  • FETCHING DATA

PERFORM fetch_data.

  • BUILD FIELD CATALOG

PERFORM build_fieldcatalog.

  • BUILD LAYOUT

PERFORM build_layout.

  • SORT LAYOUT

PERFORM sort_layout.

&----


*& END-OF-SELECTION. *

&----


END-OF-SELECTION.

*DISPLAY GRID

PERFORM display_grid.

&----


*& Form fetch_data *

&----


FORM fetch_data.

IF p_bsart IS INITIAL.

SELECT ekko~bukrs

ekko~lifnr

ekko~ebeln

ekko~waers

ekko~bsart

ekko~ekorg

ekko~ekgrp

ekpo~ebelp

ekpo~txz01

ekpo~matnr

ekpo~werks

ekpo~menge

ekpo~meins

ekpo~netpr

ekpo~netwr

INTO TABLE t_itab1 FROM

ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

WHERE ekko~ebeln IN s_ebeln AND

ekko~bukrs IN s_bukrs AND

ekko~lifnr IN s_lifnr AND

ekko~ekorg IN s_ekorg AND

ekko~ekgrp IN s_ekgrp AND

ekpo~matnr IN s_matnr.

ELSE.

SELECT ekko~bukrs

ekko~lifnr

ekko~ebeln

ekko~waers

ekko~bsart

ekko~ekorg

ekko~ekgrp

ekpo~ebelp

ekpo~txz01

ekpo~matnr

ekpo~werks

ekpo~menge

ekpo~meins

ekpo~netpr

ekpo~netwr

INTO TABLE t_itab1 FROM

ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

WHERE ekko~ebeln IN s_ebeln AND

ekko~bukrs IN s_bukrs AND

ekko~lifnr IN s_lifnr AND

ekko~ekorg IN s_ekorg AND

ekko~ekgrp IN s_ekgrp AND

ekpo~matnr IN s_matnr AND

ekko~bsart = p_bsart.

ENDIF.

IF NOT t_itab1[] IS INITIAL.

  • FETCHING NAME1

SELECT werks

name1

FROM t001w

INTO TABLE t_name1

FOR ALL ENTRIES IN t_itab1

WHERE werks = t_itab1-werks.

SORT t_itab1 BY werks.

SORT t_name1 BY werks.

IF sy-subrc = 0.

LOOP AT t_itab1 INTO wa_itab1.

hold_tabix = sy-tabix.

READ TABLE t_name1 INTO wa_name1 WITH KEY werks = wa_itab1-werks

BINARY SEARCH.

IF sy-subrc = 0.

wa_itab1-name1 = wa_name1-name1.

MODIFY t_itab1 INDEX hold_tabix FROM wa_itab1.

ENDIF.

  • FETCHING HEADER TEXT

MOVE wa_itab1-ebeln TO ws_name.

CALL FUNCTION 'READ_TEXT'

EXPORTING

id = ws_id

language = sy-langu

name = ws_name

object = ws_object

TABLES

lines = t_tlinetab

EXCEPTIONS

id = 1

language = 2

name = 3

not_found = 4

object = 5

reference_check = 6

wrong_access_to_archive = 7

OTHERS = 8.

IF sy-subrc = 0.

LOOP AT t_tlinetab INTO wa_tlinetab.

wa_itab1-header_text = wa_tlinetab-tdline.

MODIFY t_itab1 FROM wa_itab1.

ENDLOOP.

ENDIF. " IF sy-subrc = 0.

CLEAR : wa_itab1,

hold_tabix,

wa_name1.

ENDLOOP.

ENDIF.

ENDIF. " IF NOT t_itab1[] IS INITIAL.

IF t_itab1[] IS INITIAL.

MESSAGE i000(zg) WITH text-008.

ENDIF.

SORT : t_itab1 BY bukrs lifnr ebeln ebelp.

ENDFORM. " fetch_data

&----


*& Form build_fieldcatalog *

&----


FORM build_fieldcatalog .

  • COMPANY CODE

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'BUKRS'.

lf_fieldcat-ref_tabname = 'EKKO'.

lf_fieldcat-ref_fieldname = 'BUKRS'.

lf_fieldcat-fix_column = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • VENDOR

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'LIFNR'.

lf_fieldcat-ref_tabname = 'EKKO'.

lf_fieldcat-ref_fieldname = 'LIFNR'.

lf_fieldcat-fix_column = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • PURCHASING DOCUMENT NUMBER

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'EBELN'.

lf_fieldcat-ref_tabname = 'EKKO'.

lf_fieldcat-ref_fieldname = 'EBELN'.

  • lf_fieldcat-key = 'X'.

lf_fieldcat-do_sum = 'X'.

lf_fieldcat-fix_column = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • ITEM NUMBER OF PURCHASING DOCUMENT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'EBELP'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'EBELP'.

APPEND lf_fieldcat TO lt_fieldcat.

  • SHORT TEXT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'TXZ01'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'TXZ01'.

APPEND lf_fieldcat TO lt_fieldcat.

  • MATERIAL NUMBER

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'MATNR'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'MATNR'.

APPEND lf_fieldcat TO lt_fieldcat.

  • PLANT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'WERKS'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'WERKS'.

APPEND lf_fieldcat TO lt_fieldcat.

  • NAME

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'NAME1'.

lf_fieldcat-ref_tabname = 'T001W'.

lf_fieldcat-ref_fieldname = 'NAME1'.

APPEND lf_fieldcat TO lt_fieldcat.

  • PURCHASE ORDER QUANTITY

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'MENGE'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'MENGE'.

lf_fieldcat-do_sum = 'X'.

lf_fieldcat-qfieldname = 'MEINS'.

APPEND lf_fieldcat TO lt_fieldcat.

  • UNIT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'MEINS'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'MEINS'.

APPEND lf_fieldcat TO lt_fieldcat.

  • NET PRICE IN PURCHASING DOCUMENT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'NETPR'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'NETPR'.

lf_fieldcat-cfieldname = 'WAERS'.

lf_fieldcat-do_sum = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • NET ORDER VALUE IN PO CURRENCY

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'NETWR'.

lf_fieldcat-ref_tabname = 'EKPO'.

lf_fieldcat-ref_fieldname = 'NETWR'.

lf_fieldcat-cfieldname = 'WAERS'.

lf_fieldcat-do_sum = 'X'.

APPEND lf_fieldcat TO lt_fieldcat.

  • CURRENCY

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'WAERS'.

lf_fieldcat-ref_tabname = 'EKKO'.

lf_fieldcat-ref_fieldname = 'WAERS'.

APPEND lf_fieldcat TO lt_fieldcat.

  • HEADER TEXT

CLEAR lf_fieldcat.

lf_fieldcat-fieldname = 'HEADER_TEXT'.

lf_fieldcat-seltext_m = 'Header Text'.

APPEND lf_fieldcat TO lt_fieldcat.

ENDFORM. " build_fieldcatalog

&----


*& Form display_grid *

&----


FORM display_grid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = ws_repid

i_callback_pf_status_set = 'PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

is_layout = l_layout

it_fieldcat = lt_fieldcat

it_sort = l_sort

i_save = 'X'

  • IMPORTING

TABLES

t_outtab = t_itab1

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_grid

&----


*& Form build_layout *

&----


FORM build_layout .

l_layout-colwidth_optimize = 'X'.

l_layout-zebra = 'X'.

l_layout-box_fieldname = 'CHK'.

l_layout-box_tabname = 'T_ITAB1' .

ENDFORM. " build_layout

&----


*& Form sort_layout *

&----


FORM sort_layout .

CLEAR w_sort.

w_sort-fieldname = 'BUKRS'.

w_sort-tabname = 'T_ITAB1'.

w_sort-spos = 1.

w_sort-up = 'X'.

w_sort-subtot = 'X'.

APPEND w_sort TO l_sort.

CLEAR w_sort.

w_sort-fieldname = 'EBELN'.

w_sort-tabname = 'T_ITAB1'.

w_sort-spos = 1.

w_sort-up = 'X'.

w_sort-subtot = 'X'.

APPEND w_sort TO l_sort.

ENDFORM. " sort_layout

&----


*& Form PF_STATUS

&----


FORM pf_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'STANDARD1' EXCLUDING rt_extab.

ENDFORM. " PF_STATUS

&----


*& Form user_command

&----


FORM user_command USING s_ucomm TYPE sy-ucomm

rs_selfield TYPE slis_selfield.

CLEAR wa_itab1.

READ TABLE t_itab1 INTO wa_itab1 INDEX rs_selfield-tabindex.

CASE s_ucomm.

WHEN 'POD'.

SET PARAMETER ID 'BES' FIELD wa_itab1-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

CLEAR wa_itab1.

WHEN 'MAT'.

SET PARAMETER ID 'MAT' FIELD wa_itab1-matnr.

CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

WHEN '&IC1'.

IF rs_selfield-fieldname = 'MATNR'.

SET PARAMETER ID 'MAT' FIELD wa_itab1-matnr.

CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

ELSEIF rs_selfield-fieldname = 'EBELN'.

SET PARAMETER ID 'BES' FIELD wa_itab1-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

WHEN 'PRINT'.

PERFORM multiple_sel.

PERFORM call_form.

CLEAR : f_itab1, f_itab2.

WHEN 'SMART'.

PERFORM multiple_sel.

PERFORM call_smartform.

ENDCASE.

Former Member
0 Kudos

hi,

TABLES : mara,

marc,

makt.

DATA : BEGIN OF gi_cat OCCURS 0 ,

matnr like marc-matnr,

werks like marc-werks,

END OF gi_cat.

DATA : BEGIN OF gi_mara OCCURS 0 ,

matnr like marc-matnr,

MATKL LIKE MARA-MATKL,

END OF gi_mara.

DATA : BEGIN OF gi_des OCCURS 0 ,

matnr like makt-matnr,

maktx like makt-maktx,

END OF gi_des.

Data : BEGIN OF gi_final OCCURS 0 ,

matnr like marc-matnr,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

LAEDA LIKE MARA-LAEDA,

AENAM LIKE MARA-AENAM,

lvorm like marc-lvorm,

mtart like mara-mtart,

MATKL LIKE MARA-MATKL,

PRDHA LIKE MARA-PRDHA,

werks like marc-werks,

maktx like makt-maktx,

end of gi_final.

DATA :char TYPE i,

count TYPE i.

type-pools: slis.

data: gt_slis_fcat type slis_t_fieldcat_alv.

data: gt_fieldcat type slis_t_fieldcat_alv.

*data: gt_fieldcatall type slis_t_fieldcat_alv.

data: g_repid like sy-repid.

data: gs_layout type slis_layout_alv.

gs_layout-zebra = 'X'.

gs_layout-colwidth_optimize = 'X'.

start-of-selection.

perform fetch_data.

perform f_fieldcat_init using gt_fieldcat[].

perform alv_display tables gi_final using gt_fieldcat[].

FORM fetch_data.

SELECT A~MATNR

A~ERSDA

A~ERNAM

A~LAEDA

A~AENAM

A~LVORM

A~MTART

A~MATKL

A~PRDHA

B~WERKS

C~MAKTX

FROM MARA AS A INNER JOIN

MARC AS B ON

AMATNR = BMATNR

INNER JOIN MAKT AS C

ON AMATNR = CMATNR INTO TABLE

GI_FINAL WHERE SPART = ' '

AND ekgrp = ' '

and dispo = ' '

and prctr = ' '

and spras = 'EN'.

sort gi_final by matnr werks.

delete adjacent duplicates from gi_final.

endform.

form f_fieldcat_init using lt_fieldcat type slis_t_fieldcat_alv.

data: ls_fieldcat type slis_fieldcat_alv.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'MATNR'.

ls_fieldcat-seltext_l = 'Material Number'.

  • ls_fieldcat-tabname = 'GI_final'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'MAKTX'.

ls_fieldcat-seltext_l = 'Material Description'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'WERKS'.

ls_fieldcat-seltext_l = 'Plant'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'LVORM'.

ls_fieldcat-seltext_l = 'Deletion flag'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'MTART'.

ls_fieldcat-seltext_l = 'Material type'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'MATKL'.

ls_fieldcat-seltext_l = 'Material Group'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'PRDHA'.

ls_fieldcat-seltext_l = 'Product Hierarchy'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'ERSDA'.

ls_fieldcat-seltext_l = 'creation date'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'ERNAM'.

ls_fieldcat-seltext_l = 'created by'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'LAEDA'.

ls_fieldcat-seltext_l = 'changed date'.

append ls_fieldcat to lt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-fieldname = 'AENAM'.

ls_fieldcat-seltext_l = 'changed by'.

append ls_fieldcat to lt_fieldcat.

endform. " f_fieldcat_init

form alv_display tables gi_final using gt_fieldcat .

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = ' Material list '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

is_layout = gs_layout

it_fieldcat = gt_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

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab = gi_final

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

regards

siva

Former Member
0 Kudos

hi,

move all the fields from 2 itab to a common itab, with a common key.

EX :

In the ex, int_pa0001 has pernr & begda fields.

int_pa0002 has pernr & nachn.

itab -- has all the fields which r to be displayed..

DATA : BEGIN OF INT_PA0001 OCCURS 0,

pernr like pa0001-pernr,

begda like pa0001-begda,

END OF INT_PA0001.

DATA : BEGIN OF INT_PA0002 OCCURS 0,

pernr like pa0002-pernr,

nachn like pa0002-nachn,

END OF INT_PA0002.

DATA : BEGIN OF itab OCCURS 0,

pernr like pa0002-pernr,

nachn like pa0002-nachn,

begda like pa0001-begda,

END OF itab.

&& DATA FROM PA0001

SELECT PERNR BEGDA FROM PA0001

UP TO 5 ROWS

INTO TABLE INT_PA0001.

&& DATA FROM PA0002

IF NOT INT_PA0001[] IS INITIAL.

SELECT PERNR NACHN

FROM PA0002 INTO TABLE INT_PA0002

FOR ALL ENTRIES IN INT_PA0001

WHERE

PERNR EQ INT_PA0001-PERNR.

ENDIF.

LOOP AT INT_PA0001.

READ TABLE INT_PA0002 WITH KEY PERNR = PA0001-PERNR.

IF SY-SUBRC EQ '0'.

MOVE-CORRESPONDING INT_PA0001 TO ITAB

MOVE-CORRESPONDING INT_PA0002 TO ITAB

APPEND ITAB.

ENDIF.

ENDLOOP.

DISPLAY..

with Rgds,

S.Barani