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

Dynamic ALV and internal table.

Former Member
0 Likes
648

Hi all,

I have a requirement of creating a dynamic field catelog based on input values in selection screen.

Example:

1) When I enter date range, say 20/03/2008 to 25/03/2008 I should have 6 columns in the output for each date with column heading as date itself.

2) For entering values for these date columns, i need to create an dynamic internal table.(values in the column will be some numbers like 10 on 20/03/2008, 15 on 21/03/2008 etc)

A rough output format would look like this:

-


Component | 20/03/2008 | 21/03/2008 | ..... |25/03/2008

-


comp1 | 10 | 15 | | 5

-


comp2 | 20 | 10 | | 10

-


Please let me know how can i achieve this...

Need it very urgently..

Regards,

Dhareppa

Hi all,

I have a requirement of creating a dynamic field catelog based on input values in selection screen.

Example:

1) When I enter date range, say 20/03/2008 to 25/03/2008 I should have 6 columns in the output for each date with column heading as date itself.

2) For entering values for these date columns, i need to create an dynamic internal table.(values in the column will be some numbers like 10 on 20/03/2008, 15 on 21/03/2008 etc)

A rough output format would look like this:

-


Component | 20/03/2008 | 21/03/2008 | ..... |25/03/2008

-


comp1 | 10 | 15 | | 5

-


comp2 | 20 | 10 | | 10

-


Please let me know how can i achieve this...

Need it very urgently..

Regards,

Dhareppa

2 REPLIES 2
Read only

Former Member
0 Likes
577

hi,

i have created dynamic ALV...

but my dynamic field is material discription....

i have material Document in my selection screen and i am getting quantity of all the material in that document...

here is the code...


*&---------------------------------------------------------------------*
*& Report  Z_DYN_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z_dyn_alv.


TYPE-POOLS : slis.

TABLES : mseg,
         mkpf.

TYPES : BEGIN OF ty_info,
          mblnr LIKE mseg-mblnr,
          budat LIKE mkpf-budat,
          matnr LIKE mseg-matnr,
          menge LIKE mseg-menge,
        END OF ty_info.

DATA : itm_info TYPE STANDARD TABLE OF ty_info,
       itd_info TYPE STANDARD TABLE OF ty_info,
       its_info TYPE STANDARD TABLE OF ty_info.

DATA : wam_info TYPE ty_info,
       wad_info TYPE ty_info,
       was_info TYPE ty_info.

DATA : t_sfcat TYPE slis_t_fieldcat_alv,
       t_cfcat TYPE lvc_t_fcat.

DATA : wa_sfcat TYPE slis_fieldcat_alv,
       wa_cfcat TYPE lvc_s_fcat.

DATA : t_eve TYPE slis_t_event,
       wa_eve TYPE slis_alv_event,
       listhead TYPE slis_t_listheader,
       st_line TYPE slis_listheader.

FIELD-SYMBOLS : <it_dyn> TYPE STANDARD TABLE,
                <wa_dyn>.

DATA : g_tdref TYPE REF TO data,
       g_wdref TYPE REF TO data.


SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : doc FOR mseg-mblnr.
SELECTION-SCREEN : END OF BLOCK blk1.


START-OF-SELECTION.

  PERFORM get_data.
  PERFORM dyn_tab.
  PERFORM build_rep.

END-OF-SELECTION.

  PERFORM dis_data.

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_data.

  SELECT a~mblnr b~budat a~matnr a~menge INTO CORRESPONDING FIELDS OF TABLE itm_info
    FROM mseg AS a INNER JOIN mkpf AS b ON a~mblnr = b~mblnr
    WHERE a~mblnr IN doc.
ENDFORM.                    "get_data

*&---------------------------------------------------------------------*
*&      Form  dyn_tab
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM dyn_tab.

  PERFORM get_fcat.

  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = t_cfcat
    IMPORTING
      ep_table        = g_tdref.

  ASSIGN g_tdref->* TO <it_dyn>.
  CREATE DATA g_wdref LIKE LINE OF <it_dyn>.
  ASSIGN g_wdref->* TO <wa_dyn>.

ENDFORM.                    "dyn_tab

