Organization Planning check box

Hi,
I enabled the check box (organization planning) on the project types screen for type: capital project but we cannot reverse it from sysadmin responsibility, what is the problem??
Awaiting your soonest response
Tasneem Ghnaimat

Its one time enabling at Organization Planning check box at project type, you cannot change it once defined, other way around is end date the project type and create new one
Thanks
Krishna

Similar Messages

  • Header Billing Plan check box

    Hi,
    Header Billing Plan indicator( check box) functionality and where we can control this check box change mode or display mode.
    Thanks

    Hi,
    If  a billing plan is assigned to Sales Document header and Sales Document Item, When Header Billing Plan indicator( check box) is flagged then billing plan is automatically copied to all the items. I think there is no customisation settings to control this check box.
    How ever at item level, we can uncheck this box and maintain a different billing plan for that item.
    Hope this helps.
    Regards,
    Sharan

  • Clearing Check box

    Hi,
    I have to create the credit memo based on user selected records. My program is doing it, but I am having two problems,
    1)After creating the credit memo it is not clearing those records, if I choose next set it is adding 2nd time selected records to the first time selected records and adding to previous credit memo number.
    2)If the credit memo number is already there to a record, it should not allow the same record to create another CM.
    Please help me to solve these.
    Thanks,
    Neelu.
    REPORT zsd_creditmemo  NO STANDARD PAGE HEADING.
    TABLES: zppprice, kna1.
    TYPES: BEGIN OF ty_zprice,
              mandt  TYPE mandt,
              vkorg  TYPE vkorg,
              vtweg  TYPE vtweg,
              spart  TYPE spart,
              kunnr  TYPE kunnr,
              matnr  TYPE matnr,
              crdate TYPE zcrdate,
              efdate TYPE zefdate,
              sprice TYPE zprice3,
              eprice TYPE zprice4,
              eohqty TYPE zquantity1,
              aohqty TYPE zquantity2,
              auart  TYPE auart,
              bstkd  TYPE bstkd,
              werks  TYPE werks_d,
              augru  TYPE augru,
              xblnr  TYPE xblnr,
              crmemo TYPE vbeln,
              index  TYPE sy-index,
         END OF ty_zprice.
    DATA: it_ztable TYPE TABLE OF zppprice WITH HEADER LINE,
          gt_zprice TYPE TABLE OF zppprice  WITH HEADER LINE,
          gt1_zprice TYPE TABLE OF zppprice,
          gt2_zprice TYPE TABLE OF ty_zprice,
          gt3_zprice TYPE TABLE OF ty_zprice,
          gt4_zprice TYPE TABLE OF ty_zprice,
          gs_zprice TYPE zppprice,
          gs_zprice1 TYPE ty_zprice,
          ls_zprice TYPE ty_zprice,
          wa LIKE zppprice.
    DATA: salesdocument      TYPE bapivbeln-vbeln.
    DATA: header             LIKE bapisdhd1.
    DATA: headerx            LIKE bapisdhd1x.
    DATA: item               LIKE bapisditm  OCCURS 0 WITH HEADER LINE.
    DATA: itemx              LIKE bapisditmx OCCURS 0 WITH HEADER LINE.
    DATA: partner            LIKE bapiparnr  OCCURS 0 WITH HEADER LINE.
    DATA: return1            LIKE bapiret2    OCCURS 0 WITH HEADER LINE.
    DATA: lt_schedules_in    TYPE STANDARD TABLE OF bapischdl
                                  WITH HEADER LINE.
    DATA: lt_schedules_inx   TYPE STANDARD TABLE OF bapischdlx
                                  WITH HEADER LINE.
    DATA: conditions1        LIKE bapicond OCCURS 0 WITH HEADER LINE.
    DATA: order_text         LIKE bapisdtext OCCURS 0 WITH HEADER LINE.
    DATA: lv_index TYPE sy-index,
          v_tabix TYPE sytabix,
          chbox(1)  TYPE c VALUE ' ',
          repid     TYPE sy-repid,
          lv_itemno TYPE i VALUE 10,
          lv_pprice TYPE zprice3,
          lv_lines  TYPE i,
          lv_flg     TYPE c,
          lv_cnt TYPE i.
    repid = sy-repid.
    PERFORM displaydata.
    AT USER-COMMAND.
      CASE sy-ucomm.
        WHEN 'CMEMO'.
          DESCRIBE TABLE gt_zprice LINES lv_cnt.
    *      lv_index = 1.
          DO lv_cnt TIMES.
            lv_index = sy-index + 1.
            READ LINE lv_index FIELD VALUE chbox.
            IF chbox = 'X'.
              READ TABLE gt_zprice INTO gs_zprice1 INDEX sy-index.
              IF sy-subrc EQ 0.
                gs_zprice1-index = sy-index.
                APPEND gs_zprice1 TO gt2_zprice.
                CLEAR gs_zprice1.
              ENDIF.
    *          ELSE.
    *          WRITE: /01(253) 'Please Select At least One Record'.
            ENDIF.
            clear chbox.
          ENDDO.
          gt4_zprice[] = gt2_zprice[].
          SORT gt2_zprice BY vkorg vtweg spart kunnr.
          DELETE ADJACENT DUPLICATES FROM gt2_zprice
                          COMPARING vkorg vtweg spart kunnr.
          DESCRIBE TABLE gt2_zprice LINES lv_lines.
          IF lv_lines = 1.
            LOOP AT gt4_zprice INTO gs_zprice1.
              AT NEW kunnr.
                MOVE 'Y' TO lv_flg.
              ENDAT.
              IF lv_flg EQ 'Y'.
                PERFORM headerdata.
                PERFORM texts.
                CLEAR lv_flg.
              ENDIF.
              PERFORM itemdata.
              APPEND gs_zprice1 TO gt3_zprice.
            ENDLOOP.
            PERFORM call_function.
            PERFORM update_pricetable.
            PERFORM errorcheckandcommit.
            PERFORM displaydata.
    *   WRITE: /01(253) 'Please Select Again To Create Another Credit Memo'.
            REFRESH gt2_zprice.
            CLEAR chbox.
            CLEAR lv_lines.
          ELSE.
    *          WRITE: /01(253) 'Please Select Same Customer'.
            REFRESH gt2_zprice.
            CLEAR chbox.
            EXIT.
          ENDIF.
      ENDCASE.
    *&      Form  headerdata
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM headerdata.
    * header data
    * Sales document type
      header-doc_type = gs_zprice1-auart.
      headerx-doc_type = 'X'.
    * Sales organization
      header-sales_org = gs_zprice1-vkorg.
      headerx-sales_org = 'X'.
    * Distribution channel
      header-distr_chan  = gs_zprice1-vtweg.
      headerx-distr_chan = 'X'.
    * Division
      header-division = gs_zprice1-spart.
      headerx-division = 'X'.
    * Customer PO Number
      header-purch_no_c = gs_zprice1-bstkd.
      headerx-purch_no_c = 'X'.
    * Order Reason
      header-ord_reason = gs_zprice1-augru.
      headerx-ord_reason = 'X'.
    * Ref Doc Number
      header-ref_doc_l = gs_zprice1-xblnr.
      headerx-ref_doc_l = 'X'.
      headerx-updateflag = 'I'.
    ENDFORM.                    " headerdata
    *&      Form  Texts
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM texts.
    *Texts
      order_text-itm_number  = '000000'.
      order_text-text_id = '0001'.
      order_text-langu = sy-langu.
      order_text-text_line = gs_zprice1-xblnr.
      APPEND order_text.
    ENDFORM.                    " Texts
    *&      Form  itemdata
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM itemdata.
    * Partner data
    * Sold to
      partner-partn_role = 'AG'.
      partner-partn_numb = gs_zprice1-kunnr.
      APPEND partner.
    * ITEM DATA
      itemx-updateflag = 'I'.
    * Line item number.
      item-itm_number = lv_itemno.
      itemx-itm_number = 'X'.
    * Material
      item-material = gs_zprice1-matnr.
      itemx-material = 'X'.
    * Plant
      item-plant    = gs_zprice1-werks.
      itemx-plant   = 'X'.
    * Quantity
      item-target_qty = gs_zprice1-eohqty.
      itemx-target_qty = 'X'.
      APPEND item.
      APPEND itemx.
    *Fill schedule lines
      lt_schedules_in-itm_number = lv_itemno.
      lt_schedules_in-sched_line = '0001'.
      lt_schedules_in-req_qty    = gs_zprice1-eohqty.
      APPEND lt_schedules_in.
    *Fill schedule line flags
      lt_schedules_inx-itm_number  = lv_itemno.
      lt_schedules_inx-sched_line  = '0001'.
      lt_schedules_inx-updateflag  = 'I'.
      lt_schedules_inx-req_qty     = 'X'.
      APPEND lt_schedules_inx.
    *Conditions
      lv_pprice = gs_zprice1-sprice - gs_zprice1-eprice.
      conditions1-itm_number  = lv_itemno.
      conditions1-cond_type   = 'ZCPP'.
      conditions1-cond_value  = lv_pprice.
      conditions1-currency    = 'USD'.
      conditions1-cond_unit   = 'EA'.
      conditions1-cond_p_unt = 1.
      APPEND conditions1.
      lv_itemno = lv_itemno + 10.
    ENDFORM.                    " itemdata
    *&      Form  call_function
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM call_function.
      CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
           EXPORTING
                sales_header_in     = header
                sales_header_inx    = headerx
           IMPORTING
                salesdocument_ex    = salesdocument
           TABLES
                return              = return1
                sales_items_in      = item
                sales_items_inx     = itemx
                sales_partners      = partner
                sales_schedules_in  = lt_schedules_in
                sales_schedules_inx = lt_schedules_inx
                sales_conditions_in = conditions1
                sales_text          = order_text.
    ENDFORM.                    " call_function
    *&      Form  errorcheck
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM errorcheckandcommit.
    * Check the return table.
      LOOP AT return1 WHERE type = 'E' OR type = 'A'.
        EXIT.
      ENDLOOP.
      break singireddyn.
      IF sy-subrc = 0.
        WRITE: / 'Error in creating document'.
      ELSE.
    *Commit the work.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
             EXPORTING
                  wait = 'X'.
      ENDIF.
    ENDFORM.                    " errorcheckandcommit
    *&      Form  update_pricetable
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM update_pricetable.
      LOOP AT gt3_zprice INTO ls_zprice.
        READ TABLE gt_zprice INTO gs_zprice INDEX ls_zprice-index.
        IF sy-subrc EQ 0.
          v_tabix = sy-tabix.
          gs_zprice-crmemo = salesdocument.
          MODIFY gt_zprice
          FROM gs_zprice INDEX v_tabix TRANSPORTING crmemo.
        ENDIF.
      ENDLOOP.
    *  REFRESH:gt3_zprice.
      LOOP AT gt_zprice.
        wa-vkorg = gt_zprice-vkorg.
        wa-vtweg = gt_zprice-vtweg.
        wa-spart = gt_zprice-spart.
        wa-kunnr = gt_zprice-kunnr.
        wa-matnr = gt_zprice-matnr.
        wa-crdate = gt_zprice-crdate.
        wa-efdate = gt_zprice-efdate.
        wa-sprice = gt_zprice-sprice.
        wa-eprice = gt_zprice-eprice.
        wa-eohqty = gt_zprice-eohqty.
        wa-aohqty = gt_zprice-aohqty.
        wa-auart = gt_zprice-auart.
        wa-bstkd = gt_zprice-bstkd.
        wa-werks = gt_zprice-werks.
        wa-augru = gt_zprice-augru.
        wa-xblnr = gt_zprice-xblnr.
        wa-crmemo = gt_zprice-crmemo.
        MODIFY zppprice FROM wa.
        CLEAR: wa, zppprice.
      ENDLOOP.
    ENDFORM.
    *&      Form  Displaydata
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM displaydata.
      SET PF-STATUS 'LIST'.
      NEW-PAGE LINE-SIZE 253.
      SELECT * FROM zppprice
               INTO TABLE gt_zprice.
      WRITE: /01(253) sy-uline.
      LOOP AT gt_zprice INTO gs_zprice.
        SELECT SINGLE name1 FROM kna1 INTO kna1-name1
                       WHERE kunnr = gs_zprice-kunnr.
        WRITE: /01 sy-vline,
                02 chbox AS CHECKBOX,
                04 sy-vline,
                05 gs_zprice-vkorg,
                10 sy-vline,
                11 gs_zprice-vtweg,
                14 sy-vline,
                15 gs_zprice-spart,
                18 sy-vline,
                19 gs_zprice-kunnr,
                30 sy-vline,
                31 kna1-name1,
                67 sy-vline,
                68 gs_zprice-matnr,
                87 sy-vline,
                88 gs_zprice-crdate,
                98 sy-vline,
                99 gs_zprice-efdate,
                110 sy-vline,
                111 gs_zprice-sprice,
                127 sy-vline,
                128 gs_zprice-eprice,
                145 sy-vline,
                146 gs_zprice-eohqty,
                157 sy-vline,
                158 gs_zprice-aohqty,
                169 sy-vline,
                170 gs_zprice-auart,
                175 sy-vline,
                176 gs_zprice-bstkd,
                212 sy-vline,
                213 gs_zprice-werks,
                218 sy-vline,
                219 gs_zprice-augru,
                223 sy-vline,
                224 gs_zprice-xblnr,
                241 sy-vline,
                242 gs_zprice-crmemo,
                253 sy-vline.
    *    CLEAR zppprice.
      ENDLOOP.
      WRITE: /01(253) sy-uline.
    *  CLEAR zppprice.
    *  CLEAR chbox.
    ENDFORM.                    " Displaydata

    Hello Neelu,
    once user select check box and it will create credit memo,so selected records it contains one value would be 'X'.,
    After BAPI FM use delete command where field = 'X'. so it will delete those records. so now you have remaining records.
    do not use exit or someother command,here you are just deleting the internal table data  and so no worries.
    <b>it any of the selected records have CM number can I come out of the loop and exit.</b>
    look at real time requirement ,some time user will select one check box and create credit memo ,again he will select other check boxes too. so use simple delete command.
    Thanks
    Seshu

  • Check box in interactive report is literal string not a check box ???

    I'm trying to create a check box in an interactive report using the APEX_ITEM.CHECKBOX function.
    My select statement is :
    select     "CUTOVER_TASKS"."ID" as "ID",
         "CUTOVER_TASKS"."START_DATE" as "START_DATE",
         "CUTOVER_TASKS"."END_DATE" as "END_DATE",
         "CUTOVER_TASKS"."DURATION" as "DURATION",
         "CUTOVER_TASKS"."EFFORT" as "EFFORT",
         APEX_ITEM.CHECKBOX(1,COMPLETED, 1) as "COMPLETED",
         "CUTOVER_TASKS"."ASSIGNED" as "ASSIGNED",
         "CUTOVER_TASKS"."CONSTRAINT_START" as "CONSTRAINT_START",
         "CUTOVER_TASKS"."CONSTRAINT_END" as "CONSTRAINT_END",
         "CUTOVER_TASKS"."DEPENDENCIES" as "DEPENDENCIES",
         "CUTOVER_TASKS"."NOTES" as "NOTES",
         "CUTOVER_TASKS"."PRIORITY" as "PRIORITY",
         "CUTOVER_TASKS"."ORGANIZATION" as "ORGANIZATION",
         "CUTOVER_TASKS"."TASK" as "TASK"
    from     "CUTOVER_TASKS" "CUTOVER_TASKS"
    This produces an interactive report with the COMPLETED column contents "<input type="checkbox" name="f01" value="" 1 />"
    The same sql in a regular report works properly and creates the check box.
    Is there something else required for a check box in an interactive report ?
    Using : Application Express 3.2.0.00.27

    Go to Report Attributes and change the display type to "Standard Report Column" (instead of "Display as Text, escape special characters")
    Go to Column Attributes for that column and change the List Of Values to None and uncheck all the column's interactive features (sort, aggregate, compute, etc)

  • How to set check box in alv

    Hello Sir,
      I am Developing One Report In ALV, But  I want One Column Of ALV Should Be In Checkboxes .How Can I set Check Box In Field Catalog.
    Plz Help Me.

    hi,
    Try like this.
    *& Report  ZTEST_ALV
    REPORT  ztest_alv.
    TYPE-POOLS
    TYPE-POOLS: slis. " Type pool for ALV
    Tables
    TABLES: vbak, vbap.
    INTERNAL TABLES
    DATA: BEGIN OF g_t_itab OCCURS 0,
    sel TYPE c,
    vbeln LIKE vbak-vbeln,
    erdat LIKE vbak-erdat,
    vbtyp LIKE vbak-vbtyp,
    vkorg LIKE vbak-vkorg,
    vtweg LIKE vbak-vtweg,
    spart LIKE vbak-spart,
    netwr LIKE vbak-netwr,
    kunnr LIKE vbak-kunnr,
    END OF g_t_itab.
    DATA: BEGIN OF g_t_item OCCURS 0,
    vbeln LIKE vbap-vbeln,
    posnr LIKE vbap-posnr,
    matnr LIKE vbap-matnr,
    arktx LIKE vbap-arktx,
    END OF g_t_item.
    Data fields used for ALV call - simple list
    DATA : g_f_repid LIKE sy-repid.
    DATA : g_t_fieldcat TYPE slis_t_fieldcat_alv.
    DATA : g_r_fieldcat TYPE slis_fieldcat_alv.
    DATA : g_t_events TYPE slis_t_event.
    DATA : g_r_events TYPE slis_alv_event.
    DATA : g_r_layout TYPE slis_layout_alv.
    DATA : g_r_x_variant LIKE disvariant.
    DATA : g_r_variant LIKE disvariant.
    DATA : g_f_exit(1) TYPE c.
    DATA : g_f_save(1) TYPE c.
    SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
    SELECTION-SCREEN END OF BLOCK b1.
    START OF SELECTION
    START-OF-SELECTION.
      PERFORM get_data.
    END OF SELECTION
    END-OF-SELECTION.
      PERFORM set_alv_parameters.
      PERFORM display_list.
    *& Form get_data
    Get data from DB tables
    FORM get_data.
      CLEAR: g_t_itab.
      REFRESH: g_t_itab.
      SELECT vbeln erdat vbtyp vkorg vtweg spart netwr kunnr
      FROM vbak
      INTO CORRESPONDING FIELDS OF TABLE g_t_itab
      WHERE
      vbeln IN s_vbeln.
    ENDFORM. " get_data
    *& Form set_alv_parameters
    Set alv parameters , layout, events, fieldcatlog
    FORM set_alv_parameters.
      PERFORM set_filedcatlog.
    ENDFORM. " set_alv_parameters
    *& Form display_list
    text
    FORM display_list.
      g_f_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = g_f_repid
         is_layout          = g_r_layout
          it_fieldcat        = g_t_fieldcat[]
          it_events          = g_t_events[]
        TABLES
          t_outtab           = g_t_itab
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM. " display_list
    *& Form set_filedcatlog
    text
    FORM set_filedcatlog.
      DATA: l_r_fieldcat TYPE slis_fieldcat_alv. " For column heading
      CLEAR : g_t_fieldcat,
      g_t_fieldcat[].
    <b>  l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'SEL'.
      l_r_fieldcat-checkbox = 'X'.
      l_r_fieldcat-outputlen = 2.
      l_r_fieldcat-col_pos = 1.
      l_r_fieldcat-edit = 'X'.
      l_r_fieldcat-input = 'X'.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.</b>
    Sales Order
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'VBELN'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'VBELN'.
      l_r_fieldcat-col_pos = 2.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Creation date
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'ERDAT'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'ERDAT'.
      l_r_fieldcat-col_pos = 3.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    document category
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'VBTYP'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'VBTYP'.
      l_r_fieldcat-col_pos = 4.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Sales organization
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'VKORG'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'VKORG'.
      l_r_fieldcat-col_pos = 5.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Distribution channel
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'VTWEG'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'VTWEG'.
      l_r_fieldcat-col_pos = 6.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Division
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'SPART'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'SPART'.
      l_r_fieldcat-col_pos = 7.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Net Value
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'NETWR'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'NETWR'.
      l_r_fieldcat-col_pos = 8.
      l_r_fieldcat-do_sum = 'X'.
      l_r_fieldcat-emphasize = 'C500'.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Distribution channel
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'KUNNR'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'KUNNR'.
      l_r_fieldcat-col_pos = 9.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    ENDFORM. " set_filedcatlog

  • Check box creation

    Hi Experts,
    i hae to create a check box for account assaignment default value ticked, ifit is ticked out put should come other wise output should not come
    could any one help me, account assaignment field is ekpo-knttp.
    i am giving the code below
    REPORT zmmr_po_spendreport NO STANDARD PAGE HEADING
           MESSAGE-ID zs.
    Program ID   :                                                      *
    Version      : 1.0                                                  *
    SAP Version  : R/3 System Ver. 4.6C                                 *
    Program Name : ZMMR_PO_SPENDREPORT                                  *
    Created by   : Venu Goli                                            *
    Created on   : 6/1/2007                                             *
    Description  : A Report on Direct and Indirect spend to find out    *
                    the lead time in PO and Invoice creation             *
    Tables
    TABLES: ekko,   "Purchasing Document Header
            ekpo,   "Purchasing Document Item
            rbkp.   "Document Header: Invoice Receipt
    Type-Pools
    TYPE-POOLS : slis.   " Has to be declared to use ALVs
    To hold ALV field catgory data
    DATA : it_fieldcat TYPE slis_t_fieldcat_alv,
           wa_fieldcat LIKE LINE OF it_fieldcat.
    Internal tables declarations
    Internal table to hold Report data
    DATA: BEGIN OF it_output OCCURS 0,
           dir_indir(9),
           bukrs LIKE ekko-bukrs,    "company code
           ebeln LIKE ekko-ebeln,    "Purchasing Document Number
           ebelp LIKE ekpo-ebelp,    "Item
           aedat LIKE ekko-aedat,    "Date on which the record was created
           belnr LIKE rseg-belnr,    "Accounting document number
           bldat LIKE rbkp-bldat,    "Document date in document
           budat LIKE rbkp-budat,    "Posting date in the document
           wrbtr LIKE rseg-wrbtr,    "Amount in document currency
           curr  LIKE t880-curr,     "Price unit (Local Curr)
           bednr LIKE ekpo-bednr,    "Requirement tracking number
           lifnr LIKE ekko-lifnr,    "Vendor's account number
           name1 LIKE lfa1-name1,                               "name1
           name2(30),                "preparer name
           name3(30),                "requester name
           gjahr LIKE rseg-gjahr,    "Fiscal year
           ernam LIKE ekko-ernam,    "Name of Person who Created the Object
           kursf LIKE rbkp-kursf,    "Exchange rate
           shkzg LIKE rseg-shkzg,    "Debit/credit indicator
           banfn LIKE ekpo-banfn,    "Purchase requisition number
           knttp LIKE ekpo-knttp,    "account assignment category
          END OF it_output.
    Selection Screen
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_bukrs LIKE ekko-bukrs OBLIGATORY,
                   kntpp AS CHECKBOX DEFAULT 'X'.
    SELECT-OPTIONS: s_invdat FOR rbkp-bldat,    "Document date in document
                    s_vendor FOR ekko-lifnr,    "Vendor's account number
                    s_purcdo FOR ekko-ebeln,    "Purchasing Document no
                    s_credat FOR ekko-aedat OBLIGATORY,"create date
                    s_plant  FOR ekpo-werks,    "Plant
                    s_doctyp FOR ekko-bsart,    "Purchasing document type
                    s_purorg FOR ekko-ekorg,    "Purchasing organization
                    s_trcnum FOR ekpo-bednr,    "Requirement tracking number
                    s_knttp  FOR ekpo-knttp.    "account assignment category
    SELECTION-SCREEN: END OF BLOCK b1.
    DATA: count TYPE i VALUE 0.            " Used to count records
              INITIALIZATION                                             *
    INITIALIZATION.
    At Selection Screen
    AT SELECTION-SCREEN.
    Checking for the input values of selection screen fields.
      PERFORM validate_params.
    Start Of Selection
    START-OF-SELECTION.
      PERFORM get_data.
    End Of Selection
    END-OF-SELECTION.
    SUBROUTINE TO CALL THE FUNCTION MERGE TO ENSURE PROPER DISPLAY.
      PERFORM merge_fieldcatalog.
      PERFORM modify_fieldcat.
      PERFORM alv_report.
          FORM validate_params                                          *
    FORM validate_params.
    Validate company code
      SELECT SINGLE COUNT(*) FROM t001 WHERE bukrs = p_bukrs.
      IF sy-subrc <> 0.
        MESSAGE e021 WITH 'Please enter a valid Company code'.
      ENDIF.
    *Validate Vendor.
      SELECT SINGLE COUNT(*) FROM lfa1 WHERE lifnr IN s_vendor.
      CASE sy-subrc.
        WHEN 0.
        WHEN OTHERS.
          MESSAGE e021 WITH 'Please enter a valid Vendor'.
      ENDCASE.
    *Validate PO doc type
      SELECT SINGLE COUNT(*) FROM t161 WHERE bsart IN s_doctyp.
      CASE sy-subrc.
        WHEN 0.
        WHEN OTHERS.
          MESSAGE e021 WITH 'Please enter a valid PO Doc. Type'.
      ENDCASE.
    *Validate plant
      SELECT SINGLE COUNT(*) FROM t001w WHERE werks IN s_plant.
      CASE sy-subrc.
        WHEN 0.
        WHEN OTHERS.
          MESSAGE e021 WITH 'Please enter a valid Plant. Type'.
      ENDCASE.
    *Validate Purch. Org
      SELECT SINGLE COUNT(*) FROM t024e WHERE ekorg IN s_purorg.
      CASE sy-subrc.
        WHEN 0.
        WHEN OTHERS.
          MESSAGE e021 WITH 'Please enter a valid Purch. Org.'.
      ENDCASE.
    ENDFORM.                               " PERFORM VALIDATE_PARAMS.
          FORM get_data                                                 *
    FORM get_data.
      DATA: l_persnumber LIKE usr21-persnumber.
    Get PO data
      SELECT a~bukrs a~ebeln b~ebelp a~aedat a~lifnr a~ernam
             b~knttp b~bednr b~banfn
             c~belnr c~wrbtr c~gjahr c~shkzg
             d~bldat d~budat d~kursf
             e~dir_indir
      INTO CORRESPONDING FIELDS OF TABLE it_output
      FROM ekko AS a
      JOIN ekpo AS b ON b~ebeln = a~ebeln
      JOIN rseg AS c ON c~ebeln = b~ebeln
                    AND c~ebelp = b~ebelp
                    AND c~bukrs = a~bukrs
      JOIN rbkp AS d ON d~belnr = c~belnr
                    AND d~gjahr = c~gjahr
      LEFT JOIN zpo_dirindir AS e ON e~knttp = b~knttp
      WHERE a~bukrs = p_bukrs
        AND a~lifnr IN s_vendor
        AND a~ebeln IN s_purcdo
        AND a~bsart IN s_doctyp
        AND a~ekorg IN s_purorg
        AND a~aedat IN s_credat
        AND b~knttp IN s_knttp
        AND b~werks IN s_plant
        AND b~bednr IN s_trcnum.
      LOOP AT it_output.
      Get posting date, Doc. date & Curr. Key
        IF it_output-kursf <> 0.
          it_output-wrbtr = it_output-wrbtr * it_output-kursf.
        ENDIF.
      get local currency
        SELECT SINGLE waers INTO it_output-curr FROM t001
                 WHERE bukrs = it_output-bukrs.
      Get vendor name.
        SELECT SINGLE name1 FROM lfa1 INTO it_output-name1
        WHERE lifnr = it_output-lifnr.
      Get PO created person name
        SELECT SINGLE persnumber INTO l_persnumber FROM usr21
         WHERE bname = it_output-ernam.
        IF sy-subrc = 0.
          SELECT SINGLE name_text FROM adrp INTO it_output-name2
           WHERE persnumber = l_persnumber.
        ELSE.
          it_output-name2 = it_output-ernam.
        ENDIF.
      Get get requested by from reciepent point in PO
      else PR created by (If PR exists)
        CASE it_output-dir_indir.
          WHEN 'I'.
          Take requested by from Reciepent point.
            SELECT SINGLE wempf INTO it_output-name3 FROM ekkn
             WHERE ebeln = it_output-ebeln
               AND ebelp = it_output-ebelp .
          WHEN 'D'.
            SELECT SINGLE ernam INTO it_output-name3 FROM eban
             WHERE banfn = it_output-banfn
               AND ebelp = it_output-ebelp.
            IF sy-subrc <> 0.
              MOVE it_output-ernam TO it_output-name3.
            ENDIF.
            SELECT SINGLE persnumber INTO l_persnumber FROM usr21
                WHERE bname = it_output-name3.
            IF sy-subrc = 0.
              SELECT SINGLE name_text FROM adrp INTO it_output-name3
               WHERE persnumber = l_persnumber.
            ENDIF.
        ENDCASE.
      translate direction indicator to Indirect or Direct
        CASE it_output-dir_indir.
          WHEN 'I'. it_output-dir_indir = 'Indirect'.
          WHEN 'D'. it_output-dir_indir = 'Direct'.
        ENDCASE.
        MODIFY it_output.
      ENDLOOP.
    ENDFORM.
    FORM MERGE_FIELDCATALOG                                             *
    FORM merge_fieldcatalog.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                i_program_name         = sy-cprog
                i_internal_tabname     = 'IT_OUTPUT'
                i_inclname             = sy-cprog
           CHANGING
                ct_fieldcat            = it_fieldcat[]
           EXCEPTIONS
                inconsistent_interface = 1
                program_error          = 2
                OTHERS                 = 3.
    ENDFORM. " MERGE_FIELDCATALOG
          FORM modify_fieldcat                                          *
    FORM modify_fieldcat.
      DATA: wa_fieldcat TYPE slis_fieldcat_alv.
      LOOP AT it_fieldcat INTO wa_fieldcat.
        CASE wa_fieldcat-fieldname.
          WHEN 'DIR_INDIR'.
            wa_fieldcat-seltext_m = 'Direct/Indirect'.
          WHEN 'NAME2'.
            wa_fieldcat-seltext_m = 'PREPARER NAME'.
          WHEN 'NAME3'.
            wa_fieldcat-seltext_m = 'REQUESTER NAME'.
          WHEN 'BEDNR'.
            wa_fieldcat-seltext_m = 'SSP PO'.
          WHEN 'AEDAT'.
            wa_fieldcat-seltext_m = 'PO DOCUMENT DATE'.
          WHEN 'BLDAT'.
            wa_fieldcat-seltext_m = 'INVOICE DOCU DATE'.
          WHEN 'BUDAT'.
            wa_fieldcat-seltext_m = 'POSTAGE DATE'.
          WHEN 'WRBTR'.
            wa_fieldcat-seltext_m = 'LOCAL AMOUNT'.
            wa_fieldcat-cfieldname = 'CURR'.
            wa_fieldcat-ctabname   =  wa_fieldcat-tabname.
          WHEN 'CURR'.
            wa_fieldcat-seltext_m = 'LOCAL CURR'.
          WHEN 'NAME1'.
            wa_fieldcat-seltext_m = 'VENDOR NAME'.
        ENDCASE.
        MODIFY it_fieldcat FROM wa_fieldcat.
      ENDLOOP.
    ENDFORM.
          FORM ALV_REPORT                                               *
    FORM alv_report.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program = sy-cprog
                it_fieldcat        = it_fieldcat[]
           TABLES
                t_outtab           = it_output[].
      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.

    REPORT zmmr_po_spendreport NO STANDARD PAGE HEADING
    MESSAGE-ID zs.
    Program ID : *
    Version : 1.0 *
    SAP Version : R/3 System Ver. 4.6C *
    Program Name : ZMMR_PO_SPENDREPORT *
    Created by : Venu Goli *
    Created on : 6/1/2007 *
    Description : A Report on Direct and Indirect spend to find out *
    the lead time in PO and Invoice creation *
    Tables
    TABLES: ekko, "Purchasing Document Header
    ekpo, "Purchasing Document Item
    rbkp. "Document Header: Invoice Receipt
    Type-Pools
    TYPE-POOLS : slis. " Has to be declared to use ALVs
    To hold ALV field catgory data
    DATA : it_fieldcat TYPE slis_t_fieldcat_alv,
    wa_fieldcat LIKE LINE OF it_fieldcat.
    Internal tables declarations
    Internal table to hold Report data
    DATA: BEGIN OF it_output OCCURS 0,
    dir_indir(9),
    bukrs LIKE ekko-bukrs, "company code
    ebeln LIKE ekko-ebeln, "Purchasing Document Number
    ebelp LIKE ekpo-ebelp, "Item
    aedat LIKE ekko-aedat, "Date on which the record was created
    belnr LIKE rseg-belnr, "Accounting document number
    bldat LIKE rbkp-bldat, "Document date in document
    budat LIKE rbkp-budat, "Posting date in the document
    wrbtr LIKE rseg-wrbtr, "Amount in document currency
    curr LIKE t880-curr, "Price unit (Local Curr)
    bednr LIKE ekpo-bednr, "Requirement tracking number
    lifnr LIKE ekko-lifnr, "Vendor's account number
    name1 LIKE lfa1-name1, "name1
    name2(30), "preparer name
    name3(30), "requester name
    gjahr LIKE rseg-gjahr, "Fiscal year
    ernam LIKE ekko-ernam, "Name of Person who Created the Object
    kursf LIKE rbkp-kursf, "Exchange rate
    shkzg LIKE rseg-shkzg, "Debit/credit indicator
    banfn LIKE ekpo-banfn, "Purchase requisition number
    knttp LIKE ekpo-knttp, "account assignment category
    END OF it_output.
    Selection Screen
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_bukrs LIKE ekko-bukrs OBLIGATORY,
    kntpp AS CHECKBOX DEFAULT 'X'.
    SELECT-OPTIONS: s_invdat FOR rbkp-bldat, "Document date in document
    s_vendor FOR ekko-lifnr, "Vendor's account number
    s_purcdo FOR ekko-ebeln, "Purchasing Document no
    s_credat FOR ekko-aedat OBLIGATORY,"create date
    s_plant FOR ekpo-werks, "Plant
    s_doctyp FOR ekko-bsart, "Purchasing document type
    s_purorg FOR ekko-ekorg, "Purchasing organization
    s_trcnum FOR ekpo-bednr, "Requirement tracking number
    s_knttp FOR ekpo-knttp. "account assignment category
    parameters : p_knntp as checkbox default 'X'.
    SELECTION-SCREEN: END OF BLOCK b1.
    DATA: count TYPE i VALUE 0. " Used to count records
    INITIALIZATION *
    INITIALIZATION.
    At Selection Screen
    AT SELECTION-SCREEN.
    Checking for the input values of selection screen fields.
    PERFORM validate_params.
    Start Of Selection
    START-OF-SELECTION.
    if p_knttp = 'X'.
    PERFORM get_data.
    else.
    message 'no output'.
    endif.
    End Of Selection
    END-OF-SELECTION.
    SUBROUTINE TO CALL THE FUNCTION MERGE TO ENSURE PROPER DISPLAY.
    PERFORM merge_fieldcatalog.
    PERFORM modify_fieldcat.
    PERFORM alv_report.
    FORM validate_params *
    FORM validate_params.
    Validate company code
    SELECT SINGLE COUNT(*) FROM t001 WHERE bukrs = p_bukrs.
    IF sy-subrc <> 0.
    MESSAGE e021 WITH 'Please enter a valid Company code'.
    ENDIF.
    *Validate Vendor.
    SELECT SINGLE COUNT(*) FROM lfa1 WHERE lifnr IN s_vendor.
    CASE sy-subrc.
    WHEN 0.
    WHEN OTHERS.
    MESSAGE e021 WITH 'Please enter a valid Vendor'.
    ENDCASE.
    *Validate PO doc type
    SELECT SINGLE COUNT(*) FROM t161 WHERE bsart IN s_doctyp.
    CASE sy-subrc.
    WHEN 0.
    WHEN OTHERS.
    MESSAGE e021 WITH 'Please enter a valid PO Doc. Type'.
    ENDCASE.
    *Validate plant
    SELECT SINGLE COUNT(*) FROM t001w WHERE werks IN s_plant.
    CASE sy-subrc.
    WHEN 0.
    WHEN OTHERS.
    MESSAGE e021 WITH 'Please enter a valid Plant. Type'.
    ENDCASE.
    *Validate Purch. Org
    SELECT SINGLE COUNT(*) FROM t024e WHERE ekorg IN s_purorg.
    CASE sy-subrc.
    WHEN 0.
    WHEN OTHERS.
    MESSAGE e021 WITH 'Please enter a valid Purch. Org.'.
    ENDCASE.
    ENDFORM. " PERFORM VALIDATE_PARAMS.
    FORM get_data *
    FORM get_data.
    DATA: l_persnumber LIKE usr21-persnumber.
    Get PO data
    SELECT a~bukrs a~ebeln b~ebelp a~aedat a~lifnr a~ernam
    b~knttp b~bednr b~banfn
    c~belnr c~wrbtr c~gjahr c~shkzg
    d~bldat d~budat d~kursf
    e~dir_indir
    INTO CORRESPONDING FIELDS OF TABLE it_output
    FROM ekko AS a
    JOIN ekpo AS b ON b~ebeln = a~ebeln
    JOIN rseg AS c ON c~ebeln = b~ebeln
    AND c~ebelp = b~ebelp
    AND c~bukrs = a~bukrs
    JOIN rbkp AS d ON d~belnr = c~belnr
    AND d~gjahr = c~gjahr
    LEFT JOIN zpo_dirindir AS e ON e~knttp = b~knttp
    WHERE a~bukrs = p_bukrs
    AND a~lifnr IN s_vendor
    AND a~ebeln IN s_purcdo
    AND a~bsart IN s_doctyp
    AND a~ekorg IN s_purorg
    AND a~aedat IN s_credat
    AND b~knttp IN s_knttp
    AND b~werks IN s_plant
    AND b~bednr IN s_trcnum.
    LOOP AT it_output.
    Get posting date, Doc. date & Curr. Key
    IF it_output-kursf <> 0.
    it_output-wrbtr = it_output-wrbtr * it_output-kursf.
    ENDIF.
    get local currency
    SELECT SINGLE waers INTO it_output-curr FROM t001
    WHERE bukrs = it_output-bukrs.
    Get vendor name.
    SELECT SINGLE name1 FROM lfa1 INTO it_output-name1
    WHERE lifnr = it_output-lifnr.
    Get PO created person name
    SELECT SINGLE persnumber INTO l_persnumber FROM usr21
    WHERE bname = it_output-ernam.
    IF sy-subrc = 0.
    SELECT SINGLE name_text FROM adrp INTO it_output-name2
    WHERE persnumber = l_persnumber.
    ELSE.
    it_output-name2 = it_output-ernam.
    ENDIF.
    Get get requested by from reciepent point in PO
    else PR created by (If PR exists)
    CASE it_output-dir_indir.
    WHEN 'I'.
    Take requested by from Reciepent point.
    SELECT SINGLE wempf INTO it_output-name3 FROM ekkn
    WHERE ebeln = it_output-ebeln
    AND ebelp = it_output-ebelp .
    WHEN 'D'.
    SELECT SINGLE ernam INTO it_output-name3 FROM eban
    WHERE banfn = it_output-banfn
    AND ebelp = it_output-ebelp.
    IF sy-subrc <> 0.
    MOVE it_output-ernam TO it_output-name3.
    ENDIF.
    SELECT SINGLE persnumber INTO l_persnumber FROM usr21
    WHERE bname = it_output-name3.
    IF sy-subrc = 0.
    SELECT SINGLE name_text FROM adrp INTO it_output-name3
    WHERE persnumber = l_persnumber.
    ENDIF.
    ENDCASE.
    translate direction indicator to Indirect or Direct
    CASE it_output-dir_indir.
    WHEN 'I'. it_output-dir_indir = 'Indirect'.
    WHEN 'D'. it_output-dir_indir = 'Direct'.
    ENDCASE.
    MODIFY it_output.
    ENDLOOP.
    ENDFORM.
    FORM MERGE_FIELDCATALOG *
    FORM merge_fieldcatalog.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    i_program_name = sy-cprog
    i_internal_tabname = 'IT_OUTPUT'
    i_inclname = sy-cprog
    CHANGING
    ct_fieldcat = it_fieldcat[]
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    ENDFORM. " MERGE_FIELDCATALOG
    FORM modify_fieldcat *
    FORM modify_fieldcat.
    DATA: wa_fieldcat TYPE slis_fieldcat_alv.
    LOOP AT it_fieldcat INTO wa_fieldcat.
    CASE wa_fieldcat-fieldname.
    WHEN 'DIR_INDIR'.
    wa_fieldcat-seltext_m = 'Direct/Indirect'.
    WHEN 'NAME2'.
    wa_fieldcat-seltext_m = 'PREPARER NAME'.
    WHEN 'NAME3'.
    wa_fieldcat-seltext_m = 'REQUESTER NAME'.
    WHEN 'BEDNR'.
    wa_fieldcat-seltext_m = 'SSP PO'.
    WHEN 'AEDAT'.
    wa_fieldcat-seltext_m = 'PO DOCUMENT DATE'.
    WHEN 'BLDAT'.
    wa_fieldcat-seltext_m = 'INVOICE DOCU DATE'.
    WHEN 'BUDAT'.
    wa_fieldcat-seltext_m = 'POSTAGE DATE'.
    WHEN 'WRBTR'.
    wa_fieldcat-seltext_m = 'LOCAL AMOUNT'.
    wa_fieldcat-cfieldname = 'CURR'.
    wa_fieldcat-ctabname = wa_fieldcat-tabname.
    WHEN 'CURR'.
    wa_fieldcat-seltext_m = 'LOCAL CURR'.
    WHEN 'NAME1'.
    wa_fieldcat-seltext_m = 'VENDOR NAME'.
    ENDCASE.
    MODIFY it_fieldcat FROM wa_fieldcat.
    ENDLOOP.
    ENDFORM.
    FORM ALV_REPORT *
    FORM alv_report.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = sy-cprog
    it_fieldcat = it_fieldcat[]
    TABLES
    t_outtab = it_output[].
    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.

  • Check box selection in IP WEB

    Hello everyone
    I am in IP with WEB front end.
    Have an analysis item which I need to run a planning function on that chages a charateristic field which is a status. The user needs to be able to select a subset of rows on which the planning function will be executed.
    Ideally a check box on the row would allow the user to select multiple lines and then execute the planning function changing the status.
    Can someone point me in the right direction?
    Thanks

    Your only option to enable functions to run on selected rows is to find some way to filter the query on those rows. If you cannot find any way to do that you can do a workaround which I have done recently:
    1 - Get a dummy key-figure
    2 - Instruct your users to fill that key figure with the value "1" for the lines they want to process.
    3 - The function (must be a FOX ou Exit) will validade if the user has filled the keyfigure with the value 1 and process that line. If the user didn't fill the keyfigure the function does nothing on that line.
    I know this isn't a perfect solution but it was the best way I could think of. If someone finds a better way I'll be interested too!

  • Check box with Boolean data type is not behaving properly

    Hi,
    I create a sample application with one entity driven view object with two attributes. One is of String data type [Value will be Y/N] and another (transient) attribute with Boolean data type. I planned to bind this boolean data type attribute to UI. I overridded the view row impl class and included setting of boolean attribute inside the setter of String attribute. Also in the getter of boolean attribute, added code to check the string attribute and return true/false based on that. Everything is working fine in application module tester. But when i test the same in view controller project in a page, it is not working. Always Check box component is not checked eventhough when i explicitly check it.
    [NOTE: I have given the control hint of Boolean attribute as check_box. Also i don't want selected/unselected entries in the page def file. That's why followed this approach]
    Have i missed out anything? Why this behaviour.
    Thanks in advance.
    Raguraman

    what is the value that is going in when u check it.. did u debug it.. is the viewRowimps setter and getter getting called.. and is it having the right value set and got.. and ur sure that ur using selectBooleanCheckBox..
    ur binding the checkbox to the transient value right??

  • Check Boxes in Excel Wookbook 97-2003 Not Saving Correctly in 2010

    Hello and Thank You for Your Time,
    We have a large number of workbooks with selection / check boxes that were originally save in the .xls (97-2003) format.  
    The reasoning for saving in this format is that we have a large organization with a number of different computers running different versions of Office products.
    When these .xls files are opened in 2010 and then "re-saved", the text boxes lose their positioning and the fields become overlapped.
    How do we avoid this, or what exactly is happening ?
    Thank You

    Hi,
    When you say "re-saved", do you mean save the workbooks to the current file format?
    Convert a workbook (Excel 97-2003) to new file format (from .xls to .xlsx) will cause compatibility issues, and it will cause a significant loss of functionality or a minor loss of fidelity in an earlier version of Excel as .xlsx format is XML-based
    file format, whereas .xls is a binary file format.
    I would suggest you to keep working on Compatibility Mode instead of resaving these files to .xlsx files.
    Hope this helps.
    Thanks,
    Ethan Hua CHN
    TechNet Community Support

  • SQ01 -  Include a check box on ABAP query Selection screen

    Hi Experts,
    For my Abap Query, on the selection screen i am planning to include a check box such that if i click on the check box then a field will be displayed in the resulting output . On the other hand if i do not check on i should not be able the field in the output.
    Please tell me how do i do this.
    Thanks
    Venkata Pradeep.

    In infoset, Extras code tab
    Code section: At selection-screen output
    Do something like below:
      IF radiobutton1 = 'X'.    
         LOOP AT SCREEN.      
              IF screen-group1 = 'XXXX'.         "XXX is the filed group name you want to hide., you have to                                                                  find out what is it.
                   screen-input = '1'.        
                   screen-invisible = '0'.        
                   MODIFY SCREEN.      
              ENDIF.    
         ENDLOOP.  
    ELSE.   
         LOOP AT SCREEN.     
              IF screen-group1 = 'XXX'.        
                   screen-input = '0'.       
                   screen-invisible = '1'.       
                   MODIFY SCREEN.     
              ENDIF.   
         ENDLOOP. 
    ENDIF.

  • Check boxes in ALV report

    Can any one please give me any test program for displaying checkboxes in the ALV Report Layout .
    Points will be rewarded even for helpfull answers.
    Thanks ,
    Veerendranath Maddula.

    Hi Veerendranath,
    below is the sample code for that,
    TYPES:
           BEGIN OF TY_VB_AKAP,
             VBELN      TYPE VBELN_VA,                       "Sales Document
             KUNNR      TYPE KUNAG,                          "Sold-to party
             POSNR      TYPE POSNR_VA,                       "Item Number
             MATNR      TYPE MATNR,                          "Material Number
             PMATN      TYPE PMATN,                          "Pricing Reference Material/Newly Created Material
             KWMENG     TYPE KWMENG,                         "Cumulative Order Qty. in Sales Units
             VRKME      TYPE VRKME,                          "Sales Unit
             KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
             VKAUS      TYPE ABRVW,                          "Usage Indicator
             WAERK      TYPE WAERK,                          "SD Document Currency
           END   OF TY_VB_AKAP,
           BEGIN OF TY_MARA,
             MATNR      TYPE MATNR,                          "Material Number
             ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
           END   OF TY_MARA,
           BEGIN OF TY_MVKE,
             MATNR      TYPE MATNR,                          "Material Number
             VKORG      TYPE VKORG,                          "Sales Organization
             VTWEG      TYPE VTWEG,                          "Distribution Channel
             KONDM      TYPE KONDM,                          "Material Pricing Group
    *--Begin of changes for the change request 2007096--26th July 2007--
             VRKME      TYPE VRKME,                          "Sales Unit according to the Material Master
    *--End   of changes for the change request 2007096--26th July 2007--
           END   OF TY_MVKE,
           BEGIN OF TY_VBKD,
             VBELN      TYPE VBELN_VA,                       "Sales Document
             POSNR      TYPE POSNR_VA,                       "Item Number
             BSTKD_E    TYPE BSTKD_E,                        "Used to capture New Material Number
           END   OF TY_VBKD,
           BEGIN OF TY_IHEADER,
             SELECT(1)  TYPE C,                              "Check Box
             VBELN      TYPE VBELN,                          "Sales Document
             KUNNR      TYPE KUNAG,                          "Sold-to Party
           END   OF TY_IHEADER,
           BEGIN OF TY_MESSAGE1,
            VKORG     TYPE VKORG,                            "Sales Organization
            VTWEG     TYPE VTWEG,                            "Distribution Channel
            KUNNR     TYPE KUNAG,                            "Customer number
            KONDM     TYPE KONDM,                            "Material pricing group
            ZCOUNT(2) TYPE N,                                "Zcount
            MSGTYP(1) TYPE C,                                "Message type
            TEXT      TYPE STRING,                           "Message text
           END   OF TY_MESSAGE1,
    *--Begin of changes for the change request 2007106--25th July 2007--
           BEGIN OF TY_MESSAGE1_2,
            VKORG     TYPE VKORG,                            "Sales Organization
            VTWEG     TYPE VTWEG,                            "Distribution Channel
            KUNNR     TYPE KUNAG,                            "Customer number
            KONDM     TYPE KONDM,                            "Material pricin
            MSGTYP(1) TYPE C,                                "Message type
            TEXT      TYPE STRING,                           "Message text
           END   OF TY_MESSAGE1_2,
    *--End   of changes for the change request 2007106--25th July 2007--
           BEGIN OF TY_MESSAGE2,
            VKORG     TYPE VKORG,                            "Sales Organization
            VTWEG     TYPE VTWEG,                            "Distribution Channel
            KUNNR     TYPE KUNAG,                            "Customer number
            MATNR     TYPE MATNR,                            "Material Number
            MSGTYP(1) TYPE C,                                "Message type
            TEXT      TYPE STRING,                           "Message text
           END   OF TY_MESSAGE2,
           BEGIN OF TY_IFINAL,
             VBELN      TYPE VBELN_VA,                       "Sales Document
             KWMENG     TYPE KWMENG,                         "Cumulative Order Qty. in Sales Units
             POSNR      TYPE POSNR_VA,                       "Item Number
             KUNNR      TYPE KUNAG,                          "Sold-to party
             MATNR      TYPE MATNR,                          "Material Number
             VRKME      TYPE VRKME,                          "Sales Unit
             KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
             VKAUS      TYPE ABRVW,                          "Usage Indicator
             ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
             PMATN      TYPE PMATN,                          "Pricing Reference Material/Newly Created Material
             KONDM      TYPE KONDM,                          "Material Pricing Group
    *--Begin of changes for the change request 2007096--26th July 2007--
             WAERK      TYPE WAERK,                          "SD Document Currency
    *--End   of changes for the change request 2007096--26th July 2007--
           END   OF TY_IFINAL,
           BEGIN OF TY_ACC1,
             VBELN      TYPE VBELN_VA,                       "Sales Document
             KUNNR      TYPE KUNAG,                          "Sold-to party
             KONDM      TYPE KONDM,                          "Material Pricing Group
             ZCOUNT(2)  TYPE N,                              "ZCount indicator
             KSTBM      TYPE KSTBM,                          "Quantity
             VRKME      TYPE VRKME,                          "Sales Unit
             ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
             KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
             ERROR(1)   TYPE N,                              "Error Field
    *--Begin of changes for the change request 2007096--26th July 2007--
             WAERK      TYPE WAERK,                          "SD Document Currency
    *--End   of changes for the change request 2007096--26th July 2007--
           END   OF TY_ACC1,
    Important Note : Earlier there were only three accesses and hence this below type was coded as TY_ACC2 depicting
    the type for internal table as a holder of data for second access sequence, but later a new access sequence was
    introduced and was introduced as the second access by itself and hence the sequence which was previously considered
    as second access is going to be third access sequence in reality. The naming standards that are going to be followed
    for the newly introduced access sequence would be XXX_1_2. (For Change request 2007106)
           BEGIN OF TY_ACC2,
             VBELN      TYPE VBELN_VA,                       "Sales Document
             KUNNR      TYPE KUNAG,                          "Sold-to party
             MATNR      TYPE MATNR,                          "Material Number
             KSTBM      TYPE KSTBM,                          "Cumulative Order Qty. in Sales Units
             ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
             VRKME      TYPE VRKME,                          "Sales Unit
             KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
             ERROR(1)   TYPE N,                              "Error field
    *--Begin of changes for the change request 2007096--26th July 2007--
             WAERK      TYPE WAERK,                          "SD Document Currency
    *--End   of changes for the change request 2007096--26th July 2007--
           END   OF TY_ACC2,
    *--Begin of changes for the change request 2007106--24th July 2007--
           BEGIN OF TY_ACC1_2,
             VBELN      TYPE VBELN_VA,                       "Sales Document
             KUNNR      TYPE KUNAG,                          "Sold-to party
             KONDM      TYPE KONDM,                          "Material Pricing Group
             KSTBM      TYPE KSTBM,                          "Quantity
             VRKME      TYPE VRKME,                          "Sales Unit
             ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
             KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
             ERROR(1)   TYPE N,                              "Error field
    *--Begin of changes for the change request 2007096--26th July 2007--
             WAERK      TYPE WAERK,                          "SD Document Currency
    *--End   of changes for the change request 2007096--26th July 2007--
           END   OF TY_ACC1_2,
    *--End   of changes for the change request 2007106--24th July 2007--
    *--Begin of changes for the change request 2007096--26th July 2007--
           BEGIN OF TY_T006,
             MSEHI      TYPE MSEHI,                          "Unit of Measurement
             ZAEHL      TYPE DZAEHL,                         "Numerator for conversion to SI unit
             NENNR      TYPE NENNR,                          "Denominator for conversion into SI unit
           END   OF TY_T006,
    *--End   of changes for the change request 2007096--26th July 2007--
    *--Begin of changes for the change request xxx--2nd Aug 2007--
    *Types of MARM table
           BEGIN OF TY_MARM,
             MATNR TYPE MATNR,                               " Material Number
             MEINH TYPE LRMEI,                               " Alternative Unit of Measure
             UMREZ TYPE UMREZ,                               " Numerator for Conversion to Base UOM
             UMREN TYPE UMREN,                               " Denominator for Conversion to Base UOM
           END   OF TY_MARM.
    *--End   of changes for the change request xxx--2nd Aug 2007--
       D A T A                                                           *
    Internal Table Declarations
    DATA: T_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV,           "Fieldcatalog IT
          T_EVENTS       TYPE SLIS_T_EVENT,                  "Event IT
          T_HEADER       TYPE SLIS_T_LISTHEADER,             "Header IT
          T_VB_AKAP      TYPE STANDARD TABLE OF TY_VB_AKAP,  "To hold records from VBAK & VBAP Table
          T_MARA         TYPE STANDARD TABLE OF TY_MARA,     "To hold records from MARA Table
          T_MVKE         TYPE STANDARD TABLE OF TY_MVKE,     "To hold records from MVKE Table
          T_VBKD         TYPE STANDARD TABLE OF TY_VBKD,     "To hold records from VBKD Table
          T_IHEADER      TYPE STANDARD TABLE OF TY_IHEADER,  "To hold records from VBAK Table
          T_IFINAL       TYPE STANDARD TABLE OF TY_IFINAL,   "To hold cumulative data for ALV
          T_BDCDATA      TYPE STANDARD TABLE OF BDCDATA,     "IT for bdcdata
          T_BDCMSGCOLL   TYPE STANDARD TABLE OF BDCMSGCOLL,  "IT for error messages
          T_MESSAGE1     TYPE STANDARD TABLE OF TY_MESSAGE1, "IT for conditions1 messages
    *--Begin of changes for the change request 2007106--25th July 2007--
          T_MESSAGE1_2   TYPE STANDARD TABLE OF TY_MESSAGE1_2,"ITfor conditions1_2 messages
    *--End   of changes for the change request 2007106--25th July 2007--
          T_MESSAGE2     TYPE STANDARD TABLE OF TY_MESSAGE2, "IT for conditions2 messages
          T_ACC2         TYPE STANDARD TABLE OF TY_ACC2,     "IT for holding data for Second Access Sequence Processing
          T_ACC1         TYPE STANDARD TABLE OF TY_ACC1,     "IT for holding data for First Access Sequence Processing
          T_SELECT       TYPE STANDARD TABLE OF RSPARAMS,    "IT for holding data related to the selection screen
    *--Begin of changes for the change request 2007106--24th July 2007--
          T_ACC1_2       TYPE STANDARD TABLE OF TY_ACC1_2,   "IT for holding data for new intermediate Access Sequence
    *--End   of changes for the change request 2007106--24th July 2007--
    *--Begin of changes for the change request 2007096--26th July 2007--
          T_T006         TYPE STANDARD TABLE OF TY_T006,     "IT for holding T006 Entries
    *--End   of changes for the change request 2007096--26th July 2007--
    *--Begin of changes for the change request xxx--2nd Aug 2007--
          T_MARM         TYPE STANDARD TABLE OF TY_MARM,     "IT for holding entries from MARM
    *--End   of changes for the change request xxx--2nd Aug 2007--
    Work area Declarations
          W_FIELDCATALOG TYPE SLIS_FIELDCAT_ALV,             "Fieldcatalog WA
          W_EVENT        TYPE SLIS_ALV_EVENT,                "Event WA
          W_HEADER       TYPE SLIS_LISTHEADER,               "Header WA
          W_LAYOUT       TYPE SLIS_LAYOUT_ALV,               "Layout WA
          W_KEYINFO      TYPE SLIS_KEYINFO_ALV,              "Key Information WA
          W_VB_AKAP      TYPE TY_VB_AKAP,                    "To hold records from T_VB_AKAP
          W_MARA         TYPE TY_MARA,                       "To hold records from T_MARA
          W_MVKE         TYPE TY_MVKE,                       "To hold records from T_MVKE
          W_VBKD         TYPE TY_VBKD,                       "To hold records from T_VBKD
          W_IHEADER      TYPE TY_IHEADER,                    "To hold records from T_IHEADER
          W_IFINAL       TYPE TY_IFINAL,                     "To hold records from T_IFINAL
          W_PARAMS       TYPE CTU_PARAMS,                    "CTU Params
          W_BDCDATA      TYPE BDCDATA,                       "Work Area for BDCDATA
          W_BDCMSGCOLL   TYPE BDCMSGCOLL,                    "Work Area to collect BDC Messages
          W_MESSAGE1     TYPE TY_MESSAGE1,                   "WA for price conditions1 messages
    *--Begin of changes for the change request 2007106--25th July 2007--
          W_MESSAGE1_2   TYPE TY_MESSAGE1_2,                 "WA for price conditions1_2 messages
    *--End   of changes for the change request 2007106--25th July 2007--
          W_MESSAGE2     TYPE TY_MESSAGE2,                   "WA for price conditions2 messages
          W_ACC2         TYPE TY_ACC2,                       "WA for holding records from T_ACC2
          W_ACC1         TYPE TY_ACC1,                       "WA for holding records from T_ACC1
    *--Begin of changes for the change request 2007106--24th July 2007--
          W_ACC1_2       TYPE TY_ACC1_2,                     "WA for holding records from T_ACC1_2
    *--End   of changes for the change request 2007106--24th July 2007--
    *--Begin of changes for the change request 2007096--26th July 2007--
          W_T006         TYPE TY_T006,                       "WA for holding T_T006 Entries
    *--End   of changes for the change request 2007096--26th July 2007--
    *--Begin of changes for the change request xxx--2nd Aug 2007--
          W_MARM         TYPE TY_MARM,                       "WA for holding entries of T_MARM
    *--End   of changes for the change request xxx--2nd Aug 2007--
    Variable declarations
          G_VKORG       TYPE VKORG,                          "Sales Organization
          G_VTWEG       TYPE VTWEG,                          "Distribution Channel
          G_AUDAT       TYPE AUDAT,                          "Document Date (Date Received/Sent)
          G_VBELN       TYPE VBELN_VA,                       "Sales Document
          G_KUNNR       TYPE KUNAG,                          "Sold-to party
          G_MATNR       TYPE MATNR,                          "Material Number
          G_REPID       TYPE SY-REPID,                       "Program Name
          G_MESSAGE(73) TYPE C,                              "To Capture Message
          G_FLAG1(1)    TYPE C,                              "Flag
          G_ANSWER(1)   TYPE C,                              "Optional Button
    *--Begin of changes for the change request 2007096--26th July 2007--
          G_NUM_SOURCE  TYPE DZAEHL,                         "Holds Numerator value for Source Unit of Measure
          G_NUM_TARGET  TYPE DZAEHL,                         "Holds Numerator value for Target Unit of Measure
          G_DEN_SOURCE  TYPE NENNR,                          "Holds Denominator value for Source Unit of Measure
          G_DEN_TARGET  TYPE NENNR.                          "Holds Denominator value for Target Unit of Measure
    *--End   of changes for the change request 2007096--26th July 2007--
    Constant declarations
    CONSTANTS:
          C_A(1)         TYPE C VALUE 'A',                    "Constant Value A
          C_S(1)         TYPE C VALUE 'S',                    "Constant Value S
          C_U(1)         TYPE C VALUE 'U',                    "Constant Value U
          C_X(1)         TYPE C VALUE 'X',                    "Constant Value X
          C_E(1)         TYPE C VALUE 'E',                    "Constant Value E
          C_I(1)         TYPE C VALUE 'I',                    "Constant Value I
          C_R(1)         TYPE C VALUE 'R',                    "Constant Value R
          C_B(1)         TYPE C VALUE 'B',                    "Document Category is Quotation
          C_HTNAME(10)   TYPE C VALUE 'T_IHEADER',            "Internal table for Header Data
          C_ITNAME(10)   TYPE C VALUE 'T_IFINAL',             "Internal Table with processed data
          C_Q2(2)        TYPE C VALUE 'Q2',                   "Constant Order Reason Q2
          C_100(3)       TYPE C VALUE '100',                  "Popup screen
          C_25(2)        TYPE C VALUE '25',                   "Popup screen
          C_5(1)         TYPE C VALUE '5',                    "Popup screen
          C_1            TYPE I VALUE  1,                     "Value 1 for Error Denotion
          C_2            TYPE I VALUE  2,                     "Value 2 for Error Denotion
          C_3            TYPE I VALUE  3,                     "Value 3 for BDC Error Denotion
          C_1000(4)      TYPE N VALUE 1000,                     "Value 1000
          C_01(2)        TYPE N VALUE '01',                   "Value 01 for Zcount
          C_VK11(4)      TYPE C VALUE 'VK11',                 "Transaction VK11
          C_DYNBEGIN(1)  TYPE C VALUE 'X',                    "Indicator
          C_UPDATE(1)    TYPE C VALUE 'S',                    "Update
          C_DISMODE(1)   TYPE C VALUE 'N',                    "Display
          C_Q3(2)        TYPE C VALUE 'Q3',                   "Quotation Approved
          C_ZBPR(4)      TYPE C VALUE 'ZBPR',                 "Condition Type ZBPR
    *--Begin of changes for the change request xxx--2nd Aug 2007--
          C_ZBPN(4)      TYPE C VALUE 'ZBPN',                 "Condition Type ZBPN
    *--End   of changes for the change request xxx--2nd Aug 2007--
          C_ERROR(5)     TYPE C VALUE 'ERROR'.                "Error screen title
       S E L E C T   O P T I O N S  &  P A R A M E T E R S               *
    Selection-screen Block 1
    SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
    PARAMETERS:     P_VKORG TYPE VKORG OBLIGATORY,           "Sales Organization
                    P_VTWEG TYPE VTWEG OBLIGATORY,           "Distribution Channel
                    P_SPART TYPE SPART DEFAULT '00'.         "Division
    SELECTION-SCREEN END OF BLOCK BLK1.
    SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.
    SELECT-OPTIONS: S_AUDAT FOR G_AUDAT,                     "Document Date (Date Received/Sent)
                    S_VBELN FOR G_VBELN,                     "Sales Document
                    S_KUNNR FOR G_KUNNR,                     "Sold-to party
                    S_MATNR FOR G_MATNR.                     "Material Number
    PARAMETERS:     P_VKAUS(2) TYPE N.                       "Usage Indicator
    SELECTION-SCREEN END OF BLOCK BLK2.
      I N I T I A L I Z A T I O N                                        *
    INITIALIZATION.
      CLEAR : G_REPID.                                       "Program Name
      G_REPID = SY-REPID.                                    "Program Name
      A T   S E L E C T I O N   S C R E E N                              *
      CLEAR: G_VKORG,
             G_VTWEG.
    AT SELECTION-SCREEN ON P_VKORG.
      SELECT SINGLE VKORG INTO G_VKORG
                          FROM TVKO
                          WHERE VKORG EQ P_VKORG.
      IF SY-SUBRC NE 0.
        MESSAGE E000(ZS) WITH TEXT-021.
      ENDIF.
    AT SELECTION-SCREEN ON P_VTWEG.
      SELECT SINGLE VTWEG INTO G_VTWEG
                          FROM TVKOV
                          WHERE VKORG EQ P_VKORG
                            AND VTWEG EQ P_VTWEG.
      IF SY-SUBRC NE 0.
        MESSAGE E000(ZS) WITH TEXT-022.
      ENDIF.
      CLEAR: G_VKORG,
             G_VTWEG.
      S T A R T   O F   S E L E C T I O N                                *
    START-OF-SELECTION.
    Data Selection
      PERFORM DATA_RETRIEVAL.
    Build Field Catalog
      PERFORM BUILD_FIELDCATALOG.
    Bulid layout
      PERFORM BUILD_LAYOUT.
    Build Events
      PERFORM BUILD_EVENTS.
    Captures the Values of Selection Screen
      PERFORM CAPTURE_SCREEN.
      E N D   O F   S E L E C T I O N                                    *
    END-OF-SELECTION.
    Display List
      PERFORM DISPLAY_ALV_REPORT.
      F O R M S                                                          *
    *&      Form  DATA_RETRIEVAL
          Retrieves Data for ALV Display
    *--Begin of changes for the change request 2007106--25th July 2007--
    *--End   of changes for the change request 2007106--25th July 2007--
    FORM DATA_RETRIEVAL .
      DATA : L_VKAUS   TYPE VKAUS.            "Variable to hold Usage Indicator
      CLEAR L_VKAUS.
      SELECT VBELN
             KUNNR
        INTO CORRESPONDING FIELDS OF TABLE T_IHEADER
        FROM VBAK
        WHERE VBELN IN S_VBELN
          AND KUNNR IN S_KUNNR
          AND VKORG EQ P_VKORG
          AND AUDAT IN S_AUDAT
          AND VTWEG EQ P_VTWEG
          AND SPART EQ P_SPART
          AND AUGRU EQ C_Q2
          AND VBTYP EQ C_B.
      IF NOT T_IHEADER IS INITIAL.
        IF NOT P_VKAUS IS INITIAL.
    *--Begin of changes for the change request 2007106--25th July 2007--COMMENTED FROM HERE---
         IF P_VKAUS EQ C_1.    "IF Zcount is given as 1 then quotation without zcount should be picked
           "for whom Material Pricing Group should be given.
           SELECT A~VBELN
                  A~KUNNR
                  B~POSNR
                  B~MATNR
                  B~PMATN
                  B~KWMENG
                  B~VRKME
                  B~KZWI1
                  B~VKAUS
            INTO  TABLE T_VB_AKAP
            FROM  VBAK AS A
            JOIN  VBAP AS B
              ON  AVBELN EQ BVBELN
            FOR ALL ENTRIES IN T_IHEADER
            WHERE A~VBELN EQ T_IHEADER-VBELN
              AND B~MATNR IN S_MATNR.
         ELSE.
    *--End   of changes for the change request 2007106--25th July 2007--COMMENTED TILL HERE---
          CONCATENATE 'C' P_VKAUS INTO L_VKAUS.
          SELECT A~VBELN
                 A~KUNNR
                 B~POSNR
                 B~MATNR
                 B~PMATN
                 B~KWMENG
                 B~VRKME
                 B~KZWI1
                 B~VKAUS
    *--Begin of changes for the change request 2007096--26th July 2007--
                 A~WAERK
    *--End   of changes for the change request 2007096--26th July 2007--
           INTO  TABLE T_VB_AKAP
           FROM  VBAK AS A
           JOIN  VBAP AS B
             ON  AVBELN EQ BVBELN
           FOR ALL ENTRIES IN T_IHEADER
            WHERE A~VBELN EQ T_IHEADER-VBELN
              AND B~MATNR IN S_MATNR
              AND B~VKAUS EQ L_VKAUS.
         ENDIF.
        ELSE.
          SELECT A~VBELN
                 A~KUNNR
                 B~POSNR
                 B~MATNR
                 B~PMATN
                 B~KWMENG
                 B~VRKME
                 B~KZWI1
                 B~VKAUS
    *--Begin of changes for the change request 2007096--26th July 2007--
                 A~WAERK
    *--End   of changes for the change request 2007096--26th July 2007--
           INTO  TABLE T_VB_AKAP
           FROM  VBAK AS A
           JOIN  VBAP AS B
             ON  AVBELN EQ BVBELN
           FOR ALL ENTRIES IN T_IHEADER
           WHERE A~VBELN EQ T_IHEADER-VBELN
             AND B~MATNR IN S_MATNR.
        ENDIF.
        IF NOT T_VB_AKAP IS INITIAL.
          SELECT  VBELN
                  POSNR
                  BSTKD_E
             INTO TABLE T_VBKD
             FROM VBKD
             FOR ALL ENTRIES IN T_VB_AKAP
             WHERE VBELN EQ T_VB_AKAP-VBELN
               AND POSNR EQ T_VB_AKAP-POSNR.
        ENDIF.
        SORT T_VBKD BY VBELN POSNR.
        CLEAR W_VB_AKAP.
      After much of coding was completed, Usage of PMATN was dropped and
      the first eighteen characters of the field BSTKD was proposed for usage
      Hence PMATN is overwritten by BSTKD value in the below loop
        LOOP AT T_VB_AKAP INTO W_VB_AKAP.
          CLEAR: W_VBKD,
                 W_VB_AKAP-PMATN.
          READ TABLE T_VBKD INTO W_VBKD
                            WITH KEY VBELN = W_VB_AKAP-VBELN
                                     POSNR = W_VB_AKAP-POSNR
                            BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            W_VB_AKAP-PMATN = W_VBKD-BSTKD_E+0(18).
          ENDIF.
          MODIFY T_VB_AKAP FROM W_VB_AKAP TRANSPORTING PMATN.
          CLEAR W_VB_AKAP.
        ENDLOOP.
        IF NOT T_VB_AKAP IS INITIAL.
        Collecting all Material Numbers along with their Technical Spec data for all the materials available in T_VB_AKAP.
          SELECT    MATNR
                    ZZTECHSPEC
            INTO    TABLE T_MARA
            FROM    MARA
            FOR ALL ENTRIES IN T_VB_AKAP
            WHERE   MATNR EQ T_VB_AKAP-MATNR.
          IF SY-SUBRC EQ 0.
            SORT T_MARA BY MATNR.
          ENDIF.                     "Checking SY-SUBRC for T_MARA
          SELECT    MATNR
                    ZZTECHSPEC
            APPENDING TABLE T_MARA
            FROM    MARA
            FOR ALL ENTRIES IN T_VB_AKAP
            WHERE   MATNR EQ T_VB_AKAP-PMATN.
          IF SY-SUBRC EQ 0.
            SORT T_MARA BY MATNR.
          ENDIF.                     "Checking SY-SUBRC for T_MARA
    *--Begin of changes for the change request xxx--2nd Aug 2007--
        Collecting information into T_MARM for all the available materials so that it could be used for conversion into Alternate UOM
          SELECT MATNR                          " Material Number
                 MEINH                          " Alternate UOM
                 UMREZ                          " Numerator for conversion
                 UMREN                          " Denominator for conversion
            FROM MARM
            INTO TABLE T_MARM
            FOR ALL ENTRIES IN T_VB_AKAP
            WHERE MATNR EQ T_VB_AKAP-MATNR.
          IF SY-SUBRC = 0.
            SORT T_MARM BY MATNR MEINH.
          ENDIF.                     "Checking SY-SUBRC for T_MARM
          SELECT MATNR                          " Material Number
                 MEINH                          " Alternate UOM
                 UMREZ                          " Numerator for conversion
                 UMREN                          " Denominator for conversion
            FROM MARM
            APPENDING TABLE T_MARM
            FOR ALL ENTRIES IN T_VB_AKAP
            WHERE MATNR EQ T_VB_AKAP-PMATN.
          IF SY-SUBRC = 0.
            SORT T_MARM BY MATNR MEINH.
          ENDIF.                     "Checking SY-SUBRC for T_MARM
    *--End   of changes for the change request xxx--2nd Aug 2007--
          SELECT    MATNR
                    VKORG
                    VTWEG
                    KONDM
    *--Begin of changes for the change request 2007096--26th July 2007--
                    VRKME
    *--End   of changes for the change request 2007096--26th July 2007--
            INTO    TABLE T_MVKE
            FROM    MVKE
            FOR ALL ENTRIES IN T_VB_AKAP
            WHERE   MATNR EQ T_VB_AKAP-PMATN.
          IF SY-SUBRC EQ 0.
            SORT T_MVKE BY MATNR VKORG VTWEG.
          ENDIF.                     "Checking SY-SUBRC for T_MVKE
          SELECT    MATNR
                    VKORG
                    VTWEG
                    KONDM
    *--Begin of changes for the change request 2007096--26th July 2007--
                    VRKME
    *--End   of changes for the change request 2007096--26th July 2007--
            APPENDING TABLE T_MVKE
            FROM    MVKE
            FOR ALL ENTRIES IN T_VB_AKAP
            WHERE   MATNR EQ T_VB_AKAP-MATNR.
          IF SY-SUBRC EQ 0.
            SORT T_MVKE BY MATNR VKORG VTWEG.
          ENDIF.                     "Checking SY-SUBRC for T_MVKE
    *--Begin of changes for the change request 2007096--26th July 2007--
          SELECT    MSEHI
                    ZAEHL
                    NENNR
             INTO   TABLE T_T006
             FROM   T006
             FOR ALL ENTRIES IN T_VB_AKAP
             WHERE  MSEHI EQ T_VB_AKAP-VRKME.
          IF SY-SUBRC EQ 0.
            SORT T_T006 BY MSEHI.
          ENDIF.                     "Checking SY-SUBRC for T_T006
          IF NOT T_MVKE IS INITIAL.
            SELECT MSEHI
                   ZAEHL
                   NENNR
            APPENDING TABLE T_T006
            FROM   T006
            FOR ALL ENTRIES IN T_MVKE
            WHERE MSEHI EQ T_MVKE-VRKME.
            IF SY-SUBRC EQ 0.
              SORT T_T006 BY MSEHI.
            ENDIF.                  "Checking SY-SUBRC for T_T006
          ENDIF.                     "Checking for Initial status of internal table T_MVKE
    *--End   of changes for the change request 2007096--26th July 2007--
        ENDIF.                    " FOR T_VB_AKAP NOT INITIAL.
      ENDIF.                    " FOR T_IHEADER NOT INITIAL.
      CLEAR: W_VB_AKAP,
             W_IFINAL.
      LOOP AT T_VB_AKAP INTO W_VB_AKAP.
        W_IFINAL-VBELN  = W_VB_AKAP-VBELN.
        W_IFINAL-KUNNR  = W_VB_AKAP-KUNNR.
        W_IFINAL-POSNR  = W_VB_AKAP-POSNR.
        W_IFINAL-MATNR  = W_VB_AKAP-MATNR.
        W_IFINAL-PMATN  = W_VB_AKAP-PMATN.
        W_IFINAL-KWMENG = W_VB_AKAP-KWMENG.
        W_IFINAL-VRKME  = W_VB_AKAP-VRKME.
        W_IFINAL-KZWI1  = ( W_VB_AKAP-KZWI1 / W_VB_AKAP-KWMENG ) * 1000.
        W_IFINAL-VKAUS  = W_VB_AKAP-VKAUS.
    *--Begin of changes for the change request 2007096--26th July 2007--
        W_IFINAL-WAERK  = W_VB_AKAP-WAERK.
    *--End   of changes for the change request 2007096--26th July 2007--
      Populating Material Pricing Group from New Material Group, if such Group doesn't exist
      Population of Material Pricing Group from Material Number is tried.
      Similar condition does suit for Tech Spec too.
        SORT: T_MVKE BY MATNR VKORG VTWEG,
              T_MARA BY MATNR.
        IF NOT W_VB_AKAP-PMATN IS INITIAL.
          CLEAR W_MVKE.
          READ TABLE    T_MVKE
               INTO     W_MVKE
               WITH KEY MATNR = W_VB_AKAP-PMATN
                        VKORG = P_VKORG
                        VTWEG = P_VTWEG
               BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            W_IFINAL-KONDM = W_MVKE-KONDM.
    *--Begin of changes for the change request 2007096--26th July 2007--
            IF ( W_IFINAL-VRKME NE W_MVKE-VRKME ) AND ( NOT W_MVKE-VRKME IS INITIAL ).
    *--Begin of changes for the change request xxx--2nd Aug 2007--
              CLEAR: W_MARM,
                     G_NUM_SOURCE,
                     G_DEN_SOURCE,
                     G_NUM_TARGET,
                     G_DEN_TARGET.
              READ TABLE T_MARM INTO W_MARM
                                WITH KEY MATNR = W_IFINAL-PMATN
                                MEINH = W_IFINAL-VRKME
                                BINARY SEARCH.
              IF SY-SUBRC EQ 0.
                G_NUM_SOURCE = W_MARM-UMREZ.
                G_DEN_SOURCE = W_MARM-UMREN.
                CLEAR W_MARM.
                READ TABLE T_MARM INTO W_MARM
                                  WITH KEY MATNR = W_IFINAL-PMATN
                                  MEINH = W_MVKE-VRKME
                                  BINARY SEARCH.
                IF SY-SUBRC EQ 0.
                  G_NUM_TARGET = W_MARM-UMREZ.
                  G_DEN_TARGET = W_MARM-UMREN.
                  CLEAR W_MARM.
                  W_IFINAL-KWMENG = W_IFINAL-KWMENG * ( G_NUM_SOURCE / G_DEN_SOURCE ) * ( G_DEN_TARGET / G_NUM_TARGET ).
                  CLEAR W_IFINAL-KZWI1.
                  W_IFINAL-KZWI1   = ( W_VB_AKAP-KZWI1 / W_IFINAL-KWMENG ) * 1000.
                  W_IFINAL-VRKME = W_MVKE-VRKME.
                ENDIF.              "Check SY-SUBRC for W_MARM using W_MVKE-VRKME (Sales UOM)
              ELSE.
    *--End   of changes for the change request xxx--2nd Aug 2007--
                CLEAR: W_T006,
                       G_NUM_SOURCE,
                       G_DEN_SOURCE,
                       G_NUM_TARGET,
                       G_DEN_TARGET.
                READ TABLE T_T006 INTO W_T006 WITH KEY MSEHI = W_IFINAL-VRKME
                                              BINARY SEARCH.
                IF SY-SUBRC EQ 0.
                  G_NUM_SOURCE = W_T006-ZAEHL.          "Numerator to convert specified UOM to SI UOM
                  G_DEN_SOURCE = W_T006-NENNR.          "Denominator to convert specified UOM to SI UOM
                  CLEAR W_T006.
                  READ TABLE T_T006 INTO W_T006 WITH KEY MSEHI = W_MVKE-VRKME
                                                BINARY SEARCH.
                  IF SY-SUBRC EQ 0.
                    G_NUM_TARGET = W_T006-ZAEHL.            "Numerator to convert specified UOM to SI UOM
                    G_DEN_TARGET = W_T006-NENNR.            "Denominator to convert specified UOM to SI UOM
                    CLEAR W_T006.
                    W_IFINAL-KWMENG = W_IFINAL-KWMENG * ( G_NUM_SOURCE / G_DEN_SOURCE ) * ( G_DEN_TARGET / G_NUM_TARGET ).
                    CLEAR W_IFINAL-KZWI1.
                    W_IFINAL-KZWI1   = ( W_VB_AKAP-KZWI1 / W_IFINAL-KWMENG ) * 1000.
                    W_IFINAL-VRKME = W_MVKE-VRKME.
                  ENDIF.          "Check for SY-SUBRC for READ TABLE T_T006 using W_MVKE-VRKME (Sales UOM)
                ENDIF.            "Check for SY-SUBRC for READ TABLE T_T006 using W_IFINAL-VRKME (Quotation UOM)
              ENDIF.              "Check SY-SUBRC for W_MARM using W_IFINAL-VRKME (Quotation UOM)
            ENDIF.              "Check for ( W_IFINAL-VRKME NE W_MVKE-VRKME ) AND ( NOT W_MVKE-VRKME IS INITIAL )
    *--End   of changes for the change request 2007096--26th July 2007--
          ENDIF.
          READ TABLE     T_MARA
               INTO      W_MARA
               WITH KEY  MATNR = W_VB_AKAP-PMATN
               BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            W_IFINAL-ZZTECHSPEC = W_MARA-ZZTECHSPEC.
          ENDIF.    

  • Check-Boxes and Popup Menus

    Hi, all!
    I'm a relative novice at AppleScript.
    What I'm looking for is a way to put a check box (like in a form) into a dialog box. I'd like to put it under some buttons, or a popup menu, which brings me to my next question:
    How do you add a popup menu to a dialgo box? It wold be in place of buttons.
    I know you can use Interface Builder to do this, but I don't know how to use the Xcode and Interface builder.
    I plan on learning soon, but it's kind of a daunting program…
    Anyway, any help would be much appreciated!
    Thanks in advance!
    -Nate

    AppleScript's *Standard Additions* just provides a few simple general purpose dialogs. For dialogs with other user interface items, you will need to use Xcode or third party tools such as CocoaDialog.

  • ALV with Check Boxes

    Can I get a sample program of ALV (oops) with check boxes in it. thank you.

    Types: begin of lt_io.
    include structure mara. " Your Structure
    Types: style_table type lvc_t_style.
    Types: end of lt_io.
    data: lt_io type table of lt_io,
    ls_layout type lvc_s_layo,
    lt_fcat type lvc_t_fcat,
    lo_grid type ref to cl_gui_alv_grid.
    field-symbols: <io> type lt_io,
    <fcat> type lvc_s_fcat.
    ... fill your output table ....
    ls_layout-stylefname = 'STYLE_TABLE'.
    loop at lt_io assigning <io>.
    PERFORM set_style USING 'CHECKBOX' "Your Filename
    CHANGING <io>.
    endloop.
    ... Fill Your Field Catalog lt_fcat
    read table lt_fcat assigning <fcat>
    where fieldname = 'CHECKBOX'.
    <fcat>-checkbox = 'X'.
    create grid control lo_grid.
    CALL METHOD lo_grid->set_table_for_first_display
    EXPORTING
    is_layout = ls_layout
    CHANGING
    it_fieldcatalog = lt_fcat
    it_outtab = lt_io[].
    FORM set_button_to_line
    USING iv_fieldname TYPE lvc_fname
    CHANGING cs_io TYPE io.
    DATA: ls_style TYPE lvc_s_styl,
    lt_style TYPE lvc_t_styl.
    ls_style-fieldname = iv_fieldname.
    if cs_io-checkbox = ' '.
    ls_style-style = cl_gui_alv_grid=>mc_style_enabled.
    else.
    ls_style-style = cl_gui_alv_grid=>mc_style_disabled.
    endif.
    ls_style-maxlen = 2.
    INSERT ls_style INTO TABLE io-style_table.
    ENDFORM. "set_icon_to_status_line
    [/code].
    A classical report is a program that generates a single list, which must contain all of the required detail information.
    1) This procedure may result in extensive lists from which the user has to pick the relevant data.
    2) For background processing, this is the only possible method. After starting a background job, there is no way of influencing the program.
    3) The desired selections must be made beforehand and the list must provide detailed information.
    4) For dialog sessions, there are no such restrictions.
    5) The user is present during the execution of the program and can control and manipulate the program flow directly.
    6) To be able to use all advantages of the online environment, classical reporting was developed into interactive reporting.
    ALV is Application List viewer. Sap provides a set of ALV (ABAP LIST VIEWER) function modules which can be put into use to embellish the output of a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length. In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output. The report output can contain up to 90 columns in the display with the wide array of display options.
    Advantages.
    Collapse multiple reports into one, drastically cutting down your report development time
    Save many hours using built-in ALV sorting, subtotaling and filtering capabilities
    Add conditional structures into your ALV report: No programming required!
    Combine ALV with display variants to meet a wide range of reporting requirements more easily
    Dynamically reorder column layouts and add/subtract fields
    Enable users and analysts to save their own personalized variants
    All the definitions of internal tables, structures and constants are declared in a type-pool called SLIS.
    1. SIMPLE REPORT.
    The important function modules are
    a. Reuse_alv_list_display
    b. Reuse_alv_fieldcatalog_merge
    c. Reuse_alv_events_get
    d. Reuse_alv_commentary_write
    e. Reuse_alv_grid_display
    A. REUSE_ALV_LIST_DISPLAY : This is the function module which prints the data.
    The important parameters are :
    I. Export :
    i. I_callback_program : report id
    ii. I_callback_pf_status_set : routine where a user can set his own pf status or change the functionality of the existing pf status
    iii. I_callback_user_command : routine where the function codes are handled
    iv. I_structure name : name of the dictionary table
    v. Is_layout : structure to set the layout of the report
    vi. It_fieldcat : internal table with the list of all fields and their attributes which are to be printed (this table can be populated automatically by the function module REUSE_ALV_FIELDCATALOG_MERGE
    vii. It_events : internal table with a list of all possible events of ALV and their corresponding form names.
    II. Tables :
    i. t_outtab : internal table with the data to be output
    B. REUSE_ALV_FIELDCATALOG_MERGE : This function module is used to populate a fieldcatalog which is essential to display the data in ALV. If the output data is from a single dictionary table and all the columns are selected, then we need not exclusively create the field catalog. Its enough to mention the table name as a parameter(I_structure name) in the REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.
    The Important Parameters are :
    I. Export :
    i. I_program_name : report id
    ii. I_internal_tabname : the internal output table
    iii. I_inclname : include or the report name where all the dynamic forms are handled.
    II Changing
    ct_fieldcat : an internal table with the type SLIS_T_FIELDCAT_ALV which is
    declared in the type pool SLIS.
    C. REUSE_ALV_EVENTS_GET : Returns table of possible events for a list type
    Parameters :
    I. Import :
    Et_Events : The event table is returned with all possible CALLBACK events
    for the specified list type (column 'NAME'). For events to be processed by Callback, their 'FORM' field must be filled. If the field is initialized, the event is ignored. The entry can be read from the event table, the field 'FORM' filled and the entry modified using constants from the type pool SALV.
    II. Export :
    I_List_type :
    0 = simple list REUSE_ALV_LIST_DISPLAY
    1 = hierarchcal-sequential list REUSE_ALV_HIERSEQ_LIST_DISPLAY
    2 = simple block list REUSE_ALV_BLOCK_LIST_APPEND
    3 = hierarchical-sequential block list
    REUSE_ALV_BLOCK_LIST_HS_APPEND
    D. REUSE_ALV_COMMENTARY_WRITE : This is used in the Top-of-page event to print the headings and other comments for the list.
    Parameters :
    I. it_list_commentary : internal table with the headings of the type slis_t_listheader.
    This internal table has three fields :
    Typ : ‘H’ – header, ‘S’ – selection , ‘A’ - action
    Key : only when typ is ‘S’.
    Info : the text to be printed
    E. REUSE_ALV_GRID_DISPLAY : A new function in 4.6 version, to display the results in grid rather than as a preview.
    Parameters : same as reuse_alv_list_display
    This is an example for simple list.
    2. BLOCK REPORT
    This is used to have multiple lists continuously.
    The important functions used in this report are:
    A. REUSE_ALV_BLOCK_LIST_INIT
    B. REUSE_ALV_BLOCK_LIST_APPEND
    C. REUSE_ALV_BLOCK_LIST_HS_APPEND
    D. REUSE_ALV_BLOCK_LIST_DISPLAY
    A. REUSE_ALV_BLOCK_LIST_INIT
    Parameters:
    I. I_CALLBACK_PROGRAM
    II. I_CALLBACK_PF_STATUS_SET
    III. I_CALLBACK_USER_COMMAND
    This function module is used to set the default gui status etc.
    B. REUSE_ALV_BLOCK_LIST_APPEND
    Parameters :
    Export :
    I. is_layout : layout settings for block
    II. it_fieldcat : field catalog
    III. i_tabname : internal table name with output data
    IV. it_events : internal table with all possible events
    Tables :
    i. t_outtab : internal table with output data.
    This function module adds the data to the block.
    Repeat this function for all the different blocks to be displayed one after the other.
    C. REUSE_ALV_BLOCK_LIST_HS_APPEND
    This function module is used for hierarchical sequential blocks.
    D. REUSE_ALV_BLOCK_LIST_DISPLAY
    Parameters : All the parameters are optional.
    This function module display the list with data appended by the above function.
    Here the functions REUSE_ALV_FIELDCATALOG_MERGE, REUSE_ALV_EVENTS_GET, REUSE_ALV_COMMENTARY_WRITE can be used.
    3. Hierarchical reports :
    Hierarchical sequential list output.
    The function module is
    A. REUSE_ALV_HIERSEQ_LIST_DISPLAY
    Parameters:
    I. Export:
    i. I_CALLBACK_PROGRAM
    ii. I_CALLBACK_PF_STATUS_SET
    iii. I_CALLBACK_USER_COMMAND
    iv. IS_LAYOUT
    v. IT_FIELDCAT
    vi. IT_EVENTS
    vii. i_tabname_header : Name of the internal table in the program containing the
    output data of the highest hierarchy level.
    viii. i_tabname_item : Name of the internal table in the program containing the
    output data of the lowest hierarchy level.
    ix. is_keyinfo : This structure contains the header and item table field
    names which link the two tables (shared key).
    II. Tables
    i. t_outtab_header : Header table with data to be output
    ii. t_outtab_item : Name of the internal table in the program containing the
    output data of the lowest hierarchy level.
    slis_t_fieldcat_alv : This internal table contains the field attributes. This internal table can be populated automatically by using ‘REUSE_ALV_FIELDCATALOG_MERGE’.
    Important Attributes :
    A. col_pos : position of the column
    B. fieldname : internal fieldname
    C. tabname : internal table name
    D. ref_fieldname : fieldname (dictionary)
    E. ref_tabname : table (dictionary)
    F. key(1) : column with key-color
    G. icon(1) : icon
    H. symbol(1) : symbol
    I. checkbox(1) : checkbox
    J. just(1) : (R)ight (L)eft (C)ent.
    K. do_sum(1) : sum up
    L. no_out(1) : (O)blig.(X)no out
    M. outputlen : output length
    N. seltext_l : long key word
    O. seltext_m : middle key word
    P. seltext_s : short key word
    Q. reptext_ddic : heading (ddic)
    R. ddictxt(1) : (S)hort (M)iddle (L)ong
    S. datatype : datatype
    T. hotspot(1) : hotspot
    declarations for spl.group.
    GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV
    GT_SORT TYPE SLIS_T_SORTINFO_ALV, "for sort
    DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
      CLEAR LS_SORT.
      LS_SORT-FIELDNAME = 'FIELD1'.
      LS_SORT-SPOS      = 1.
      LS_SORT-UP        = 'X'.
      ls_sort-subtot    = 'X'. "subtotal
      APPEND LS_SORT TO E06_LT_SORT.
      APPEND LS_SORT TO E06_LT_SORT.
      LS_SORT-FIELDNAME = 'FIELD2'.
      LS_SORT-SPOS      = 2.
      LS_SORT-UP        = 'X'.
      ls_sort-subtot    = 'X'. "subtotal
      APPEND LS_SORT TO E06_LT_SORT.
    for creating the group..
      DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
      CLEAR  LS_SP_GROUP.
      LS_SP_GROUP-SP_GROUP = 'A'.
      LS_SP_GROUP-TEXT     = TEXT-005.
      APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.
    and pass this info to FM...
    layout-sUBTOTALS_TEXT = 'SUbt...'
    and pass spl group info to fieldcatalog also...
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM      = G_REPID
                IS_LAYOUT               = GS_LAYOUT
                IT_FIELDCAT             = GT_FIELDCAT[]
                IT_SPECIAL_GROUPS       = GT_SP_GROUP[]
                IT_SORT                 = GT_SORT[]
    TYPES :
      BEGIN OF ty_vbak,
        vkorg TYPE vbak-vkorg,             " Sales organization
        kunnr TYPE vbak-kunnr,             " Sold-to party
        vbeln TYPE vbak-vbeln,             " Sales document
        netwr TYPE vbak-netwr,             " Net Value of the Sales Order
        waerk TYPE vbak-waerk,             " Document currency
      END OF ty_vbak.
    DATA:
      vbak    TYPE vbak,
      gt_vbak TYPE TABLE OF ty_vbak.
    SELECT-OPTIONS :
      s_vkorg FOR vbak-vkorg,              " Sales organization
      s_kunnr FOR vbak-kunnr,              " Sold-to party
      s_vbeln FOR vbak-vbeln.              " Sales document
    SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.
    PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    INITIALIZATION.
      v_1 = 'Maximum of records to read'.
    START-OF-SELECTION.
      PERFORM f_read_data.
      PERFORM f_display_data.
         Form  f_read_data
    FORM f_read_data.
      SELECT vkorg kunnr vbeln netwr waerk
          UP TO p_max ROWS
        INTO TABLE gt_vbak
        FROM vbak
       WHERE kunnr IN s_kunnr
         AND vbeln IN s_vbeln
         AND vkorg IN s_vkorg.
    ENDFORM.                               " F_READ_DATA
         Form  f_display_data
    FORM f_display_data.
      TYPE-POOLS: slis.                    " ALV Global types
      DEFINE m_fieldcat.
        add 1 to ls_fieldcat-col_pos.
        ls_fieldcat-fieldname   = &1.
        ls_fieldcat-ref_tabname = 'VBAK'.
        ls_fieldcat-do_sum      = &2.
        ls_fieldcat-cfieldname  = &3.
        append ls_fieldcat to lt_fieldcat.
      END-OF-DEFINITION.
      DEFINE m_sort.
        add 1 to ls_sort-spos.
        ls_sort-fieldname = &1.
        ls_sort-up        = 'X'.
        ls_sort-subtot    = &2.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.
      DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv,
        lt_sort     TYPE slis_t_sortinfo_alv,
        ls_sort     TYPE slis_sortinfo_alv,
        ls_layout   TYPE slis_layout_alv.
      m_fieldcat 'VKORG' ''  ''.
      m_fieldcat 'KUNNR' ''  ''.
      m_fieldcat 'VBELN' ''  ''.
      m_fieldcat 'NETWR' 'X' 'WAERK'.
      m_fieldcat 'WAERK' ''  ''.
      m_sort 'VKORG' 'X'.                  " Sort by vkorg and subtotal
      m_sort 'KUNNR' 'X'.                  " Sort by kunnr and subtotal
      m_sort 'VBELN' ''.                   " Sort by vbeln
      ls_layout-cell_merge = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                is_layout   = ls_layout
                it_fieldcat = lt_fieldcat
                it_sort     = lt_sort
           TABLES
                t_outtab    = gt_vbak.
    ENDFORM.                  
    Check out these sample programs
    BCALV_GRID_01
    This program illustrates how the events for print processing PRINT_TOP_OF_PAGE,
    PRINT_END_OF_PAGE, PRINT_TOP_OF_LIST,PRINT_END_OF_LIST are handled. The
    corresponding handler methods control the appearance of the list printed.
    BCALV_GRID_02
    Show a detail list in an amodal window. There is no second dynro needed in contrast to
    BCALV_GRID_03.
    BCALV_GRID_03
    This program implements a function on event DOUBLE_CLICK. According to the selected line data
    from table SBOOK is selected and displayed by a second ALV Control in a dialog dynpro.
    BCALV_GRID_04
    Illustrates the use of exceptions (lights or leds). According to the values of SFLIGHT-SEATSOCC, the
    lights are set to 1 (red), 2 (yellow) or 3 (green).
    BCALV_GRID_05
    Demonstrate the creation of an own toolbar button.
    BCALV_GRID_06
    Demonstrate the creation of an own context menu.
    BCALV_GRID_07
    Append a menu button to the standard toolbar.
    BCALV_GRID_08
    Append a menu with default button to the standard toolbar. It is exactly the same as
    BCALVC_TB_WITH_MENU except for methods HANDLE_MENU_BUTTON and HANDLE_TOOLBAR.
    Editable ALV grids
    BCALV_EDIT_01
    This report illustrates the simplest case of using an editable/noneditable ALV Grid Control.
    BCALV_EDIT_02
    This report illustrates how to set chosen cells of an ALV Grid Control editable.
    BCALV_EDIT_03
    In this example the user may change values of fields SEATSOCC (occupied seats) and/or PLANETYPE.
    The report checks the input value(s) semantically and provides protocol messages in case of error
    BCALV_EDIT_04
    This report illustrates how to add and remove lines to a table using the ALV Grid Control and how to
    implement the saving of the new data.
    BCALV_EDIT_05
    This example shows how to use checkboxes within an ALV Grid Control. You learn:
    (1) how to define a column for editable checkboxes for an attribute of your list
    (2) how to evaluate the checked checkboxes
    (3) how to switch between editable and non-editable checkboxes
    BCALV_EDIT_06
    This example shows how to define a dropdown listbox for all cells of one column in an editable ALV
    Grid Control.
    BCALV_EDIT_07
    This example shows how to define dropdown listboxes for particular cells of your output table.
    BCALV_EDIT_08
    This report implements an ALV Grid Control with an application specific F4 help. The following aspects
    are dealt with:
    (1) how to replace the standard f4 help
    (2) how to pass the selected value to the ALV Grid Control
    (3) how to build an f4 help, whose value range depend on a value of another cell.
    Check this link tooo
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/2007/07/23/oopsALVin+ABAP&showComments=true
    The ALV Grid Control is a tool with which you can output non-hierarchical lists in a
    standardized format. The list data is displayed as a table on the screen.
    The ALV Grid Control offers a range of interactive standard list functions that users need
    frequently (find, sort, filter, calculate totals and subtotals, print, print preview, send list,
    export list (in different formats), and so on. These functions are implemented in the
    proxy object class. You as the programmer have the possibility to turn off functions not
    needed. In most cases the implementations of the standard functions provided by the
    control are sufficient. However, if required, you can adjust these implementations to
    meet application-specific needs.
    You can add self-defined functions to the toolbar, if necessary.
    The ALV Grid Control allows users to adjust the layout of lists to meet their individual
    requirements (for example, they can swap columns, hide columns, set filters for the
    data to be displayed, calculate totals, and so on). The settings (list customizing) made
    by a specific user are called a display variant. Display variants can be saved on a userspecific
    or on a global basis. If such display variants exist for a list, they can be offered
    to the user for selection. If a display variant is set as the default variant, the associated
    list is always displayed based on the settings of this variant.
    2. REUSE_ALV_LIST_DISPLAY
    REUSE_ALV_GRID_DISPLAY
    REUSE_ALV_FIELDCATALOG_MERGE
    REUSE_ALV_COMMENTARY_WRITE
    3. Use of Field Catalog is to determines the technical properties & add formating information of the column.
    6. all the definition of internal table, structure, constants are declared in a type-pool called SLIS.
    7.fieldcat-fieldname
    fieldcat-ref_fieldname
    fieldcat-tabname
    fieldcat-seltext_m
    5. Form user_command using r_ucomm like sy-ucomm rs_selfield type slis_selfield.
    Sap provides a set of ALV (ABAP LIST VIEWER) function modules which can be put into use to embellish the output of a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length.
    In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output.
    The report output can contain up to 90 columns in the display with the wide array of display options.
    The commonly used ALV functions used for this purpose are;
    1. REUSE_ALV_VARIANT_DEFAULT_GET
    2. REUSE_ALV_VARIANT_F4
    3. REUSE_ALV_VARIANT_EXISTENCE
    4. REUSE_ALV_EVENTS_GET
    5. REUSE_ALV_COMMENTARY_WRITE
    6. REUSE_ALV_FIELDCATALOG_MERGE
    7. REUSE_ALV_LIST_DISPLAY
    8. REUSE_ALV_GRID_DISPLAY
    9. REUSE_ALV_POPUP_TO_SELECT
    Purpose of the above Functions are differ not all the functions are required in all the ALV Report.
    But either no.7 or No.8 is there in the Program.
    How you call this function in your report?
    After completion of all the data fetching from the database and append this data into an Internal Table. say I_ITAB.
    Then use follwing function module.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = 'Prog.name'
    I_STRUCTURE_NAME = 'I_ITAB'
    I_DEFAULT = 'X'
    I_SAVE = 'A'
    TABLES
    T_OUTTAB = I_ITAB.
    IF SY-SUBRC <> 0.
    WRITE: 'SY-SUBRC: ', SY-SUBRC .
    ENDIF.
    ENDFORM. " GET_FINAL_DATA
    The object F_IT_ALV has a field, the activity ACTVT, which can
    contain four permitted values: 01, 02, 03 and 70. Each of the
    activities 01, 02 and 70 controls the availability of particular
    functions (in the menu and the toolbar) of the ALV line item list:
    a) 01: "Settings -> Display variant -> Save..."
    b) 02: "Settings -> Display variant -> Current..." and
    "Settings -> Display variant -> Current header rows "
    c) 70: "Settings -> Display variant -> Administration..."
    Activity 03 corresponds to the minimum authorization, which is the
    most restricted one: The user can only select layouts which have
    been configured already. In particular, all of the other functions
    named above are inactive with activity 03.
    Now if you want to permit a user to change the column selection and
    the headers as well as to save the layout thus created, for example,
    but if you do not want to permit the user to administrate the
    layouts, you grant him or her the authorization for activities 01
    and 02.
    Check this link it will be mosty usefull for u
    http://www.sap-img.com/fu017.htm
    check this link
    http://abapprogramming.blogspot.com/
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5dc3e690-0201-0010-1ebf-b85b3bed962d
    Changing width of a custom container dynamically
    Display Page numbers in ALV
    Insert picture in selection screen.
    Logo in OO ALV Grid
    check these links
    http://www.sapfans.com/forums/viewtopic.php?t=20386
    http://www.sapfans.com/forums/viewtopic.php?t=85191
    http://www.sapfans.com/forums/viewtopic.php?t=88401
    http://www.sapfans.com/forums/viewtopic.php?t=17335
    Try these links
    Simple ALV report
    http://www.sapgenie.com/abap/controls/alvgrid.htm
    http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
    ALV
    1. Please give me general info on ALV.
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
    2. How do I program double click in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=11601
    http://www.sapfans.com/forums/viewtopic.php?t=23010
    3. How do I add subtotals (I have problem to add them)...
    http://www.sapfans.com/forums/viewtopic.php?t=20386
    http://www.sapfans.com/forums/viewtopic.php?t=85191
    http://www.sapfans.com/forums/viewtopic.php?t=88401
    http://www.sapfans.com/forums/viewtopic.php?t=17335
    4. How to add list heading like top-of-page in ABAP lists?
    http://www.sapfans.com/forums/viewtopic.php?t=58775
    http://www.sapfans.com/forums/viewtopic.php?t=60550
    http://www.sapfans.com/forums/viewtopic.php?t=16629
    5. How to print page number / total number of pages X/XX in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
    6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
    http://www.sapfans.com/forums/viewtopic.php?t=64320
    http://www.sapfans.com/forums/viewtopic.php?t=44477
    7. How can I set the cell color in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=52107
    8. How do I print a logo/graphics in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=81149
    http://www.sapfans.com/forums/viewtopic.php?t=35498
    http://www.sapfans.com/forums/viewtopic.php?t=5013
    9. How do I create and use input-enabled fields in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=84933
    http://www.sapfans.com/forums/viewtopic.php?t=69878
    10. How can I use ALV for reports that are going to be run in background?
    http://www.sapfans.com/forums/viewtopic.php?t=83243
    http://www.sapfans.com/forums/viewtopic.php?t=19224
    11. How can I display an icon in ALV? (Common requirement is traffic light icon).
    http://www.sapfans.com/forums/viewtopic.php?t=79424
    http://www.sapfans.com/forums/viewtopic.php?t=24512
    12. How can I display a checkbox in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=88376
    http://www.sapfans.com/forums/viewtopic.php?t=40968
    http://www.sapfans.com/forums/viewtopic.php?t=6919
    For More alv report examples check these Tcodes LIBS, BIBS Here u can find more number of examples on alv reports of different kinds
    check this sample code for intercative alv report
    TYPE-POOLS: SLIS.
    *type declaration for values from ekko
    TYPES: BEGIN OF I_EKKO,
           EBELN LIKE EKKO-EBELN,
           AEDAT LIKE EKKO-AEDAT,
           BUKRS LIKE EKKO-BUKRS,
           BSART LIKE EKKO-BSART,
           LIFNR LIKE EKKO-LIFNR,
           END OF I_EKKO.
    DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
          WA_EKKO TYPE I_EKKO.
    *type declaration for values from ekpo
    TYPES: BEGIN OF I_EKPO,
           EBELN LIKE EKPO-EBELN,
           EBELP LIKE EKPO-EBELP,
           MATNR LIKE EKPO-MATNR,
           MENGE LIKE EKPO-MENGE,
           MEINS LIKE EKPO-MEINS,
           NETPR LIKE EKPO-NETPR,
           END OF I_EKPO.
    DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
          WA_EKPO TYPE I_EKPO .
    *variable for Report ID
    DATA: V_REPID LIKE SY-REPID .
    *declaration for fieldcatalog
    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    declaration for events table where user comand or set PF status will
    be defined
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
          WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    declaration for variant(type of display we want)
    DATA: I_VARIANT TYPE DISVARIANT,
          I_VARIANT1 TYPE DISVARIANT,
          I_SAVE(1) TYPE C.
    *PARAMETERS : p_var TYPE disvariant-variant.
    *Title displayed when the alv list is displayed
    DATA:  I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
    DATA:  I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
    INITIALIZATION.
      V_REPID = SY-REPID.
      PERFORM BUILD_FIELDCATLOG.
      PERFORM EVENT_CALL.
      PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
      PERFORM DATA_RETRIEVAL.
      PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
      PERFORM DISPLAY_ALV_REPORT.
    *&      Form  BUILD_FIELDCATLOG
          Fieldcatalog has all the field details from ekko
    FORM BUILD_FIELDCATLOG.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'AEDAT'.
      WA_FIELDCAT-SELTEXT_M = 'DATE.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'LIFNR'.
      WA_FIELDCAT-NO_OUT    = 'X'.
      WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG
    *&      Form  EVENT_CALL
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_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.                    "EVENT_CALL
    *&      Form  POPULATE_EVENT
         Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'USER_COMMAND'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
      ENDIF.
    ENDFORM.                    "POPULATE_EVENT
    *&      Form  data_retrieval
      retreiving values from the database table ekko
    FORM DATA_RETRIEVAL.
      SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
    ENDFORM.                    "data_retrieval
    *&      Form  bUild_listheader
          text
         -->I_LISTHEADEtext
    FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
      DATA HLINE TYPE SLIS_LISTHEADER.
      HLINE-INFO = 'this is my first alv pgm'.
      HLINE-TYP = 'H'.
    ENDFORM.                    "build_listheader
    *&      Form  display_alv_report
          text
    FORM DISPLAY_ALV_REPORT.
      V_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         I_CALLBACK_PROGRAM                = V_REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
         I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
         I_GRID_TITLE                      = I_TITLE_EKKO
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         = ALV_LAYOUT
         IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
        i_default                         = 'ZLAY1'
         I_SAVE                            = 'A'
        is_variant                        = i_variant
         IT_EVENTS                         = V_EVENTS
        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.
    ENDFORM.                    "display_alv_report
    *&      Form  TOP_OF_PAGE
          text
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
       i_logo                   =
       I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
          READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
          PERFORM BUILD_FIELDCATLOG_EKPO.
          PERFORM EVENT_CALL_EKPO.
          PERFORM POPULATE_EVENT_EKPO.
          PERFORM DATA_RETRIEVAL_EKPO.
          PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
          PERFORM DISPLAY_ALV_EKPO.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  BUILD_FIELDCATLOG_EKPO
          text
    FORM BUILD_FIELDCATLOG_EKPO.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELP'.
      WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MENGE'.
      WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MEINS'.
      WA_FIELDCAT-SELTEXT_M = 'UOM'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'NETPR'.
      WA_FIELDCAT-SELTEXT_M = 'PRICE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG_EKPO
    *&      Form  event_call_ekpo
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL_EKPO.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
    EXCEPTIONS
      LIST_TYPE_WRONG       = 1
      OTHERS                = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH

  • Doubts in Organizational Plan in SUS

    Hello everyone,
    I need your help. I am working in a SUS implementation (for SRM 5.0). I have been checking about the definition of the organizational plan in SUS and I have doubts.
    I checked that is essential the vendor organization in transaction PPOCV_BBP, could you tell me if I have to define the same in SRM an SUS??
    Also, I checked and It is necessary define purchasing organization (PPOMA_BBP) and I want to know if I need to define all the purchasing organization from SRM
    Thanks,
    Ivan

    If you look at the names of the components of SRM , you can realise what khan says easily.
    SRM is a broad term and comprises further components
    EBP Enterprise Buyer Professional
    SUS Supplier self services &
    ROS Registration of suppliers
    All these functionalities or software components are bundled in SRM server
    so technically can be bundled on client
    but not advised by SAP for security reasons
    Now the purchasing client (or server ) is EBP
    responcible for purchasing
    so should have the purchasing organisation and depts
    and internal users with necessary attributes.
    SUS client (or server) is for vendor data
    so should have vendor root node with necessary attributes.
    Hope it helps
    BR
    Dinesh

  • Check box to Work Order to identify that they were generated from PM,Ins,Pr

    Hello,
    Would it be possible to add a check box to Work Order to identify that they were generated from PM, inspection or Predictive Maintenance?
    How can we configure this and how can we set up to report on this.
    Thanks.

    There are many option to identify that order was from PM (which is planned) & corrective work orders.
    Set up order types & train user to use specific order types when they build maintenance plan / Item to create work order.
    Configure order type 'Define Default Value for Planning Indicator for Each Order Type' so that system knows what is planned & unplanned.
    SAP note for the config:
    (Define Default Value for Planning Indicator for Each Order T
    In this section, you can define a default value for each order type for the order planning indicator.
    The order planning indicator is used for selection and statistical analyses in the Plant Maintenance and Customer Service Information System.
    Three order planning indicators are predefined by SAP:
    Planned order. You should use this indicator for order types, for which tasks can be anticipated.
    Unplanned order. You should use this indicator for order types, for which the task cannot be anticipated, but also need not be performed immediately.
    Immediate order. You should use this indicator for order types, for which the necessity of the task cannot be anticipated, but where the task must be performed immediately.)
    Hope this is helpful.
    Ravi

Maybe you are looking for

  • How can I use Drupal as a third party CMS with ATG E-Commerce Application?

    Hi Friends, We are planning to use a third party Freeware Content Management System (CMS) for web site content in ATG E-Commerce Application, instead of ATG content Administration or merchandising. Can anybody please let me know how can I use a third

  • Changing images on JButtons

    hi all, I have a collection of icons that having images available in multiple sizes. The program my company is working on is geared towards deaf/hard of hearing and sight impaired individuals. I have assigned all the buttons images - however I want t

  • Miro with reference to PO

    hi, i have 2 scenario for credit memo and subsequent credit which is referenced to PO. the item purchased is based on moving average price. 1) when vendor invoice comes in, quantity difference, say missing 5 box (original 20 box). i will create the i

  • The dds about Adobe Bridge

    My Bridge can't see the DDS pictures for 64bit Win7, how can i do ? i'm like bridge,but it don't love  dds pictures by my job. I has installed dds plugin for photoshop also no use.

  • Tab Ruler Issues with CS4

    Hi. I am having trouble with the tab ruler in CS4. Whenever I zoom in to the long text box I need to set tabs in, the box is 44" long, the tab ruler does not stay with the text box if zoomed in more that 100%. Even when I have the ruler 'locked' to t