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: 

about the repetitive values

Former Member
0 Kudos
95

hi team,

i had a alv output program...it is working fine,,,but the problem is that one g/l account is one of the field in alv output..when i am executing the output that g/l account fields is getting the same value in the output .. i.e is repetiting the values wt could be the problem..can any one tell me answer.................................................

g/l account plant material code quantity unit rate value

10000 1000 578989 50,000

10000 1001 556898 10,000

10000 1003 9897823 5000

10000 1000

10000

10000

10000

like every thing is working fine wt could be the problem.......................................... for the g/l account is repetitive same value/////////////// ,,,,,,,,,,,,,,,,,,,,,,,,,,,

i am attaching the code also.......................................

report ztestreport3.

----


--

  • Program name |YR_FI_GLACCOUNTBREAKUP_SIV

  • Created by |Sivaram

  • Date |27/12/2007

----


*REPORT yr_fi_glaccountbreakup_siv.

----


  • TABLES

----


TABLES : mkpf,mseg,skb1.

----


  • SELECTION-SCREEN

----


PARAMETER: p_bukrs LIKE mseg-bukrs DEFAULT 1000.

SELECT-OPTIONS : p_gsber FOR mseg-gsber NO-EXTENSION,

s_bwtar FOR mseg-bwtar NO-EXTENSION,

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

s_saknr FOR skb1-saknr NO-EXTENSION,

s_budat FOR mkpf-budat."OBLIGATORY NO-EXTENSION.

----


  • DATA DEFINITIONS

----


TYPE-POOLS: slis.

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,

ls_fieldcat TYPE slis_fieldcat_alv,

layout TYPE slis_layout_alv,

wa_it_listheader TYPE slis_listheader,

it_listheader TYPE slis_t_listheader,

gt_sort TYPE slis_t_sortinfo_alv,

g_repid LIKE sy-repid.

TYPES: BEGIN OF typ_mkpf,

mblnr LIKE mkpf-mblnr,

mjahr LIKE mkpf-mjahr,

  • ZEILE LIKE MSEG-ZEILE,

budat LIKE mkpf-budat,

  • BWTAR LIKE MSEG-BWTAR,

  • MATNR LIKE MSEG-MATNR,

  • LIFNR LIKE MSEG-LIFNR,

  • MENGE LIKE MSEG-MENGE,

  • MEINS LIKE MSEG-MEINS,

  • GSBER LIKE MSEG-GSBER,

END OF typ_mkpf.

TYPES : BEGIN OF typ_mseg,

bukrs LIKE mseg-bukrs,

mblnr LIKE mseg-mblnr,

zeile LIKE mseg-zeile,

bwtar LIKE mseg-bwtar,

matnr LIKE mseg-matnr,

  • LIFNR LIKE MSEG-LIFNR,

menge LIKE mseg-menge,

meins LIKE mseg-meins,

gsber LIKE mseg-gsber,

werks LIKE mseg-werks,

dmbtr LIKE mseg-dmbtr,

END OF typ_mseg.

TYPES: BEGIN OF typ_skb1,

bukrs LIKE skb1-bukrs,

saknr LIKE skb1-saknr,

END OF typ_skb1.

TYPES : BEGIN OF typ_final,

mblnr LIKE mkpf-mblnr,

mjahr LIKE mkpf-mjahr,

gsber LIKE mseg-gsber,

zeile LIKE mseg-zeile,

budat LIKE mkpf-budat,

bwtar LIKE mseg-bwtar,

werks LIKE bseg-werks,

matnr LIKE mseg-matnr,

maktx LIKE makt-maktx,

  • LIFNR LIKE MSEG-LIFNR,

menge LIKE mseg-menge,

meins LIKE mseg-meins,

wrbtr LIKE bseg-wrbtr,

dmbtr LIKE mseg-dmbtr,

bukrs LIKE skb1-bukrs,

saknr LIKE skb1-saknr,

rate TYPE bseg-wrbtr,

END OF typ_final.

TYPES : BEGIN OF typ_makt,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

END OF typ_makt.

TYPES : BEGIN OF typ_bseg,

bukrs LIKE bseg-bukrs,

gsber LIKE bseg-gsber,

belnr LIKE bseg-belnr,

matnr LIKE bseg-matnr,

wrbtr LIKE bseg-wrbtr,

werks LIKE bseg-werks,

  • MENGE LIKE BSEG-MENGE,

END OF typ_bseg.

TYPES : BEGIN OF typ_bsim,

belnr LIKE bsim-belnr,

matnr LIKE bsim-matnr,

bwtar LIKE bsim-bwtar,

menge LIKE bsim-menge,

meins LIKE bsim-meins,

dmbtr LIKE bsim-dmbtr,

END OF typ_bsim.

DATA: itab_mkpf TYPE TABLE OF typ_mkpf WITH HEADER LINE,

itab_mseg TYPE TABLE OF typ_mseg WITH HEADER LINE,

