2008 Aug 14 7:14 AM
Hi Friendz.
I need your help.
I have written this code. But I am getting dump. Please help me.
&----
*& Report ZTEST_DYNAMIC_LIST_DISPLAY
*&
&----
*&
*&
&----
REPORT ZTEST_DYNAMIC_LIST_DISPLAY.
&----
*& Report YPUSH_PP_DEMAND_PLANS
*&
&----
*&
*&
&----
type-pools: SLIS.
TYPES : BEGIN OF t_pbim,
matnr TYPE matnr,
versb1 TYPE versb,
bdzei TYPE bdzei,
werks TYPE werks_d,
END OF t_pbim,
BEGIN OF t_pbed,
pdatu TYPE pdatu,
meins TYPE meins,
plnmg TYPE plnmg,
bdzei TYPE bdzei,
END OF t_pbed,
BEGIN OF t_marc,
matnr TYPE matnr,
dispo TYPE dispo,
werks TYPE werks_d,
END OF t_marc.
TYPES : BEGIN OF t_final,
matnr TYPE matnr,
versb1 TYPE versb,
meins TYPE meins,
pdatu TYPE pdatu,
plnmg TYPE plnmg,
total TYPE plnmg,
END OF t_final.
DATA : lt_pbim TYPE TABLE OF t_pbim,
lt_pbed TYPE TABLE OF t_pbed,
lt_marc TYPE TABLE OF t_marc,
lt_final TYPE TABLE OF t_final.
DATA : wa_pbim TYPE t_pbim,
wa_pbed TYPE t_pbed,
wa_marc TYPE t_marc,
wa_final TYPE t_final.
*Variable declaration.
DATA : v_matnr type pbim-matnr,
v_dispo type marc-dispo,
v_date(6) TYPE C,
v_date2(8) TYPE C,
v_date3(8) TYPE C,
v_date1 LIKE P0001-BEGDA,
v_months LIKE T5A4A-DLYMO,
v_days LIKE T5A4A-DLYDY,
v_years LIKE T5A4A-DLYYR,
V_CALC_DATE LIKE P0001-BEGDA,
v_no_months TYPE P,
v_date_m(6) TYPE c,
v_ind(2) TYPE c.
*Data declaration for dynamic table alv display
DATA: gt_fieldcat TYPE SLIS_T_FIELDCAT_ALV,
ls_fieldcat TYPE slis_fieldcat_alv,
st_layout TYPE SLIS_LAYOUT_ALV,
MESSAGE_HANDLER TYPE REF TO IF_HRPA_MESSAGE_HANDLER,
lds_fieldcat TYPE lvc_s_fcat,
gdt_fieldcat TYPE lvc_t_fcat.
DATA: it_fieldcatalog TYPE lvc_t_fcat,
wa_fieldcat TYPE lvc_s_fcat.
DATA: i_dyntab TYPE REF TO data. " To create dyn.Itab
DATA: w_dref TYPE REF TO data,
w_data TYPE REF TO data,
w_grid TYPE REF TO cl_gui_alv_grid.
DATA: grid TYPE REF TO cl_gui_alv_grid,
cont TYPE REF TO cl_gui_custom_container.
FIELD-SYMBOLS: <lt_final> TYPE STANDARD TABLE,
<fs_wa> TYPE ANY,<fs> TYPE ANY.
*SELECTION SCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-120.
PARAMETERS: p_werks TYPE t001w-werks OBLIGATORY.
SELECT-OPTIONS : s_matnr FOR v_matnr.
SELECT-OPTIONS : s_dispo FOR v_dispo.
SELECT-OPTIONS : s_date FOR v_date.
PARAMETERS: p_ver1 TYPE pbim-versb,
p_ver2 TYPE pbim-versb.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN.
IF s_matnr = 'X' AND s_matnr IS INITIAL.
MESSAGE E000(yt) WITH 'Please Enter the material.'.
ENDIF.
CONCATENATE s_date-low '01' INTO v_date3.
CONCATENATE s_date-high '31' INTO v_date2.
MOVE v_date3 TO v_date1.
v_years = '0000'.
v_days = '00'.
v_months = '11'.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = v_date1
DAYS = v_days
MONTHS = v_months
SIGNUM = '+'
YEARS = v_years
IMPORTING
CALC_DATE = V_CALC_DATE.
CONCATENATE V_CALC_DATE0(4) V_CALC_DATE4(2) INTO v_date_m.
MOVE v_date_m TO s_date-high.
MODIFY s_date INDEX sy-tabix.
START-OF-SELECTION.
IF s_matnr IS NOT INITIAL.
IF s_date-high <> v_date_m.
CALL FUNCTION 'HR_ECM_GET_NUMBER_OF_MONTHS'
EXPORTING
BEGDA = v_date1
ENDDA = v_date2
DAYS_MIN = 0
MESSAGE_HANDLER = MESSAGE_HANDLER
IMPORTING
MONTHS = v_no_months
IS_OK = 'X'
.
ENDIF.
IF s_dispo IS NOT INITIAL.
SELECT matnr
FROM marc
INTO TABLE lt_marc
WHERE matnr IN s_matnr
AND werks = p_werks
AND dispo IN s_dispo
AND lvorm = ''.
IF SY-SUBRC <> 0.
MESSAGE E000(YT) with 'No data.'.
ENDIF.
IF NOT lt_marc IS INITIAL.
SELECT matnr
versb
bdzei
FROM pbim
INTO TABLE lt_pbim
FOR ALL ENTRIES IN lt_marc
where matnr = lt_marc-matnr
AND versb = p_ver1
OR versb = p_ver2
AND loevr = ''.
IF SY-SUBRC <> 0.
MESSAGE E000(YT) with 'No data.'.
ENDIF.
ENDIF.
ENDIF.
SELECT matnr
versb
bdzei
FROM pbim
INTO TABLE lt_pbim
WHERE matnr IN s_matnr
AND werks = p_werks
AND versb = p_ver1
OR versb = p_ver2
AND loevr = ''.
IF SY-SUBRC <> 0.
MESSAGE E000(YT) with 'No data.'.
ENDIF.
IF NOT lt_pbim IS INITIAL.
SELECT pdatu
meins
plnmg
bdzei
FROM pbed
INTO TABLE lt_pbed
FOR ALL ENTRIES IN lt_pbim
WHERE bdzei = lt_pbim-bdzei
AND pdatu BETWEEN v_date1 AND V_CALC_DATE
AND loevr = ''.
IF SY-SUBRC <> 0.
MESSAGE E000(YT) with 'No data.'.
ENDIF.
ENDIF.
ENDIF.
END-OF-SELECTION.
LOOP at lt_pbim INTO wa_pbim.
wa_final-matnr = wa_pbim-matnr.
wa_final-versb1 = wa_pbim-versb1.
READ TABLE lt_pbed INTO wa_pbed WITH KEY bdzei = wa_pbim-bdzei.
if sy-subrc = 0.
wa_final-pdatu = wa_pbed-pdatu.
wa_final-meins = wa_pbed-meins.
wa_final-plnmg = wa_pbed-plnmg.
endif.
READ TABLE lt_marc INTO wa_marc WITH KEY werks = wa_pbim-werks.
APPEND wa_final to lt_final.
CLEAR : wa_final , wa_pbim, wa_pbed, wa_marc.
ENDLOOP.
*Field cat population.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-coltext = 'Material'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'VERSB1'.
wa_fieldcat-outputlen = 2.
wa_fieldcat-coltext = 'VER'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'UOM'.
APPEND wa_fieldcat TO it_fieldcatalog.
v_ind = 1.
DO v_months TIMES.
CONCATENATE 'PDATU' v_ind INTO wa_fieldcat-fieldname.
wa_fieldcat-outputlen = 6.
wa_fieldcat-coltext = 'DATE'.
APPEND wa_fieldcat TO it_fieldcatalog.
v_ind = v_ind + 1.
ENDDO.
wa_fieldcat-fieldname = 'PLNMG'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-coltext = 'QUAN'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'TOTAL'.
wa_fieldcat-outputlen = 5.
wa_fieldcat-coltext = 'TOTAL'.
APPEND wa_fieldcat TO it_fieldcatalog.
*-Dynamic Table creation
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcatalog
IMPORTING
ep_table = i_dyntab.
ASSIGN i_dyntab->* TO <lt_final>.
CREATE DATA w_data LIKE LINE OF <lt_final>.
ASSIGN w_data->* TO <fs_wa>.
LOOP at lt_final into wa_final.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-matnr.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-versb1.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-meins.
UNASSIGN <fs>.
ASSIGN COMPONENT v_ind OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-pdatu.
UNASSIGN <fs>.
ASSIGN COMPONENT 5 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-plnmg.
UNASSIGN <fs>.
ASSIGN COMPONENT 6 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-total.
UNASSIGN <fs>.
APPEND <fs_wa> TO <lt_final>.
CLEAR <fs_wa>.
ENDLOOP.
CALL SCREEN 900.
&----
*& Module STATUS_0900 OUTPUT
&----
text
----
MODULE STATUS_0900 OUTPUT.
SET PF-STATUS 'PF'.
SET TITLEBAR 'TITLE'.
DATA: layout TYPE lvc_s_layo.
CREATE OBJECT cont
EXPORTING
container_name = 'CONT'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT grid
EXPORTING
i_parent = cont
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
layout-INFO_FNAME = 'COLOR'.
grid->set_table_for_first_display(
EXPORTING
is_layout = layout
CHANGING
it_outtab = <lt_final>
it_fieldcatalog = it_fieldcatalog
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
).
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMODULE. " STATUS_0900 OUTPUT
Error analysis
You attempted to access an unassigned field symbol
(data segment 12).
This error may occur if
- You address a typed field symbol before it has been set wi
ASSIGN
- You address a field symbol that pointed to the line of an
internal table that was deleted
- You address a field symbol that was previously reset using
UNASSIGN or that pointed to a local field that no
longer exists
- You address a global function interface, although the
respective function module is not active - that is, is
not in the list of active calls. The list of active calls
can be taken from this short dump.
Every thing is controlled by this..
you already reached final stage.
LOOP AT lt_final INTO wa_final.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-matnr.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-versb1.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-meins.
"This logic will change a bit you have introduce a do loop here..
"like you did for fieldcata log population.
UNASSIGN <fs>.
ASSIGN COMPONENT v_ind OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-pdatu.
UNASSIGN <fs>.
ASSIGN COMPONENT 5 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-plnmg.
UNASSIGN <fs>.
ASSIGN COMPONENT 6 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-total.
UNASSIGN <fs>.
APPEND <fs_wa> TO <lt_final>.
CLEAR <fs_wa>.
ENDLOOP.to get the 12 dates value in horizontal row , introduce this in the above loop;
data: inc type i,
fieldname(17),
inc2(2) type c.
inc = 1
do v_ind times.
inc2 = inc.
concatenate 'WA_FINAL-PDATU' inc into fieldname.
assing (fieldname) to <fs>.
inc = inc + 1.
enddo.may be some errors in my code, just correct it and avoid dump in fieldsymbol assignment.
i thought in your nternal table fields are like this...
WA_FINAL-PDATU1, WA_FINAL-PDATU2, WA_FINAL-PDATU3.. etc.
concatenate 'WA_FINAL-PDATU' inc into fieldname.
2008 Aug 14 8:04 AM
I modified your code a bit, to get the data output.since i am not getting any output. finally i got the output.
the problem lies in the code..
data: lv_ind(2) type c.
v_ind = 1.
DO v_months TIMES.
lv_ind = v_ind.
CONCATENATE 'PDATU' lv_ind INTO wa_fieldcat-fieldname.
wa_fieldcat-outputlen = 6.
wa_fieldcat-coltext = 'DATE'.
APPEND wa_fieldcat TO it_fieldcatalog.
v_ind = v_ind + 1.
ENDDO.v_ind should be type i, otherwise you get the dump.
so i changed it to type i.
ASSIGN COMPONENT v_ind OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-pdatu.
UNASSIGN <fs>.REPORT ztest_alv_.
TYPE-POOLS: slis.
tables: t001w.
TYPES : BEGIN OF t_pbim,
matnr TYPE matnr,
versb1 TYPE versb,
bdzei TYPE bdzei,
werks TYPE werks_d,
END OF t_pbim,
BEGIN OF t_pbed,
pdatu TYPE pdatu,
meins TYPE meins,
plnmg TYPE plnmg,
bdzei TYPE bdzei,
END OF t_pbed,
BEGIN OF t_marc,
matnr TYPE matnr,
dispo TYPE dispo,
werks TYPE werks_d,
END OF t_marc.
TYPES : BEGIN OF t_final,
matnr TYPE matnr,
versb1 TYPE versb,
meins TYPE meins,
pdatu TYPE pdatu,
plnmg TYPE plnmg,
total TYPE plnmg,
END OF t_final.
DATA : lt_pbim TYPE TABLE OF t_pbim,
lt_pbed TYPE TABLE OF t_pbed,
lt_marc TYPE TABLE OF t_marc,
lt_final TYPE TABLE OF t_final.
DATA : wa_pbim TYPE t_pbim,
wa_pbed TYPE t_pbed,
wa_marc TYPE t_marc,
wa_final TYPE t_final.
*Variable declaration.
DATA : v_matnr TYPE pbim-matnr,
v_dispo TYPE marc-dispo,
v_date(6) TYPE c,
v_date2 TYPE sy-datum,
v_date3(8) TYPE c,
v_date1 LIKE p0001-begda,
v_months LIKE t5a4a-dlymo,
v_days LIKE t5a4a-dlydy,
v_years LIKE t5a4a-dlyyr,
v_calc_date LIKE p0001-begda,
v_no_months TYPE p,
v_date_m(6) TYPE c,
v_ind TYPE i.
*Data declaration for dynamic table alv display
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
ls_fieldcat TYPE slis_fieldcat_alv,
st_layout TYPE slis_layout_alv,
message_handler TYPE REF TO if_hrpa_message_handler,
lds_fieldcat TYPE lvc_s_fcat,
gdt_fieldcat TYPE lvc_t_fcat.
DATA: it_fieldcatalog TYPE lvc_t_fcat,
wa_fieldcat TYPE lvc_s_fcat.
DATA: i_dyntab TYPE REF TO data. " To create dyn.Itab
DATA: w_dref TYPE REF TO data,
w_data TYPE REF TO data,
w_grid TYPE REF TO cl_gui_alv_grid.
DATA: grid TYPE REF TO cl_gui_alv_grid,
cont TYPE REF TO cl_gui_custom_container.
FIELD-SYMBOLS: <lt_final> TYPE STANDARD TABLE,
<fs_wa> TYPE ANY,<fs> TYPE ANY.
*SELECTION SCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-120.
select-options: s_werks for t001w-werks OBLIGATORY.
SELECT-OPTIONS : s_matnr FOR v_matnr.
SELECT-OPTIONS : s_dispo FOR v_dispo.
SELECT-OPTIONS : s_date FOR v_date.
PARAMETERS: p_ver1 TYPE pbim-versb,
p_ver2 TYPE pbim-versb.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN.
IF s_matnr = 'X' AND s_matnr IS INITIAL.
MESSAGE e000(yt) WITH 'Please Enter the material.'.
ENDIF.
CONCATENATE s_date-low '01' INTO v_date3.
CONCATENATE s_date-high '31' INTO v_date2.
MOVE v_date3 TO v_date1.
v_years = '0000'.
v_days = '00'.
v_months = '11'.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = v_date1
days = v_days
months = v_months
signum = '+'
years = v_years
IMPORTING
calc_date = v_calc_date.
CONCATENATE v_calc_date+0(4) v_calc_date+4(2) INTO v_date_m.
MOVE v_date_m TO s_date-high.
MODIFY s_date INDEX sy-tabix.
START-OF-SELECTION.
IF s_matnr IS NOT INITIAL.
* IF s_date-high NE v_date_m.
DATA: c_x TYPE boole_d.
CALL FUNCTION 'HR_ECM_GET_NUMBER_OF_MONTHS'
EXPORTING
begda = v_date1
endda = v_date2
days_min = 0
message_handler = message_handler
IMPORTING
months = v_no_months
is_ok = c_x.
* ENDIF.
IF s_dispo IS NOT INITIAL.
SELECT matnr
FROM marc
INTO TABLE lt_marc
WHERE matnr IN s_matnr
AND werks in s_werks
AND dispo IN s_dispo
AND lvorm = ''.
IF sy-subrc NE 0.
MESSAGE e000(yt) WITH 'No data.'.
ENDIF.
IF NOT lt_marc IS INITIAL.
SELECT matnr
versb
bdzei
FROM pbim
INTO TABLE lt_pbim
FOR ALL ENTRIES IN lt_marc
WHERE matnr = lt_marc-matnr
AND versb = p_ver1
OR versb = p_ver2
AND loevr = ''.
IF sy-subrc NE 0.
MESSAGE e000(yt) WITH 'No data.'.
ENDIF.
ENDIF.
ENDIF.
SELECT matnr
versb
bdzei
FROM pbim
INTO TABLE lt_pbim
WHERE matnr IN s_matnr
AND werks in s_werks
AND versb = p_ver1
OR versb = p_ver2
AND loevr = ''.
IF sy-subrc NE 0.
MESSAGE e000(yt) WITH 'No data.'.
ENDIF.
IF NOT lt_pbim IS INITIAL.
SELECT pdatu
meins
plnmg
bdzei
FROM pbed
INTO TABLE lt_pbed
FOR ALL ENTRIES IN lt_pbim
WHERE bdzei = lt_pbim-bdzei
* AND pdatu BETWEEN v_date1 AND v_calc_date
AND loevr = ''.
IF sy-subrc NE 0.
MESSAGE e000(yt) WITH 'No data.'.
ENDIF.
ENDIF.
ENDIF.
END-OF-SELECTION.
LOOP AT lt_pbim INTO wa_pbim.
wa_final-matnr = wa_pbim-matnr.
wa_final-versb1 = wa_pbim-versb1.
READ TABLE lt_pbed INTO wa_pbed WITH KEY bdzei = wa_pbim-bdzei.
IF sy-subrc = 0.
wa_final-pdatu = wa_pbed-pdatu.
wa_final-meins = wa_pbed-meins.
wa_final-plnmg = wa_pbed-plnmg.
ENDIF.
READ TABLE lt_marc INTO wa_marc WITH KEY werks = wa_pbim-werks.
APPEND wa_final TO lt_final.
CLEAR : wa_final , wa_pbim, wa_pbed, wa_marc.
ENDLOOP.
*Field cat population.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-coltext = 'Material'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'VERSB1'.
wa_fieldcat-outputlen = 2.
wa_fieldcat-coltext = 'VER'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'UOM'.
APPEND wa_fieldcat TO it_fieldcatalog.
data: lv_ind(2) type c.
v_ind = 1.
DO v_months TIMES.
lv_ind = v_ind.
CONCATENATE 'PDATU' lv_ind INTO wa_fieldcat-fieldname.
wa_fieldcat-outputlen = 6.
wa_fieldcat-coltext = 'DATE'.
APPEND wa_fieldcat TO it_fieldcatalog.
v_ind = v_ind + 1.
ENDDO.
wa_fieldcat-fieldname = 'PLNMG'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-coltext = 'QUAN'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'TOTAL'.
wa_fieldcat-outputlen = 5.
wa_fieldcat-coltext = 'TOTAL'.
APPEND wa_fieldcat TO it_fieldcatalog.
*-Dynamic Table creation
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcatalog
IMPORTING
ep_table = i_dyntab.
ASSIGN i_dyntab->* TO <lt_final>.
CREATE DATA w_data LIKE LINE OF <lt_final>.
ASSIGN w_data->* TO <fs_wa>.
LOOP AT lt_final INTO wa_final.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-matnr.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-versb1.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-meins.
UNASSIGN <fs>.
ASSIGN COMPONENT v_ind OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-pdatu.
UNASSIGN <fs>.
ASSIGN COMPONENT 5 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-plnmg.
UNASSIGN <fs>.
ASSIGN COMPONENT 6 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-total.
UNASSIGN <fs>.
APPEND <fs_wa> TO <lt_final>.
CLEAR <fs_wa>.
ENDLOOP.
CALL SCREEN 900.
*----------------------------------------------------------------------*
* MODULE STATUS_0900 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE status_0900 OUTPUT.
SET PF-STATUS 'PF'.
SET TITLEBAR 'TITLE'.
DATA: layout TYPE lvc_s_layo.
CREATE OBJECT cont
EXPORTING
container_name = 'CONT'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT grid
EXPORTING
i_parent = cont
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
layout-info_fname = 'COLOR'.
grid->set_table_for_first_display(
EXPORTING
is_layout = layout
CHANGING
it_outtab = <lt_final>
it_fieldcatalog = it_fieldcatalog
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
).
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMODULE. " STATUS_0900 OUTPUT
2008 Aug 14 8:42 AM
Hi Vijay
Thank you so much.
But my problem is not yet solved.
I need to have the dates horizontally and also the field plnmg ie quantity underneath it. still m getting date and plnmg in columns. Please guide me how can i get those two fields horizontally.
Regards
Manisha.
2008 Aug 14 9:59 AM
Every thing is controlled by this..
you already reached final stage.
LOOP AT lt_final INTO wa_final.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-matnr.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-versb1.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-meins.
"This logic will change a bit you have introduce a do loop here..
"like you did for fieldcata log population.
UNASSIGN <fs>.
ASSIGN COMPONENT v_ind OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-pdatu.
UNASSIGN <fs>.
ASSIGN COMPONENT 5 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-plnmg.
UNASSIGN <fs>.
ASSIGN COMPONENT 6 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-total.
UNASSIGN <fs>.
APPEND <fs_wa> TO <lt_final>.
CLEAR <fs_wa>.
ENDLOOP.to get the 12 dates value in horizontal row , introduce this in the above loop;
data: inc type i,
fieldname(17),
inc2(2) type c.
inc = 1
do v_ind times.
inc2 = inc.
concatenate 'WA_FINAL-PDATU' inc into fieldname.
assing (fieldname) to <fs>.
inc = inc + 1.
enddo.may be some errors in my code, just correct it and avoid dump in fieldsymbol assignment.
i thought in your nternal table fields are like this...
WA_FINAL-PDATU1, WA_FINAL-PDATU2, WA_FINAL-PDATU3.. etc.
concatenate 'WA_FINAL-PDATU' inc into fieldname.
2008 Aug 14 10:58 AM
Hi
Still it is not working. I am getting blank fields
I have written this code. Please tell me where m going wrong.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-coltext = 'Material'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'VERSB1'.
wa_fieldcat-outputlen = 2.
wa_fieldcat-coltext = 'VER'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'UOM'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'PLNMG'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-coltext = 'QUAN'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'TOTAL'.
wa_fieldcat-outputlen = 5.
wa_fieldcat-coltext = 'TOTAL'.
APPEND wa_fieldcat TO it_fieldcatalog.
data: lv_ind(2) type c.
v_ind = 1.
DO v_months TIMES.
lv_ind = v_ind.
CONCATENATE 'PDATU' lv_ind INTO wa_fieldcat-fieldname.
wa_fieldcat-outputlen = 8.
wa_fieldcat-coltext = 'DATE'.
APPEND wa_fieldcat TO it_fieldcatalog.
v_ind = v_ind + 1.
ENDDO.
*-Dynamic Table creation
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcatalog
IMPORTING
ep_table = i_dyntab.
ASSIGN i_dyntab->* TO <lt_final>.
CREATE DATA w_data LIKE LINE OF <lt_final>.
ASSIGN w_data->* TO <fs_wa>.
LOOP AT lt_final INTO wa_final.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-matnr.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-versb1.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-meins.
UNASSIGN <fs>.
ASSIGN COMPONENT 4 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-plnmg.
UNASSIGN <fs>.
ASSIGN COMPONENT 5 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-total.
UNASSIGN <fs>.
data: inc type i,
fieldname(17),
inc2(2) type c.
inc = 1.
do v_months times.
inc2 = inc.
concatenate WA_FINAL-PDATU inc2 into fieldname.
assign (fieldname) to <fs>.
UNASSIGN <fs>.
inc = inc + 1.
enddo.
ASSIGN COMPONENT v_ind OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-pdatu.
UNASSIGN <fs>.
APPEND <fs_wa> TO <lt_final>.
CLEAR <fs_wa>.
ENDLOOP.
CALL SCREEN 900.
&----
*& Module STATUS_0900 OUTPUT
&----
text
----
MODULE STATUS_0900 OUTPUT.
SET PF-STATUS 'PF'.
SET TITLEBAR 'TITLE'.
DATA: layout TYPE lvc_s_layo.
CREATE OBJECT cont
EXPORTING
container_name = 'CONT'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT grid
EXPORTING
i_parent = cont
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
layout-INFO_FNAME = 'COLOR'.
grid->set_table_for_first_display(
EXPORTING
is_layout = layout
CHANGING
it_outtab = <lt_final>
it_fieldcatalog = it_fieldcatalog
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
).
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMODULE. " STATUS_0900 OUTPUT
2008 Aug 14 11:27 AM
see the prolem is only here, if you can give me the Data how u get exactly in it_final and how you want final table then i will be able to tell you more clear.
Here you need to use control break statement based on date value. But just show a sample data and how you want it in the output.
LOOP AT lt_final INTO wa_final.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-matnr.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-versb1.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-meins.
UNASSIGN <fs>.
DATA: inc TYPE i,
fieldname(17),
inc2(2) TYPE c.
inc = 1.
DO v_months TIMES.
inc2 = inc.
CONCATENATE '<FS_WA>-PDATU' inc2 INTO fieldname.
ASSIGN (fieldname) TO <fs>.
<fs> = wa_final-pdatu.
inc = inc + 1.
ENDDO.
UNASSIGN <fs>.
ASSIGN COMPONENT 5 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-plnmg.
UNASSIGN <fs>.
ASSIGN COMPONENT 6 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-total.
UNASSIGN <fs>.
APPEND <fs_wa> TO <lt_final>.
CLEAR <fs_wa>.
ENDLOOP.
2008 Aug 14 11:47 AM
Hi Vijay
I am getting output in format
Material Ver UOM DATE DATE DATE ..... DATE TOTAL
m09001 00 M2 20080909 0,000
m09001 01 M2 20081009 0,000
m09001 02 M2 20081009 0,000
I want the output as
Material Ver UOM DATE DATE DATE ..... DATE TOTAL
m09001 00 M2 20080909 20080910 20081009 0 ,000
01 M2 20080909 20080910 20081009 0 ,000
02 M2 20080909 20080910 20081009 0 ,000
2008 Aug 14 11:58 AM
using the control break statement along with fieldsymbols you can get the required output.
sort it_final by matnr VERSB1.
DATA: inc TYPE i,
fieldname(17),
inc2(2) TYPE c,
wa_final_tmp like line of lt_final.
inc = 1.
LOOP AT lt_final INTO wa_final.
wa_final_tmp = wa_final.
at new VERSB1.
inc = 1.
sum.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-matnr.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-versb1.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final_tmp-meins.
UNASSIGN <fs>.
ASSIGN COMPONENT 5 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = wa_final-plnmg.
UNASSIGN <fs>.
ASSIGN COMPONENT 6 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = <fs> + wa_final-total.
UNASSIGN <fs>.
endat.
inc2 = inc.
CONCATENATE '<FS_WA>-PDATU' inc2 INTO fieldname.
ASSIGN (fieldname) TO <fs>.
<fs> = wa_final-pdatu.
inc = inc + 1.
UNASSIGN <fs>.
at end of VERSB1.
APPEND <fs_wa> TO <lt_final>.
CLEAR <fs_wa>.
endat.
ENDLOOP.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |