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: 

datanot populated into itabs

Former Member
0 Kudos

hi every body,

i am writing code for tolarance report but in my report the data is not populated into my internal tables

so could you guide me fix where is my bug plz have a look on my below code

&----


*& Report ZMMTOLARANCE_REPORT

*&

&----


*&

*&

&----


REPORT ZMMTOLARANCE_REPORT.

----


  • Tables *

----


TABLES: MARA, "General Material Data

MAKT, "Material Description

MKPF, "Header: Material Document

MCHA, "Batches

MSEG. "Document Segment: Material

----


  • Types *

----


TYPE-POOLS: SLIS.

----


  • Internal Tables *

----


data: fieldcat_tab type slis_t_fieldcat_alv with header line.

DATA: begin of gt_mseg occurs 0,

matnr LIKE mseg-matnr,

charg LIKE mseg-charg,

mblnr LIKE mseg-mblnr,

menge LIKE mseg-menge,

meins LIKE mseg-meins,

bwart LIKE mseg-bwart,

end of gt_mseg,

begin of gt_makt occurs 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

end of gt_makt,

begin of gt_mcha occurs 0,

charg LIKE mcha-charg,

lvorm LIKE mcha-lvorm,

end of gt_mcha,

begin of gt_mkpf occurs 0,

mblnr LIKE mkpf-mblnr,

budat LIKE mkpf-budat,

end of gt_mkpf,

begin of gt_output_final occurs 0,

matnr LIKE mseg-matnr,

maktx LIKE makt-maktx,

charg LIKE mseg-charg,

budat LIKE mkpf-budat,

grqty LIKE mseg-menge,

qty_remn LIKE mseg-menge,

meins LIKE mseg-meins,

inv_adjst LIKE mseg-menge,

toler_per TYPE P DECIMALS 1,

end of gt_output_final.

DATA: BEGIN OF gt_grqty OCCURS 0,

charg LIKE mseg-charg,

bwart LIKE mseg-bwart,

menge LIKE mseg-menge,

END OF gt_grqty.

DATA: BEGIN OF gt_qtyrem OCCURS 0,

bwart LIKE mseg-bwart,

shkzg LIKE mseg-shkzg,

bstmg LIKE mseg-bstmg,

END OF gt_qtyrem.

DATA: BEGIN OF gt_MATKL OCCURS 0,

MATNR LIKE MARA-MATNR,

MATKL LIKE MARA-MATKL,

END OF gt_MATKL.

----


  • Work Areas *

----


----


  • Variables *

----


DATA: g_tot TYPE P DECIMALS 2,

g_tot2 TYPE P DECIMALS 2,

g_grqty TYPE P DECIMALS 2,

g_qtyrem TYPE P DECIMALS 2,

g_inv_adjst TYPE P DECIMALS 2,

g_toler_per TYPE P DECIMALS 1.

----


  • S e l e c t – O p t i o n s *

  • P a r a m e t e r s *

----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

SELECT-OPTIONS: s_matkl FOR mara-matkl OBLIGATORY, "material group

s_charg FOR mseg-charg OBLIGATORY, "batch

s_bwart FOR mseg-bwart OBLIGATORY. "movement type

PARAMETERS p_tol TYPE P DECIMALS 1 OBLIGATORY."tolerance level

SELECTION-SCREEN END OF BLOCK B1.

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

  • START-OF-SELECTION. *

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

START-OF-SELECTION.

PERFORM f_fetch_data.

PERFORM f_prepare_fieldcat.

PERFORM f_display_report.

END-OF-SELECTION.

&----


*& Form f_fetch_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_fetch_data.

*SELECT SINGLE MATNR

  • MATKL

  • FROM MARA

  • INTO GT_MATKL

  • WHERE MATNR = GT_MSEG-MATNR

  • AND MATKL IN S_MATKL.

*

SELECT matnr

charg

mblnr

menge

meins

bwart

FROM mseg

INTO TABLE gt_mseg

WHERE charg in s_charg

AND bwart in s_bwart.

if sy-subrc = 0.

sort gt_mseg by matnr.

SELECT matnr

maktx

FROM makt

INTO TABLE gt_makt

FOR ALL ENTRIES in gt_mseg

WHERE matnr = gt_mseg-matnr.

if sy-subrc = 0.

sort gt_makt by matnr.

endif.

sort gt_mseg by charg.

  • Selecting reconciled batches

SELECT charg

lvorm

