Skip to Content
avatar image
Former Member

can we send multiple fields in AT END OF statement.

Hi,

can we send multiple fields in AT END OF statement.

for example ...at end of banfn bnfpo.

i nee the two fields at the same time.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

5 Answers

  • Sep 14, 2009 at 04:19 PM

    Hi,

    Statements AT FIRST,NEW,LAST,END OF compare all the fields on the right of the field specified, for example you have a structure like:

    FIELD1,

    FIELD2,

    FIELD3,

    FIELD4

    Stamement AT END OF FIELD3, checks for the last triple FIELD group FIELD1,FIELD2, FIELD3; so if you wanna check the last banfn bnfpo record use a structure with this two field at the begginnig of your itab structure.

    DATA: BEGIN OF lt_itab,
    banfn TYPE BANFN,
    bnfpo TYPE BNFPO,
    "any other fields
    END OF lt_itab.
    
    "move your itab to the new itab
    
    SORT  lt_itab BY banfn bnfpo.
    
    LOOP AT lt_itab ASSIGNING <ls_itab>.
    
    AT END OF bnfpo.
    "you code
    ENDAT.
    ENDLOOP.

    This is a pseudo code, there could be some syntax errors.

    Regards

    Ivan

    Add comment
    10|10000 characters needed characters exceeded

    • HI,

      Thanks Ivan, I use the same concept here.

      To Describe it in Real world example I have One Program to clear "At END".

      To count GRN in respect to gate entery first it depands on exise than on challan

      and at last it depend on PO number.

      REPORT PROGRAM

      REPORT  ZMM_GRN_DOC_PRINT.

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

      *          STRUCTURES          *

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

      TYPES : BEGIN OF ty_head,

                genum TYPE zgenum1,

                crdat TYPE erdat,

                crzet TYPE zrzet,

                dname TYPE zdname,

                truck TYPE ztruck,

               END OF ty_head,

               BEGIN OF ty_makt,

                 matnr TYPE matnr,

                 maktx TYPE maktx,

               END OF ty_makt,

               BEGIN OF ty_marm,

                 matnr TYPE matnr,

                 meinh TYPE meinh,

               END OF ty_marm,

               BEGIN OF ty_ekko,

                 ebeln TYPE ebeln,

                 aedat TYPE aedat,

               END OF ty_ekko ,

               BEGIN OF ty_final,

      *          exinv TYPE j_1irdoc1,

                 chlno TYPE zchalno,

                 ebeln TYPE ebeln,

                 exinv TYPE j_1irdoc1,

                 matnr TYPE matnr,

                 chmen TYPE zchmen,

                 invno TYPE vbeln_vf,

                 ebelp TYPE ebelp,

                 exstu TYPE zexstu,

                 remge TYPE zremge,

                 maktx TYPE maktx,

                 meinh TYPE meinh,

                 aedat TYPE aedat,

                 sr_no type sy-tabix,

                 wbill type zwbill,

                 chldt type zchldt,

               END OF ty_final.

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

      *          WORK AREA           *

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

      DATA : wa_head TYPE zmm_head_ge,

              it_makt TYPE STANDARD TABLE OF ty_makt,

              wa_makt TYPE ty_makt,

              it_marm TYPE STANDARD TABLE OF ty_marm,

              wa_marm TYPE ty_marm,

              it_ekko TYPE STANDARD TABLE OF ty_ekko,

              wa_ekko TYPE ty_ekko,

              it_item TYPE STANDARD TABLE OF zgate_item with header line,

              wa_item TYPE zgate_item ,

              it_final TYPE STANDARD TABLE OF ty_final with header line,

              wa_final TYPE ty_final ,

              it_final1 type STANDARD TABLE of zmm_item_ge with header line,

              wa_final1 type zmm_item_ge,

      *       it_final1 type standard table of ty_final1 with header line,

      *       wa_final1 type ty_final1,

              lv_adr1 TYPE zadr1,

              lv_adr2 TYPE zadr1,

              lv_adr3 TYPE zadr1,

              gv_fm_name TYPE rs38l_fnam.

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

      *      SELECTION-SCREEN        *

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

      SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

      PARAMETERS : p_gate  TYPE zgenum1 OBLIGATORY.

      SELECTION-SCREEN END OF BLOCK b1.

      START-OF-SELECTION .

         PERFORM fetch_data.

         PERFORM display_data.

      *&---------------------------------------------------------------------*

      *&      Form  FETCH_DATA

      *&---------------------------------------------------------------------*

      *       text

      *----------------------------------------------------------------------*

      FORM fetch_data .

      ************ HEADER LEVEL DATA

         SELECT SINGLE genum

                       crdat

                       crzet

                       dname

                       truck

                       gesid

                  FROM zgate_head

                  INTO wa_head

                  WHERE genum EQ p_gate .

         IF sy-subrc EQ 0.

           SELECT SINGLE adr1

                         adr2

                         adr1 INTO (lv_adr1,

                                    lv_adr2,

                                    lv_adr3)

               FROM zsys_res

               WHERE zsysipadd = wa_head-gesid .

      ************ ITEM LEVEL DATA

           SELECT * FROM zgate_item

               INTO TABLE it_item

               WHERE genum EQ p_gate .

           IF sy-subrc EQ 0.

      ************ MATERIAL DESCRIPTION

             SELECT matnr maktx FROM makt

                       INTO TABLE it_makt

                       FOR ALL ENTRIES IN it_item

                       WHERE matnr EQ it_item-matnr .

      ************ UOM ON THE BASIS OF MATERIAL

             SELECT matnr meinh FROM marm

                       INTO TABLE it_marm

                       FOR ALL ENTRIES IN it_item

                       WHERE matnr EQ it_item-matnr .

      *********** DATE FROM EKKO

             SELECT ebeln aedat FROM ekko

                     INTO TABLE it_ekko

                     FOR ALL ENTRIES IN it_item

                     WHERE ebeln EQ it_item-ebeln .

      ********** EXTRACT DATA FROM ALL TABLES AND PUT INTO A SINGLE TABLE

             LOOP AT it_item INTO wa_item.

               wa_final-sr_no = sy-tabix .

               MOVE-CORRESPONDING wa_item TO wa_final.

               READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_item-matnr .

               IF sy-subrc EQ 0.

                 wa_final-maktx = wa_makt-maktx.

               ENDIF.

               READ TABLE it_marm INTO wa_marm WITH KEY matnr = wa_item-matnr.

               IF sy-subrc EQ 0.

                 wa_final-meinh = wa_marm-meinh.

               ENDIF.

               READ TABLE it_ekko INTO wa_ekko WITH KEY ebeln = wa_item-ebeln .

               IF sy-subrc EQ 0.

                 wa_final-aedat = wa_ekko-aedat.

               ENDIF.

               APPEND wa_final TO it_final.

             ENDLOOP.

           ENDIF.

         ENDIF.

      ENDFORM.                    " FETCH_DATA

      *&---------------------------------------------------------------------*

      *&      Form  DISPLAY_DATA

      *&---------------------------------------------------------------------*

      *       text

      *----------------------------------------------------------------------*

      FORM display_data .

        data: control type ssfctrlop,

              ls_output  TYPE ssfcompop,

             ls_param type SSFCTRLOP.

           CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

             EXPORTING

               formname                 = 'ZMM_GRN_DOC_PRINT'

      *       VARIANT                  = ' '

      *       DIRECT_CALL              = ' '

            IMPORTING

             FM_NAME                    = GV_FM_NAME

            EXCEPTIONS

              NO_FORM                   = 1

              NO_FUNCTION_MODULE        = 2

              OTHERS                    = 3

                     .

      if sy-subrc <> 0.

            MESSAGE  ID sy-msgid TYPE sy-msgty NUMBER sy-msgno  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .

      ENDIF.

            control-no_dialog = 'X'.

            control-preview   = 'X'.

            control-no_open   = 'X'.

            control-no_close  = 'X'.

      *   ls_out_control-TDNOPREV = 'X'.

      *   ls_out_control-TDIEXIT = 'X'.

      *   ls_out_control-TDIMMED = 'X'.

      *   ls_out_control-TDNEWID = 'X'.

      *   ls_param-NO_DIALOG = 'X'.

            CALL FUNCTION 'SSF_OPEN'

             EXPORTING

      *        ARCHIVE_PARAMETERS       =

      *        USER_SETTINGS            = 'X'

      *        MAIL_SENDER              =

      *        MAIL_RECIPIENT           =

      *        MAIL_APPL_OBJ            =

      *        OUTPUT_OPTIONS           =

               CONTROL_PARAMETERS       = CONTROL

      *      IMPORTING

      *        JOB_OUTPUT_OPTIONS       =

             EXCEPTIONS

               FORMATTING_ERROR         = 1

               INTERNAL_ERROR           = 2

               SEND_ERROR               = 3

               USER_CANCELED            = 4

               OTHERS                   = 5

                      .

            IF sy-subrc <> 0.

      * Implement suitable error handling here

            ENDIF.

          LOOP AT IT_FINAL.

            MOVE-CORRESPONDING IT_FINAL TO IT_FINAL1.

            APPEND IT_FINAL1.

      *          AT END OF : ebeln, chlno , exinv.

               AT END OF : exinv, chlno , ebeln.

      *      CALL FUNCTION '/1BCDWB/SF00000268'

              CALL FUNCTION GV_FM_NAME

              EXPORTING

                CONTROL_PARAMETERS          = CONTROL

                OUTPUT_OPTIONS              = ls_output

                 wa_head                    = wa_head

                 lv_adr1                    = lv_adr1

                 lv_adr2                    = lv_adr2

                 lv_adr3                    = lv_adr3

               TABLES

                 it_final                   = it_final1[]

              EXCEPTIONS

                FORMATTING_ERROR           = 1

                INTERNAL_ERROR             = 2

                SEND_ERROR                 = 3

                USER_CANCELED              = 4

                OTHERS                     = 5

                       .

             IF sy-subrc <> 0.

          MESSAGE  ID sy-msgid TYPE sy-msgty NUMBER sy-msgno  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .

             ENDIF.

             REFRESH IT_FINAL1."

              ENDAT.

              ENDAT.

              ENDAT.

             ENDLOOP.

      ***********************************JHA******

      *      LOOP AT IT_FINAL.

      *     MOVE-CORRESPONDING IT_FINAL TO IT_FINAL1.

      *     APPEND IT_FINAL1.

      *

      *          AT END OF ebeln.", chlno , ebelp.

      *

      **AT END OF chlno.

      **      CALL FUNCTION '/1BCDWB/SF00000268'

      *       CALL FUNCTION GV_FM_NAME

      *       EXPORTING

      *         CONTROL_PARAMETERS          = CONTROL

      *         OUTPUT_OPTIONS              = ls_output

      *          wa_head                    = wa_head

      *          lv_adr1                    = lv_adr1

      *          lv_adr2                    = lv_adr2

      *          lv_adr3                    = lv_adr3

      *        TABLES

      *          it_final                   = it_final1[]

      *

      *       EXCEPTIONS

      *         FORMATTING_ERROR           = 1

      *         INTERNAL_ERROR             = 2

      *         SEND_ERROR                 = 3

      *         USER_CANCELED              = 4

      *         OTHERS                     = 5

      *                .

      *      IF sy-subrc <> 0.

      *   MESSAGE  ID sy-msgid TYPE sy-msgty NUMBER sy-msgno  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .

      *      ENDIF.

      *

      *      REFRESH IT_FINAL1."

      *

      *

      **ENDAT.

      **     ENDAT.

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

               CALL FUNCTION 'SSF_CLOSE'

      *       IMPORTING

      *         JOB_OUTPUT_INFO        =

      *       EXCEPTIONS

      *         FORMATTING_ERROR       = 1

      *         INTERNAL_ERROR         = 2

      *         SEND_ERROR             = 3

      *         OTHERS                 = 4

                       .

             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.

      Here I use the method of Ivan

      Best

      Abhijeet Kankani

  • Aug 03, 2013 at 09:46 AM

    HI,

    Thanks Ivan, I use the same concept here.

    To Describe it in Real world example I have One Program to clear "At END".

    To count GRN in respect to gate entery first it depands on exise than on challan

    and at last it depend on PO number.

    REPORT PROGRAM

    REPORT  ZMM_GRN_DOC_PRINT.

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

    *          STRUCTURES          *

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

    TYPES : BEGIN OF ty_head,

              genum TYPE zgenum1,

              crdat TYPE erdat,

              crzet TYPE zrzet,

              dname TYPE zdname,

              truck TYPE ztruck,

             END OF ty_head,

             BEGIN OF ty_makt,

               matnr TYPE matnr,

               maktx TYPE maktx,

             END OF ty_makt,

             BEGIN OF ty_marm,

               matnr TYPE matnr,

               meinh TYPE meinh,

             END OF ty_marm,

             BEGIN OF ty_ekko,

               ebeln TYPE ebeln,

               aedat TYPE aedat,

             END OF ty_ekko ,

             BEGIN OF ty_final,

    *          exinv TYPE j_1irdoc1,

               chlno TYPE zchalno,

               ebeln TYPE ebeln,

               exinv TYPE j_1irdoc1,

               matnr TYPE matnr,

               chmen TYPE zchmen,

               invno TYPE vbeln_vf,

               ebelp TYPE ebelp,

               exstu TYPE zexstu,

               remge TYPE zremge,

               maktx TYPE maktx,

               meinh TYPE meinh,

               aedat TYPE aedat,

               sr_no type sy-tabix,

               wbill type zwbill,

               chldt type zchldt,

             END OF ty_final.

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

    *          WORK AREA           *

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

    DATA : wa_head TYPE zmm_head_ge,

            it_makt TYPE STANDARD TABLE OF ty_makt,

            wa_makt TYPE ty_makt,

            it_marm TYPE STANDARD TABLE OF ty_marm,

            wa_marm TYPE ty_marm,

            it_ekko TYPE STANDARD TABLE OF ty_ekko,

            wa_ekko TYPE ty_ekko,

            it_item TYPE STANDARD TABLE OF zgate_item with header line,

            wa_item TYPE zgate_item ,

            it_final TYPE STANDARD TABLE OF ty_final with header line,

            wa_final TYPE ty_final ,

            it_final1 type STANDARD TABLE of zmm_item_ge with header line,

            wa_final1 type zmm_item_ge,

    *       it_final1 type standard table of ty_final1 with header line,

    *       wa_final1 type ty_final1,

            lv_adr1 TYPE zadr1,

            lv_adr2 TYPE zadr1,

            lv_adr3 TYPE zadr1,

            gv_fm_name TYPE rs38l_fnam.

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

    *      SELECTION-SCREEN        *

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

    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

    PARAMETERS : p_gate  TYPE zgenum1 OBLIGATORY.

    SELECTION-SCREEN END OF BLOCK b1.

    START-OF-SELECTION .

       PERFORM fetch_data.

       PERFORM display_data.

    *&---------------------------------------------------------------------*

    *&      Form  FETCH_DATA

    *&---------------------------------------------------------------------*

    *       text

    *----------------------------------------------------------------------*

    FORM fetch_data .

    ************ HEADER LEVEL DATA

       SELECT SINGLE genum

                     crdat

                     crzet

                     dname

                     truck

                     gesid

                FROM zgate_head

                INTO wa_head

                WHERE genum EQ p_gate .

       IF sy-subrc EQ 0.

         SELECT SINGLE adr1

                       adr2

                       adr1 INTO (lv_adr1,

                                  lv_adr2,

                                  lv_adr3)

             FROM zsys_res

             WHERE zsysipadd = wa_head-gesid .

    ************ ITEM LEVEL DATA

         SELECT * FROM zgate_item

             INTO TABLE it_item

             WHERE genum EQ p_gate .

         IF sy-subrc EQ 0.

    ************ MATERIAL DESCRIPTION

           SELECT matnr maktx FROM makt

                     INTO TABLE it_makt

                     FOR ALL ENTRIES IN it_item

                     WHERE matnr EQ it_item-matnr .

    ************ UOM ON THE BASIS OF MATERIAL

           SELECT matnr meinh FROM marm

                     INTO TABLE it_marm

                     FOR ALL ENTRIES IN it_item

                     WHERE matnr EQ it_item-matnr .

    *********** DATE FROM EKKO

           SELECT ebeln aedat FROM ekko

                   INTO TABLE it_ekko

                   FOR ALL ENTRIES IN it_item

                   WHERE ebeln EQ it_item-ebeln .

    ********** EXTRACT DATA FROM ALL TABLES AND PUT INTO A SINGLE TABLE

           LOOP AT it_item INTO wa_item.

             wa_final-sr_no = sy-tabix .

             MOVE-CORRESPONDING wa_item TO wa_final.

             READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_item-matnr .

             IF sy-subrc EQ 0.

               wa_final-maktx = wa_makt-maktx.

             ENDIF.

             READ TABLE it_marm INTO wa_marm WITH KEY matnr = wa_item-matnr.

             IF sy-subrc EQ 0.

               wa_final-meinh = wa_marm-meinh.

             ENDIF.

             READ TABLE it_ekko INTO wa_ekko WITH KEY ebeln = wa_item-ebeln .

             IF sy-subrc EQ 0.

               wa_final-aedat = wa_ekko-aedat.

             ENDIF.

             APPEND wa_final TO it_final.

           ENDLOOP.

         ENDIF.

       ENDIF.

    ENDFORM.                    " FETCH_DATA

    *&---------------------------------------------------------------------*

    *&      Form  DISPLAY_DATA

    *&---------------------------------------------------------------------*

    *       text

    *----------------------------------------------------------------------*

    FORM display_data .

      data: control type ssfctrlop,

            ls_output  TYPE ssfcompop,

           ls_param type SSFCTRLOP.

         CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

           EXPORTING

             formname                 = 'ZMM_GRN_DOC_PRINT'

    *       VARIANT                  = ' '

    *       DIRECT_CALL              = ' '

          IMPORTING

           FM_NAME                    = GV_FM_NAME

          EXCEPTIONS

            NO_FORM                   = 1

            NO_FUNCTION_MODULE        = 2

            OTHERS                    = 3

                   .

    if sy-subrc <> 0.

          MESSAGE  ID sy-msgid TYPE sy-msgty NUMBER sy-msgno  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .

    ENDIF.

          control-no_dialog = 'X'.

          control-preview   = 'X'.

          control-no_open   = 'X'.

          control-no_close  = 'X'.

    *   ls_out_control-TDNOPREV = 'X'.

    *   ls_out_control-TDIEXIT = 'X'.

    *   ls_out_control-TDIMMED = 'X'.

    *   ls_out_control-TDNEWID = 'X'.

    *   ls_param-NO_DIALOG = 'X'.

          CALL FUNCTION 'SSF_OPEN'

           EXPORTING

    *        ARCHIVE_PARAMETERS       =

    *        USER_SETTINGS            = 'X'

    *        MAIL_SENDER              =

    *        MAIL_RECIPIENT           =

    *        MAIL_APPL_OBJ            =

    *        OUTPUT_OPTIONS           =

             CONTROL_PARAMETERS       = CONTROL

    *      IMPORTING

    *        JOB_OUTPUT_OPTIONS       =

           EXCEPTIONS

             FORMATTING_ERROR         = 1

             INTERNAL_ERROR           = 2

             SEND_ERROR               = 3

             USER_CANCELED            = 4

             OTHERS                   = 5

                    .

          IF sy-subrc <> 0.

    * Implement suitable error handling here

          ENDIF.

        LOOP AT IT_FINAL.

          MOVE-CORRESPONDING IT_FINAL TO IT_FINAL1.

          APPEND IT_FINAL1.

    *          AT END OF : ebeln, chlno , exinv.

             AT END OF : exinv, chlno , ebeln.

    *      CALL FUNCTION '/1BCDWB/SF00000268'

            CALL FUNCTION GV_FM_NAME

            EXPORTING

              CONTROL_PARAMETERS          = CONTROL

              OUTPUT_OPTIONS              = ls_output

               wa_head                    = wa_head

               lv_adr1                    = lv_adr1

               lv_adr2                    = lv_adr2

               lv_adr3                    = lv_adr3

             TABLES

               it_final                   = it_final1[]

            EXCEPTIONS

              FORMATTING_ERROR           = 1

              INTERNAL_ERROR             = 2

              SEND_ERROR                 = 3

              USER_CANCELED              = 4

              OTHERS                     = 5

                     .

           IF sy-subrc <> 0.

        MESSAGE  ID sy-msgid TYPE sy-msgty NUMBER sy-msgno  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .

           ENDIF.

           REFRESH IT_FINAL1."

            ENDAT.

            ENDAT.

            ENDAT.

           ENDLOOP.

    ***********************************JHA******

    *      LOOP AT IT_FINAL.

    *     MOVE-CORRESPONDING IT_FINAL TO IT_FINAL1.

    *     APPEND IT_FINAL1.

    *

    *          AT END OF ebeln.", chlno , ebelp.

    *

    **AT END OF chlno.

    **      CALL FUNCTION '/1BCDWB/SF00000268'

    *       CALL FUNCTION GV_FM_NAME

    *       EXPORTING

    *         CONTROL_PARAMETERS          = CONTROL

    *         OUTPUT_OPTIONS              = ls_output

    *          wa_head                    = wa_head

    *          lv_adr1                    = lv_adr1

    *          lv_adr2                    = lv_adr2

    *          lv_adr3                    = lv_adr3

    *        TABLES

    *          it_final                   = it_final1[]

    *

    *       EXCEPTIONS

    *         FORMATTING_ERROR           = 1

    *         INTERNAL_ERROR             = 2

    *         SEND_ERROR                 = 3

    *         USER_CANCELED              = 4

    *         OTHERS                     = 5

    *                .

    *      IF sy-subrc <> 0.

    *   MESSAGE  ID sy-msgid TYPE sy-msgty NUMBER sy-msgno  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .

    *      ENDIF.

    *

    *      REFRESH IT_FINAL1."

    *

    *

    **ENDAT.

    **     ENDAT.

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

             CALL FUNCTION 'SSF_CLOSE'

    *       IMPORTING

    *         JOB_OUTPUT_INFO        =

    *       EXCEPTIONS

    *         FORMATTING_ERROR       = 1

    *         INTERNAL_ERROR         = 2

    *         SEND_ERROR             = 3

    *         OTHERS                 = 4

                     .

           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.

    Here I use the method of Ivan

    Best

    Abhijeet Kankani

    Add comment
    10|10000 characters needed characters exceeded

  • Sep 14, 2009 at 01:24 PM

    Yes you can use multiple fields with AT END OF. Use either AND or OR for multiple field specification.

    Just figured it cannot be used.

    Regards,

    Vikranth

    Edited by: Vikranth.Reddy on Sep 14, 2009 6:59 PM

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Sep 14, 2009 at 01:27 PM

    Hi ,

    We cannot pass Multiple fields at end of .

    thanks,

    Venkat

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Sep 14, 2009 at 01:27 PM

    No it is not possible.

    But why you want that?

    suppose your itab structure is like

    BANFN BNFPO ...

    if you are using

    AT END OF BNFPO " i.e. right most field in the itab for which you want to check

    it will trigger if BNFPO is changed as well as BANFN is changed.

    I think it will solve your problem.

    Regards

    Shiba Prasad Dutta

    Add comment
    10|10000 characters needed characters exceeded