*&---------------------------------------------------------------------*
*&      Form  build_rep
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM build_rep.

  DATA : l_index TYPE i.

  FIELD-SYMBOLS : <fs>.

  LOOP AT itm_info INTO wam_info.

    ASSIGN COMPONENT 1 OF STRUCTURE <wa_dyn> TO <fs>.
    <fs> = wam_info-mblnr.

    ASSIGN COMPONENT 2 OF STRUCTURE <wa_dyn> TO <fs>.
    <fs> = wam_info-budat.

    LOOP AT itd_info INTO wad_info.

      l_index = sy-tabix + 2.
      READ TABLE itm_info INTO wam_info WITH KEY mblnr = wam_info-mblnr
                                                 matnr = wad_info-matnr.

      IF sy-subrc = 0.

        ASSIGN COMPONENT l_index OF STRUCTURE <wa_dyn> TO <fs>.
        <fs> = wam_info-menge.

      ENDIF.

    ENDLOOP.

    APPEND <wa_dyn> TO <it_dyn>.
    clear <wa_dyn>.
    DELETE itm_info WHERE mblnr = wam_info-mblnr.
  ENDLOOP.
ENDFORM.                    "build_rep

*&---------------------------------------------------------------------*
*&      Form  dis_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM dis_data.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
   I_CALLBACK_PROGRAM                = 'Z_DYN_ALV'
   IT_FIELDCAT                       = t_sfcat
   I_SAVE                            = 'X'
  TABLES
    t_outtab                          = <it_dyn> .
ENDFORM.                    "dis_data
*&---------------------------------------------------------------------*
*&      Form  get_fcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_fcat .

  CLEAR : t_sfcat,t_cfcat,wa_sfcat,wa_cfcat.
  REFRESH : t_sfcat,t_cfcat.


  wa_cfcat-fieldname = 'MATERIAL_DOC'.
  wa_cfcat-dd_outlen = 10.
  APPEND wa_cfcat TO t_cfcat.

  wa_sfcat-fieldname = 'MATERIAL_DOC'.
  wa_sfcat-ref_fieldname = 'MBLNR'.
  wa_sfcat-tabname = 'ITM_INFO'.
  wa_sfcat-seltext_m = 'Material Doc'.
  APPEND wa_sfcat TO t_sfcat.

  CLEAR: wa_cfcat, wa_sfcat.

  wa_cfcat-fieldname = 'MATERIAL_DATE'.
  wa_cfcat-dd_outlen = 10.
  APPEND wa_cfcat TO t_cfcat.

  wa_sfcat-fieldname = 'MATERIAL_DATE'.
  wa_sfcat-ref_fieldname = 'BUDAT'.
  wa_sfcat-tabname = 'ITM_INFO'.
  wa_sfcat-seltext_m = 'Material Date'.
  APPEND wa_sfcat TO t_sfcat.

  CLEAR: wa_cfcat, wa_sfcat.


  DATA : l_text(20),
         l_field(18).


  itd_info[] = itm_info[].

  SORT itd_info BY matnr.
  DELETE ADJACENT DUPLICATES FROM itd_info COMPARING matnr.

  LOOP AT itd_info INTO  wad_info.
    SELECT SINGLE maktx FROM makt INTO l_text WHERE matnr = wad_info-matnr.

    MOVE wad_info-matnr TO l_field.

    wa_cfcat-fieldname = l_field.
    APPEND wa_cfcat TO t_cfcat.

    wa_sfcat-fieldname = l_field.
    wa_sfcat-seltext_l = l_text.
    APPEND wa_sfcat TO t_sfcat.

    CLEAR: wa_cfcat, wa_sfcat.

  ENDLOOP.

ENDFORM.                    " get_fcat

reward if usefull....

Read only

Former Member
0 Likes
577

Hi Dhareppa,

Refer the code below. Its almost on the same line as your requirments.

REPORT zglo2fr_master_planing_sedul NO STANDARD PAGE HEADING.

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

  • P R O G R A M H E A D E R *

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

  • ArthroCare Corporation *

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

  • Program : ZGLO2FR_MASTER_PLANING_SEDUL *

  • Author : Munvar Basha *

  • Creation Date : 11Mar08 *

  • Release : SAP ECC 6.0 *

  • Request : D01K904032 *

  • Description : Master Schedule Planning *

  • *

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

  • Change log (Revisions) *

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

  • Author Date Request Description *

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

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

  • P R O G R A M *

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

----


  • DATA DECLARATION *

----


**--Structure to hold matrial & plant combination records.

TYPES : BEGIN OF ty_marc,

matnr TYPE matnr,

werks TYPE werks_d,