itab_final TYPE TABLE OF typ_final WITH HEADER LINE,

itab_bseg TYPE TABLE OF typ_bseg WITH HEADER LINE,

itab_makt TYPE TABLE OF typ_makt WITH HEADER LINE ,

itab_bsim TYPE TABLE OF typ_bsim WITH HEADER LINE,

itab_skb1 TYPE TABLE OF typ_skb1 WITH HEADER LINE.

  • itab_gla TYPE TABLE OF typ_ska1 WITH HEADER LINE.

DATA : w_amt(15),

w_amt1 LIKE bseg-wrbtr,

*INITIALIZATION.

----


initialization.

g_repid = sy-repid.

PERFORM fieldcat_init USING gt_fieldcat[].

*

PERFORM sort_init USING gt_sort[].

----


*START OF SELECTION

----


START-OF-SELECTION.

SELECT mblnr mjahr budat FROM mkpf INTO CORRESPONDING FIELDS OF TABLE

itab_mkpf

WHERE budat IN s_budat.

SELECT bukrs

mblnr

zeile

bwtar

matnr

gsber

werks

menge

meins

dmbtr

FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab_mseg

FOR ALL ENTRIES IN itab_mkpf WHERE bukrs EQ p_bukrs AND mblnr

EQ itab_mkpf-mblnr AND gsber IN p_gsber

AND bwtar IN s_bwtar AND mjahr EQ itab_mkpf-mjahr.

  • SELECT bukrs gsber belnr matnr wrbtr werks FROM bseg INTO

*CORRESPONDING FIELDS OF TABLE itab_bseg FOR ALL ENTRIES IN itab_mseg

  • WHERE belnr EQ itab_mseg-mblnr AND matnr EQ itab_mseg-matnr AND

*bukrs EQ p_bukrs AND gsber IN p_gsber.

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

SELECT bukrs saknr

FROM skb1

INTO corresponding fieldS of table itab_skb1 WHERE bukrs EQ

p_bukrs.

  • AND SAKNR EQ S_SAKNR.

  • FOR ALL ENTRIES IN ITAB_MSEG

  • WHERE BUKRS EQ ITAB_MSEG-BUKRS

  • AND SAKNR EQ S_SAKNR.

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

  • SELECT BELNR MATNR MENGE MEINS DMBTR BWTAR FROM BSIM INTO

*CORRESPONDING FIELDS OF TABLE ITAB_Bsim FOR ALL ENTRIES IN ITAB_MSEG

    • WHERE BELNR EQ ITAB_MSEG-MBLNR AND MATNR EQ ITAB_MSEG-MATNR AND

*BWTAR EQ ITAB_MSEG-BWTAR.

  • WHERE BELNR EQ ITAB_MSEG-MBLNR AND MATNR EQ ITAB_MSEG-MATNR.

SELECT matnr

maktx FROM makt

INTO TABLE itab_makt FOR ALL ENTRIES IN

itab_mseg WHERE matnr EQ itab_mseg-matnr.

  • SELECT saknr FROM ska1 INTO TABLE ITAB_Mkpf FOR ALL ENTRIES IN

*ITAB_MSEG WHERE saknr EQ ITAB_MSEG-saknr.

LOOP AT itab_mkpf.

LOOP AT itab_mseg WHERE mblnr EQ itab_mkpf-mblnr.

MOVE-CORRESPONDING itab_mseg TO itab_final.

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

LOOP AT itab_skb1 WHERE bukrs EQ itab_mseg-bukrs.

MOVE-CORRESPONDING itab_skb1 TO itab_final.

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

LOOP AT itab_makt WHERE matnr EQ itab_mseg-matnr.

MOVE-CORRESPONDING itab_makt TO itab_final.

APPEND itab_final.

CLEAR itab_final.

ENDLOOP.

ENDLOOP.

ENDLOOP.

ENDLOOP.

DELETE itab_final WHERE bwtar IS INITIAL.

LOOP AT itab_final .

PERFORM convert_amount.

MODIFY itab_final.

CLEAR itab_final.

ENDLOOP.

*******ALV****************************************

REFRESH gt_fieldcat.

PERFORM : fieldcat_init USING gt_fieldcat[].

PERFORM : sort_init USING gt_sort[].

CLEAR layout.

layout-window_titlebar = 'GL Account Break up'.

layout-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_repid

it_fieldcat = gt_fieldcat

is_layout = layout

it_sort = gt_sort

TABLES

t_outtab = itab_final.

  • DESCRIBE TABLE ITAB_MSEG LINES SY-TFILL.

*

  • WRITE SY-TFILL.

&----


*& Form FIELDCAT_INIT

&----


  • text

----


  • -->RT_FIELDCAT[] text

----


FORM fieldcat_init USING rt_fieldcat TYPE slis_t_fieldcat_alv.

*DATA : LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

CLEAR ls_fieldcat.