FROM mcha

INTO table gt_mcha

FOR ALL ENTRIES in gt_mseg

WHERE charg = gt_mseg-charg

AND lvorm <> 'X'.

if sy-subrc = 0.

sort gt_mcha by charg.

endif.

SELECT mblnr

budat

FROM mkpf

INTO TABLE gt_mkpf

FOR ALL ENTRIES in gt_mseg

WHERE mblnr = gt_mseg-mblnr.

if sy-subrc = 0.

sort gt_mkpf by mblnr.

endif.

endif.

  • Preparation of final internal table

loop at gt_mseg .

read table gt_mcha with key charg = gt_mseg-charg

binary search.

if sy-subrc = 0.

gt_output_final-matnr = gt_mseg-matnr.

g_toler_per = g_inv_adjst / g_tot .

if g_toler_per GT p_tol.

gt_output_final-charg = gt_mseg-charg.

endif.

read table gt_makt with key matnr = gt_mseg-matnr

binary search.

if sy-subrc = 0.

gt_output_final-maktx = gt_makt-maktx.

endif.

read table gt_mkpf with key mblnr = gt_mseg-mblnr

binary search.

if sy-subrc = 0.

gt_output_final-budat = gt_mkpf-budat.

endif.

APPEND gt_output_final.

endif.

MOVE gt_mseg-menge TO g_inv_adjst .

MOVE: g_tot TO gt_output_final-grqty,

g_qtyrem TO gt_output_final-qty_remn,

g_inv_adjst TO gt_output_final-inv_adjst,

g_toler_per TO gt_output_final-toler_per .

clear: gt_makt,

gt_mseg,

gt_mkpf,

gt_output_final.

endloop.

ENDFORM. " f_fetch_data

*&----


*

*& Form f_prepare_fieldcat

*&----


*

  • Subroutine to prepare field catalog

*----


*

FORM f_prepare_fieldcat.

fieldcat_tab-col_pos = 1.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'MATNR'.

fieldcat_tab-seltext_l = 'Material ID'.

append fieldcat_tab.

fieldcat_tab-col_pos = 2.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'MAKTX'.

fieldcat_tab-seltext_l = 'Description'.

append fieldcat_tab.

fieldcat_tab-col_pos = 3.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'CHARG'.

fieldcat_tab-seltext_l = 'Batch #'.

append fieldcat_tab.

fieldcat_tab-col_pos = 4.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'BUDAT'.

fieldcat_tab-seltext_l = 'Goods Receipt Date'.

append fieldcat_tab.

fieldcat_tab-col_pos = 5.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'MENGE'.

fieldcat_tab-seltext_l = 'Goods Receipt Quantity'.

append fieldcat_tab.

fieldcat_tab-col_pos = 6.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'QTY_REMN'.

fieldcat_tab-seltext_l = 'Quantity Remaining'.

append fieldcat_tab.

fieldcat_tab-col_pos = 7.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'MEINS'.

fieldcat_tab-seltext_l = 'Unit OF Measure'.

append fieldcat_tab.

fieldcat_tab-col_pos = 8.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'INV_ADJST'.

fieldcat_tab-seltext_l = 'Inventory Adjustments'.

append fieldcat_tab.

fieldcat_tab-col_pos = 9.

fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

fieldcat_tab-fieldname = 'TOLER_PER'.

fieldcat_tab-seltext_l = 'Tolerance Percentage'.

append fieldcat_tab.

ENDFORM. " f_prepare_fieldcat

&----


*& Form f_display_report

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_display_report.

DATA:

l_repid LIKE sy-repid.

l_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

I_BUFFER_ACTIVE = 'X'