dispo TYPE dispo,

beskz TYPE beskz,

mtart TYPE mtart,

END OF ty_marc.

**--structure to hold MRP LIST Data.

TYPES : BEGIN OF ty_mrp_list,

matnr TYPE matnr,

werks TYPE werks_d,

maktx TYPE maktx,

meins TYPE meins,

mtart TYPE mtart,

week TYPE kweek,

mng01 TYPE mng01,

delkz TYPE delkz,

END OF ty_mrp_list.

**--structure to hold no of weeks.

TYPES: BEGIN OF ty_week,

week TYPE kweek,

END OF ty_week.

**--structure to hold output data.

TYPES : BEGIN OF ty_final,

matnr TYPE matnr,

werks TYPE werks_d,

maktx TYPE maktx,

meins TYPE meins,

mtart TYPE mtart,

week TYPE kweek,

mng01 TYPE mng01,

END OF ty_final.

TYPES : BEGIN OF ty_range,

sign TYPE sign,

option TYPE option,

low TYPE sy-datum,

high TYPE sy-datum,

END OF ty_range.

----


  • Definitions of Table types. *

----


TYPES : ty_marctab TYPE STANDARD TABLE OF ty_marc.

----


  • Definitions of Ranges *

----


*RANGES ran_delkz FOR mdez-delkz.

DATA : i_ran_delkz TYPE RANGE OF mdez-delkz,

wa_ran_delkz LIKE LINE OF i_ran_delkz,

wa_date type ty_range.

----


  • Definitions of internal tables. *

----


data : i_marc type standard table of ty_marc,

i_mrp_list type standard table of ty_mrp_list,

i_week type standard table of ty_week,

i_final type standard table of ty_final,

i_mdps type standard table of mdps,

i_mdez type standard table of mdez,

i_mdsu type standard table of mdsu.

----


  • Definitions of work areas for internal tables *

----


DATA : wa_marc TYPE ty_marc,

wa_mrp_list TYPE ty_mrp_list,

wa_week TYPE ty_week,

wa_final TYPE ty_final,

wa_mt61d TYPE mt61d,

wa_mdez TYPE mdez.

----


  • Definitiions of General variables *

----


DATA : v_matnr TYPE mara-matnr, " Material Number

v_mtart TYPE mara-mtart, " Material Type

v_beskz TYPE marc-beskz, " Procurement Type

v_werks TYPE marc-werks, " Plant

v_dispo TYPE marc-dispo. " MRP Controller (Materials Planner)

DATA : v_mng01 TYPE mng01. "Requirement Quantity

DATA : v_year TYPE char4,

v_week TYPE char2,

v_ok_code TYPE sy-ucomm.

----


  • Definitiions of Constants *

----


CONSTANTS : k_slash TYPE c VALUE '/',

k_6 TYPE char8 VALUE '6',

k_x TYPE c VALUE 'X'.

----


  • Definitiions of Field Catlog *

----


DATA : wa_fieldcat TYPE lvc_s_fcat,

i_fieldcat TYPE lvc_t_fcat,

v_container TYPE scrfname VALUE 'CONTAINER_OUTPUT',

v_custom_container TYPE REF TO cl_gui_custom_container,

v_grid TYPE REF TO cl_gui_alv_grid,

i_gp_table TYPE REF TO data,

wa_gp_line TYPE REF TO data.

FIELD-SYMBOLS: <gt_table> TYPE STANDARD TABLE,

<gwa_table> TYPE ANY,

<l_field> TYPE ANY,

<l_matnr> TYPE ANY,

<l_werks> TYPE ANY,

<l_maktx> TYPE ANY,

<l_meins> TYPE ANY,

<l_mtart> TYPE ANY.

*----


    • DECLERATIONS FOR SELECTION SCREEN *

*----


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

SELECT-OPTIONS : s_matnr FOR v_matnr,

s_mtart FOR v_mtart NO INTERVALS,

s_beskz FOR v_beskz NO INTERVALS NO-EXTENSION,

s_werks FOR v_werks NO INTERVALS NO-EXTENSION

OBLIGATORY,

s_dispo FOR v_dispo,

s_date FOR sy-datum OBLIGATORY.

PARAMETERS : p_dattp TYPE dattp OBLIGATORY DEFAULT '1'.

SELECTION-SCREEN END OF BLOCK b1.

----


  • INITIALIZATION EVENT *

----


INITIALIZATION.

CALL FUNCTION '/BEV4/PLPS__ADD_MONTH_TO_DATE'

EXPORTING

months = k_6

olddate = sy-datum

IMPORTING

newdate = wa_date-high.

wa_date-low = sy-datum.

wa_date-option = 'EQ'.

wa_date-sign = 'I'.

APPEND wa_date to s_date.

----


  • SELECTION SCREEN EVENT *

----


**--Validation for Material

AT SELECTION-SCREEN ON s_matnr.

PERFORM validate_material.

**--Validation for Plant

AT SELECTION-SCREEN ON s_werks.

PERFORM validate_plant.

*----


    • AT SELECTION-SCREEN ENENT *

*----


AT SELECTION-SCREEN.

IF s_matnr IS INITIAL AND s_dispo IS INITIAL.

MESSAGE text-002 TYPE 'E'.

ENDIF.

IF s_date-low LT sy-datum.

MESSAGE text-003 TYPE 'E'.

ENDIF.

*----


    • START-OF-SELECTION EVENT *

*----


START-OF-SELECTION.

**--refreshing the internal tables

REFRESH : i_marc,

i_mrp_list,

i_week,

i_final,

i_mdps,

i_mdez,

i_mdsu.

**--clearing the work areas of internal tables.

CLEAR : wa_marc,

wa_mrp_list,

wa_week,

wa_final,

wa_mt61d,

wa_mdez.

  • To get all the matrial(s) and plant combination records

SELECT a~matnr

a~werks

a~dispo

a~beskz

b~mtart

INTO TABLE i_marc

FROM marc AS a INNER JOIN

mara AS b

ON a~matnr = b~matnr

WHERE a~werks IN s_werks AND

a~matnr IN s_matnr AND

a~dispo IN s_dispo AND

a~beskz IN s_beskz AND

b~mtart IN s_mtart.

IF sy-subrc <> 0.

MESSAGE text-005 TYPE 'S'.

LEAVE LIST-PROCESSING.

ENDIF.

SORT i_marc BY matnr werks.

  • Ranges to Filter the MRP list only for the following MRP Elements.

  • MRP Elements are : BA, BE, FE, LE and PA

wa_ran_delkz-sign = 'I'.

wa_ran_delkz-option = 'EQ'.

wa_ran_delkz-low = 'BA'.

APPEND wa_ran_delkz TO i_ran_delkz.

CLEAR wa_ran_delkz-low.

wa_ran_delkz-low = 'BE'.

APPEND wa_ran_delkz TO i_ran_delkz.

CLEAR wa_ran_delkz-low.

wa_ran_delkz-low = 'FE'.

APPEND wa_ran_delkz TO i_ran_delkz.

CLEAR wa_ran_delkz-low.

wa_ran_delkz-low = 'LE'.

APPEND wa_ran_delkz TO i_ran_delkz.

CLEAR wa_ran_delkz-low.

wa_ran_delkz-low = 'PA'.

APPEND wa_ran_delkz TO i_ran_delkz.

CLEAR wa_ran_delkz-low.

LOOP AT i_marc INTO wa_marc.

CALL FUNCTION 'MD_MRP_LIST_API'

EXPORTING

matnr = wa_marc-matnr

werks = wa_marc-werks

sinfg = k_x

inper = p_dattp

IMPORTING

e_mt61d = wa_mt61d

TABLES

mdpsx = i_mdps

mdezx = i_mdez

mdsux = i_mdsu

EXCEPTIONS

mrp_list_not_found = 1

material_plant_not_found = 2

error = 3

OTHERS = 4.

IF sy-subrc = 0.

LOOP AT i_mdez INTO wa_mdez WHERE dat00 IN s_date AND

delkz IN i_ran_delkz.

CALL FUNCTION 'DATE_GET_WEEK'

EXPORTING

date = wa_mdez-dat00

IMPORTING

week = wa_mrp_list-week

EXCEPTIONS

date_invalid = 1

OTHERS = 2.

IF sy-subrc = 0.

wa_mrp_list-matnr = wa_mt61d-matnr.

wa_mrp_list-werks = wa_mt61d-werks.

wa_mrp_list-maktx = wa_mt61d-maktx.

wa_mrp_list-meins = wa_mt61d-meins.

wa_mrp_list-mtart = wa_mt61d-mtart.

wa_mrp_list-delkz = wa_mdez-delkz.

