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: 

how to calculate the how many times changed?

Former Member
0 Kudos

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.  

15 REPLIES 15

former_member217544
Active Contributor
0 Kudos

Hi priya,

I think you can make use of 'at end' statements, to appear the value only for last line.

Regards,

Swarna

Former Member
0 Kudos

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

Former Member
0 Kudos

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

0 Kudos

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).

0 Kudos

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.

0 Kudos

This message was moderated.

0 Kudos

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(15TYPE 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

0 Kudos

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

0 Kudos

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.

0 Kudos

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.

koolspy_ultimate
Active Contributor
0 Kudos

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.

0 Kudos

iam using ALV_grid_display , then how to use write stetement

0 Kudos

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.

koolspy_ultimate
Active Contributor
0 Kudos

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.

0 Kudos

i send mail to you