Header function module

Hi
all
can any one suggest me the function module name for
displaying header on list or grid report .
only through the function module name

HI,
FM <b>'REUSE_ALV_COMMENTARY_WRITE'</b>
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM      = GD_REPID
            I_CALLBACK_TOP_OF_PAGE   = <b>'TOP-OF-PAGE' </b>
            I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
           i_grid_title           = outtext
            IS_LAYOUT               = GD_LAYOUT
            IT_FIELDCAT             = FIELDCATALOG[]
           it_special_groups       = gd_tabgroup
            IT_EVENTS                = GT_XEVENTS
            I_SAVE                  = 'X'
            IS_VARIANT              = Z_TEMPLATE
       TABLES
            T_OUTTAB                = IT_EKKO
       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.
FORM TOP-OF-PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY = LT_TOP_OF_PAGE.
       I_LOGO             = 'ENJOYSAP_LOGO'.
ENDFORM.
hope this helps,
do reward if it helps,
priya.

Similar Messages

  • SAVE_TEXT FUNCTION MODULE USAGE TO SAVE TEXT IN AN ORDER FORM HEADER

    Hello All,
    The user enters text in a text editor and I want to save the text in the form header using a function module SAVE_TEXT. I think this is the only one for saving the text in an order header text. Can anyone provide me a sample program to use this since I am getting an error VBBK EN language not found error , error while saving the text in the database, short dumping. Please let me know the experience of you folks
    Thanks

    Chk this thread,,sample code.
    SAVE_TEXT FUNCTION MODULE

  • Function module to find wheather a user is heading any Org unit

    Function module to find wheather a user is heading any Org unit
    Hi Experts,
    I need to know if a user(SY-UNAME) is heading any Org unit(Check box marked for Head of own organisational unit in TCODE PPOMA_CRM for position in Basic Data). Is there any FM for this? I am trying to use FM RH_STRUC_GET but not able to find.
    Any help would be highly appreciated.

    Method  get_assignments_of_user of class cl_crm_ppm_um_toolkit solved this problem.

  • I need a Functional module to get the header material from the component .

    Dear Guru's
    Please help me .
    I need a name of the Functional module to get the header material from the component .
    As in if I put the Component in the Input I should get ALL the Main header materials using this Component.
    Regards,
    Roshan Lilaram Wadhwani.

    This was not answered

  • Function Module to Edit Billing Document Header (table VBRK)

    Hi all,
    Can someone tell me if there is a function module that can edit the billing document header please?  I do not need to created the billing document, it already exists.  I just need to edit specific fields.
    Many thanks.

    The requirement is to update these 2 fields in the table VBRK:
    BSTNK_VF (customer po number)
    ZUONR (assignment number)
    The client uses these 2 fields for non-standard purposes.
    Actually I was already trying to use the FM RV_INVOICE_DOCUMENT_UPDATE, but I am unable to make it work, for some reason. 
    For that function, I only passed VBRK as table, nothing else.  Specifically, I retrieved the header from VBRK, modify the 2 fields, then pass it to the VBRK table parameter of the function.

  • Adding a new conditon on head via function modul?

    Hi,
    is there a way to add a condition to an order via function module? I mean in customizing we have maintained the calc scheme (and everything else) and assign it to the order. What we want is to add the new condition type to the head of the order via function module. The scenario is as follows:
    We create an order and have on the header a field for a value. If you type a value in the field and press enter the condition should be created and calculatetd. The result is given in the condition tab of the order on header level.
    We try to not do a modifictaion. therefore i am looking for a function module. Is there someone who could help?
      thanks and regards,
           Ming

    Why can't this be done by the pricing configuration?
    There are also pricing user exits available, which are not modifications and exist for this purpose exactly (i.e. when for some reason configuration alone is not enough). See the list here:
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/erplo/sdUserexits

  • Header Pricing conditions in BAPI function module

    I am using BAPI function module BAPI_SALESDOCU_CREATEFROMDATA1 to create sales orders through program.
    It is working fine with item level pricing conditions.
    But my requirement is ... I need to update few pricing conditon types in item level and one in header level.
    Could you please help me where I need to pass header pricing conditions. Please help me.
            CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
              EXPORTING
                SALESDOCUMENT             = SALESDOCUMENT
                SALES_HEADER_IN           = SALES_HEADER_IN
              SALES_HEADER_INX          =
              SENDER                    =
                BINARY_RELATIONSHIPTYPE   = 'VORL'
              INT_NUMBER_ASSIGNMENT     = ' '
              IMPORTING
                SALESDOCUMENT_EX          = SALESDOCUMENT_EX
              TABLES
                RETURN                    = RETURN
                SALES_ITEMS_IN            = SALES_ITEMS_IN
              SALES_ITEMS_INX           =
                SALES_PARTNERS            = SALES_PARTNERS
                SALES_SCHEDULES_IN        = SALES_SCHEDULES_IN
              SALES_SCHEDULES_INX       =
                SALES_CONDITIONS_IN       = SALES_CONDITIONS_IN.
              SALES_CFGS_REF            =
              SALES_CFGS_INST           =
              SALES_CFGS_PART_OF        =
              SALES_CFGS_VALUE          =
              SALES_CFGS_BLOB           =
              SALES_CCARD               =
              KEY_TABLE                 =
    Thanks in advance.
    Raghu

    If the correct configuration allows for manual entry of the condition type you want to populate, You can map your value using
    ' ORDER_CONDITIONS_IN'  . If item level map line number, cond step number of the condition type in your pricing procedure, your condition type you are using,  condition value you are sending into the system,  currency, and cond unit. If it is a header condition, then send in 000000 as the item number.   You can also consider using BAPI_SALESORDER_CREATEFROMDAT2

  • Function modules related to header and item GUID

    Hi,
    Please tell me the function modules related to header and item GUID.
    Thanq
    brahmaji

    You will need to be clearer about what you want to do. Try searching for function modules with names like "GUID". Also try searching forums first.
    Cheers
    Graham Robbo

  • Function Module to update the sales order header status

    Hi,
      I am looking for a function module to update the Sales order header status.
      Pls. let me know if anybody has used any FM to update the SO status.
    Thanks,

    By mentioning status do you mean Object status or Document status??
    For Object status you may use FM: STATUS_MAINTAIN
    For document status it changes according to flow.
    Regards
    Eswar

  • How to attached class or function module in FD03

    Hi Guys
    I want to attached CL_ATTACHMENT_LIST for retriving attachment list from fd03 please help to attached the function module in my program?
    regards
    Piroz
    report zfir_aged_debtors no standard page heading
                             line-size 255.
    Type group
    type-pools:
      slis.                        " ALV types
    Tables
    tables:
      adrc,               " Addresses
      bsad,               " Accounting: Customer secondary index (Cleared)
      bsid,               " Accounting: Customer secondary index (Open)
      kna1,               " Customer master: General data
      knkk,               " Customer master: Credit management
      knvk.               " Customer master: Contact persons
    Types
    types:
      begin of ty_bsadbsid,
        bukrs like bsad-bukrs,              " Company code
        kunnr like bsad-kunnr,              " Customer
        gjahr like bsad-gjahr,              " Fiscal year
        belnr like bsad-belnr,              " Accounting document number
        buzei like bsad-buzei,              " Line item
        budat like bsad-budat,              " Posting date
        bldat like bsad-bldat,              " Document date
        waers like bsad-waers,              " Currency
        xblnr like bsad-xblnr,              " Reference
        shkzg like bsad-shkzg,              " Debit/credit indicator
        dmbtr like bsad-dmbtr,              " Amount
        zfbdt like bsad-zfbdt,              " Baseline date for due date
                                            " calculation
        zbd1t like bsad-zbd1t,              " Cash discount days 1
        zbd2t like bsad-zbd2t,              " Cash discount days 2
        zbd3t like bsad-zbd3t,              " Net payment terms period
        rebzg like bsad-rebzg,              " Number of the invoice
        rebzt like bsad-rebzt,              " Follow on document type
      end of ty_bsadbsid,
      ty_it_bsadbsid type ty_bsadbsid occurs 0,
      begin of ty_merged,
        kunnr      like kna1-kunnr,         " Customer number
        name1      like adrc-name1,         " Name
        city1      like adrc-city1,         " City
        post_code1 like adrc-post_code1,    " Post code
        street     like adrc-street,        " Street
        house_num1 like adrc-house_num1,    " House number
        tel_number like adrc-tel_number,    " Telephone number
        fax_number like adrc-fax_number,    " Fax number
        namev      like knvk-namev,         " First name
        namew      like knvk-name1,         " Last name
        telf1      like knvk-telf1,         " Telephone number
        klimk      like knkk-klimk,         " Credit limit
        skfor      like knkk-skfor,         " Total receivables
        total      like bsad-dmbtr,         " Total amount
        rast1      like bsad-dmbtr,         " Amount period 1
        rast2      like bsad-dmbtr,         " Amount period 2
        rast3      like bsad-dmbtr,         " Amount period 3
        rast4      like bsad-dmbtr,         " Amount period 4
        rast5      like bsad-dmbtr,         " Amount period 5
        rast6      like bsad-dmbtr,         " Amount period 6
      end of ty_merged,
      ty_it_merged type ty_merged occurs 0.
    Internal tables
    data:
    Internal table to store customer line items from BSAD and BSID
      it_bsadbsid type ty_it_bsadbsid,
    Internal table to store field catalog for ALV function call
      it_fieldcat type slis_t_fieldcat_alv,
    Internal table to store summarised data for report output
      it_merged   type ty_it_merged.
    Structures
    data:
    Display variant structures
      st_tvariant  like disvariant,
      st_variant   like disvariant.
    Constants
    constants:
      co_delim_dash    type c
                       value '-',
      co_false         type c                      " False
                       value space,
      co_koart_d       like faede-koart            " Customer account type
                       value 'D',
      co_save_u        type c                      " User display variant
                       value 'U',                  " saving allowed.
      co_shkzg_h       like bsid-shkzg             " Debit/Credit indicator
                       value 'H',                  " for credit
      co_shkzg_s       like bsid-shkzg             " Debit/Credit indicator
                       value 'S',                  " for debit
      co_selected      type c                      " Value of selected radio
                       value 'X',                  " button or checkbox
      co_true          type c                      " True
                       value co_selected.
    Variables
    data:
      va_exit          type c.
    Selection screen definition
    selection-screen: begin of block b1 with frame title text-001.
    select-options:
      s_kunnr for bsad-kunnr.                     " Customer number
    parameters:
      p_kkber like knkk-kkber,                    " Credit control area
      p_pafkt like knvk-pafkt,                    " Contact function
      p_datum like sy-datum.                      " Report date
    selection-screen: begin of line,
                      comment 01(30) text-006,
                      position pos_low.
    parameters:
      rastbis1 like rfpdo1-allgrogr               " Due date sorted 1
               default '000',
      rastbis2 like rfpdo1-allgrogr               " Due date sorted 2
               default '000',
      rastbis3 like rfpdo1-allgrogr               " Due date sorted 3
               default '000',
      rastbis4 like rfpdo1-allgrogr               " Due date sorted 4
               default '000',
      rastbis5 like rfpdo1-allgrogr               " Due date sorted 5
               default '000'.
    selection-screen: end of line.
    selection-screen: end of block b1,
                      begin of block b2 with frame title text-002.
    parameters:
      p_varint like disvariant-variant.           " Display variant.
    selection-screen: end of block b2.
    Initialisation
    initialization.
    Provide default periods for due date sorted list.
      rastbis1 = 0.
      rastbis2 = 30.
      rastbis3 = 60.
      rastbis4 = 90.
      rastbis5 = 120.
    Default report date to current.
      p_datum = sy-datlo.
    Default credit control area to BP01.
      p_kkber = 'BP01'.
    At selection screen on value request for
    at selection-screen on value-request for p_varint.
    Provide display variant list for this program.
      call function 'REUSE_ALV_VARIANT_F4'
        exporting
          is_variant = st_variant
          i_save     = co_save_u
        importing
          e_exit     = va_exit
          es_variant = st_tvariant
        exceptions
          not_found  = 2.
      if sy-subrc eq 2.
        message id sy-msgid type 'S'
                number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      else.
        if va_exit eq space.
          st_variant = st_tvariant.
          p_varint = st_tvariant-variant.
        endif.
      endif.
    At selection screen
    at selection-screen.
    Load display variant.
      if not p_varint is initial.
        move st_variant to st_tvariant.
        move p_varint to st_tvariant-variant.
        call function 'REUSE_ALV_VARIANT_EXISTENCE'
          exporting
            i_save     = co_save_u
          changing
            cs_variant = st_tvariant.
        st_variant = st_tvariant.
      else.
        clear st_variant.
        st_variant-report = sy-repid.
      endif.
      if p_kkber is initial.
      Ensure credit control area is specified.
        message e000(zgen) with 'Credit control area must be specified'.
      endif.
      if p_pafkt is initial.
      Ensure contact person function is specified.
        message e000(zgen) with 'Contact person function must be specified'.
      endif.
    Start of selection
    start-of-selection.
    Extract open customer items from BSID
      select bukrs kunnr gjahr belnr buzei budat bldat waers xblnr shkzg
             dmbtr zfbdt zbd1t zbd2t zbd3t rebzg rebzt
             from  bsid
             into  table it_bsadbsid
             where kunnr in s_kunnr
             and   budat le p_datum.
    Extracct cleared customer items from BSAD
      select bukrs kunnr gjahr belnr buzei budat bldat waers xblnr shkzg
             dmbtr zfbdt zbd1t zbd2t zbd3t rebzg rebzt
             from  bsad
             appending table it_bsadbsid
             where kunnr in s_kunnr
             and   budat le p_datum
             and   augdt ge p_datum.
    Ensure that items were not selected twice while getting data from the
    open and cleared items tables (Only if transaction occured during
    report run).
      sort it_bsadbsid by bukrs belnr gjahr buzei.
      delete adjacent duplicates from it_bsadbsid
             comparing bukrs belnr gjahr buzei.
      if it_bsadbsid[] is initial.
      No data found for selection
        message s001(zgen).
        exit.
      endif.
    Merge data for report output
      perform merge_data tables it_bsadbsid
                                it_merged.
    Build field catalog
      perform build_field_catalog tables it_fieldcat.
    Output report via ALV
      perform output_report_via_alv tables it_fieldcat
                                           it_merged.
    *&      Form  merge_data
          text
    form merge_data  tables   pa_it_bsadbsid type ty_it_bsadbsid
                              pa_it_merged   type ty_it_merged.
    Local work areas
    data:
      lwa_bsadbsid type ty_bsadbsid,
      lwa_merged   type ty_merged.
    Local structures
    data:
      lst_faede    like faede.
    Local variables
    data:
      lva_daysover type i,
      lva_merged_tabix like sy-tabix.
      loop at pa_it_bsadbsid into lwa_bsadbsid.
      Lookup merged entry for customer
        clear lwa_merged.
        read table pa_it_merged into lwa_merged
                                with key kunnr = lwa_bsadbsid-kunnr
                                binary search.
        lva_merged_tabix = sy-tabix.
        if sy-subrc ne 0.
        Create new merged record for customer
          lwa_merged-kunnr = lwa_bsadbsid-kunnr.
        Get customer details from KNA1
          clear kna1.
          select single *
                 from   kna1
                 where  kunnr eq lwa_bsadbsid-kunnr.
        Get customer address details from ADRC
          clear adrc.
          select single *
                 from   adrc
                 where  addrnumber eq kna1-adrnr
                 and    date_from  le p_datum.
          lwa_merged-name1      = adrc-name1.
          lwa_merged-city1      = adrc-city1.
          lwa_merged-post_code1 = adrc-post_code1.
          lwa_merged-street     = adrc-street.
          lwa_merged-house_num1 = adrc-house_num1.
          lwa_merged-tel_number = adrc-tel_number.
          lwa_merged-fax_number = adrc-fax_number.
        Get credit limit details from KNKK
          clear knkk.
          select single *
                 from   knkk
                 where  kunnr eq lwa_bsadbsid-kunnr
                 and    kkber eq p_kkber.
          lwa_merged-klimk = knkk-klimk.
          lwa_merged-skfor = knkk-skfor.
        Get customer contact person details from KNVK
          clear knvk.
          select single *
                 from   knvk
                 where  kunnr eq lwa_bsadbsid-kunnr
                 and    pafkt eq p_pafkt.
          lwa_merged-namev = knvk-namev.
          lwa_merged-namew = knvk-name1.
          lwa_merged-telf1 = knvk-telf1.
          insert lwa_merged into pa_it_merged index lva_merged_tabix.
        endif.
      Interpret debit/credit indicator
        case lwa_bsadbsid-shkzg.
          when co_shkzg_h.
          Credit
            lwa_bsadbsid-dmbtr = 0 - lwa_bsadbsid-dmbtr.
          when co_shkzg_s.
          Debit
        endcase.
      Perform ageing
        clear lst_faede.
        move-corresponding lwa_bsadbsid to lst_faede.
        lst_faede-koart = co_koart_d.
        call function 'DETERMINE_DUE_DATE'
          exporting
            i_faede = lst_faede
          importing
            e_faede = lst_faede
          exceptions
            others  = 1.
        lva_daysover = p_datum - lst_faede-netdt.
      Accumulate total.
        add lwa_bsadbsid-dmbtr to lwa_merged-total.
        if lva_daysover le rastbis1.
          add lwa_bsadbsid-dmbtr to lwa_merged-rast1.
        else.
          if lva_daysover le rastbis2 or
             rastbis3 is initial.
            add lwa_bsadbsid-dmbtr to lwa_merged-rast2.
          else.
            if lva_daysover le rastbis3 or
               rastbis4 is initial.
              add lwa_bsadbsid-dmbtr to lwa_merged-rast3.
            else.
              if lva_daysover le rastbis4 or
                 rastbis5 is initial.
                add lwa_bsadbsid-dmbtr to lwa_merged-rast4.
              else.
                if lva_daysover le rastbis5.
                  add lwa_bsadbsid-dmbtr to lwa_merged-rast5.
                else.
                  add lwa_bsadbsid-dmbtr to lwa_merged-rast6.
                endif.
              endif.
            endif.
          endif.
        endif.
      Update the merged record
        modify pa_it_merged from lwa_merged index lva_merged_tabix.
      endloop.
    endform.                    " merge_data
    *&      Form  build_field_catalog
          text
    form build_field_catalog tables pa_it_fieldcat type slis_t_fieldcat_alv.
    Local work areas
      data:
        lwa_fieldcat   type slis_fieldcat_alv.
    --WG1K903216: Start Insert-
      data: v_datum type datum,
            v_mdmth type datum,
            v_datxt type string,
            v_noday type i.
    --WG1K903216: End Insert---
      refresh pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'KUNNR'.
      lwa_fieldcat-ref_tabname   = 'KNA1'.
      lwa_fieldcat-ref_fieldname = 'KUNNR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '1'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'NAME1'.
      lwa_fieldcat-ref_tabname   = 'ADRC'.
      lwa_fieldcat-ref_fieldname = 'NAME1'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '2'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'CITY1'.
      lwa_fieldcat-ref_tabname   = 'ADRC'.
      lwa_fieldcat-ref_fieldname = 'CITY1'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '3'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'POST_CODE1'.
      lwa_fieldcat-ref_tabname   = 'ADRC'.
      lwa_fieldcat-ref_fieldname = 'POST_CODE1'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '4'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'STREET'.
      lwa_fieldcat-ref_tabname   = 'ADRC'.
      lwa_fieldcat-ref_fieldname = 'STREET'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '5'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'HOUSE_NUM1'.
      lwa_fieldcat-ref_tabname   = 'ADRC'.
      lwa_fieldcat-ref_fieldname = 'HOUSE_NUM1'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '6'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'TEL_NUMBER'.
      lwa_fieldcat-ref_tabname   = 'ADRC'.
      lwa_fieldcat-ref_fieldname = 'TEL_NUMBER'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '7'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'FAX_NUMBER'.
      lwa_fieldcat-ref_tabname   = 'ADRC'.
      lwa_fieldcat-ref_fieldname = 'FAX_NUMBER'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '8'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'NAMEV'.
      lwa_fieldcat-ref_tabname   = 'KNVK'.
      lwa_fieldcat-ref_fieldname = 'NAMEV'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '9'.
      lwa_fieldcat-seltext_l     = 'Contact first name'.
      lwa_fieldcat-seltext_m     = 'Contact Fname'.
      lwa_fieldcat-seltext_s     = 'Ctct Fname'.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'NAMEW'.
      lwa_fieldcat-ref_tabname   = 'KNVK'.
      lwa_fieldcat-ref_fieldname = 'NAME1'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '10'.
      lwa_fieldcat-seltext_l     = 'Contact last name'.
      lwa_fieldcat-seltext_m     = 'Contact Lname'.
      lwa_fieldcat-seltext_s     = 'Ctxt Lname'.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'TELF1'.
      lwa_fieldcat-ref_tabname   = 'KNVK'.
      lwa_fieldcat-ref_fieldname = 'TELF1'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '11'.
      lwa_fieldcat-seltext_l     = 'Contact phone no.'.
      lwa_fieldcat-seltext_m     = 'Contact phone'.
      lwa_fieldcat-seltext_s     = 'Ctct Phne'.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'KLIMK'.
      lwa_fieldcat-ref_tabname   = 'KNKK'.
      lwa_fieldcat-ref_fieldname = 'KLIMK'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '12'.
      lwa_fieldcat-seltext_l     = 'Credit limit'.
      lwa_fieldcat-seltext_m     = 'Credit limit'.
      lwa_fieldcat-seltext_s     = 'Crdt limit'.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'SKFOR'.
      lwa_fieldcat-ref_tabname   = 'KNKK'.
      lwa_fieldcat-ref_fieldname = 'SKFOR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '13'.
      lwa_fieldcat-seltext_l     = 'Credit used'.
      lwa_fieldcat-seltext_m     = 'Credit used'.
      lwa_fieldcat-seltext_s     = 'Crdt used'.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'TOTAL'.
      lwa_fieldcat-ref_tabname   = 'BSAD'.
      lwa_fieldcat-ref_fieldname = 'DMBTR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '14'.
      lwa_fieldcat-seltext_l     = 'Total'.
      lwa_fieldcat-seltext_m     = 'Total'.
      lwa_fieldcat-seltext_s     = 'Total'.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'RAST1'.
      lwa_fieldcat-ref_tabname   = 'BSAD'.
      lwa_fieldcat-ref_fieldname = 'DMBTR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '15'.
    --WG1K903216: Start Delete-
    concatenate '<'
                 rastbis2
                 into lwa_fieldcat-seltext_l
                 separated by space.
    --WG1K903216: End Delete---
    --WG1K903216: Start Insert-
      clear: v_datum,
             v_datxt.
      v_noday = rastbis2.
    Always use the middle of the report month as a heading reference date.
      concatenate p_datum+0(6) '15' into v_mdmth.
      call function 'ZWAG_DATE_CALCULATOR'
        exporting  i_datum         = v_mdmth
                   i_noday         = v_noday
                   i_oprnd         = '+'
        importing  e_datum         = v_datum
        exceptions invalid_operand = 1.
      call function 'ZWAG_END_MONTH'
        exporting  i_datum         = v_datum
        importing  e_datum         = v_datum
                   e_datxt         = v_datxt
        exceptions invalid_date    = 1.
      concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
        separated by space.
    --WG1K903216: End Insert---
      lwa_fieldcat-seltext_m     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-seltext_s     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'RAST2'.
      lwa_fieldcat-ref_tabname   = 'BSAD'.
      lwa_fieldcat-ref_fieldname = 'DMBTR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '16'.
    --WG1K903216: Start Delete-
    concatenate rastbis1
                 rastbis2
                 into lwa_fieldcat-seltext_l
                 separated by co_delim_dash.
    --WG1K903216: End Delete---
    --WG1K903216: Start Insert-
      clear: v_datum,
             v_datxt.
      v_noday = rastbis1.
      call function 'ZWAG_DATE_CALCULATOR'
        exporting  i_datum         = v_mdmth
                   i_noday         = v_noday
                   i_oprnd         = '+'
        importing  e_datum         = v_datum
        exceptions invalid_operand = 1.
      call function 'ZWAG_END_MONTH'
        exporting  i_datum         = v_datum
        importing  e_datum         = v_datum
                   e_datxt         = v_datxt
        exceptions invalid_date    = 1.
      concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
        separated by space.
    --WG1K903216: End Insert---
      lwa_fieldcat-seltext_m     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-seltext_s     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'RAST3'.
      lwa_fieldcat-ref_tabname   = 'BSAD'.
      lwa_fieldcat-ref_fieldname = 'DMBTR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '17'.
    --WG1K903216: Start Delete-
    concatenate rastbis2
                 rastbis3
                 into lwa_fieldcat-seltext_l
                 separated by co_delim_dash.
    --WG1K903216: End Delete---
    --WG1K903216: Start Insert-
      clear: v_datum,
             v_datxt.
      v_noday = rastbis2.
      call function 'ZWAG_DATE_CALCULATOR'
        exporting  i_datum         = v_mdmth
                   i_noday         = v_noday
                   i_oprnd         = '-'
        importing  e_datum         = v_datum
        exceptions invalid_operand = 1.
      call function 'ZWAG_END_MONTH'
        exporting  i_datum         = v_datum
        importing  e_datum         = v_datum
                   e_datxt         = v_datxt
        exceptions invalid_date    = 1.
      concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
        separated by space.
    --WG1K903216: End Insert---
      lwa_fieldcat-seltext_m     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-seltext_s     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'RAST4'.
      lwa_fieldcat-ref_tabname   = 'BSAD'.
      lwa_fieldcat-ref_fieldname = 'DMBTR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '18'.
    --WG1K903216: Start Delete-
    concatenate rastbis3
                 rastbis4
                 into lwa_fieldcat-seltext_l
                 separated by co_delim_dash.
    --WG1K903216: End Delete---
    --WG1K903216: Start Insert-
      clear: v_datum,
             v_datxt.
      v_noday = rastbis3.
      call function 'ZWAG_DATE_CALCULATOR'
        exporting  i_datum         = v_mdmth
                   i_noday         = v_noday
                   i_oprnd         = '-'
        importing  e_datum         = v_datum
        exceptions invalid_operand = 1.
      call function 'ZWAG_END_MONTH'
        exporting  i_datum         = v_datum
        importing  e_datum         = v_datum
                   e_datxt         = v_datxt
        exceptions invalid_date    = 1.
      concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
        separated by space.
    --WG1K903216: End Insert---
      lwa_fieldcat-seltext_m     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-seltext_s     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'RAST5'.
      lwa_fieldcat-ref_tabname   = 'BSAD'.
      lwa_fieldcat-ref_fieldname = 'DMBTR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '19'.
    --WG1K903216: Start Delete-
    concatenate rastbis4
                 rastbis5
                 into lwa_fieldcat-seltext_l
                 separated by co_delim_dash.
    --WG1K903216: End Delete---
    --WG1K903216: Start Insert-
      clear: v_datum,
             v_datxt.
      v_noday = rastbis4.
      call function 'ZWAG_DATE_CALCULATOR'
        exporting  i_datum         = v_mdmth
                   i_noday         = v_noday
                   i_oprnd         = '-'
        importing  e_datum         = v_datum
        exceptions invalid_operand = 1.
      call function 'ZWAG_END_MONTH'
        exporting  i_datum         = v_datum
        importing  e_datum         = v_datum
                   e_datxt         = v_datxt
        exceptions invalid_date    = 1.
      concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
        separated by space.
    --WG1K903216: End Insert---
      lwa_fieldcat-seltext_m     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-seltext_s     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
      clear lwa_fieldcat.
      lwa_fieldcat-tabname       = 'PA_IT_MERGED'.
      lwa_fieldcat-fieldname     = 'RAST6'.
      lwa_fieldcat-ref_tabname   = 'BSAD'.
      lwa_fieldcat-ref_fieldname = 'DMBTR'.
      lwa_fieldcat-row_pos       = '1'.
      lwa_fieldcat-col_pos       = '20'.
    --WG1K903216: Start Delete-
    concatenate '>'
                 rastbis5
                 into lwa_fieldcat-seltext_l
                 separated by space.
    --WG1K903216: End Delete---
    --WG1K903216: Start Insert-
      clear: v_datum,
             v_datxt.
      v_noday = rastbis5.
      call function 'ZWAG_DATE_CALCULATOR'
        exporting  i_datum         = v_mdmth
                   i_noday         = v_noday
                   i_oprnd         = '-'
        importing  e_datum         = v_datum
        exceptions invalid_operand = 1.
      call function 'ZWAG_END_MONTH'
        exporting  i_datum         = v_datum
        importing  e_datum         = v_datum
                   e_datxt         = v_datxt
        exceptions invalid_date    = 1.
      concatenate 'Due By' v_datxt into lwa_fieldcat-seltext_l
        separated by space.
    --WG1K903216: End Insert---
      lwa_fieldcat-seltext_m     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-seltext_s     = lwa_fieldcat-seltext_l.
      lwa_fieldcat-ddictxt       = 'L'.
      append lwa_fieldcat to pa_it_fieldcat.
    endform.                    " build_field_catalog
    *&      Form  output_report_via_alv
          text
    form output_report_via_alv
                        tables pa_it_fieldcat type slis_t_fieldcat_alv
                               pa_it_merged   type ty_it_merged.
    Local variables
      data:
        lva_repid    like sy-repid,
        lva_formname type slis_formname.
      lva_repid = sy-repid.
      lva_formname = 'USER_COMMAND'.
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          i_callback_program      = lva_repid
          i_callback_user_command = lva_formname
          i_save                  = 'A'
          is_variant              = st_variant
          it_fieldcat             = pa_it_fieldcat[]
        tables
          t_outtab                = pa_it_merged
        exceptions
          program_error           = 1
          others                  = 2.
    endform.                    " output_report_via_alv

    Hi shiva
    Thanks for your help,
    Can you check this coding and revert me back ASAP Please.
    REPORT BDS_GOS_CONNECTION.
    DATA : logical_system LIKE BAPIBDS01-log_system.
           CLASSNAME LIKE BAPIBDS01-CLASSNAME
           OBJKEY LIKE SWOTOBJID-objkey.
    PARAMETERS: pa_lo_sys BAPIBDS01-log_system,
                pa_class like BPIBDS01-CLASSNAME,
                pa_objkey like swotobjidobjkey.
    AT SELECTION-SCREEN.
    CALL FUNCTION 'BDS_GOS_CONNECTIONS_GET'
             EXPORTING
                  bor_id             = bor_id
             IMPORTING
                  logical_sytem      = pa_lo_sys.
                  classname          = pa_class.
                  objkey            = pa_objkey.
             EXCEPTIONS
                  no_objects_found     = 1
                  internal_error       = 2
                  internal_gos_error   = 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.
    clear v_attno1.
    i_object1-typeid = 'BUS2012'.
    i_object1-catid  = 'BO'.
    i_object1-instid = i_yItem-docno.
    call method cl_gos_attachment_query=>count_for_object
       exporting
        is_object = i_object1
        ip_arl    = space
       receiving
        rt_stat   = i_stat1.
    read table i_stat1 into wa_stat1 index 1.
    if sy-subrc eq c_0.
        move wa_stat1-counter to v_attno1.
    endif.             
    CALL METHOD cl_gos_attachment_query=>count_for_object
    EXPORTING
    is_object = object
    ip_arl =    space
    RECEIVING
    rt_stat = lt_stat.
    READ TABLE lt_stat INDEX 1 into ls_stat.
    count = ls_stat-counter.
    *The object has to be a concatenation of your document, like this:
    CONCATENATE object-instid tab-gjahr INTO object-instid.
    ELSE.
    CONCATENATE tab-bukrs tab-belnr tab-gjahr INTO
    object-instid.
    ENDIF.

  • GUI_DOWNLOAD and UPLOAD Function Modules?

    Hi All,
    What exactly done by GUI_DOWNLOAD and UPLOAD Function Modules?
    Akshitha.

    What you exactly want know?
    Here is the Sap documentation for both FM:
    FU GUI_UPLOAD
    Short Text
    Upload for Data Provider
    Functionality
    The module loads a file from the PC to the server. Data can be transferred binarily or as text. Numbers and date fields can be interpreted according to the user settings.
    Example
    Binary upload: No conversion or interpretation
                begin of itab,
                      raw(255) type x,
                end of itab occurs 0.
               CALL FUNCTION 'GUI_UPLOAD'
               exporting
                  filetype =  'BIN'
                  filename = 'C:\DOWNLOAD.BIN'
               tables
                 data_tab = itab.
    Text upload
               begin of itab,
                     text(255) type c,
               end of itab occurs 0.
               CALL FUNCTION 'GUI_UPLOAD'
               exporting
                  filetype = 'ASC'
                  filename = 'C:\DOWNLOAD.TXT'
               tables
                 data_tab = itab.
    Parameters
    FILENAME
    FILETYPE
    HAS_FIELD_SEPARATOR
    HEADER_LENGTH
    READ_BY_LINE
    DAT_MODE
    CODEPAGE
    IGNORE_CERR
    REPLACEMENT
    CHECK_BOM
    VIRUS_SCAN_PROFILE
    NO_AUTH_CHECK
    FILELENGTH
    HEADER
    DATA_TAB
    Exceptions
    FILE_OPEN_ERROR
    FILE_READ_ERROR
    NO_BATCH
    GUI_REFUSE_FILETRANSFER
    INVALID_TYPE
    NO_AUTHORITY
    UNKNOWN_ERROR
    BAD_DATA_FORMAT
    HEADER_NOT_ALLOWED
    SEPARATOR_NOT_ALLOWED
    HEADER_TOO_LONG
    UNKNOWN_DP_ERROR
    ACCESS_DENIED
    DP_OUT_OF_MEMORY
    DISK_FULL
    DP_TIMEOUT
    Function Group
    SFES
    FU GUI_DOWNLOAD
    Short Text
    Download an Internal Table to the PC
    Functionality
    Data transfer of an internal table form the server to a file on the PC. The Gui_Download module replaces the obsolete modules Ws_Download and Download. The file dialog of the download module is available in the class Cl_Gui_Frontend_Services.
    Further information
    TYPE-POOLS: ABAP.
    Binary download table
    DATA: BEGIN OF line_bin,
             data(1024) TYPE X,
          END OF line_bin.
    DATA: data_tab_bin LIKE STANDARD TABLE OF line_bin.
    Ascii download table
    DATA: BEGIN OF line_asc,
             text(1024) TYPE C,
          END OF line_asc.
    DATA: data_tab_asc LIKE STANDARD TABLE OF line_asc.
    DAT download table
    DATA: BEGIN OF line_dat,
             Packed   TYPE P,
             Text(10) TYPE C,
             Number   TYPE I,
             Date     TYPE D,
             Time     TYPE T,
             Float    TYPE F,
             Hex(3)   TYPE X,
             String   TYPE String,
          END OF line_dat.
    DATA: data_tab_dat LIKE STANDARD TABLE OF line_dat.
    Get filename
    DATA: fullpath      TYPE String,
          filename      TYPE String,
          path          TYPE String,
          user_action   TYPE I,
          encoding      TYPE ABAP_ENCODING.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
       EXPORTING
         WINDOW_TITLE         = 'Gui_Download Demo'
         WITH_ENCODING        = 'X'
         INITIAL_DIRECTORY    = 'C:\'
      CHANGING
         FILENAME             = filename
         PATH                 = path
         FULLPATH             = fullpath
         USER_ACTION          = user_action
         FILE_ENCODING        = encoding
      EXCEPTIONS
         CNTL_ERROR           = 1
         ERROR_NO_GUI         = 2
         NOT_SUPPORTED_BY_GUI = 3
         others               = 4.
    IF SY-SUBRC <> 0.
      EXIT.
    ENDIF.
    IF user_action <> CL_GUI_FRONTEND_SERVICES=>ACTION_OK.
      EXIT.
    ENDIF.
    Download variables
    DATA: length TYPE I.
    Binary download
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                         = fullpath
           FILETYPE                         = 'BIN'
        IMPORTING
          FILELENGTH                       = length
        TABLES
          DATA_TAB                         = data_tab_bin
       EXCEPTIONS
         FILE_WRITE_ERROR                = 1
         NO_BATCH                         = 2
         GUI_REFUSE_FILETRANSFER         = 3
         INVALID_TYPE                     = 4
         NO_AUTHORITY                     = 5
         UNKNOWN_ERROR                   = 6
         HEADER_NOT_ALLOWED              = 7
         SEPARATOR_NOT_ALLOWED           = 8
         FILESIZE_NOT_ALLOWED            = 9
         HEADER_TOO_LONG                 = 10
         DP_ERROR_CREATE                 = 11
         DP_ERROR_SEND                   = 12
         DP_ERROR_WRITE                  = 13
         UNKNOWN_DP_ERROR                = 14
         ACCESS_DENIED                   = 15
         DP_OUT_OF_MEMORY                = 16
         DISK_FULL                        = 17
         DP_TIMEOUT                       = 18
         FILE_NOT_FOUND                  = 19
         DATAPROVIDER_EXCEPTION          = 20
         CONTROL_FLUSH_ERROR             = 21
         OTHERS                           = 22.
    Ascii download
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                         = fullpath
           FILETYPE                         = 'ASC'
        IMPORTING
          FILELENGTH                       = length
        TABLES
          DATA_TAB                         = data_tab_asc
       EXCEPTIONS
         FILE_WRITE_ERROR                = 1
         NO_BATCH                         = 2
         GUI_REFUSE_FILETRANSFER         = 3
         INVALID_TYPE                     = 4
         NO_AUTHORITY                     = 5
         UNKNOWN_ERROR                   = 6
         HEADER_NOT_ALLOWED              = 7
         SEPARATOR_NOT_ALLOWED           = 8
         FILESIZE_NOT_ALLOWED            = 9
         HEADER_TOO_LONG                 = 10
         DP_ERROR_CREATE                 = 11
         DP_ERROR_SEND                   = 12
         DP_ERROR_WRITE                  = 13
         UNKNOWN_DP_ERROR                = 14
         ACCESS_DENIED                   = 15
         DP_OUT_OF_MEMORY                = 16
         DISK_FULL                        = 17
         DP_TIMEOUT                       = 18
         FILE_NOT_FOUND                  = 19
         DATAPROVIDER_EXCEPTION          = 20
         CONTROL_FLUSH_ERROR             = 21
         OTHERS                           = 22.
    DAT download
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                         = fullpath
           FILETYPE                         = 'DAT'
        IMPORTING
          FILELENGTH                       = length
        TABLES
          DATA_TAB                         = data_tab_dat
       EXCEPTIONS
         FILE_WRITE_ERROR                = 1
         NO_BATCH                         = 2
         GUI_REFUSE_FILETRANSFER         = 3
         INVALID_TYPE                     = 4
         NO_AUTHORITY                     = 5
         UNKNOWN_ERROR                   = 6
         HEADER_NOT_ALLOWED              = 7
         SEPARATOR_NOT_ALLOWED           = 8
         FILESIZE_NOT_ALLOWED            = 9
         HEADER_TOO_LONG                 = 10
         DP_ERROR_CREATE                 = 11
         DP_ERROR_SEND                   = 12
         DP_ERROR_WRITE                  = 13
         UNKNOWN_DP_ERROR                = 14
         ACCESS_DENIED                   = 15
         DP_OUT_OF_MEMORY                = 16
         DISK_FULL                        = 17
         DP_TIMEOUT                       = 18
         FILE_NOT_FOUND                  = 19
         DATAPROVIDER_EXCEPTION          = 20
         CONTROL_FLUSH_ERROR             = 21
         OTHERS                           = 22.
    Parameters
    BIN_FILESIZE
    FILENAME
    FILETYPE
    APPEND
    WRITE_FIELD_SEPARATOR
    HEADER
    TRUNC_TRAILING_BLANKS
    WRITE_LF
    COL_SELECT
    COL_SELECT_MASK
    DAT_MODE
    CONFIRM_OVERWRITE
    NO_AUTH_CHECK
    CODEPAGE
    IGNORE_CERR
    REPLACEMENT
    WRITE_BOM
    TRUNC_TRAILING_BLANKS_EOL
    WK1_N_FORMAT
    WK1_N_SIZE
    WK1_T_FORMAT
    WK1_T_SIZE
    WRITE_EOL
    FILELENGTH
    DATA_TAB
    FIELDNAMES
    Exceptions
    FILE_WRITE_ERROR
    NO_BATCH
    GUI_REFUSE_FILETRANSFER
    INVALID_TYPE
    NO_AUTHORITY
    UNKNOWN_ERROR
    HEADER_NOT_ALLOWED
    SEPARATOR_NOT_ALLOWED
    FILESIZE_NOT_ALLOWED
    HEADER_TOO_LONG
    DP_ERROR_CREATE
    DP_ERROR_SEND
    DP_ERROR_WRITE
    UNKNOWN_DP_ERROR
    ACCESS_DENIED
    DP_OUT_OF_MEMORY
    DISK_FULL
    DP_TIMEOUT
    FILE_NOT_FOUND
    DATAPROVIDER_EXCEPTION
    CONTROL_FLUSH_ERROR
    Function Group
    SFES

  • Upload data from excel with vba by calling a function module

    Hello all,
    i have a problem with the function module "ALSM_EXCEL_TO_INTERNAL_TABLE". I will call this function module with vba to load data from excel to sap with a Buttonclick. I have copied this function module and set it remotable. But i can´t call it from excel.
    Can you give me some tips how can i
    upload data from excel with vba by click a button.
    The problem seems the function: call method cl_gui_frontend_services=>clipboard_import in the function module, because when i comment this function call the vba-call is true but no results. 
    How can I call the function module correct with vba?
    Thanks a lot for your tips!!!!
    Chris
    Message was edited by:
            Christoph Kirschner

    HI
    Uploading data directly from Excel file format
    * Upload data direct from excel.xls file to SAP
    REPORT ZEXCELUPLOAD.
    PARAMETERS: filename LIKE rlgrap-filename MEMORY ID M01,
                begcol TYPE i DEFAULT 1 NO-DISPLAY,
                begrow TYPE i DEFAULT 1 NO-DISPLAY,
                endcol TYPE i DEFAULT 100 NO-DISPLAY,
                endrow TYPE i DEFAULT 32000 NO-DISPLAY.
    * Tick don't append header
    PARAMETERS: kzheader AS CHECKBOX.
    DATA: BEGIN OF intern OCCURS 0.
            INCLUDE STRUCTURE  alsmex_tabline.
    DATA: END OF intern.
    DATA: BEGIN OF intern1 OCCURS 0.
            INCLUDE STRUCTURE  alsmex_tabline.
    DATA: END OF intern1.
    DATA: BEGIN OF t_col OCCURS 0,
           col LIKE alsmex_tabline-col,
           size TYPE i.
    DATA: END OF t_col.
    DATA: zwlen TYPE i,
          zwlines TYPE i.
    DATA: BEGIN OF fieldnames OCCURS 3,
            title(60),
            table(6),
            field(10),
            kz(1),
          END OF fieldnames.
    * No of columns
    DATA: BEGIN OF data_tab OCCURS 0,
           value_0001(50),
           value_0002(50),
           value_0003(50),
           value_0004(50),
           value_0005(50),
           value_0006(50),
           value_0007(50),
           value_0008(50),
           value_0009(50),
           value_0010(50),
           value_0011(50),
           value_0012(50),
           value_0013(50),
           value_0014(50),
           value_0015(50),
           value_0016(50),
           value_0017(50),
           value_0018(50),
           value_0019(50),
           value_0020(50),
           value_0021(50),
           value_0022(50),
           value_0023(50),
           value_0024(50),
           value_0025(50),
           value_0026(50),
           value_0027(50),
           value_0028(50),
           value_0029(50),
           value_0030(50),
           value_0031(50),
           value_0032(50),
           value_0033(50),
           value_0034(50),
           value_0035(50),
           value_0036(50),
           value_0037(50),
           value_0038(50),
           value_0039(50),
           value_0040(50),
           value_0041(50),
           value_0042(50),
           value_0043(50),
           value_0044(50),
           value_0045(50),
           value_0046(50),
           value_0047(50),
           value_0048(50),
           value_0049(50),
           value_0050(50),
           value_0051(50),
           value_0052(50),
           value_0053(50),
           value_0054(50),
           value_0055(50),
           value_0056(50),
           value_0057(50),
           value_0058(50),
           value_0059(50),
           value_0060(50),
           value_0061(50),
           value_0062(50),
           value_0063(50),
           value_0064(50),
           value_0065(50),
           value_0066(50),
           value_0067(50),
           value_0068(50),
           value_0069(50),
           value_0070(50),
           value_0071(50),
           value_0072(50),
           value_0073(50),
           value_0074(50),
           value_0075(50),
           value_0076(50),
           value_0077(50),
           value_0078(50),
           value_0079(50),
           value_0080(50),
           value_0081(50),
           value_0082(50),
           value_0083(50),
           value_0084(50),
           value_0085(50),
           value_0086(50),
           value_0087(50),
           value_0088(50),
           value_0089(50),
           value_0090(50),
           value_0091(50),
           value_0092(50),
           value_0093(50),
           value_0094(50),
           value_0095(50),
           value_0096(50),
           value_0097(50),
           value_0098(50),
           value_0099(50),
           value_0100(50).
    DATA: END OF data_tab.
    DATA: tind(4) TYPE n.
    DATA: zwfeld(19).
    FIELD-SYMBOLS: <fs1>.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                mask      = '*.xls'
                static    = 'X'
           CHANGING
                file_name = filename.
    START-OF-SELECTION.
      CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
           EXPORTING
                filename                = filename
                i_begin_col             = begcol
                i_begin_row             = begrow
                i_end_col               = endcol
                i_end_row               = endrow
           TABLES
                intern                  = intern
           EXCEPTIONS
                inconsistent_parameters = 1
                upload_ole              = 2
                OTHERS                  = 3.
      IF sy-subrc <> 0.
        WRITE:/ 'Upload Error ', SY-SUBRC.
      ENDIF.
    END-OF-SELECTION.
      LOOP AT intern.
        intern1 = intern.
        CLEAR intern1-row.
        APPEND intern1.
      ENDLOOP.
      SORT intern1 BY col.
      LOOP AT intern1.
        AT NEW col.
          t_col-col = intern1-col.
          APPEND t_col.
        ENDAT.
        zwlen = strlen( intern1-value ).
        READ TABLE t_col WITH KEY col = intern1-col.
        IF sy-subrc EQ 0.
          IF zwlen > t_col-size.
            t_col-size = zwlen.
    *                          Internal Table, Current Row Index
            MODIFY t_col INDEX sy-tabix.
          ENDIF.
        ENDIF.
      ENDLOOP.
      DESCRIBE TABLE t_col LINES zwlines.
      SORT intern BY row col.
      IF kzheader = 'X'.
        LOOP AT intern.
          fieldnames-title = intern-value.
          APPEND fieldnames.
          AT END OF row.
            EXIT.
          ENDAT.
        ENDLOOP.
      ELSE.
        DO zwlines TIMES.
          WRITE sy-index TO fieldnames-title.
          APPEND fieldnames.
        ENDDO.
      ENDIF.
      SORT intern BY row col.
      LOOP AT intern.
        IF kzheader = 'X'
        AND intern-row = 1.
          CONTINUE.
        ENDIF.
        tind = intern-col.
        CONCATENATE 'DATA_TAB-VALUE_' tind INTO zwfeld.
        ASSIGN (zwfeld) TO <fs1>.
        <fs1> = intern-value.
        AT END OF row.
          APPEND data_tab.
          CLEAR data_tab.
        ENDAT.
      ENDLOOP.
      CALL FUNCTION 'DISPLAY_BASIC_LIST'
           EXPORTING
                file_name     = filename
           TABLES
                data_tab      = data_tab
                fieldname_tab = fieldnames.
    *-- End of Program
    <b>Excel Upload Alternative - KCD_EXCEL_OLE_TO_INT_CONVERT</b>
    *Title : Excel Uploading
    TYPES:   BEGIN OF t_datatab,
             col1(25)  TYPE c,
             col2(30)  TYPE c,
             col3(30)  TYPE c,
             col4(30)  TYPE c,
             col5(30)  TYPE c,
             col6(30)  TYPE c,
             col7(30) TYPE c,
             col8(30)  TYPE c,
             col9(30)  TYPE c,
             col10(30)  TYPE c,
             col11(30)    TYPE c,
           END OF t_datatab.
    DATA: it_datatab TYPE STANDARD TABLE OF t_datatab INITIAL SIZE 0,
          wa_datatab TYPE t_datatab.
    Data : p_table type t_datatab occurs 0 with header line.
    DATA : gd_scol   TYPE i VALUE '1',
           gd_srow   TYPE i VALUE '1',
           gd_ecol   TYPE i VALUE '256',
           gd_erow   TYPE i VALUE '65536'.
    DATA: it_tab TYPE filetable,
          gd_subrc TYPE i.
    field-symbols : <fs>.
    *Selection screen definition
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS:  p_file LIKE rlgrap-filename
                   DEFAULT 'c:test.xls' OBLIGATORY.   " File Name
    SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      REFRESH: it_tab.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        EXPORTING
          window_title     = 'Select File'
          default_filename = '*.xls'
          multiselection   = ' '
        CHANGING
          file_table       = it_tab
          rc               = gd_subrc.
      LOOP AT it_tab INTO p_file.
    *    so_fpath-sign = 'I'.
    *    so_fpath-option = 'EQ'.
    *    append so_fpath.
      ENDLOOP.
    START-OF-SELECTION.
      PERFORM upload_excel_file TABLES   it_datatab
                                 USING   p_file
                                         gd_scol
                                         gd_srow
                                         gd_ecol
                                         gd_erow.
    * END-OF-SELECTION.
    END-OF-SELECTION.
      LOOP AT it_datatab INTO wa_datatab.
        WRITE:/ wa_datatab-col1,
                wa_datatab-col2,
                wa_datatab-col3,
                wa_datatab-col4,
                wa_datatab-col5,
                wa_datatab-col6,
                wa_datatab-col7,
                wa_datatab-col8,
                wa_datatab-col9,
                wa_datatab-col10,
                wa_datatab-col11.
      ENDLOOP.
    *&      Form  UPLOAD_EXCEL_FILE
    *       upload excel spreadsheet into internal table
    *      -->P_TABLE    Table to return excel data into
    *      -->P_FILE     file name and path
    *      -->P_SCOL     start column
    *      -->P_SROW     start row
    *      -->P_ECOL     end column
    *      -->P_EROW     end row
    FORM upload_excel_file TABLES   p_table
                           USING    p_file
                                    p_scol
                                    p_srow
                                    p_ecol
                                    p_erow.
      DATA : lt_intern TYPE  kcde_cells OCCURS 0 WITH HEADER LINE.
    * Has the following format:
    *             Row number   | Colum Number   |   Value
    *      i.e.     1                 1             Name1
    *               2                 1             Joe
      DATA : ld_index TYPE i.
    * Note: Alternative function module - 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
        EXPORTING
          filename                = p_file
          i_begin_col             = p_scol
          i_begin_row             = p_srow
          i_end_col               = p_ecol
          i_end_row               = p_erow
        TABLES
          intern                  = LT_INTERN
        EXCEPTIONS
          inconsistent_parameters = 1
          upload_ole              = 2
          OTHERS                  = 3.
      IF sy-subrc <> 0.
        FORMAT COLOR COL_BACKGROUND INTENSIFIED.
        WRITE:/ 'Error Uploading file'.
        EXIT.
      ENDIF.
      IF lt_intern[] IS INITIAL.
        FORMAT COLOR COL_BACKGROUND INTENSIFIED.
        WRITE:/ 'No Data Uploaded'.
        EXIT.
      ELSE.
        SORT lt_intern BY row col.
        LOOP AT lt_intern.
         MOVE lt_intern-col TO ld_index.
         assign component ld_index of structure
         p_table to <fs>.
    move : lt_intern-value to <fs>.
    *     MOVE lt_intern-value TO p_table.
          AT END OF row.
            APPEND p_table.
            CLEAR p_table.
          ENDAT.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    "UPLOAD_EXCEL_FILE
    Regards
    Pavan

  • Standard function module inside a loop.

    Hi Experts,
    I am trying to improve performance program that has a standard abap function module inside a loop. I am some what lost on what to do here. Here below is what the code looks like as of now. I have read that i need to try and not use the function module at all be it is a very complicated function module. Any suggestions will be appreciated.
    DATA: tl_retorno TYPE bapireturn1 OCCURS 0 WITH HEADER LINE. "Retorno
       DATA: wl_bukrs   LIKE acct_det_bf-comp_code,     "Empresa
             wl_process LIKE acct_det_bf-process,       "Chave
             wl_symko   LIKE hrpp_acct_det-symb_acct,   "Conta Simbólica
             wl_momag   LIKE hrpp_acct_det-eg_acct_det, "Agrupamento
             wl_razao   LIKE acct_det_bf-gl_account.    "Conta Razão
    *-->                  <--*
       SORT tg_rubcr BY bukrs lgart.
       LOOP AT tg_rubcr.
         CLEAR: wl_bukrs, wl_process, wl_symko, wl_momag, wl_razao.
         wl_bukrs   = tg_rubcr-bukrs.
         wl_process = tg_rubcr-process.
         wl_symko   = tg_rubcr-symko.
         CLEAR tg_aux.
         IF tg_rubcr-u_momag IS INITIAL. "A rubrica necessita de agrupamento?
           CLEAR wl_momag.
    * Busca Contas Razão sem Agrupamento de Empregados
           CALL FUNCTION 'HRPP_FI_ACCT_DET_HR'
             EXPORTING
               companycode              = wl_bukrs
               process                  = wl_process
               symb_acct                = wl_symko
               eg_acct_det              = wl_momag
               add_modif                = ' '
             IMPORTING
               gl_account_debit         = wl_razao
    *         GL_ACCOUNT_CREDIT        =
    *         POSTING_KEY_DEBIT        =
    *         POSTING_KEY_CREDIT       =
    *         ACCOUNT_TYPE             =
             TABLES
               return_tab               = tl_retorno.
           tg_rubcr-razao = wl_razao.
           tg_aux = tg_rubcr.
           APPEND tg_aux.
         ELSE.  "Não necessita de agrupamento de empregado?
           LOOP AT tg_t52em. "Para todos os agrupamentos
             CLEAR tg_aux.
             CLEAR tl_retorno.
             REFRESH tl_retorno.
             CLEAR wl_momag.
             wl_momag  = tg_t52em-momag.
    * Busca Contas Razão com Agrupamento de Empregados
             CALL FUNCTION 'HRPP_FI_ACCT_DET_HR'
               EXPORTING
                 companycode              = wl_bukrs
                 process                  = wl_process
                 symb_acct                = wl_symko
                 eg_acct_det              = wl_momag
                 add_modif                = ' '
               IMPORTING
                 gl_account_debit         = wl_razao
    *           GL_ACCOUNT_CREDIT        =
    *           POSTING_KEY_DEBIT        =
    *           POSTING_KEY_CREDIT       =
    *           ACCOUNT_TYPE             =
               TABLES
                 return_tab               = tl_retorno.
             tg_rubcr-razao = wl_razao.
             tg_aux = tg_rubcr.
             tg_aux-momag = tg_t52em-momag.
             APPEND tg_aux.
           ENDLOOP.
         ENDIF.
       ENDLOOP.
    * Limpa tabela com rubricas e move todo o conteúdo da auxiliar
       REFRESH tg_rubcr.
       CLEAR tg_rubcr.
       tg_rubcr[] = tg_aux[].
    ENDFORM.                    " busca_conta_razao

    Hi Patrick,
    If you do not want to use the function module then the other option that you can use is do selects from the tables that the FM 'HRPP_FI_ACCT_DET_HR' is using to get the importing "parameter  gl_account_debit         = wl_razao"  outside the loop.
    So steps will be:
    Debug FM 'HRPP_FI_ACCT_DET_HR'  to find out how it getting importing data using exporting parameters.
    Then before the loop is called do a select for all entries on table tg_rubcr. And id muliple tables are used Read statements to populate a final table with gl_account_debit         = wl_razao value.
    Then use the final table to get this value inside the loop.
    Please let me know if you need more details.

  • How to use fieldtab with Function Module F4IF_INT_TABLE_VALUE_REQUEST

    Hi,
    I'm using the function module F4IF_INT_TABLE_VALUE_REQUEST to build a matchcode in a selection screen parameter.
    The internal table that I use have 3 fields:
            GROUPID like APQI-GROUPID,
            CREDATE like APQI-CREDATE,
            STATE type  string.
    STATE is not in ABAP dictionary, so the function doesn't show this field. I need this field having field label 'STATUS'
    I have tried to use table FIELDTAB, but I cannot resolv the problem.
    Can anyone help me?
    Kind Regards

    Hi
    See the following ex:
    TYPES: BEGIN OF TY_MBLNR,
    MBLNR LIKE MKPF-MBLNR,
    END OF TY_MBLNR.
    DATA: IT_MBLNR TYPE STANDARD TABLE OF TY_MBLNR WITH HEADER LINE.
    data: it_ret like ddshretval occurs 0 with header line.
    At selection-screen on value-request for s_mat-low.
    Select MBLNR from mkpf into table it_mblnr.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    DDIC_STRUCTURE = ' '
    RETFIELD = 'MBLNR'
    PVALKEY = ' '
    DYNPPROG = ' '
    DYNPNR = ' '
    DYNPROFIELD = ' '
    STEPL = 0
    WINDOW_TITLE =
    VALUE = ' '
    VALUE_ORG = 'S'
    MULTIPLE_CHOICE = ' '
    DISPLAY = ' '
    CALLBACK_PROGRAM = ' '
    CALLBACK_FORM = ' '
    MARK_TAB =
    IMPORTING
    USER_RESET =
    TABLES
    VALUE_TAB = IT_MBLNR
    FIELD_TAB =
    RETURN_TAB = IT_RET
    DYNPFLD_MAPPING =
    EXCEPTIONS
    PARAMETER_ERROR = 1
    NO_VALUES_FOUND = 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.
    IF SY-SUBRC = 0.
    read table it_ret index 1.
    move it_ret-fieldval to S_mat-low.
    ENDIF.
    Go through the test program.
    REPORT Ztest_HELP .
    TABLES : MARA.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS : P_MATNR(10) TYPE C.
    SELECTION-SCREEN END OF BLOCK B1.
    DATA : BEGIN OF ITAB OCCURS 0,
    MATNR TYPE MATNR,
    END OF ITAB.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MATNR.
    SELECT MATNR
    FROM MARA
    INTO TABLE ITAB
    UP TO 10 ROWS.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    RETFIELD = 'MATERIAL NUMBER'
    DYNPPROG = SY-REPID
    DYNPNR = SY-DYNNR
    DYNPROFIELD = 'P_MATNR'
    VALUE_ORG = 'S'
    TABLES
    VALUE_TAB = ITAB
    EXCEPTIONS
    PARAMETER_ERROR = 1
    NO_VALUES_FOUND = 2
    OTHERS = 3. 
    Regards
    Anji

  • How to use the alv function module

    hi all,
            can  any one help me out how to use reuse_alv_block_list_append function module, what parameters shall i pass  to it, so that i get top of page and end of page events and report data in two blocks, can any one tell how can i didvide the data into block, at a particular line

    hi,
    this is  my simple alv blockedlist programme.go through it.it will definrtley help u.
    REPORT  z50870alv_blocked.
    TYPE-POOLS : slis.
    *&      structure declaration
    TYPES : BEGIN OF st_ekko,
              ebeln TYPE ekko-ebeln,    "Purchasing Document Number
              bstyp TYPE ekko-bstyp,    "Purchasing Document Category
              bsart TYPE ekko-bsart,    "Purchasing Document Type
              aedat TYPE ekko-aedat,    "record created on
              ernam TYPE ekko-ernam,    "Person who Created the Object
            END OF st_ekko.
    TYPES : BEGIN OF st_ekpo,
              ebeln TYPE ekko-ebeln,
              ebelp TYPE ekpo-ebelp,    "Item Number of Purchasing Document
              ematn TYPE ekpo-ematn,    "Material number
              matkl TYPE ekpo-matkl,    "Material group
              netpr TYPE ekpo-netpr,    "Net price in purchasing document
            END OF st_ekpo.
    *&      internal table and work area declaration
    DATA : it_ekpo       TYPE STANDARD TABLE OF st_ekpo,
           it_ekko       TYPE STANDARD TABLE OF st_ekko,
           it_fieldcat1  TYPE slis_t_fieldcat_alv,
           wa_fieldcat1  TYPE slis_fieldcat_alv,
           it_fieldcat2  TYPE slis_t_fieldcat_alv,
           wa_fieldcat2  TYPE slis_fieldcat_alv,
           it_events     Type slis_t_event,
           wa_layout     TYPE slis_layout_alv.
    *&      data declaration
    DATA : v_ebeln TYPE ekko-ebeln.
    *&      selection-screen
      SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-000.
      SELECT-OPTIONS : so_ebeln FOR v_ebeln.
      SELECTION-SCREEN END OF BLOCK a.
    *&      At-selection-screen
    at selection-screen on so_ebeln.
    perform validate_ebeln.
    *&      start-of-selection
    START-OF-SELECTION.
      PERFORM data_retrieval.
    *&      end-of-selection
    END-OF-SELECTION.
      PERFORM initialize_alv_block.
      PERFORM build_fieldcatalog1.
      PERFORM build_fieldcatalog2.
      PERFORM build_layout.
      PERFORM get_events .
      PERFORM append_ekkodata_to_alv_block.
      PERFORM append_ekpodata_to_alv_block.
      PERFORM display_blocked_alv.
    *&     FORM initialize_alv_block
    FORM initialize_alv_block.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
      EXPORTING
        i_callback_program             = sy-repid.
    endform.
    *&     FORM validate_ebeln
    form validate_ebeln.
    select ebeln
       from ekko
       into table it_ekko
       where ebeln in so_ebeln.
      if sy-subrc ne 0.
        message text-003 type 'W'.
      endif.
    endform.
    *&     FORM data_retrieval
    FORM data_retrieval.
    SELECT ebeln bstyp bsart aedat ernam
        FROM ekko
        INTO TABLE it_ekko
        WHERE ebeln IN so_ebeln.
      if sy-subrc ne 0.
       message text-001 type 'I'.
      endif.
    SELECT ebeln ebelp ematn matkl netpr
        FROM ekpo
        INTO TABLE it_ekpo
        WHERE ebeln IN so_ebeln.
      if sy-subrc ne 0.
       message text-002 type 'I'.
      endif.
    endform.
    *&      Form  build_fieldcatalog1
    FORM  build_fieldcatalog1.
      wa_fieldcat1-fieldname   = 'EBELN'.
      wa_fieldcat1-seltext_l   = 'PURCHASE ORDER'.
      wa_fieldcat1-col_pos     = 0.
      APPEND wa_fieldcat1 TO it_fieldcat1.
      wa_fieldcat1-fieldname   = 'BSTYP'.
      wa_fieldcat1-seltext_l   = 'DOCUMENT CATEGORY'.
      wa_fieldcat1-col_pos     = 1.
      APPEND wa_fieldcat1 TO it_fieldcat1.
      wa_fieldcat1-fieldname   = 'BSART'.
      wa_fieldcat1-seltext_l   = 'DOCUMENT TYPE'.
      wa_fieldcat1-col_pos     = 2.
      APPEND wa_fieldcat1 TO it_fieldcat1.
      wa_fieldcat1-fieldname   = 'AEDAT'.
      wa_fieldcat1-seltext_l   = 'DATE'.
      wa_fieldcat1-col_pos     = 3.
      APPEND wa_fieldcat1 TO it_fieldcat1.
      wa_fieldcat1-fieldname   = 'ERNAM'.
      wa_fieldcat1-seltext_l   = 'NAME'.
      wa_fieldcat1-col_pos     = 4.
      APPEND wa_fieldcat1 TO it_fieldcat1.
    ENDFORM.                    "build_fieldcatalog
    *&      Form  build_fieldcatalog2
    FORM  build_fieldcatalog2.
      wa_fieldcat2-fieldname   = 'EBELN'.
      wa_fieldcat2-seltext_l   = 'PURCHASE ORDER'.
      wa_fieldcat2-col_pos     = 0.
      APPEND wa_fieldcat2 TO it_fieldcat2.
      wa_fieldcat2-fieldname   = 'EBELP'.
      wa_fieldcat2-seltext_l   = 'ITEM NUMBER'.
      wa_fieldcat2-col_pos     = 1.
      APPEND wa_fieldcat2 TO it_fieldcat2.
      wa_fieldcat2-fieldname   = 'EMATN'.
      wa_fieldcat2-seltext_l   = 'MATERIAL TYPE'.
      wa_fieldcat2-col_pos     = 2.
      APPEND wa_fieldcat2 TO it_fieldcat2.
      wa_fieldcat2-fieldname   = 'MATKL'.
      wa_fieldcat2-seltext_l   = 'MATERIAL GROUP'.
      wa_fieldcat2-col_pos     = 3.
      APPEND wa_fieldcat2 TO it_fieldcat2.
      wa_fieldcat2-fieldname   = 'NETPR'.
      wa_fieldcat2-seltext_l   = 'NET PRICE'.
      wa_fieldcat2-col_pos     = 4.
      wa_fieldcat2-do_sum      = 'X'.
      APPEND wa_fieldcat2 TO it_fieldcat2.
    ENDFORM.                    "build_fieldcatalog
    *&      form build_layout.
    FORM build_layout.
      wa_layout-zebra ='X'.
      wa_layout-no_vline = 'X'.
      wa_layout-no_hline = 'X'.
      wa_layout-colwidth_optimize = 'X'.
      wa_layout-window_titlebar = 'PURCHASE ORDER HEADER AND ITEM DETAILS'.
    ENDFORM.                    "build_layout
    *&      form append_ekkodata_to_alv_block
    FORM append_ekkodata_to_alv_block.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
      EXPORTING
        is_layout                        = wa_layout
        it_fieldcat                      = it_fieldcat1
        i_tabname                        ='it_ekko'
        it_events                        = it_events[]
      IT_SORT                          = IT_SORT
      I_TEXT                           = ' '
      TABLES
        t_outtab                         = it_ekko
    EXCEPTIONS
       PROGRAM_ERROR                    = 1
       MAXIMUM_OF_APPENDS_REACHED       = 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.
    endform.
    *&      form append_ekpodata_to_alv_block
    FORM append_ekpodata_to_alv_block.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
      EXPORTING
        is_layout                        = wa_layout
        it_fieldcat                      = it_fieldcat2
        i_tabname                        ='it_ekpo'
        it_events                        = it_events[]
      IT_SORT                          = IT_SORT
      I_TEXT                           = ' '
      TABLES
        t_outtab                         = it_ekpo
    EXCEPTIONS
       PROGRAM_ERROR                    = 1
       MAXIMUM_OF_APPENDS_REACHED       = 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.
    endform.
    *&      FORM display_blocked_alv.
    FORM display_blocked_alv.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
    endform.
    *&      Form  GET_EVENTS
    FORM get_events .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 2
        IMPORTING
          et_events       = it_events[]
        EXCEPTIONS
          list_type_wrong = 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.                    " GET_EVENTS\
    regards,
    pavan t.

Maybe you are looking for