wa_mrp_list-mng01 = wa_mdez-mng01.

APPEND wa_mrp_list TO i_mrp_list.

CLEAR : wa_mrp_list,

wa_mdez.

ENDIF.

ENDLOOP.

ENDIF.

CLEAR: wa_marc.

ENDLOOP.

IF i_mrp_list IS INITIAL.

MESSAGE text-006 TYPE 'S'.

LEAVE LIST-PROCESSING.

ENDIF.

CLEAR : v_mng01.

LOOP AT i_mrp_list INTO wa_mrp_list.

v_mng01 = v_mng01 + wa_mrp_list-mng01.

AT END OF week.

wa_final-matnr = wa_mrp_list-matnr.

wa_final-werks = wa_mrp_list-werks.

wa_final-maktx = wa_mrp_list-maktx.

wa_final-meins = wa_mrp_list-meins.

wa_final-mtart = wa_mrp_list-mtart.

wa_final-week = wa_mrp_list-week.

wa_final-mng01 = v_mng01.

wa_week-week = wa_mrp_list-week.

APPEND : wa_final TO i_final,

wa_week TO i_week.

CLEAR : v_mng01,

wa_final,

wa_week.

ENDAT.

CLEAR : wa_mrp_list.

ENDLOOP.

**-- Populate the Field catalog

PERFORM populate_fieldcat.

**--Create table dynamically

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = i_fieldcat

IMPORTING

ep_table = i_gp_table.

ASSIGN i_gp_table->* TO <gt_table>.

**--fill table with final output data

PERFORM fill_table.

CALL SCREEN 100.

----


  • SUB ROUTINES *

----


&----


*& Form validate_material *

&----


  • Validating Material Number(s) *

----


FORM validate_material .

TYPES : BEGIN OF l_ty_matnr,

matnr TYPE matnr,

END OF l_ty_matnr.

DATA : l_i_matnr TYPE STANDARD TABLE OF l_ty_matnr.

SELECT matnr

FROM mara

INTO TABLE l_i_matnr

WHERE matnr IN s_matnr.

IF sy-subrc <> 0.

MESSAGE text-004 TYPE 'E'.

ENDIF.

ENDFORM. " validate_material

&----


*& Form validate_plant *

&----


  • Validating Plant Number *

----


FORM validate_plant .

DATA : l_v_werks TYPE werks_d.

SELECT SINGLE werks

FROM t001w

INTO l_v_werks

WHERE werks = s_werks-low.

IF sy-subrc <> 0.

MESSAGE e019(zartc) WITH s_werks-low.

ENDIF.

ENDFORM. " validate_plant

&----


*& Form populate_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM populate_fieldcat .

DATA : l_v_colname TYPE char7.

SORT i_week BY week.

DELETE ADJACENT DUPLICATES FROM i_week COMPARING week.

LOOP AT i_week INTO wa_week.

AT FIRST.

wa_fieldcat-row_pos = 0.

wa_fieldcat-col_pos = 1.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-scrtext_l = text-007.

wa_fieldcat-scrtext_m = text-007.

wa_fieldcat-scrtext_s = text-007.

wa_fieldcat-fix_column = 'X'.

wa_fieldcat-outputlen = 18.

wa_fieldcat-tooltip = text-007.

APPEND wa_fieldcat TO i_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-row_pos = 0.

wa_fieldcat-col_pos = 2.

wa_fieldcat-fieldname = 'WERKS'.

wa_fieldcat-scrtext_l = text-008.

wa_fieldcat-scrtext_m = text-008.

wa_fieldcat-scrtext_s = text-008.

wa_fieldcat-fix_column = 'X'.

wa_fieldcat-outputlen = 4.

wa_fieldcat-tooltip = text-008.

APPEND wa_fieldcat TO i_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-row_pos = 0.

wa_fieldcat-col_pos = 3.

wa_fieldcat-fieldname = 'MAKTX'.

wa_fieldcat-scrtext_l = text-009.

wa_fieldcat-scrtext_m = text-010.

wa_fieldcat-scrtext_s = text-011.

wa_fieldcat-tooltip = text-009.

wa_fieldcat-outputlen = 40.

APPEND wa_fieldcat TO i_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-row_pos = 0.

wa_fieldcat-col_pos = 4.

wa_fieldcat-fieldname = 'MEINS'.

wa_fieldcat-scrtext_l = text-012.

wa_fieldcat-scrtext_m = text-013.