*

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-ROW_POS = '1'.

  • LS_FIELDCAT-COL_POS = '10'.

  • LS_FIELDCAT-TABNAME = 'ITAB_FINAL'.

  • LS_FIELDCAT-FIELDNAME = 'saknr'.

  • LS_FIELDCAT-SELTEXT_L = 'G/L Account'.

  • APPEND LS_FIELDCAT TO RT_FIELDCAT.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '1'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'SAKNR'.

ls_fieldcat-seltext_l = 'GL ACCOUNT'.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '2'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'BWTAR'.

ls_fieldcat-seltext_l = 'VAL . TYPE'.

APPEND ls_fieldcat TO rt_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '3'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'GSBER'.

ls_fieldcat-seltext_l = 'BUS. AREA'.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '4'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'WERKS'.

ls_fieldcat-seltext_l = 'PLANT'.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '5'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'MATNR'.

ls_fieldcat-seltext_l = 'MAT. CODE'.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '6'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'MAKTX'.

ls_fieldcat-seltext_l = 'MAT DESCRIPTION'.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '7'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'MENGE'.

ls_fieldcat-seltext_l = 'QUANTITY'.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '8'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'MEINS'.

ls_fieldcat-seltext_l = 'UNIT '.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '9'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'RATE'.

ls_fieldcat-seltext_l = 'RATE'.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-row_pos = '1'.

ls_fieldcat-col_pos = '10'.

ls_fieldcat-tabname = 'ITAB_FINAL'.

ls_fieldcat-fieldname = 'DMBTR'.

ls_fieldcat-seltext_l = 'VALUE'.

APPEND ls_fieldcat TO rt_fieldcat.

ENDFORM. " FIELDCAT_INIT

&----


*& Form SORT_INIT

&----


  • text

----


  • -->RT_SORT text

----


FORM sort_init USING rt_sort TYPE slis_t_sortinfo_alv.

DATA lt_sort TYPE slis_sortinfo_alv.

lt_sort-spos = 1.

lt_sort-fieldname = 'BWTAR'.

lt_sort-up = 'X'.

lt_sort-subtot = 'X'.

APPEND lt_sort TO rt_sort.

CLEAR lt_sort.

lt_sort-spos = 2.

lt_sort-tabname = 'ITAB_FINAL'.

lt_sort-fieldname = 'DMBTR'.

lt_sort-up = 'X'.

lt_sort-group = 'UL'.

lt_sort-subtot = 'X'.

APPEND lt_sort TO rt_sort.

CLEAR lt_sort.

lt_sort-spos = 3.

lt_sort-tabname = 'ITAB_FINAL'.

lt_sort-fieldname = 'MENGE'.

lt_sort-up = 'X'.

lt_sort-group = 'UL'.

lt_sort-subtot = 'X'.

APPEND lt_sort TO rt_sort.

ENDFORM. " SORT_INIT

----


FORM convert_amount.

CLEAR : w_amt,w_amt1.

w_amt = itab_final-dmbtr.

PERFORM convert_to_amount USING w_amt CHANGING w_amt1.

MOVE w_amt1 TO itab_final-rate.

ENDFORM.

----


  • FORM convert_to_amount *

----


  • ........ *

----


  • --> VALUE *

  • --> W_AMT *

  • --> W_AMT1 *

----


FORM convert_to_amount using w_amt changing w_amt1.

REPLACE ',' WITH '' INTO w_amt.

CONDENSE w_amt NO-GAPS.

REPLACE ',' WITH '' INTO w_amt.

CONDENSE w_amt NO-GAPS.

IF not itab_final-menge IS INITIAL.

w_amt1 = w_amt / itab_final-menge .

ELSE .

w_amt1 = w_amt.

ENDIF.

ENDFORM.

1 REPLY 1

Former Member
0 Kudos
75

Hi,

The problem might be with this piece of code

LOOP AT itab_mkpf.

LOOP AT itab_mseg WHERE mblnr EQ itab_mkpf-mblnr.

MOVE-CORRESPONDING itab_mseg TO itab_final.

LOOP AT itab_skb1 WHERE bukrs EQ itab_mseg-bukrs.

MOVE-CORRESPONDING itab_skb1 TO itab_final.

LOOP AT itab_makt WHERE matnr EQ itab_mseg-matnr.

MOVE-CORRESPONDING itab_makt TO itab_final.

APPEND itab_final.

CLEAR itab_final.

ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDLOOP.

try changing it like below

LOOP AT itab_mkpf.

Read table itab_mseg with key mblnr EQ itab_mkpf-mblnr.
MOVE-CORRESPONDING itab_mseg TO itab_final.
Read table itab_skb1 with key bukrs EQ itab_mseg-bukrs.
MOVE-CORRESPONDING itab_skb1 TO itab_final.
Read table itab_makt with key matnr EQ itab_mseg-matnr.
MOVE-CORRESPONDING itab_makt TO itab_final.

APPEND itab_final.
CLEAR itab_final.
ENDLOOP.

Cheers,

jose.

Edited by: jose on Feb 13, 2008 4:43 AM