I_CALLBACK_PROGRAM = l_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = fieldcat_tab[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

I_DEFAULT = 'X'

I_SAVE = 'A'

  • 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

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab = gt_output_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.

ENDFORM. " f_display_report

*For retriving quantity remaing value

FORM fetch_qtyremaining.

RANGES : r_bwart for mseg-bwart.

CLEAR: r_bwart,

gt_qtyrem.

REFRESH r_bwart.

r_bwart-low = '200'.

r_bwart-high = '292'.

r_bwart-sign = 'BT'.

r_bwart-option = 'I'.

APPEND r_bwart.

r_bwart-low = '551'.

r_bwart-high = '556'.

r_bwart-sign = 'BT'.

r_bwart-option = 'I'.

APPEND r_bwart.

r_bwart-low = '701'.

r_bwart-high = '718'.

r_bwart-sign = 'BT'.

r_bwart-option = 'I'.

APPEND r_bwart.

g_tot2 = 0.

SELECT bwart

shkzg

bstmg

FROM mseg

INTO table gt_qtyrem

WHERE bwart in r_bwart.

if mseg-shkzg = 'H'.

g_tot2 = g_tot2 - mseg-bstmg.

elseif mseg-shkzg = 'S'.

g_tot2 = g_tot2 + mseg-bstmg.

endif.

perform fetch_grqty.

g_qtyrem = g_grqty - g_tot2 .

ENDFORM. "fetch_qtyremaining

*For retriving goods reciept quantity.

FORM fetch_grqty.

CLEAR gt_grqty.

SELECT charg

bwart

menge

INTO TABLE gt_grqty

FROM mseg

WHERE charg IN s_charg

AND bwart IN ('101','102','561','562','563','564','565','566').

SORT gt_grqty.

LOOP at gt_grqty.

at new charg.

g_tot = 0.

endat.

if s_bwart EQ '101' OR

s_bwart EQ '561' OR

s_bwart EQ '563' OR

s_bwart EQ '565' .

g_tot = g_tot + gt_grqty-menge. "for allpositive ones

else.

g_tot = g_tot - gt_grqty-menge. "for all negative ones

endif.

ENDLOOP.

ENDFORM. "fetch_grqty

regards,

sirisha

4 REPLIES 4

Former Member
0 Kudos

1.hope u are getting the data from MSEG.

2.APPEND gt_output_final.

endif.

MOVE gt_mseg-menge TO g_inv_adjst .

MOVE: g_tot TO gt_output_final-grqty,

g_qtyrem TO gt_output_final-qty_remn,

g_inv_adjst TO gt_output_final-inv_adjst,

g_toler_per TO gt_output_final-toler_per .

<b> here u are getting the daat into output , but not calling APPEND and the same time u are cleaing the dat</b>

clear: gt_makt,

gt_mseg,

gt_mkpf,

gt_output_final.

Regards

Prabhu

endloop.

former_member181962
Active Contributor
0 Kudos

Try the highlighted changes.

> *&----


> -


*

> *& Report ZMMTOLARANCE_REPORT

> *&

> *&----


> -


*

> *&

> *&

> *&----


> -


*

>

> REPORT ZMMTOLARANCE_REPORT.

>

> *----


> -


*

> * Tables

> *

> *----


> -


*

> TABLES: MARA, "General Material Data

> MAKT, "Material Description

> MKPF, "Header: Material Document

> MCHA, "Batches

> MSEG. "Document Segment: Material

> *----


> -


*

> * Types

> *

> *----


> -


*

> TYPE-POOLS: SLIS.

> *----


> -


*

> * Internal Tables

> *

> *----


> -


*

> data: fieldcat_tab type slis_t_fieldcat_alv with

> header line.

>

> DATA: begin of gt_mseg occurs 0,

> matnr LIKE mseg-matnr,

> charg LIKE mseg-charg,

> mblnr LIKE mseg-mblnr,

> menge LIKE mseg-menge,

> meins LIKE mseg-meins,

> bwart LIKE mseg-bwart,

> end of gt_mseg,

>

> begin of gt_makt occurs 0,

> matnr LIKE makt-matnr,

> maktx LIKE makt-maktx,

> end of gt_makt,

>

> begin of gt_mcha occurs 0,

> charg LIKE mcha-charg,

> lvorm LIKE mcha-lvorm,

> end of gt_mcha,

>

> begin of gt_mkpf occurs 0,

> mblnr LIKE mkpf-mblnr,

> budat LIKE mkpf-budat,

> end of gt_mkpf,

>

> begin of gt_output_final occurs 0,

> matnr LIKE mseg-matnr,

> maktx LIKE makt-maktx,

> charg LIKE mseg-charg,

> budat LIKE mkpf-budat,

> grqty LIKE mseg-menge,

> qty_remn LIKE mseg-menge,

> meins LIKE mseg-meins,

> inv_adjst LIKE mseg-menge,

> toler_per TYPE P DECIMALS 1,

> end of gt_output_final.

> DATA: BEGIN OF gt_grqty OCCURS 0,

> charg LIKE mseg-charg,

> bwart LIKE mseg-bwart,

> menge LIKE mseg-menge,

> END OF gt_grqty.

>

> DATA: BEGIN OF gt_qtyrem OCCURS 0,

> bwart LIKE mseg-bwart,

> shkzg LIKE mseg-shkzg,

> bstmg LIKE mseg-bstmg,

> END OF gt_qtyrem.

>

> DATA: BEGIN OF gt_MATKL OCCURS 0,

> MATNR LIKE MARA-MATNR,

> MATKL LIKE MARA-MATKL,

>

> END OF gt_MATKL.

>

>

>

> *----


> -


*

> * Work Areas

> *

> *----


> -


*

>

>

> *----


> -


*

> * Variables

> *

> *----


> -


*

> DATA: g_tot TYPE P DECIMALS 2,

> g_tot2 TYPE P DECIMALS 2,

> g_grqty TYPE P DECIMALS 2,

> g_qtyrem TYPE P DECIMALS 2,

> g_inv_adjst TYPE P DECIMALS 2,

> g_toler_per TYPE P DECIMALS 1.

>

> *----


> -


*

> * S e l e c t – O p t i o n s

> *

> * P a r a m e t e r s

> *

> *----


> -


*

> SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

> SELECT-OPTIONS: s_matkl FOR mara-matkl OBLIGATORY,

> "material group

> s_charg FOR mseg-charg OBLIGATORY,

> harg OBLIGATORY, "batch

> s_bwart FOR mseg-bwart OBLIGATORY.

> wart OBLIGATORY. "movement type

> PARAMETERS p_tol TYPE P DECIMALS 1

> OBLIGATORY."tolerance level

> SELECTION-SCREEN END OF BLOCK B1.

>

> ******************************************************

> ******************

> * START-OF-SELECTION.

> *

> ******************************************************

> ******************

> START-OF-SELECTION.

> PERFORM f_fetch_data.

> PERFORM f_prepare_fieldcat.

> PERFORM f_display_report.

> END-OF-SELECTION.

>

> *&----


> -


*

> *& Form f_fetch_data

> *&----


> -


*

> * text

> *----


> -


*

> * --> p1 text

> * <-- p2 text

> *----


> -


*

> FORM f_fetch_data.

>

>

> *SELECT SINGLE MATNR

> * MATKL

> * FROM MARA

> * INTO GT_MATKL

> * WHERE MATNR = GT_MSEG-MATNR

> * AND MATKL IN S_MATKL.

> *

>

> SELECT matnr

> charg

> mblnr

> menge

> meins

> bwart

> FROM mseg

> INTO TABLE gt_mseg

> WHERE charg in s_charg

> AND bwart in s_bwart.

>

>

> if sy-subrc = 0.

> sort gt_mseg by matnr.

>

> SELECT matnr

> maktx

> FROM makt

> INTO TABLE gt_makt

> FOR ALL ENTRIES in gt_mseg

> WHERE matnr = gt_mseg-matnr.

>

> if sy-subrc = 0.

> sort gt_makt by matnr.

> endif.

>

> sort gt_mseg by charg.

>

> * Selecting reconciled batches

>

> SELECT charg

> lvorm

> FROM mcha

> INTO table gt_mcha

> FOR ALL ENTRIES in gt_mseg

> WHERE charg = gt_mseg-charg

> AND lvorm <> 'X'.

>

> if sy-subrc = 0.

> sort gt_mcha by charg.

> endif.

>

>

> SELECT mblnr

> budat

> FROM mkpf

> INTO TABLE gt_mkpf

> FOR ALL ENTRIES in gt_mseg

> WHERE mblnr = gt_mseg-mblnr.

>

> if sy-subrc = 0.

> sort gt_mkpf by mblnr.

> endif.

> endif.

> * Preparation of final internal table

> loop at gt_mseg .

>

> read table gt_mcha with key charg =

> rg = gt_mseg-charg

> binary search.

>

> if sy-subrc = 0.

>

> gt_output_final-matnr = gt_mseg-matnr.

> g_toler_per = g_inv_adjst / g_tot .

> if g_toler_per GT p_tol.

> gt_output_final-charg = gt_mseg-charg.

> endif.

> read table gt_makt with key matnr =

> atnr = gt_mseg-matnr

> binary search.

> if sy-subrc = 0.

> gt_output_final-maktx = gt_makt-maktx.

> endif.

>

> read table gt_mkpf with key mblnr =

> blnr = gt_mseg-mblnr

> binary search.

> if sy-subrc = 0.

> gt_output_final-budat = gt_mkpf-budat.

> endif.

>

<b>>* APPEND gt_output_final.</b>

>

> endif.

> MOVE gt_mseg-menge TO g_inv_adjst .

>

>

> MOVE: g_tot TO gt_output_final-grqty,

> g_qtyrem TO gt_output_final-qty_remn,

> g_inv_adjst TO gt_output_final-inv_adjst,

> g_toler_per TO gt_output_final-toler_per .

<b>> APPEND gt_output_final.</b>

> clear: gt_makt,

> gt_mseg,

> gt_mkpf,

> gt_output_final.

> endloop.

> ENDFORM. " f_fetch_data

>

> *&----


> -


> *

> *& Form f_prepare_fieldcat

> *&----


> -


> *

> * Subroutine to prepare field catalog

> *----


> -


> *

> FORM f_prepare_fieldcat.

>

> fieldcat_tab-col_pos = 1.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'MATNR'.

> fieldcat_tab-seltext_l = 'Material ID'.

> append fieldcat_tab.

>

> fieldcat_tab-col_pos = 2.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'MAKTX'.

> fieldcat_tab-seltext_l = 'Description'.

> append fieldcat_tab.

>

> fieldcat_tab-col_pos = 3.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'CHARG'.

> fieldcat_tab-seltext_l = 'Batch #'.

> append fieldcat_tab.

>

> fieldcat_tab-col_pos = 4.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'BUDAT'.

> fieldcat_tab-seltext_l = 'Goods Receipt Date'.

> append fieldcat_tab.

>

> fieldcat_tab-col_pos = 5.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'MENGE'.

> fieldcat_tab-seltext_l = 'Goods Receipt Quantity'.

> append fieldcat_tab.

>

> fieldcat_tab-col_pos = 6.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'QTY_REMN'.

> fieldcat_tab-seltext_l = 'Quantity Remaining'.

> append fieldcat_tab.

>

> fieldcat_tab-col_pos = 7.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'MEINS'.

> fieldcat_tab-seltext_l = 'Unit OF Measure'.

> append fieldcat_tab.

>

> fieldcat_tab-col_pos = 8.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'INV_ADJST'.

> fieldcat_tab-seltext_l = 'Inventory Adjustments'.

> append fieldcat_tab.

>

> fieldcat_tab-col_pos = 9.

> fieldcat_tab-tabname = 'GT_OUTPUT_FINAL'.

> fieldcat_tab-fieldname = 'TOLER_PER'.

> fieldcat_tab-seltext_l = 'Tolerance Percentage'.

> append fieldcat_tab.

>

>

>

> ENDFORM. " f_prepare_fieldcat

>

>

> *&----


> -


*

> *& Form f_display_report

> *&----


> -


*

> * text

> *----


> -


*

> * --> p1 text

> * <-- p2 text

> *----


> -


*

> FORM f_display_report.

>

> DATA:

> l_repid LIKE sy-repid.

>

> l_repid = sy-repid.

>

>

> call function 'REUSE_ALV_GRID_DISPLAY'

> EXPORTING

> * I_INTERFACE_CHECK = ' '

> * I_BYPASSING_BUFFER =

> I_BUFFER_ACTIVE = 'X'

> I_CALLBACK_PROGRAM = l_repid

> * I_CALLBACK_PF_STATUS_SET = ' '

> * I_CALLBACK_USER_COMMAND = ' '

> * I_CALLBACK_TOP_OF_PAGE = ' '

> * I_CALLBACK_HTML_TOP_OF_PAGE = ' '

> * I_CALLBACK_HTML_END_OF_LIST = ' '

> * I_STRUCTURE_NAME =

> * I_BACKGROUND_ID = ' '

> * I_GRID_TITLE =

> * I_GRID_SETTINGS =

> * IS_LAYOUT =

> IT_FIELDCAT =

> = fieldcat_tab[]

> * IT_EXCLUDING =

> * IT_SPECIAL_GROUPS =

> * IT_SORT =

> * IT_FILTER =

> * IS_SEL_HIDE =

> I_DEFAULT = 'X'

> I_SAVE = 'A'

> * 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

> * IT_ALV_GRAPHICS =

> * IT_ADD_FIELDCAT =

> * IT_HYPERLINK =

> * I_HTML_HEIGHT_TOP =

> * I_HTML_HEIGHT_END =

> * IT_EXCEPT_QINFO =

> * IMPORTING

> * E_EXIT_CAUSED_BY_CALLER =

> * ES_EXIT_CAUSED_BY_USER =

> tables

> t_outtab =

> = gt_output_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.

>

>

> ENDFORM. " f_display_report

>

> *For retriving quantity remaing value

> FORM fetch_qtyremaining.

>

> RANGES : r_bwart for mseg-bwart.

>

> CLEAR: r_bwart,

> gt_qtyrem.

> REFRESH r_bwart.

>

> r_bwart-low = '200'.

> r_bwart-high = '292'.

> r_bwart-sign = 'BT'.

> r_bwart-option = 'I'.

> APPEND r_bwart.

>

> r_bwart-low = '551'.

> r_bwart-high = '556'.

> r_bwart-sign = 'BT'.

> r_bwart-option = 'I'.

> APPEND r_bwart.

>

> r_bwart-low = '701'.

> r_bwart-high = '718'.

> r_bwart-sign = 'BT'.

> r_bwart-option = 'I'.

> APPEND r_bwart.

>

>

> g_tot2 = 0.

> SELECT bwart

> shkzg

> bstmg

> FROM mseg

> INTO table gt_qtyrem

> WHERE bwart in r_bwart.

> if mseg-shkzg = 'H'.

> g_tot2 = g_tot2 - mseg-bstmg.

> elseif mseg-shkzg = 'S'.

> g_tot2 = g_tot2 + mseg-bstmg.

> endif.

> perform fetch_grqty.

> g_qtyrem = g_grqty - g_tot2 .

> ENDFORM. "fetch_qtyremaining

>

> *For retriving goods reciept quantity.

> FORM fetch_grqty.

>

> CLEAR gt_grqty.

>

> SELECT charg

> bwart

> menge

> INTO TABLE gt_grqty

> FROM mseg

> WHERE charg IN s_charg

> AND bwart IN

> bwart IN

> ('101','102','561','562','563','564','565','566').

>

> SORT gt_grqty.

> LOOP at gt_grqty.

> at new charg.

> g_tot = 0.

> endat.

> if s_bwart EQ '101' OR

> s_bwart EQ '561' OR

> s_bwart EQ '563' OR

> s_bwart EQ '565' .

>

> g_tot = g_tot + gt_grqty-menge.

> menge. "for allpositive ones

>

> else.

> g_tot = g_tot - gt_grqty-menge.

> menge. "for all negative ones

> endif.

> ENDLOOP.

> ENDFORM. "fetch_grqty

>

> regards,

> sirisha

Former Member
0 Kudos

hi,

please mention which internal table don't have data.

check it in debug mode.

kathir.

Former Member
0 Kudos

As per your APPEND statement in the loop it seems you would be populating only partial information to the final internal table and that also if you find the corresponding information in gt_mcha. The APPEND statement should be for the clear statement for final internal table...in that case you will have the required information in the internal table.

datanot populated into itabs

Posted: Aug 25, 2006 1:39 PM

hi every body,

i am writing code for tolarance report but in my report the data is not populated into my internal tables

so could you guide me fix where is my bug plz have a look on my below code

&----


*& Report ZMMTOLARANCE_REPORT

*&

&----


*&

*&

&----


REPORT ZMMTOLARANCE_REPORT.

----


  • Tables *

----


TABLES: MARA, "General Material Data

MAKT, "Material Description

MKPF, "Header: Material Document

MCHA, "Batches

MSEG. "Document Segment: Material

----


  • Types *

----


TYPE-POOLS: SLIS.

----


  • Internal Tables *

----


data: fieldcat_tab type slis_t_fieldcat_alv with header line.

DATA: begin of gt_mseg occurs 0,

matnr LIKE mseg-matnr,

charg LIKE mseg-charg,

mblnr LIKE mseg-mblnr,

menge LIKE mseg-menge,

meins LIKE mseg-meins,

bwart LIKE mseg-bwart,

end of gt_mseg,

begin of gt_makt occurs 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

end of gt_makt,

begin of gt_mcha occurs 0,

charg LIKE mcha-charg,

lvorm LIKE mcha-lvorm,

end of gt_mcha,

begin of gt_mkpf occurs 0,

mblnr LIKE mkpf-mblnr,

budat LIKE mkpf-budat,

end of gt_mkpf,

begin of gt_output_final occurs 0,

matnr LIKE mseg-matnr,

maktx LIKE makt-maktx,

charg LIKE mseg-charg,

budat LIKE mkpf-budat,

grqty LIKE mseg-menge,

qty_remn LIKE mseg-menge,

meins LIKE mseg-meins,

inv_adjst LIKE mseg-menge,

toler_per TYPE P DECIMALS 1,

end of gt_output_final.

DATA: BEGIN OF gt_grqty OCCURS 0,

charg LIKE mseg-charg,

bwart LIKE mseg-bwart,

menge LIKE mseg-menge,

END OF gt_grqty.

DATA: BEGIN OF gt_qtyrem OCCURS 0,

bwart LIKE mseg-bwart,

shkzg LIKE mseg-shkzg,

bstmg LIKE mseg-bstmg,

END OF gt_qtyrem.

DATA: BEGIN OF gt_MATKL OCCURS 0,

MATNR LIKE MARA-MATNR,

MATKL LIKE MARA-MATKL,

END OF gt_MATKL.

----


  • Work Areas *

----


----


  • Variables *

----


DATA: g_tot TYPE P DECIMALS 2,

g_tot2 TYPE P DECIMALS 2,

g_grqty TYPE P DECIMALS 2,

g_qtyrem TYPE P DECIMALS 2,

g_inv_adjst TYPE P DECIMALS 2,

g_toler_per TYPE P DECIMALS 1.

----


  • S e l e c t – O p t i o n s *

  • P a r a m e t e r s *

----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

SELECT-OPTIONS: s_matkl FOR mara-matkl OBLIGATORY, "material group

s_charg FOR mseg-charg OBLIGATORY, "batch

s_bwart FOR mseg-bwart OBLIGATORY. "movement type

PARAMETERS p_tol TYPE P DECIMALS 1 OBLIGATORY."tolerance level

SELECTION-SCREEN END OF BLOCK B1.

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

  • START-OF-SELECTION. *

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

START-OF-SELECTION.

PERFORM f_fetch_data.

PERFORM f_prepare_fieldcat.

PERFORM f_display_report.

END-OF-SELECTION.

&----


*& Form f_fetch_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_fetch_data.

*SELECT SINGLE MATNR

  • MATKL

  • FROM MARA

  • INTO GT_MATKL

  • WHERE MATNR = GT_MSEG-MATNR

  • AND MATKL IN S_MATKL.

*

SELECT matnr

charg

mblnr

menge

meins

bwart

FROM mseg

INTO TABLE gt_mseg

WHERE charg in s_charg

AND bwart in s_bwart.

if sy-subrc = 0.

sort gt_mseg by matnr.

SELECT matnr

maktx

FROM makt

INTO TABLE gt_makt

FOR ALL ENTRIES in gt_mseg

WHERE matnr = gt_mseg-matnr.

if sy-subrc = 0.

sort gt_makt by matnr.

endif.

sort gt_mseg by charg.

  • Selecting reconciled batches

SELECT charg

lvorm

FROM mcha

INTO table gt_mcha

FOR ALL ENTRIES in gt_mseg

WHERE charg = gt_mseg-charg

AND lvorm <> 'X'.

if sy-subrc = 0.

sort gt_mcha by charg.

endif.

  • Preparation of final internal table

loop at gt_mseg .

read table gt_mcha with key charg = gt_mseg-charg

binary search.

if sy-subrc = 0.

gt_output_final-matnr = gt_mseg-matnr.

g_toler_per = g_inv_adjst / g_tot .

if g_toler_per GT p_tol.

gt_output_final-charg = gt_mseg-charg.

endif.

read table gt_makt with key matnr = gt_mseg-matnr

binary search.

if sy-subrc = 0.

gt_output_final-maktx = gt_makt-maktx.

endif.

read table gt_mkpf with key mblnr = gt_mseg-mblnr

binary search.

if sy-subrc = 0.

gt_output_final-budat = gt_mkpf-budat.

endif.

<b>*APPEND gt_output_final.</b>

endif.

MOVE gt_mseg-menge TO g_inv_adjst .

MOVE: g_tot TO gt_output_final-grqty,

g_qtyrem TO gt_output_final-qty_remn,

g_inv_adjst TO gt_output_final-inv_adjst,

g_toler_per TO gt_output_final-toler_per .

<b>APPEND gt_output_final.</b>

clear: gt_makt,

gt_mseg,

gt_mkpf,

gt_output_final.

endloop.

Regards

Anurag