wa_fieldcat-scrtext_s = text-014.

wa_fieldcat-outputlen = 4.

wa_fieldcat-tooltip = text-012.

APPEND wa_fieldcat TO i_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-row_pos = 0.

wa_fieldcat-col_pos = 5.

wa_fieldcat-fieldname = 'MTART'.

wa_fieldcat-scrtext_l = text-015.

wa_fieldcat-scrtext_m = text-015.

wa_fieldcat-scrtext_s = text-016.

wa_fieldcat-tooltip = text-015.

APPEND wa_fieldcat TO i_fieldcat.

CLEAR wa_fieldcat.

ENDAT.

v_year = wa_week-week+0(4).

v_week = wa_week-week+4(2).

CONCATENATE v_week k_slash v_year INTO l_v_colname.

wa_fieldcat-row_pos = 0.

wa_fieldcat-col_pos = 6 + sy-index.

wa_fieldcat-fieldname = wa_week-week.

wa_fieldcat-quantity = 'X'.

wa_fieldcat-outputlen = 18.

wa_fieldcat-scrtext_l = l_v_colname.

wa_fieldcat-tooltip = l_v_colname.

APPEND wa_fieldcat TO i_fieldcat.

CLEAR : wa_fieldcat,

l_v_colname,

wa_week.

ENDLOOP.

ENDFORM. " populate_fieldcat

&----


*& Form fill_table

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_table .

**--Create Work Area Dynamically

CREATE DATA wa_gp_line LIKE LINE OF <gt_table>.

ASSIGN wa_gp_line->* TO <gwa_table>.

DATA : l_v_col TYPE char25,

l_v_val TYPE char25.

LOOP AT i_final INTO wa_final.

l_v_col = wa_final-week.

ASSIGN COMPONENT l_v_col OF STRUCTURE <gwa_table>

TO <l_field>.

IF <l_field> IS ASSIGNED.

l_v_val = wa_final-mng01.

CONDENSE l_v_val.

<l_field> = l_v_val.

clear : l_v_val,

l_v_col.

ENDIF.

AT END OF matnr.

READ TABLE i_final INTO wa_final WITH KEY matnr = wa_final-matnr

BINARY SEARCH.

IF sy-subrc = 0.

ASSIGN COMPONENT 'MATNR' OF STRUCTURE <gwa_table>

TO <l_matnr>.

IF <l_matnr> IS ASSIGNED.

<l_matnr> = wa_final-matnr.

ENDIF.

ASSIGN COMPONENT 'WERKS' OF STRUCTURE <gwa_table>

TO <l_werks>.

IF <l_werks> IS ASSIGNED.

<l_werks> = wa_final-werks.

ENDIF.

ASSIGN COMPONENT 'MAKTX' OF STRUCTURE <gwa_table>

TO <l_maktx>.

IF <l_maktx> IS ASSIGNED.

<l_maktx> = wa_final-maktx.

ENDIF.

ASSIGN COMPONENT 'MEINS' OF STRUCTURE <gwa_table>

TO <l_meins>.

IF <l_meins> IS ASSIGNED.

<l_meins> = wa_final-meins.

ENDIF.

ASSIGN COMPONENT 'MTART' OF STRUCTURE <gwa_table>

TO <l_mtart>.

IF <l_mtart> IS ASSIGNED.

<l_mtart> = wa_final-mtart.

ENDIF.

APPEND <gwa_table> TO <gt_table>.

CLEAR <gwa_table>.

ENDIF.

ENDAT.

ENDLOOP.

ENDFORM. " fill_table

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'ZMUNNA'.

SET TITLEBAR 'MRP'.

IF v_custom_container IS INITIAL.

CREATE OBJECT v_custom_container

EXPORTING

container_name = v_container.

CREATE OBJECT v_grid

EXPORTING

i_parent = v_custom_container.

CALL METHOD v_grid->set_table_for_first_display

CHANGING

it_outtab = <gt_table>

it_fieldcatalog = i_fieldcat.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

v_ok_code = sy-ucomm.

CLEAR sy-ucomm.

CASE v_ok_code.

WHEN 'EXIT'.

PERFORM exit_program.

SET SCREEN 000.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form exit_program

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM exit_program .

CALL METHOD v_custom_container->free.

CALL METHOD cl_gui_cfw=>flush.

ENDFORM. " exit_program

Reward points if that helps.

Manish