03-22-2013 6:15 AM
hi i developed create management change report. in that report i displayed new_value,old_value, percentage(based upon newvalue,oldvalue), credit limit, customer, sales organization, in that report i want add the addition column i add it.that column name is HOWMANY TIMES CHANGE.
and percentages changed by
1-10 GM
11-25 CFO
25 and above MD
now my dought is one customer 14600 having the 7 changes( new_value, old_value), i calculate the percentages also
but i want to display output like this
new_value old_value percentage changedby howmanytimes change
X1 y1 1 GM
A1 A2 7 Gm
Z1 Z2 2 Gm 3times
g1 g2 26 MD
h1 h2 18 CFO
j1 j2 15 CFO 2times
k1 k2 28 MD 1time
i want to display like this, GM is changed 3 times it will display only last row only, i dnt want to display first 2 mtimes.
03-22-2013 6:39 AM
Hi priya,
I think you can make use of 'at end' statements, to appear the value only for last line.
Regards,
Swarna
03-22-2013 6:41 AM
Hi Priya,
U have Internal Table which Contains all data and now u r calculate the no of changes.
DATA : LV_COUNNT TYPE I.
SORT ITAB BY CHANGED_BY FIELD
LOOP AT ITAB INTO WTAB.
LV_COUNT = LV_COUNT + 1.
AT END OF CHANGED_BY.
PASS HERE THE LV_COUNT INTO WORK AREA.
AND APPEND INTO INTERNAL TABLE.
CLEAR : WOR AREA AND LV_COUNT.
ENDAT.
ENDLOOP.
it will work for ur case.
Thanks
Tarak
03-22-2013 7:11 AM
Hi Priya,
Create a new internal (IT_FINAL) table keeping the user and the count as two fields in the internal table.
LOOP AT ITAB.
MOVE CHANGEDBY TO WA_FINAL-CHANGEDBY.
WA_FINAL-COUNT = 1.
COLLECT WA_FINAL INTO IT_FINAL.
ENDLOOP.
The table IT_FINAL will have the records which has the users and count they changed.
Hope this helps.
Thanks,
Tooshar Bendale
03-25-2013 5:26 AM
hi, thank you. it is working.
and i have small dought it_final i have count information, that information how to move the final table ( it_itab-count).
03-25-2013 7:30 AM
Use read statement.
e.g. LOOP AT IT_ITAB.
READ TABLE IT_FINAL INTO WA_FINAL WITH KEY CHANGEDBY = IT_ITAB-CHANGEDBY.
IF SY-SUBRC = 0.
IT_ITAB-COUNT = WA_FINAL-COUNT.
MODIFY IT_ITAB.
ENDIF.
Hope this helps.
03-25-2013 11:19 AM
03-25-2013 11:19 AM
In count i have value 3,
count internal table it_count, wa is wa_count
my final table internal table is it_final wa is wa_final in this final table count field name is FCOUNT
below iam adding my complete pgm where i have write ur coding, please tell me bcz iam new to sap,
*&---------------------------------------------------------------------*
*& Report ZFD32_CREDIT_MGMT_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZFD32_CREDIT_MGMT_REPORT_TIME.
TYPE-POOLS: SLIS.
TABLES :
KNA1,
KNKK,
KNVV,
RF02L,
CDPOS,
CDHDR,
T014,
ZFD_REPORT.
SELECTION-SCREEN: BEGIN OF BLOCK HEAD WITH FRAME." TITLE TEXT-T01.
SELECT-OPTIONS : S_KUNNR FOR KNA1-KUNNR .
SELECT-OPTIONS : S_KKBER FOR T014-KKBER DEFAULT '1000'.
SELECT-OPTIONS : S_VKORG FOR KNVV-VKORG.
SELECT-OPTIONS : S_VKBUR FOR KNVV-VKBUR.
SELECT-OPTIONS : S_VKGRP FOR KNVV-VKGRP.
SELECT-OPTIONS : UPDATE FOR CDHDR-UDATE NO INTERVALS NO-EXTENSION.
*parameter : s_udate like cdhdr-udate.
SELECTION-SCREEN END OF BLOCK HEAD.
CONSTANTS: LCF_HORDA TYPE SY-DATUM VALUE '99991231'.
DATA : A01_KLPRZ TYPE RF02L-OBLIG,
LD_REFE1(16) TYPE P DECIMALS 2,
LD_REFE2(16) TYPE P DECIMALS 2,
OBLIG TYPE RF02L-OBLIG.
DATA : W_NEW(15) TYPE P DECIMALS 2,
W_NEWP(15) TYPE P DECIMALS 2,
W_OLDP(15) TYPE P DECIMALS 2.
DATA : W_CP TYPE STRING.
DATA : CRLI_CEXP TYPE WERT8.
*DATA : UPDATE LIKE CDHDR-UDATE.
TYPES : BEGIN OF TY_IFINAL ,
NUM(10) TYPE C,
NUM1(10) TYPE C,
END OF TY_IFINAL.
DATA: LDF_OLIKW TYPE S067-OLIKW,
LDF_OFAKW TYPE S067-OFAKW,
LDF_OEIKW TYPE S066-OEIKW,
LDF_SAUFT TYPE KNKK-SAUFT,
LDF_SKFOR TYPE KNKK-SKFOR,
LDF_SSOBL TYPE KNKK-SSOBL.
TYPES : BEGIN OF TY_KNA1,
KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
END OF TY_KNA1.
TYPES : BEGIN OF TY_KNKK ,
KUNNR TYPE KNKK-KUNNR,
KKBER TYPE KNKK-KKBER,
KLIMK TYPE KNKK-KLIMK,
KRAUS TYPE KNKK-KRAUS,
CTLPC TYPE KNKK-CTLPC,
END OF TY_KNKK.
TYPES : BEGIN OF IT_CDPOS ,
OBJECTID TYPE CDPOS-OBJECTID,
OBJECTCLAS TYPE CDPOS-OBJECTCLAS,
CHANGENR TYPE CDCHANGENR,
TABNAME TYPE TABNAME,
FNAME TYPE FIELDNAME,
VALUE_NEW TYPE CDFLDVALN,
VALUE_OLD TYPE CDFLDVALO,
END OF IT_CDPOS.
TYPES : BEGIN OF TY_KNVV,
KUNNR TYPE CHAR10,
KKBER TYPE KNVV-KKBER,
VKORG TYPE KNVV-VKORG,
VKBUR TYPE KNVV-VKBUR,
VKGRP TYPE KNVV-VKGRP,
END OF TY_KNVV.
TYPES : BEGIN OF TY_T014 ,
KKBER TYPE T014-KKBER,
END OF TY_T014.
TYPES : BEGIN OF TY_CDHDR,
OBJECTID TYPE CDPOS-OBJECTID,
OBJECTCLAS TYPE CDHDR-OBJECTCLAS,
CHANGENR TYPE CDCHANGENR,
USERNAME TYPE CDHDR-USERNAME,
UDATE TYPE CDHDR-UDATE,
TCODE TYPE CDHDR-TCODE,
END OF TY_CDHDR.
TYPES : BEGIN OF TY_FINAL1,
USERNAME LIKE ZFD_REPORT-ZUSERNAME,
END OF TY_FINAL1.
TYPES : BEGIN OF TY_FINAL ,
KUNNR TYPE KNA1-KUNNR,
KKBER TYPE T014-KKBER,
NAME1 TYPE KNA1-NAME1,
OBLIG TYPE RF02L-OBLIG,
VKORG TYPE KNVV-VKORG,
VKBUR TYPE KNVV-VKBUR,
VKGRP TYPE KNVV-VKGRP,
KLIMK TYPE KNKK-KLIMK,
KRAUS TYPE KNKK-KRAUS,
CTLPC TYPE KNKK-CTLPC,
VALUE_NEW TYPE CDPOS-VALUE_NEW,
VALUE_OLD TYPE CDPOS-VALUE_OLD,
USERNAME TYPE CDHDR-USERNAME,
UDATE TYPE CDHDR-UDATE,
PERCENTAGE TYPE P DECIMALS 2,
PERCENTAGE1 TYPE STRING,
W_CP TYPE STRING,
KLPRZ TYPE RF02L-KLPRZ,
T_KLPRZ TYPE STRING,
CRLI_CEXP TYPE WERT8,
ZZUSER TYPE ZFD_REPORT-ZUSERNAME,
COUNT3 TYPE INTEGER,
END OF TY_FINAL.
************************************************************************
* INTERNAL TABLE DECLARATION
************************************************************************
DATA:
IT_KNA1 TYPE STANDARD TABLE OF TY_KNA1 ,
IT_KNKK TYPE STANDARD TABLE OF TY_KNKK,
IT_CDPOS TYPE STANDARD TABLE OF IT_CDPOS,
IT_CDHDR TYPE STANDARD TABLE OF TY_CDHDR,
IT_T014 TYPE STANDARD TABLE OF TY_T014,
IT_IFINAL TYPE STANDARD TABLE OF TY_IFINAL,
IT_KNVV TYPE STANDARD TABLE OF TY_KNVV,
IT_FINAL TYPE STANDARD TABLE OF TY_FINAL,
IT_FIELDCAT TYPE STANDARD TABLE OF SLIS_FIELDCAT_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV,
IT_FINAL1 TYPE STANDARD TABLE OF TY_FINAL1.
**********************************************************************
* WORK AREA DECLARATIONS
***********************************************************************
DATA: WA_KNA1 TYPE TY_KNA1,
WA_KNKK TYPE TY_KNKK,
WA_CDPOS TYPE IT_CDPOS,
WA_IFINAL TYPE TY_IFINAL,
WA_CDHDR TYPE TY_CDHDR,
WA_T014 TYPE TY_T014,
WA_KNVV TYPE TY_KNVV,
WA_FINAL TYPE TY_FINAL,
WA_FINAL1 TYPE TY_FINAL1 .
DATA: GT_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: GT_EVENTS TYPE SLIS_T_EVENT.
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GT_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST'.
DATA: TXT(68).
START-OF-SELECTION.
PERFORM SELECT_DATA .
END-OF-SELECTION.
IF IT_FINAL IS NOT INITIAL.
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
PERFORM FIELDCAT_INIT USING IT_FIELDCAT[].
PERFORM SORT_INFO USING IT_SORT.
PERFORM DISPLAY_DATA .
ENDIF.
*&---------------------------------------------------------------------*
*& Form SELECT_DATA
*&---------------------------------------------------------------------*
FORM SELECT_DATA .
DATA : PERCENTAGE TYPE C.
DATA : COUNT TYPE INTEGER,
COUNT1 TYPE INTEGER,
COUNT2 TYPE INTEGER.
SELECT KUNNR KKBER VKORG VKBUR VKGRP INTO TABLE IT_KNVV FROM KNVV
WHERE KUNNR IN S_KUNNR AND VKORG IN S_VKORG
AND VKBUR IN S_VKBUR AND VKGRP IN S_VKGRP.
IF IT_KNVV IS NOT INITIAL.
SELECT KUNNR KLIMK KRAUS CTLPC FROM KNKK INTO CORRESPONDING FIELDS OF
TABLE IT_KNKK FOR ALL ENTRIES IN IT_KNVV
WHERE KUNNR = IT_KNVV-KUNNR AND KKBER IN S_KKBER.
SELECT KUNNR NAME1 FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE IT_KNA1
FOR ALL ENTRIES IN IT_KNKK WHERE KUNNR = IT_KNKK-KUNNR .
LOOP AT IT_KNVV INTO WA_KNVV.
CLEAR WA_FINAL.
COUNT = COUNT1 = COUNT2 = 0.
CLEAR WA_FINAL-COUNT3.
WA_FINAL-KUNNR = WA_KNVV-KUNNR.
WA_FINAL-VKORG = WA_KNVV-VKORG.
WA_FINAL-VKGRP = WA_KNVV-VKGRP.
WA_FINAL-VKBUR = WA_KNVV-VKBUR.
READ TABLE IT_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_FINAL-KUNNR.
IF SY-SUBRC = 0.
WA_FINAL-NAME1 = WA_KNA1-NAME1.
ENDIF.
READ TABLE IT_KNKK INTO WA_KNKK WITH KEY KUNNR = WA_FINAL-KUNNR.
IF SY-SUBRC = 0.
WA_FINAL-KKBER = WA_KNKK-KKBER.
WA_FINAL-KLIMK = WA_KNKK-KLIMK.
WA_FINAL-KRAUS = WA_KNKK-KRAUS.
WA_FINAL-CTLPC = WA_KNKK-CTLPC.
ENDIF.
************************************credit exposure**********************
CLEAR WA_FINAL-OBLIG.
CLEAR OBLIG .
CLEAR LDF_OLIKW.
CLEAR LDF_OFAKW.
CLEAR LDF_OEIKW.
CALL FUNCTION 'SD_CREDIT_EXPOSURE'
EXPORTING
FLAG_OPEN_DELIVERY = 'X'
FLAG_OPEN_INVOICE = 'X'
FLAG_OPEN_ORDER = 'X'
HORIZON_DATE = LCF_HORDA
KKBER = WA_FINAL-KKBER
KNKLI = WA_FINAL-KUNNR
IMPORTING
OPEN_DELIVERY = LDF_OLIKW
OPEN_INVOICE = LDF_OFAKW
OPEN_ORDER = LDF_OEIKW.
LDF_SAUFT = LDF_OLIKW + LDF_OFAKW + LDF_OEIKW.
SELECT SINGLE SKFOR SSOBL INTO (LDF_SKFOR ,LDF_SSOBL) FROM KNKK WHERE KUNNR EQ WA_FINAL-KUNNR AND KKBER IN S_KKBER.
OBLIG = LDF_SAUFT + LDF_SKFOR + LDF_SSOBL .
WA_FINAL-OBLIG = OBLIG .
************************************end of credit exposur************************
IF UPDATE IS NOT INITIAL.
SELECT OBJECTID OBJECTCLAS CHANGENR USERNAME UDATE TCODE
INTO TABLE IT_CDHDR FROM CDHDR
WHERE OBJECTID EQ WA_KNVV-KUNNR
AND UDATE LE UPDATE-LOW
AND OBJECTCLAS = 'KLIM'
AND TCODE = 'FD32'.
ELSE.
SELECT OBJECTID OBJECTCLAS CHANGENR USERNAME UDATE TCODE
INTO TABLE IT_CDHDR FROM CDHDR
WHERE OBJECTID EQ WA_KNVV-KUNNR
AND UDATE IN UPDATE
AND OBJECTCLAS = 'KLIM'
AND TCODE = 'FD32'.
ENDIF.
IF IT_CDHDR[] IS NOT INITIAL .
SELECT
OBJECTID OBJECTCLAS CHANGENR TABNAME FNAME VALUE_NEW VALUE_OLD
INTO TABLE IT_CDPOS FROM CDPOS FOR ALL ENTRIES IN IT_CDHDR
WHERE OBJECTID = IT_CDHDR-OBJECTID
AND CHANGENR = IT_CDHDR-CHANGENR AND TABNAME = 'KNKK'
AND OBJECTCLAS = IT_CDHDR-OBJECTCLAS AND FNAME = 'KLIMK' .
ENDIF.
LOOP AT IT_CDHDR INTO WA_CDHDR .
READ TABLE IT_CDHDR INTO WA_CDHDR WITH KEY OBJECTID = WA_FINAL-KUNNR
CHANGENR = WA_CDHDR-CHANGENR .
IF SY-SUBRC = 0.
WA_FINAL-USERNAME = WA_CDHDR-USERNAME.
WA_FINAL-UDATE = WA_CDHDR-UDATE.
ENDIF.
READ TABLE IT_CDPOS INTO WA_CDPOS WITH KEY OBJECTID = WA_CDHDR-OBJECTID CHANGENR = WA_CDHDR-CHANGENR.
IF SY-SUBRC = 0.
WA_FINAL-VALUE_NEW = WA_CDPOS-VALUE_NEW.
WA_FINAL-VALUE_OLD = WA_CDPOS-VALUE_OLD.
MOVE WA_CDPOS-VALUE_NEW TO W_NEWP .
MOVE WA_CDPOS-VALUE_OLD TO W_OLDP.
CLEAR WA_FINAL-CRLI_CEXP .
IF WA_FINAL-VALUE_NEW <> 0.
CRLI_CEXP = WA_FINAL-VALUE_NEW - WA_FINAL-OBLIG. "TO BE UTALIZED
WA_FINAL-CRLI_CEXP = CRLI_CEXP.
ENDIF.
************************************CREDIT LIMIT USED
IF WA_FINAL-VALUE_NEW <> 0.
CLEAR: LD_REFE1.
IF WA_FINAL-KLIMK = 0
OR WA_FINAL-OBLIG < 0.
CLEAR: A01_KLPRZ.
ELSE.
LD_REFE1 = ( WA_FINAL-OBLIG * 10000 ) / WA_FINAL-VALUE_NEW.
ENDIF.
IF WA_FINAL-VALUE_NEW = 0
AND WA_FINAL-OBLIG > 0.
LD_REFE1 = 99999.
ENDIF.
IF LD_REFE1 > 99999.
A01_KLPRZ = 99999.
ELSE.
A01_KLPRZ = LD_REFE1 .
ENDIF.
LD_REFE2 = ( LD_REFE1 / 100 ).
MOVE LD_REFE2 TO WA_IFINAL-NUM.
CONCATENATE WA_IFINAL-NUM '%' INTO WA_IFINAL-NUM.
WA_FINAL-T_KLPRZ = WA_IFINAL-NUM.
ENDIF.
************************************end of credit limit used*******************
CLEAR WA_FINAL-PERCENTAGE1.
IF W_OLDP <> 0.
W_NEW = ( W_NEWP / W_OLDP ) * 100 - 100.
WA_FINAL-PERCENTAGE = W_NEW .
MOVE W_NEW TO WA_IFINAL-NUM1.
CONCATENATE WA_IFINAL-NUM1 '%' INTO WA_IFINAL-NUM1.
WA_FINAL-PERCENTAGE1 = WA_IFINAL-NUM1 .
ENDIF.
IF WA_FINAL-PERCENTAGE IS NOT INITIAL.
SELECT ZUSERNAME FROM ZFD_REPORT INTO TABLE IT_FINAL1 WHERE ZLOWLIMIT <= WA_FINAL-PERCENTAGE
AND ZHIGHLIMIT >= WA_FINAL-PERCENTAGE.
CLEAR WA_FINAL-ZZUSER.
CLEAR WA_FINAL-COUNT3.
LOOP AT IT_FINAL1 INTO WA_FINAL1.
WA_FINAL-ZZUSER = WA_FINAL1-USERNAME.
IF WA_FINAL1-USERNAME = 'MD'.
COUNT = COUNT + 1.
ELSEIF WA_FINAL1-USERNAME = 'GM'.
COUNT1 = COUNT1 + 1.
ELSEIF WA_FINAL1-USERNAME = 'CFO'.
COUNT2 = COUNT2 + 1.
ENDLOOP.
ENDIF.
ENDIF.
APPEND WA_FINAL TO IT_FINAL.
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING KUNNR VALUE_NEW VALUE_OLD .
ENDLOOP.
APPEND WA_FINAL TO IT_FINAL.
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING KLIMK OBLIG VALUE_NEW VALUE_OLD .
ENDLOOP.
ENDIF.
ENDFORM. " SELECT_DATA
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
* I_CALLBACK_TOP_OF_PAGE = GT_LIST_TOP_OF_PAGE
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
IS_LAYOUT = GT_LAYOUT
IT_EVENTS = GT_EVENTS[]
IT_FIELDCAT = IT_FIELDCAT[]
IT_SORT = IT_SORT[]
* I_SAVE = A
TABLES
T_OUTTAB = IT_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. " DISPLAY_DATA
******************************************************************
* COMMENT_BUILD
*****************************************************************
FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = TEXT-100.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-INFO = TEXT-101.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
LS_LINE-INFO = TEXT-102.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
IF S_KUNNR-HIGH IS INITIAL.
CONCATENATE 'customer no:' S_KUNNR-LOW INTO TXT SEPARATED BY SPACE .
ENDIF.
LS_LINE-INFO = TXT.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
CLEAR LS_LINE-INFO.
ENDFORM. " COMMENT_BUILD
*&----------------------------------------------------------------
*& Form LAYOUT_INIT
*&----------------------------------------------------------------
FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
RS_LAYOUT-DETAIL_POPUP = 'X'.
RS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " LAYOUT_INIT
*&----------------------------------------------------------------
*& Form SORT_INFO
*&----------------------------------------------------------------
FORM SORT_INFO USING RS_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR LS_SORT.
LS_SORT-SPOS = 1.
LS_SORT-FIELDNAME = 'KUNNR'.
LS_SORT-TABNAME = 'IT_FINAL'.
LS_SORT-UP = 'X'.
LS_SORT-SUBTOT = 'X'.
APPEND LS_SORT TO RS_SORT.
ENDFORM. " SORT_INFO
*&---------------------------------------------------------------------*
*& Form FIELDCAT_INIT
*&---------------------------------------------------------------------*
FORM FIELDCAT_INIT USING IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 1.
LS_FIELDCAT-FIELDNAME = 'KUNNR'.
LS_FIELDCAT-SELTEXT_M = 'CUSTOMER NO'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 2.
LS_FIELDCAT-FIELDNAME = 'NAME1'.
LS_FIELDCAT-SELTEXT_M = 'Name'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 3.
LS_FIELDCAT-FIELDNAME = 'VKORG'.
LS_FIELDCAT-SELTEXT_M = 'Sales Org.'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 4.
LS_FIELDCAT-FIELDNAME = 'VKBUR'.
LS_FIELDCAT-SELTEXT_M = 'Sales Office'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 5.
LS_FIELDCAT-FIELDNAME = 'VKGRP'.
LS_FIELDCAT-SELTEXT_M = 'Sales Group'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 6.
LS_FIELDCAT-FIELDNAME = 'OBLIG'.
LS_FIELDCAT-SELTEXT_M = 'Credit Exposure'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 7.
LS_FIELDCAT-FIELDNAME = 'T_KLPRZ'.
LS_FIELDCAT-SELTEXT_M = 'Credit Limit Used%'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 8.
LS_FIELDCAT-FIELDNAME = 'KLIMK'.
LS_FIELDCAT-SELTEXT_M = 'Credit Limit'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
* CLEAR LS_FIELDCAT.
* LS_FIELDCAT-COL_POS = 9.
* LS_FIELDCAT-FIELDNAME = 'KRAUS'.
* LS_FIELDCAT-SELTEXT_M = 'CRED.infonumber'.
* APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 9.
LS_FIELDCAT-FIELDNAME = 'VALUE_NEW'.
LS_FIELDCAT-SELTEXT_M = 'Current'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 10.
LS_FIELDCAT-FIELDNAME = 'VALUE_OLD'.
LS_FIELDCAT-SELTEXT_M = 'Base(Approved)'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 11.
LS_FIELDCAT-FIELDNAME = 'USERNAME'.
LS_FIELDCAT-SELTEXT_M = 'Username'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 12.
LS_FIELDCAT-FIELDNAME = 'UDATE'.
LS_FIELDCAT-SELTEXT_M = 'CRE.DATE OF CHNG.DOC'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 13.
LS_FIELDCAT-FIELDNAME = 'CTLPC'.
LS_FIELDCAT-SELTEXT_M = 'Risk Category'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 14.
LS_FIELDCAT-FIELDNAME = 'PERCENTAGE1'.
LS_FIELDCAT-SELTEXT_M = 'Percentage%'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 15.
LS_FIELDCAT-FIELDNAME = 'ZZUSER'.
LS_FIELDCAT-SELTEXT_M = 'Changed by'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 16.
LS_FIELDCAT-FIELDNAME = 'CRLI_CEXP'.
LS_FIELDCAT-SELTEXT_M = 'To Be Utalized'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 18.
LS_FIELDCAT-FIELDNAME = 'COUNT3'.
LS_FIELDCAT-SELTEXT_M = 'HOW MANY TIMES CHANGED'.
APPEND LS_FIELDCAT TO IT_FIELDCAT.
ENDFORM. " FIELDCAT_INIT
*-----------------------------------------------------------------
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGE
*&----------------------------------------------------------------
*& Form EVENTTAB_BUILD
*&----------------------------------------------------------------
FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GT_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*& Form set_pf_status
*&---------------------------------------------------------------------*
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ZZSTANDARD' EXCLUDING '&UMC'.
ENDFORM. "SET_PF_STATUS
03-25-2013 12:11 PM
Hi Priya,
In count i have value 3,
count internal table it_count, wa is wa_count
my final table internal table is it_final wa is wa_final in this final table count field name is FCOUNT
below iam adding my complete pgm where i have write ur coding, please tell me bcz iam new to sap,
I was not able to find the IT_COUNT table in the code that you have given. However below is the sample code.
LOOP AT IT_FINAL INTO WA_FINAL.
READ TABLE IT_COUNT INTO WA_COUNT WITH KEY
IF SY-SUBRC = 0.
WA_FINAL-FCOUNT = WA_COUNT-COUNT.
MODIFY IT_FINAL FROM WA_FINAL.
ENDIF.
ENDLOOP.
Hope this helps.
Thanks,
Tooshar Bendale
03-26-2013 3:53 AM
hi thank u, it is working
changed by how many times change
MD 3
MD 3
MD 3 i got output like this,
but my requirement not like this i will show below
changedby how many times change
MD
MD
MD 3
like this i want to get output.
03-26-2013 3:53 AM
hi thank u, it is working
changed by how many times change
MD 3
MD 3
MD 3 i got output like this,
but my requirement not like this i will show below
changedby how many times change
MD
MD
MD 3
like this i want to get output.
03-25-2013 6:13 AM
Hi priya,
Check the below sample code.
report ztemp.
types: begin of ty_vbap,
vbeln type vbeln_va,
posnr type posnr_va,
netwr type netwr_ap,
end of ty_vbap.
data: it_vbap type table of ty_vbap,
wa_vbap type ty_vbap.
data: count type i.
select vbeln posnr netwr from vbap into table it_vbap up to 20 rows.
sort it_vbap by vbeln posnr.
loop at it_vbap into wa_vbap.
write:/ sy-tabix,
wa_vbap-vbeln,
wa_vbap-posnr,
wa_vbap-netwr.
endloop.
uline.
write:/ 'Your Required Output'.
skip 1.
loop at it_vbap into wa_vbap.
count = count + 1.
at end of vbeln.
sum.
write:/ wa_vbap-vbeln,
wa_vbap-netwr,
count.
clear count.
endat.
endloop.
Regards,
Madhumahesh.
03-25-2013 6:46 AM
03-25-2013 7:55 AM
Hi priya, check the above code , I am making few changes for passing the values to alv.
loop at it_vbap into wa_vbap.
count = count + 1.
at end of vbeln.
sum.
wa_itab-vbeln = wa_vbap-vbeln.
wa_itab-netwr = wa_vbap-netwr.
wa_itab-count = count.
append wa_itab to it_itab.
clear: wa_itab, count.
endat.
endloop.
now pass the it_tab to alv.
regards,
Madhumahesh.
03-26-2013 4:15 AM
Hi priya,
Why are you using count ? try using wa_final-count.
first clear wa_final-count before the loop "LOOP AT IT_FINAL1 INTO WA_FINAL1"
and the use wa_final-count instead of count.
Regards,
Madhumahesh.
03-26-2013 4:35 AM