Help required - For ALV program

Hi Guys,
I have created an ALV  (using containers) with , say , 10 fields. As the container size is not large enough to accomodate all the 10 fields, it is getting displayed as
field1, field2,field8, field9 and field10.
When I click on the horizontal scrollbar, the fields getting displayed should change as follows.
First click: Field2, Field3, Field8,Field9, Field10
Second click: Field3,Field4, 8, 9,10
Third click: Field4,Field5,8,9,10
This is for one of my friends.Can you provide me with good ideas as to how to approach this problem and if any one has worked on similar problem, please provide the code for it.
I will check the code and will award points to all helpful answers.
Have a nice day .
Regards,
SP.

Hello Sylendra
As developer of ALV lists we do not care that much about the layout of the list because the user has all the options available to adjust it to her specific needs.
Your requirement is to be able to "freeze" columns at the right border of the ALV list. This is, as far as I know, not possible, only at the left border.
When you call the context menu for a column heading you will see the options
- Freeze to Column
- Unfreeze Columns
If you freeze a column all columns to its left side remain fixed. Thus, in your case you have to change the order of your columns that the fixed columns (field8 - field10) appear on the left side of the ALV list.
Regards
  Uwe

Similar Messages

  • Help required for Concurrent program parameters

    Hi All,
    I have a Concurrent program which has the following set of parameters.
    From Project Number
    To Project Number
    From Org
    To Org
    We dont want to make any of these mandatory, but we have a condition that either of the two sets must be entered i.e. before submitting we have to validate that either From Project Number/To Project Number parameter set is populated or From Org/To Org parameter set is populated.
    If someone could help me with this it would be a great help.
    Regards,
    Shruti

    Hi Shruti;
    What is your OS and EBS level?
    Please check below:
    Setup for Defined Concurrent Program with Parameters - SQL Script
    How to enable/disable parameters in concurrent program dependent prev. para
    Concurrent Program with conditionally required parameters
    Need to do validation while entering concurrent program parameters
    If those are not help,please try to look [this search|http://forums.oracle.com/forums/search.jspa?threadID=&q=Concurrent+program+parameters+&objID=f475&dateRange=all&userID=&numResults=15]
    Also check http://download-uk.oracle.com/docs/cd/A60725_05/html/comnls/us/fnd/progde04.htm and this
    Hope it helps
    Regard
    Helios

  • TS3212 I'm runing IE9 & I'm unable to download iTunes.  I receive this error each time: There is a problem with this windows installer package.  A program required for the program to complete could not be found.  Contact your support personnel or package

    I'm running IE 9 & windows 7.  I'm unable to download iTunes.  I receive this error each time: There is a problem with this windows installer package.  A program required for the program to complete could not be found.  Contact your support personnel or package vendor.

    There is a problem with this windows installer package.  A program required for the program to complete could not be found.  Contact your support personnel or package vendor.
    Let's try the following user tip with that one:
    "There is a problem with this Windows Installer package ..." error messages when installing iTunes for Windows

  • Help required on ALV REPORT

    Hi,
    Please help with a solution:
    my requirement is to add the following to an existing program.
    i need to add 3 fields from a new table(a table which is not used in the program).
    the fields are :
    Vendor Part No. : Field ZWTYVND-Z_WTY_MAT_VPN
    Mail To Vendor No.:  Field ZWTYVND-Z_WTY_LIFNR_MAIL
    Mail To Vendor Name:  Field ZWTYVND-WTY_NAME1
    here is the program code:
    REPORT  zwtyrep008
            LINE-SIZE 500
            MESSAGE-ID zpp02.
    *& Report  ZWTYREP008                                                  *
    *$*$----------------------------------------------------------------$*$*
    *$*$---T A B L E S--------------------------------------------------$*$*
    *$*$----------------------------------------------------------------$*$*
    TABLES: wty_pnwtyh_dia,    "
            wty_pnwtyv_dia,
            mara,
            usr21,
            pnwtyv,
            adrp,
            s084.
    *$*$----------------------------------------------------------------$*$*
    *$*$ CONSTANTS
    *$*$----------------------------------------------------------------$*$*
    CONSTANTS: true(1)                                VALUE 'X',
               false(1)                               VALUE ' '.
    CONSTANTS: c_year_low(4)                          VALUE '1960',
               c_year_high(4)                         VALUE '9999',
               c_zero        LIKE wty_pvwty_dia-valiv VALUE '0.00',
               c_claim_to_process TYPE i              VALUE 3000.
    CONSTANTS: c_save(1)               VALUE 'U'.
    *$*$----------------------------------------------------------------$*$*
    *$*$ TYPES
    *$*$----------------------------------------------------------------$*$*
    TYPE-POOLS: slis, pwty.
    TYPES: BEGIN OF lt_period,
                   year(4),
                   poper(2),
                   start     TYPE d,
                   end       TYPE d,
          END   OF lt_period.
    TYPES: BEGIN OF tp_charac_value,
                 atwrt LIKE cawn-atwrt,
           END   OF tp_charac_value.
    TYPES: BEGIN OF tp_submit_records,
                 header_guid   LIKE wty_pnwtyv_dia-header_guid,
                 versn         LIKE wty_pnwtyv_dia-versn,
                 prev_version  LIKE wty_pnwtyv_dia-prev_version,
                 kateg         LIKE wty_pnwtyv_dia-kateg,
                 aktiv         LIKE wty_pnwtyv_dia-aktiv,
                 pnguid        LIKE wty_pnwtyv_dia-pnguid,
                 knumv         LIKE wty_pnwtyv_dia-knumv,
           END   OF tp_submit_records.
    TYPES: BEGIN OF tp_cond_table,
                 kschl  LIKE konv-kschl,
                 zaehk  LIKE konv-zaehk,
                 kinak  LIKE konv-kinak,
                 kbetr  LIKE konv-kbetr,
           END   OF tp_cond_table.
    *$*$----------------------------------------------------------------$*$*
    *$*$---I N T E R N A L   T A B L E S--------------------------------$*$*
    *$*$----------------------------------------------------------------$*$*
    * Report table to display with ALV
    DATA: t_detail_info TYPE STANDARD TABLE OF zwty_claim_avg_rep_det
                        WITH HEADER LINE
                        INITIAL SIZE 0.
    FIELD-SYMBOLS:<fs_detail_info> LIKE LINE OF t_detail_info.
    DATA: t_summary_alv TYPE STANDARD TABLE OF zwty_claim_avg_rep_sum
                        WITH HEADER LINE
                        INITIAL SIZE 0.
    FIELD-SYMBOLS:<fs_summary_alv>  LIKE LINE OF t_summary_alv.
    DATA: t_detail_alv  TYPE STANDARD TABLE OF zwty_claim_avg_rep_det
                        WITH HEADER LINE
                        INITIAL SIZE 0.
    FIELD-SYMBOLS:<fs_detail_alv> LIKE LINE OF t_detail_alv.
    DATA: it_submit_records TYPE HASHED TABLE OF tp_submit_records
                           WITH UNIQUE KEY header_guid versn
                           WITH HEADER LINE
                           INITIAL SIZE 0.
    FIELD-SYMBOLS: <fs_submit_rec_vs2> TYPE tp_submit_records.
    DATA: it_period TYPE HASHED TABLE OF lt_period
                    WITH UNIQUE KEY year poper
                    WITH HEADER LINE
                    INITIAL SIZE 0.
    FIELD-SYMBOLS: <fs_it_period>      LIKE LINE OF it_period.
    DATA: it_pvwty_dia_all  TYPE wty_pvwty_dia_tab.
    FIELD-SYMBOLS: <fs_pvwty_dia_es3> LIKE LINE OF it_pvwty_dia_all.
    DATA: it_cond_table TYPE STANDARD TABLE OF tp_cond_table
                        WITH HEADER LINE
                        INITIAL SIZE 0.
    FIELD-SYMBOLS: <fs_cond_table> TYPE tp_cond_table.
    *$*$----------------------------------------------------------------$*$*
    *$*$---G L O B A L  D A T A  ---------------------------------------$*$*
    *$*$----------------------------------------------------------------$*$*
    DATA: gt_fieldcat_sum   TYPE slis_t_fieldcat_alv,
          gt_fieldcat_det  TYPE slis_t_fieldcat_alv,
          gtw_fieldcat     LIKE LINE OF gt_fieldcat_sum,
          gt_top_of_page   TYPE slis_t_listheader,
          gtw_top_of_page  LIKE LINE OF gt_top_of_page,
          gt_end_of_page   TYPE slis_t_listheader,
          gtw_end_of_page  LIKE LINE OF gt_end_of_page,
          gs_layout        TYPE slis_layout_alv,
          gt_excluding     TYPE slis_t_extab,
          gtw_excluding    LIKE LINE OF gt_excluding,
          gs_variant1       TYPE disvariant,
          gs_variant2       TYPE disvariant,
          eventcat         TYPE slis_t_event,         "EVENEMENT
          eventcat_ln      LIKE LINE OF eventcat,     "LIGNE D'EVENEMENT
          gt_sort          TYPE slis_t_sortinfo_alv,
          gtw_sort         LIKE LINE OF gt_sort.
    DATA: wa_lis_progname  LIKE sy-cprog,
          wa_low_date      TYPE d,
          wa_high_date     TYPE d,
          wa_index_mat     TYPE i,
          wa_index_link    TYPE i,
          wa_level_alv     TYPE i.
    DATA: g_callback_pgm(40)          TYPE c,
          g_callback_user_command(30) TYPE c.
    DATA: my_print TYPE  slis_print_alv.
    FIELD-SYMBOLS: <fs_pvwty_dia> TYPE wty_pvwty_dia.
    * SELECTION SCREEN                                          *
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK post WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_cpudt FOR s084-spmon NO-EXTENSION,
                    s_postdt FOR  wty_pnwtyv_dia-fkdat NO-EXTENSION.
    SELECTION-SCREEN END   OF BLOCK post.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
    SELECT-OPTIONS: s_vend  FOR pnwtyv-v_parnr NO INTERVALS.
    SELECT-OPTIONS: s_clgrp FOR wty_pnwtyh_dia-clmgrp.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS: s_model  FOR  wty_pnwtyh_dia-z_wty_model.
    SELECT-OPTIONS: s_matnr  FOR  mara-matnr.
    SELECTION-SCREEN END   OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK lay WITH FRAME TITLE text-004.
    PARAMETERS: varn1  TYPE slis_vari MEMORY ID fit_alv_gl,  "Dis. variant
                varn2  TYPE slis_vari.
    SELECTION-SCREEN END   OF BLOCK lay.
    *$*$----------------------------------------------------------------$*$*
    *$*$---A T  S E L E C T I O N - S C R E E N-------------------------$*$*
    *$*$----------------------------------------------------------------$*$*
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR varn1.
      PERFORM alv_variant_f4 USING '0001' CHANGING varn1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR varn2.
      PERFORM alv_variant_f4 USING '0002' CHANGING varn2.
    AT SELECTION-SCREEN ON BLOCK post.  "Validate posting parameters
      PERFORM validate_posting_parameter.
    AT SELECTION-SCREEN ON s_model.     "Validate model
      PERFORM validate_model.
    AT SELECTION-SCREEN ON s_vend.      "Validate vendor
      PERFORM validate_vendor.
    AT SELECTION-SCREEN ON s_matnr.      "Validate material
      PERFORM validate_material.
    AT SELECTION-SCREEN ON s_clgrp.     "Validate claim group
      PERFORM validate_claim_group.
    AT SELECTION-SCREEN OUTPUT.
    * Initialization.
    INITIALIZATION.
    * Initialize default display variant for ALV report
      CLEAR gs_variant1.
      MOVE sy-repid TO: gs_variant1-report,
                        gs_variant2-report.
      gs_variant1-handle = '0001'.
      gs_variant2-handle = '0002'.
      wa_lis_progname   = sy-repid.
      PERFORM set_default_variant CHANGING gs_variant1
                                           varn1.
      PERFORM set_default_variant CHANGING gs_variant2
                                           varn2.
      PERFORM get_fin_period USING c_year_low c_year_high.
      PERFORM set_period_to_analyse.
    *$*$----------------------------------------------------------------$*$*
    *$*$---S T A R T - O F - S E L E C T I O N--------------------------$*$*
    *$*$----------------------------------------------------------------$*$*
    START-OF-SELECTION.
      PERFORM select_claim_to_process.
    *$*$----------------------------------------------------------------$*$*
    *$*$---E N D - O F - S E L E C T I O N------------------------------$*$*
    *$*$----------------------------------------------------------------$*$*
    END-OF-SELECTION.
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
       EXPORTING
    *        PERCENTAGE       = 0
         text             =  text-m02.
      IF sy-batch = 'X'.
        PERFORM set_print_alv_grid.
      ENDIF.
      PERFORM show_alv_grid.
    *&      Form  PRINT_DETAIL_ALV
    FORM show_alv_grid.
    * Prepare ALV_GRID before display
    * ===============================
      PERFORM init_field.
      PERFORM init_layout.
      PERFORM init_fieldcat.
      PERFORM init_excluding.
      PERFORM init_event.
    *  SORT report_data BY bukrs werks.
      PERFORM call_alv_list_display_level_1.
    ENDFORM.                    " PRINT_DETAIL
    *&      Form  VARIANT_F4   copied from RPCWCCK3
    *       Display a list of all available display variants for the ALV.
    *      <--P_varn1  Return the selected variant and return
    FORM variant_f4 CHANGING p_varn1 TYPE disvariant-variant.
      DATA: l_variant LIKE disvariant.
    * Get the list of available variants for the report
      l_variant-report = sy-repid.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          is_variant = l_variant
          i_save     = 'A'
        IMPORTING
          es_variant = l_variant.
      p_varn1 = l_variant-variant.
    ENDFORM.                               " VARIANT_F4
    *&      Form  INIT_FIELD
    FORM init_field.
      MOVE sy-repid          TO g_callback_pgm.
      MOVE 'MY_USER_COMMAND' TO g_callback_user_command.
    ENDFORM.                    " INIT_FIELD
    *&      Form  INIT_LAYOUT
    FORM init_layout.
      gs_layout-window_titlebar   = sy-title.
      gs_layout-colwidth_optimize = 'X'.
      gs_layout-expand_all        = 'X'.
      gs_layout-no_subtotals      = ''.
      gs_layout-key_hotspot       = 'X'.         " Afficher Hotspot
      gs_layout-zebra             = 'X'.
      gs_layout-group_change_edit = 'X'.
      gs_layout-f2code            = 'DISPLAY'.
    * gs_layout-max_linesize      = 400.
    * gs_layout-totals_only       = 'X'.
    ENDFORM.                    " INIT_LAYOUT
    *&      Form  INIT_FIELDCAT
    FORM init_fieldcat.
      DATA: lt_fieldcatalog    TYPE lvc_t_fcat,
            ltw_fieldcatalog   TYPE lvc_s_fcat.
      REFRESH: lt_fieldcatalog,
               gt_fieldcat_sum,
               gt_fieldcat_det.
      CLEAR   gtw_sort.
      REFRESH gt_sort.
    * ==============================================
    * Set the label column for summary report leve 1
    * ==============================================
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          i_structure_name       = 'ZWTY_CLAIM_AVG_REP_SUM'
          i_client_never_display = 'X'
        CHANGING
          ct_fieldcat            = lt_fieldcatalog.
    *                             FIELD     pos sub  up  down Group
      PERFORM create_sort USING: 'V_PARNR'   1  'X'  'X'  ' '   'X',
                                 'NAME'      2  'X'  'X'  ' '   'X',
                                 'MAKTX'     3  'X'  'X'  ' '   'X',
                                 'MATNR'     4  'X'  'X'  ' '   'X'.
      LOOP AT lt_fieldcatalog INTO ltw_fieldcatalog.
        CLEAR: gtw_fieldcat.
        MOVE-CORRESPONDING ltw_fieldcatalog TO gtw_fieldcat.
        PERFORM set_alv_field_desc USING  ltw_fieldcatalog '1'.
        APPEND gtw_fieldcat TO gt_fieldcat_sum.
      ENDLOOP.
      PERFORM set_hot_spot TABLES gt_fieldcat_sum USING 'CLAIM_NB'.
    * =========================================
    * Field Catalog for Detail report (level 2)
    * =========================================
      REFRESH: lt_fieldcatalog.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          i_structure_name       = 'ZWTY_CLAIM_AVG_REP_DET'
          i_client_never_display = 'X'
        CHANGING
          ct_fieldcat            = lt_fieldcatalog.
      LOOP AT lt_fieldcatalog INTO ltw_fieldcatalog.
        CLEAR: gtw_fieldcat.
        MOVE-CORRESPONDING ltw_fieldcatalog TO gtw_fieldcat.
        PERFORM set_alv_field_desc USING  ltw_fieldcatalog '2'.
        APPEND gtw_fieldcat TO gt_fieldcat_det.
      ENDLOOP.
      PERFORM set_hot_spot TABLES gt_fieldcat_det USING 'CLMNO'.
    ENDFORM.                    " INIT_FIELDCAT
    *&      Form  INIT_SORT
    FORM create_sort USING  p_fieldname p_spos
                            p_subtot            TYPE char1
                            p_up                TYPE char1
                            p_down              TYPE char1
                            p_group             TYPE char1.
      CLEAR: gtw_sort.
      gtw_sort-fieldname = p_fieldname.
      gtw_sort-spos      = p_spos.
      gtw_sort-subtot    = p_subtot.
      gtw_sort-up        = p_up.
      gtw_sort-down      = p_down.
      gtw_sort-group     = p_group.
      APPEND gtw_sort TO gt_sort.
    ENDFORM.                    "create_sort
    *&      Form  INIT_EXCLUDING
    *       Exclude des option de l'application tool bar
    FORM init_excluding.
      CLEAR   gtw_excluding.
      REFRESH gt_excluding.
      gtw_excluding-fcode   = '&ABC'.
      APPEND gtw_excluding TO gt_excluding.
    ENDFORM.                    " INIT_EXCLUDING
    *&      Form  call_alv_list_display_level_1
    FORM call_alv_list_display_level_1.
    * DATA: l_i_save  VALUE 'U'.   "User-specific variants only
      DATA: l_i_save  VALUE 'A'.   "Any type of variants
      gs_variant1-report  = sy-repid.
      gs_variant1-variant = varn1.
      gs_layout-colwidth_optimize = true.
      wa_level_alv = 1.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = g_callback_pgm
          i_callback_user_command = g_callback_user_command
          is_layout               = gs_layout
          it_fieldcat             = gt_fieldcat_sum
          it_excluding            = gt_excluding
          it_sort                 = gt_sort
          i_save                  = l_i_save
          is_variant              = gs_variant1
          it_events               = eventcat
          is_print                = my_print
        TABLES
          t_outtab                = t_summary_alv
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
    ENDFORM.                    " call_alv_list_display_level_1
    *&      Form  INIT_EVENT
    *       Determine quelle routine a executer selon l'event
    FORM init_event.
      eventcat_ln-name = 'TOP_OF_PAGE'.
      eventcat_ln-form = 'ALV_PAGE_HEADER'.
      APPEND eventcat_ln TO eventcat.
      eventcat_ln-name = 'END_OF_PAGE'.
      eventcat_ln-form = 'FOOTER_PAGE'.
      APPEND eventcat_ln TO eventcat.
    ENDFORM.                    " INIT_EVENT
    *&      Form  ALV_PAGE_HEADER
    FORM alv_page_header.
      DATA: l_date_time(22),
            l_char7(7),
            l_char10(10).
      DATA: p_date(10) TYPE c.
      DATA: p_time(8)  TYPE c.
      DATA: p_name(80) TYPE c.
    * Format current date and time
      WRITE sy-datum TO p_date USING EDIT MASK '____/__/__'.
      WRITE sy-uzeit TO p_time USING EDIT MASK '__:__:__'.
      CONCATENATE p_date '-' p_time
                  INTO l_date_time SEPARATED BY space.
    * Set the user name
      SELECT SINGLE
             persnumber addrnumber INTO (usr21-persnumber, usr21-addrnumber)
                 FROM  usr21
                 WHERE bname = sy-uname.
      SELECT SINGLE name_first name_last
             INTO   (adrp-name_first, adrp-name_last )
             FROM   adrp
             WHERE  persnumber = usr21-persnumber.
      CONCATENATE adrp-name_first adrp-name_last INTO p_name
      SEPARATED BY space.
      REFRESH gt_top_of_page.
      CLEAR   gtw_top_of_page.
    * Program title ------------------------------------------------
      CLEAR gtw_top_of_page.
      gtw_top_of_page-typ  = 'H'.
      gtw_top_of_page-info = sy-title.
      APPEND gtw_top_of_page TO gt_top_of_page.
      CLEAR gtw_top_of_page.
      gtw_top_of_page-typ     = 'S'.
      gtw_top_of_page-key  = 'Parameters :'.
    * Period / Posting Date -----------------------------------------
      IF s_cpudt[] IS INITIAL.
        WRITE s_postdt-low TO l_char10.
        CONCATENATE gtw_top_of_page-info
                    text-104
                    l_char10
               INTO gtw_top_of_page-info SEPARATED BY space.
        IF NOT s_postdt-high IS INITIAL.
          WRITE s_postdt-high TO l_char10.
          CONCATENATE gtw_top_of_page-info
                      text-105
                      l_char10
                      INTO gtw_top_of_page-info SEPARATED BY space.
        ENDIF.
        APPEND gtw_top_of_page TO gt_top_of_page.
      ELSE.
        CONCATENATE s_cpudt-low(4) '/' s_cpudt-low+4(2)
                    INTO l_char7 .
        CONCATENATE gtw_top_of_page-info
                    text-103
                    l_char7
                    INTO gtw_top_of_page-info SEPARATED BY space.
        IF s_cpudt-high NE space.
          CONCATENATE s_cpudt-high(4) '/' s_cpudt-high+4(2)
                      INTO l_char7 .
          CONCATENATE gtw_top_of_page-info
                      text-105
                      l_char7
                      INTO gtw_top_of_page-info SEPARATED BY space.
        ENDIF.
        APPEND gtw_top_of_page TO gt_top_of_page.
      ENDIF.
    * Display wich level we display -----------------------------
    *  IF wa_level_alv > 1.
    *    CLEAR gtw_top_of_page.
    *    IF wa_level_alv = 2.
    *      gtw_top_of_page-info = t_summary_alv-v_parnr.
    *      SHIFT gtw_top_of_page-info LEFT DELETING LEADING '0'.
    *    ENDIF.
    *    gtw_top_of_page-typ     = 'S'.
    *    gtw_top_of_page-key  = 'Partner:'.
    *    APPEND gtw_top_of_page TO gt_top_of_page.
    *  ENDIF.
    * Executed by -----------------------------------------------
      CLEAR gtw_top_of_page.
      gtw_top_of_page-typ     = 'S'.
      gtw_top_of_page-key  = 'Report executed by :'.
      gtw_top_of_page-info =  p_name.
    * * Date & time of execution --------------------------------
      APPEND gtw_top_of_page TO gt_top_of_page.
      gtw_top_of_page-key  = 'DATE :'.
      gtw_top_of_page-info = l_date_time.
      APPEND gtw_top_of_page TO gt_top_of_page.
    * Name of the report ----------------------------------------
      CLEAR gtw_top_of_page.
      gtw_top_of_page-typ  = 'A'.
    * LS_LINE-KEY:  not used for this type
      gtw_top_of_page-info = sy-repid.
      APPEND gtw_top_of_page TO gt_top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = gt_top_of_page.
    *  IF sy-batch = 'X' AND sy-linsz > 255 AND l_ctr_newpage = 0.
    *    NEW-PAGE PRINT ON LINE-SIZE 255.   "Pour wrapper !!!!!!
    *  ENDIF.
    ENDFORM.                    "ALV_PAGE_HEADER
    *&      Form  footer_page
    FORM footer_page.
      DATA: l_footer(300),
            l_page_no(5).
      l_page_no   = sy-pagno.
      CONCATENATE 'Page' l_page_no INTO l_footer SEPARATED BY space.
      SKIP 2.
      WRITE:/001 l_footer(sy-linsz) CENTERED.
    ENDFORM.                    "footer_page
    *&      Form  MY_USER_COMMAND
    *       text
    *      -->P_SY_UCOMM  text
    *      -->P_GS_SELFIELD  text
    FORM my_user_command USING    p_sy_ucomm
                                  p_gs_selfield TYPE slis_selfield.
      DATA: l_claim_no         LIKE mcshier-hiername,
            lv_tcode_last(15).
    * ======================================================
    * Call TX WTY to display the claim. Only possible at the
    * detail report(level 3)
    * ======================================================
      CASE p_gs_selfield-fieldname.
        WHEN 'CLMNO'.
          READ TABLE t_detail_alv INDEX p_gs_selfield-tabindex.
          SHIFT t_detail_alv-clmno LEFT DELETING LEADING '0'.
          l_claim_no = t_detail_alv-clmno.
          CONCATENATE sy-tcode syst-modno
                      INTO lv_tcode_last.
          EXPORT wty_tcode_last_memoid FROM lv_tcode_last TO MEMORY
                                       ID    'WTY_TCODE_LAST_MEMOID'.
          SET PARAMETER ID 'CLMNO' FIELD l_claim_no.
          CALL TRANSACTION 'WTY' AND SKIP FIRST SCREEN.
        WHEN 'CLAIM_NB'.
    *     =====================================
    *     Display the next level of information
    *     =====================================
          CASE  wa_level_alv.
            WHEN 1.
              REFRESH: t_detail_alv.
              wa_level_alv = 2.
              READ TABLE t_summary_alv INDEX p_gs_selfield-tabindex.
              LOOP AT t_detail_info
                      ASSIGNING <fs_detail_info>
                      WHERE v_parnr    EQ t_summary_alv-v_parnr
                        AND crncy      EQ t_summary_alv-crncy
                        AND item_type  EQ t_summary_alv-item_type
                        AND ov_meinh   EQ t_summary_alv-ov_meinh
                        AND iv_meinh   EQ t_summary_alv-iv_meinh
                        AND matnr      EQ t_summary_alv-matnr.
                MOVE-CORRESPONDING <fs_detail_info> TO t_detail_alv.
                APPEND t_detail_alv.
              ENDLOOP.
              CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
                EXPORTING
                  i_callback_program      = g_callback_pgm
                  i_callback_user_command = g_callback_user_command
                  is_layout               = gs_layout
                  it_fieldcat             = gt_fieldcat_det
                  it_excluding            = gt_excluding
    *              it_sort                 = gt_sort
                  i_save                  = c_save
                  is_variant              = gs_variant2
                  it_events               = eventcat
                  is_print                = my_print
                TABLES
                  t_outtab                = t_detail_alv
                EXCEPTIONS
                  program_error           = 1
                  OTHERS                  = 2.
              wa_level_alv = 1.
          ENDCASE.
      ENDCASE.
    ENDFORM.                    " MY_USER_COMMAND
    *       FORM PRINT_ALV_GRID                                           *
    *       Print the report not on screen for special batch processing.  *
    *  -->  IT         Table to print  -   Z_HRF_BEN_CONF_FLEX
    FORM set_print_alv_grid.
      my_print-print              = 'X'.  "Force printing
      my_print-no_print_selinfos  = 'X'.
      my_print-no_print_listinfos = 'X'.
      my_print-no_new_page        = ''.   "Separate spool files
      my_print-prnt_title         = 'X'.
      my_print-prnt_info          = 'X'.
      my_print-reserve_lines      = 3.
    ENDFORM.                    "set_print_alv_grid
    *&      Form  ALV_VARIANT_F4
    FORM alv_variant_f4 USING    p_handle
                        CHANGING p_vari.
      DATA: rs_variant LIKE disvariant.
      DATA: nof4 TYPE c.
      CLEAR nof4.
      LOOP AT SCREEN.
        IF screen-name = p_vari.
          IF screen-input = 0.
            nof4 = 'X'.
          ENDIF.
        ENDIF.
      ENDLOOP.
      rs_variant-report   = sy-repid.
      rs_variant-username = sy-uname.
      rs_variant-handle   = p_handle.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          is_variant = rs_variant
          i_save     = 'A'
        IMPORTING
          es_variant = rs_variant
        EXCEPTIONS
          OTHERS     = 1.
      IF sy-subrc = 0 AND nof4 EQ space.
        p_vari = rs_variant-variant.
      ENDIF.
    ENDFORM.                               " ALV_VARIANT_F4
    *&      Form  validate_model
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM validate_model .
      DATA: l_matnr LIKE mara-matnr.
      SELECT SINGLE matnr
             INTO  l_matnr
             FROM  mara
             WHERE matnr IN s_model
               AND mtart EQ 'ZKMA'.
      IF sy-subrc NE 0.
        MESSAGE e000 WITH text-e07.
      ENDIF.
    ENDFORM.                    " validate_model
    *&      Form  select_claim_to_process
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM select_claim_to_process .
      DATA: lt_pnwtyh_dia     TYPE wty_pnwtyh_dia_tab,
            lt_pnwtyv_dia     TYPE wty_pnwtyv_dia_tab,
            lt_pvwty_dia      TYPE wty_pvwty_dia_tab,
            lt_pnwtyh_dia_tmp TYPE wty_pnwtyh_dia_tab,
            lt_pnwtyv_dia_tmp TYPE wty_pnwtyv_dia_tab,
            lt_pvwty_dia_tmp  TYPE wty_pvwty_dia_tab,
            lt_pvwty_dia_mat  TYPE wty_pvwty_dia_tab,
            lt_sel_fkdat      TYPE pwty_sel_fkdat_pt,
            lt_sel_v_parnr    TYPE pwty_sel_v_parnr_pt,
            lt_sel_clmty      TYPE pwty_sel_clmty_pt,
            lt_sel_clmgrp     TYPE pwty_sel_clmgrp_pt.
      DATA: lst_sel_fkdat LIKE LINE OF lt_sel_fkdat,
            lst_sel_clmty LIKE LINE OF lt_sel_clmty.
      DATA: BEGIN OF lt_clmno OCCURS 0,
                  clmno   LIKE pnwtyh-clmno,
            END   OF lt_clmno,
            lt_clmno_tmp   LIKE lt_clmno OCCURS 0,
            lt_claim    TYPE pwty_sel_clmno_pt,
            wa_clmno    LIKE LINE OF lt_claim.
      DATA: l_nb_claim         TYPE i.
      RANGES: lr_model FOR wty_pnwtyh_dia-z_wty_model.
      FIELD-SYMBOLS: <lfs_pnwtyh_dia>    LIKE LINE OF lt_pnwtyh_dia,
                     <lfs_pnwtyv_dia>    LIKE LINE OF lt_pnwtyv_dia,
                     <lfs_pvwty_dia_es2> LIKE LINE OF lt_pvwty_dia,
                     <lfs_pvwty_dia_mat> LIKE LINE OF lt_pvwty_dia_mat.
      REFRESH: lt_pnwtyh_dia, lt_pnwtyv_dia,lt_pvwty_dia, lt_sel_clmty,
               lr_model, t_detail_info, t_summary_alv, lt_pvwty_dia_mat.
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
       EXPORTING
    *    PERCENTAGE       = 0
         text             =  text-m01. "Extracting claim
    * ========================
    * Get the Claim to process
    * ========================
    *  SELECT clmno
    *         INTO  TABLE lt_clmno
    *         FROM  pnwtyh
    *         WHERE z_wty_convflg  EQ space
    *           AND z_wty_error    EQ space
    *  wa_clmno-sign   = 'I'.
    *  wa_clmno-option = 'EQ'.
    *  LOOP AT lt_clmno.
    *    wa_clmno-low     = lt_clmno-clmno.
    *    APPEND wa_clmno  TO lt_claim.
    *  ENDLOOP.
      lst_sel_fkdat-sign   = 'I'.
      lst_sel_fkdat-option = 'BT'.
      lst_sel_fkdat-low    = wa_low_date.
      lst_sel_fkdat-high   = wa_high_date.
      APPEND lst_sel_fkdat TO lt_sel_fkdat.
      lst_sel_clmty-sign   = 'E'.
      lst_sel_clmty-option = 'EQ'.
      lst_sel_clmty-low    = 'ZSBC'.
      APPEND lst_sel_clmty TO lt_sel_clmty.
      lt_sel_v_parnr[] = s_vend[].
      lt_sel_clmgrp[]  = s_clgrp[].
      CALL FUNCTION 'PVSDBWTY_CLAIM_SELECT'
        EXPORTING
          it_sel_fkdat     = lt_sel_fkdat
          it_sel_clmgrp    = lt_sel_clmgrp
          it_sel_v_parnr   = lt_sel_v_parnr
          it_sel_clmty     = lt_sel_clmty
    *      it_sel_clmno     = lt_claim
        IMPORTING
          et_pnwtyh_dia    = lt_pnwtyh_dia
          et_pnwtyv_dia    = lt_pnwtyv_dia
          et_pvwty_dia     = lt_pvwty_dia
        EXCEPTIONS
          no_entry_found   = 1
          authority_failed = 2
          OTHERS           = 3.
      IF sy-subrc = 3 .
        MESSAGE e309(wty) .
      ENDIF .
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
       EXPORTING
    *    PERCENTAGE       = 0
         text             =  text-m03. "Extracting claim
      LOOP AT lt_pvwty_dia
           ASSIGNING <fs_pvwty_dia>
           WHERE poskt_cust = 'MAT'.
        INSERT <fs_pvwty_dia> INTO TABLE lt_pvwty_dia_mat.
      ENDLOOP.
      it_pvwty_dia_all[] = lt_pvwty_dia[].
      SORT lt_pnwtyh_dia     BY pnguid.
      SORT lt_pvwty_dia      BY version_guid z_wty_posnr_hier.
      SORT lt_pvwty_dia_mat  BY version_guid.
      SORT it_pvwty_dia_all  BY version_guid posnr.
    * Keep Version record OC or IV in a separate table for later use
      LOOP AT lt_pnwtyv_dia
              ASSIGNING <lfs_pnwtyv_dia>.
        it_submit_records-header_guid  = <lfs_pnwtyv_dia>-header_guid.
        it_submit_records-versn        = <lfs_pnwtyv_dia>-versn.
        it_submit_records-prev_version = <lfs_pnwtyv_dia>-prev_version.
        it_submit_records-kateg        = <lfs_pnwtyv_dia>-kateg.
        it_submit_records-aktiv        = <lfs_pnwtyv_dia>-aktiv.
        it_submit_records-knumv        = <lfs_pnwtyv_dia>-knumv.
        it_submit_records-pnguid       = <lfs_pnwtyv_dia>-pnguid.
        INSERT TABLE it_submit_records.
      ENDLOOP.
    * =============
    * Process Claim
    * =============
      LOOP AT lt_pnwtyv_dia
              ASSIGNING <lfs_pnwtyv_dia>
              WHERE aktiv        EQ true   "Active version only
                AND kateg        EQ 'IV'   "Category
                AND fi_doc_exist EQ 'X'.
        CLEAR: t_detail_info, t_summary_alv.
    *   Read Header detail
        READ TABLE lt_pnwtyh_dia
             WITH KEY pnguid = <lfs_pnwtyv_dia>-header_guid
             ASSIGNING <lfs_pnwtyh_dia>
             BINARY SEARCH.
    *   Claim must be without error -----------------------------
        IF sy-subrc                      NE 0      OR
           <lfs_pnwtyh_dia>-z_wty_error   = true   OR
           <lfs_pnwtyh_dia>-z_wty_convflg = true.
          CONTINUE. "Rejected this Claim
        ENDIF.
    *   Check Model
        IF <lfs_pnwtyh_dia>-z_wty_model IN s_model.
        ELSE.
          CONTINUE. "Rejected this Claim
        ENDIF.
    *   Read first "MAT" Item information ------------------
        READ TABLE lt_pvwty_dia_mat
             WITH KEY version_guid = <lfs_pnwtyv_dia>-pnguid
             ASSIGNING <lfs_pvwty_dia_mat>
             BINARY SEARCH.
        wa_index_mat = sy-tabix.
        IF sy-subrc NE 0.
          CONTINUE. "Rejected this Claim
        ENDIF.
    *   ====================================================
    *   Process all item "MAT" linked to the current version
    *   ====================================================
        WHILE sy-subrc                     = 0
              AND
              <lfs_pvwty_dia_mat>-version_guid = <lfs_pnwtyv_dia>-pnguid.
          IF <lfs_pvwty_dia_mat>-matnr IN s_matnr.
    *       ======================================
    *       Process Items linked to the "MAT" Item
    *       ======================================
            READ TABLE lt_pvwty_dia
                 WITH KEY version_guid     = <lfs_pnwtyv_dia>-pnguid
                          z_wty_posnr_hier = <lfs_pvwty_dia_mat>-posnr
                 ASSIGNING <lfs_pvwty_dia_es2>
                 BINARY SEARCH.
            wa_index_link = sy-tabix.
            DO. "Execute only ONCE (to process all items linked to the)
              "MAT Item
              IF sy-subrc NE 0.
                EXIT.  "Exit the DO loop
              ENDIF.
              WHILE sy-subrc                     = 0
                    AND
                   <lfs_pvwty_dia_es2>-version_guid =
                           <lfs_pnwtyv_dia>-pnguid
                    AND
                   <lfs_pvwty_dia_es2>-z_wty_posnr_hier =
                           <lfs_pvwty_dia_mat>-posnr.
                IF <lfs_pvwty_dia_es2>-valiv EQ c_zero.
                ELSE.
    *             Initialize the detail information to display ---------
                  CLEAR: t_detail_info.
                  t_detail_info-v_parnr    = <lfs_pnwtyv_dia>-v_parnr.
                  t_detail_info-matnr      = <lfs_pvwty_dia_mat>-matnr.
                  t_detail_info-item_type  = <lfs_pvwty_dia_es2>-poskt_cust.
                  t_detail_info-iv_versn   = <lfs_pnwtyv_dia>-versn.
                  t_detail_info-clmno      = <lfs_pnwtyh_dia>-clmno.
                  t_detail_info-crncy      = <lfs_pnwtyv_dia>-v_crncy.
                  t_detail_info-iv_meinh   = <lfs_pvwty_dia_es2>-meinh.
                  t_detail_info-z_wty_model = <lfs_pnwtyh_dia>-z_wty_model.
                  ADD  <lfs_pvwty_dia_es2>-quant TO
                                                 t_detail_info-iv_appr_qty.
                  SELECT SINGLE kbetr
                         INTO   t_detail_info-iv_appr_rate
                         FROM   konv
                         WHERE  knumv  = <lfs_pnwtyv_dia>-knumv
                           AND  kposn  = <lfs_pvwty_dia_es2>-posnr
                           AND  kschl  = 'ZVAP'
                           AND  kinak  = space.
    *              t_detail_info-flat_indic   = <lfs_pnwtyh_dia>-z_wty_model
    *             t_detail_info-pric_indic   = <lfs_pnwtyh_dia>-z_wty_serno
                  PERFORM get_the_submit_record
                          USING <lfs_pnwtyv_dia>-header_guid
                                <lfs_pnwtyv_dia>-prev_version
                                <lfs_pnwtyh_dia>-clmno
                                <lfs_pvwty_dia_es2>-posnr.
                ENDIF.
    *           =====================
    *           Read next Linked item
    *           =====================
                PERFORM read_next_item  TABLES   lt_pvwty_dia
                                        CHANGING wa_index_link.
                IF sy-subrc = 0.
                  ASSIGN <fs_pvwty_dia> TO <lfs_pvwty_dia_es2>.
                ENDIF.
              ENDWHILE.
              EXIT.  "Exit the DO loop
            ENDDO.
          ENDIF.
    *     ====================
    *     Read next "MAT" item
    *     ====================
          PERFORM read_next_item  TABLES   lt_pvwty_dia_mat
                                  CHANGING wa_index_mat.
          IF sy-subrc = 0.
            ASSIGN <fs_pvwty_dia> TO <lfs_pvwty_dia_mat>.
          ENDIF.
        ENDWHILE.
      ENDLOOP.
    * ========================
    * Get the description text
    * ========================
      LOOP AT t_detail_info
           ASSIGNING <fs_detail_info>.
    *   Get the model text -------------------------------------
        SELECT SINGLE mfrpn
               INTO   <fs_detail_info>-z_wty_model
               FROM   mara
               WHERE  matnr = <fs_detail_info>-z_wty_model.
    *   Set Node name to regroup later by group -----------------
        SELECT SINGLE name1
               INTO   <fs_detail_info>-name
               FROM   lfa1
               WHERE  lifnr = <fs_detail_info>-v_parnr.
    *   Set Node name to regroup later by group -----------------
        SELECT SINGLE maktx
               INTO   <fs_detail_info>-maktx
               FROM   makt
               WHERE  matnr = <fs_detail_info>-matnr
                 AND  spras = sy-langu.
        MOVE-CORRESPONDING <fs_detail_info> TO t_summary_alv.
        t_summary_alv-claim_nb = 1.
        COLLECT t_summary_alv.
      ENDLOOP.
    * ===========================================
    * Calculate the average of the summary report
    * ===========================================
      LOOP AT t_summary_alv
           ASSIGNING <fs_summary_alv>.
        DIVIDE <fs_summary_alv>-ov_prop_qty   BY <fs_summary_alv>-claim_nb.
        DIVIDE <fs_summary_alv>-ov_prop_rate  BY <fs_summary_alv>-claim_nb.
        DIVIDE <fs_summary_alv>-ov_submit_qty  BY <fs_summary_alv>-claim_nb.
        DIVIDE <fs_summary_alv>-ov_submit_rate BY <fs_summary_alv>-claim_nb.
        DIVIDE <fs_summary_alv>-iv_appr_qty    BY <fs_summary_alv>-claim_nb.
        DIVIDE <fs_summary_alv>-iv_appr_rate   BY <fs_summary_alv>-claim_nb.
      ENDLOOP.
      DELETE t_summary_alv WHERE v_parnr NOT IN s_vend.
    ENDFORM.                    " select_claim_to_process
    *&      Form  SET_HOT_SPOT
    *       text
    *      -->P_0287   text
    FORM set_hot_spot  TABLES   p_fieldcat     TYPE slis_t_fieldcat_alv
                       USING    value(p_field).
      FIELD-SYMBOLS: <lfs_field_cat> LIKE LINE OF gt_fieldcat_sum.
      READ TABLE p_fieldcat WITH KEY fieldname  = p_field
           ASSIGNING <lfs_field_cat>.
      IF sy-subrc = 0.
        <lfs_field_cat>-hotspot = 'X'.
        <lfs_field_cat>-key     = 'X'.
      ENDIF.
    ENDFORM.                    " SET_HOT_SPOT
    *&      Form  set_screen_text
    *       text
    *      -->P_0997   text
    FORM set_screen_text  USING    p_label
                                   p_text.
      MOVE p_label TO :gtw_fieldcat-seltext_l,
                       gtw_fieldcat-seltext_m,
                       gtw_fieldcat-seltext_s,
                       gtw_fieldcat-reptext_ddic.
      IF p_text NE space.
        gtw_fieldcat-ddictxt = p_text.
      ENDIF.
    ENDFORM.                    " set_screen_text
    *&      Form  set_default_variant
    *       text
    *      -->P_0822   text
    *      <--P_GS_VARIANT1  text
    FORM set_default_variant  CHANGING p_variant     TYPE disvariant
                                       p_disvar      TYPE slis_vari.
    * Get default variant
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save     = c_save
        CHANGING
          cs_variant = p_variant
        EXCEPTIONS
          not_found  = 2.
      IF sy-subrc = 0.
        p_disvar =  p_variant-variant.
      ENDIF.
    ENDFORM.                    " set_default_variant
    *&      Form  validate_vendor
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM validate_vendor.
      DATA: l_lifnr LIKE lfa1-lifnr.
      IF s_vend[] IS INITIAL.
      ELSE.
        SELECT SINGLE lifnr
               INTO   l_lifnr
               FROM   lfa1
               WHERE  lifnr IN s_vend.
        IF sy-subrc NE 0.
          MESSAGE e000 WITH text-e01.
        ENDIF.
      ENDIF.
    ENDFORM.                    " validate_vendor
    *&      Form  inform_claim_error
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM inform_claim_error USING value(p_claim_no)
                                  value(p_version).
      DATA: l_text1(50),
            l_text2(50).
      CONCATENATE text-301
                  p_claim_no
                  INTO l_text1 SEPARATED BY space.
      CONCATENATE text-302
                  p_version
                  text-303
                  INTO l_text2 SEPARATED BY space.
      CALL FUNCTION 'POPUP_TO_INFORM'
        EXPORTING
          titel = text-200
          txt1  = l_text1
          txt2  = l_text2
          txt3  = ' '
          txt4  = text-304.
    ENDFORM.                    " inform_claim_error
    *&      Form  validate_posting_parameter
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM validate_posting_parameter .
      DATA: l_low_date  TYPE d,
            l_high_date TYPE d.
      CLEAR: wa_low_date, wa_high_date.
    * Posting parameters must be entered
      IF s_cpudt[] IS INITIAL AND s_postdt[] IS INITIAL.
        MESSAGE e000 WITH text-e04.
      ENDIF.
    * Posting paramters can't be intered at the same time
      IF s_cpudt[] IS INITIAL OR s_postdt[] IS INITIAL.
      ELSE.
        MESSAGE e000 WITH text-e03.
      ENDIF.
    * Validate posting period ---------------------------------------------
      IF s_postdt[] IS INITIAL.
        READ TABLE s_cpudt INDEX 1.
        IF s_cpudt-low IS INITIAL.
          MESSAGE e000 WITH text-e03.
        ENDIF.
        PERFORM validate_period USING    s_cpudt-low
                                CHANGING l_low_date
                                         l_high_date.
        wa_low_date  = l_low_date.
        wa_high_date = l_high_date.
        IF s_cpudt-high IS INITIAL.
        ELSE.
          PERFORM validate_period USING    s_cpudt-high
                                  CHANGING l_low_date
                                           l_high_date.
          IF s_cpudt-high LT s_cpudt-low.
            MESSAGE ID 'DB' TYPE 'E' NUMBER '650' .
          ENDIF.
          wa_high_date = l_high_date.
        ENDIF.
      ELSE.
    *   Validate posting date --------------------------------------------
        READ TABLE s_postdt INDEX 1.
        wa_low_date  = s_postdt-low.
        IF s_postdt-high IS INITIAL.
          wa_high_date = wa_low_date.
        ELSE.
          wa_high_date = s_postdt-high.
        ENDIF.
      ENDIF.
    ENDFORM.                    " validate_posting_parameter
    *&      Form  get_fin_period
    *       Get the financial period from 1960 to 9999
    *  -->  p1        text
    *  <--  p2        text
    FORM get_fin_period USING value(p_year_low)
                              value(p_year_high).
      DATA : BEGIN OF fp_table OCCURS 0,
                   periv LIKE t009b-periv, "FINANCIAL YEAR VARIANT
                   bdatj LIKE t009b-bdatj, "CALENDAR YEAR
                   bumon LIKE t009b-bumon, "MONTH
                   butag LIKE t009b-butag, "DAY OF MONTH
                   poper LIKE t009b-poper, "COST PERIOD
                   reljr LIKE t009b-reljr, "YEAR SHIFT
             END OF fp_table.
      DATA: l_fin_bdatj       LIKE t009b-bdatj,
            l_period_start    TYPE d,
            l_period_end      TYPE d,
            l_prev_period_end TYPE d,
            l_prev_fin_bdatj  LIKE t009b-bdatj,
            l_prev_poper      LIKE t009b-poper,
            l_count           TYPE n.
    * Get the Fiscal year variant periods
      SELECT periv bdatj bumon butag poper reljr
             INTO  TABLE fp_table
             FROM  t009b
             WHERE periv = 'ZB'.
      LOOP AT fp_table.
        IF l_prev_period_end NE '00000000'.
          l_period_start = l_prev_period_end + 1.
        ENDIF.
        CONCATENATE fp_table-bdatj fp_table-bumon fp_table-butag
                    INTO l_period_end.
        l_prev_period_end = l_period_end.
        l_fin_bdatj       = fp_table-bdatj + fp_table-reljr.
        IF c_year_low NE ''      AND l_fin_bdatj LT p_year_low.
          CONTINUE.
        ELSEIF p_year_high NE '' AND l_fin_bdatj GT p_year_high.
          CONTINUE.
        ELSEIF p_year_low NE '' AND p_year_high EQ '' AND
               l_fin_bdatj  GT c_year_low.
          CONTINUE.
        ENDIF.
        IF l_prev_fin_bdatj EQ l_fin_bdatj         AND
           l_prev_poper     EQ fp_table-poper.
          it_period-end    = l_period_end.
          MODIFY it_period TRANSPORTING  end
                 WHERE year  = it_period-year
                   AND poper = it_period-poper.
        ELSE.
          it_period-year   = l_fin_bdatj.
          it_period-poper  = fp_table-poper+1.
          it_period-start  = l_period_start.
          it_period-end    = l_period_end.
          INSERT TABLE it_period.
        ENDIF.
        l_prev_fin_bdatj = l_fin_bdatj.
        l_prev_poper     = fp_table-poper.
        IF l_count EQ 0.
          l_count = l_count + 1.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " get_fin_period
    *&      Form  set_period_to_analyse
    *       Find the fiscal period for a specific date
    *  -->  p1        text
    *  <--  p2        text
    FORM set_period_to_analyse.
      LOOP AT it_period
           ASSIGNING <fs_it_period>
           WHERE start LE sy-datum
             AND end   GE sy-datum.
        CONCATENATE <fs_it_period>-year
                    <fs_it_period>-poper
                    INTO s_cpudt-low.
        s_cpudt-sign   = 'I'.
        s_cpudt-option = 'EQ'.
        APPEND s_cpudt.
        EXIT.
      ENDLOOP.
    ENDFORM.                    " set_period_to_analyse
    *&      Form  validate_material
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM validate_material .
      DATA: l_matnr LIKE mara-matnr.
      IF s_matnr[] IS INITIAL.
      ELSE.
        SELECT SINGLE matnr
               INTO   l_matnr
               FROM   mara
               WHERE  matnr IN s_matnr.
        IF sy-subrc NE 0.
          MESSAGE e000 WITH text-e02.
        ENDIF.
      ENDIF.
    ENDFORM.                    " validate_material
    *&      Form  validate_claim_group
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM validate_claim_group .
      DATA: l_clmgrp LIKE cwty006-clmgrp.
      IF s_clgrp[] IS INITIAL.
      ELSE.
        SELECT SINGLE clmgrp
               INTO   l_clmgrp
               FROM   cwty006
               WHERE  clmgrp IN s_clgrp.
        IF sy-subrc NE 0.
          MESSAGE e000 WITH text-e06.
        ENDIF.
      ENDIF.
    ENDFORM.                    " validate_claim_group
    *&      Form  set_alv_field_desc
    *       text
    *      -->P_LTW_FIELDCATALOG  text
    *      <--P_GTW_FIELDCAT  text
    FORM set_alv_field_desc USING value(p_fieldcat) TYPE lvc_s_fcat
                                  value(p_level).
      gtw_fieldcat-seltext_l    = p_fieldcat-scrtext_l.
      gtw_fieldcat-seltext_m    = p_fieldcat-scrtext_m.
      gtw_fieldcat-seltext_s    = p_fieldcat-scrtext_s.
      gtw_fieldcat-reptext_ddic = p_fieldcat-reptext.
      CASE p_fieldcat-fieldname.
        WHEN 'NAME'.
          PERFORM set_screen_text USING 'Vendor Name'           'L'.
        WHEN 'MAKTX'.
          PERFORM set_screen_text USING 'Material Description'  'L'.
        WHEN 'CLAIM_NB'.
          PERFORM set_screen_text USING '#Claims'               'L'.
        WHEN 'IV_MEINH'.
          PERFORM set_screen_text USING 'IV UoM'                'L'.
        WHEN 'OV_MEINH'.
          PERFORM set_screen_text USING 'OV UoM'                'L'.
        WHEN 'FLAT_INDIC'.
          PERFORM set_screen_text USING 'Flat Rate Ind.'        'L'.
        WHEN 'PRIC_INDIC'.
          PERFORM set_screen_text USING 'Price Ind.'            'L'.
        WHEN 'OV_PROP_QTY'.
          IF p_level = 1. "Summary report
    *BEGIN OF TR#D03K935718
    *        PERFORM set_screen_text USING 'OV avg. Prop. Qty'    'L'.
             PERFORM set_screen_text USING 'Avg Prop Qty Sub'    'L'.  "RFC2917
    *END OF TR#D03K935718
          ELSE.
            PERFORM set_screen_text USING 'OV Prop. Qty'         'L'.
          ENDIF.
        WHEN 'OV_PROP_RATE'.
          IF p_level = 1. "Summary report
    *BEGIN OF TR#D03K935718
    *        PERFORM set_screen_text USING 'OV avg. Prop. Rate $'  'L'.
             PERFORM set_screen_text USING 'Avg Prop Rate Sub'  'L'.    "RFC2917
    *END OF TR#D03K935718
          ELSE.
            PERFORM set_screen_text USING 'OV Prop. Rate $'       'L'.
          ENDIF.
        WHEN 'OV_SUBMIT_QTY'.
          IF p_level = 1. "Summary report
    *BEGIN OF TR#D03K935718
    *        PERFORM set_screen_text USING 'OV avg. Submit Qty'    'L'.
             PERFORM set_screen_text USING 'Avg Qty Sub'    'L'.          "RFC2917
    *END OF TR#D03K935718
          ELSE.
            PERFORM set_screen_text USING 'OV Submit Qty'         'L'.
          ENDIF.
        WHEN 'OV_SUBMIT_RATE'.
          IF p_level = 1. "Summary report
    *BEGIN OF TR#D03K935718
    *        PERFORM set_screen_text USING 'OV avg. Submit Rate $' 'L'.
            PERFORM set_screen_text USING 'Avg Rate Sub' 'L'.        "RFC2917
    *END OF TR#D03K935718
          ELSE.
            PERFORM set_screen_text USING 'OV Submit Rate $'      'L'.
          ENDIF.
        WHEN 'IV_APPR_QTY'.
          IF p_level = 1. "Summary report
    *BEGIN OF TR#D03K935718
    *        PERFORM set_screen_text USING 'IV Avg. Appr. Qty'     'L'.
            PERFORM set_screen_text USING 'Avg Qty Pd'     'L'.     "RFC2917
    *END OF TR#D03K935718
          ELSE.
            PERFORM set_screen_text USING 'IV Appr. Qty'          'L'.
          ENDIF.
        WHEN 'IV_APPR_RATE'.
          IF p_level = 1. "Summary report
    *BEGIN OF TR#D03K935718
    *        PERFORM set_screen_text USING 'IV Avg. Appr. Rate $'  'L'.
            PERFORM set_screen_text USING 'Avg Rate Pd'  'L'.   "RFC2917
    *END OF TR#D03K935718
          ELSE.
            PERFORM set_screen_text USING 'IV Appr. Rate $'       'L'.
          ENDIF.
        WHEN 'OV_VERSN'.
          PERFORM set_screen_text USING 'OV Versn.'               'L'.
        WHEN 'IV_VERSN'.
          PERFORM set_screen_text USING 'IV Versn.'               'L'.
        WHEN OTHERS.
          gtw_fieldcat-ddictxt      = p_fieldcat-selddictxt.
      ENDCASE.
    *   Initialisation des Labels des entetes de colonne -------------------
      gtw_fieldcat-no_out       = p_fieldcat-no_out.
      gtw_fieldcat-emphasize    = p_fieldcat-emphasize.
      gtw_fieldcat-fix_column   = p_fieldcat-fix_column.
      gtw_fieldcat-icon         = p_fieldcat-icon.
      gtw_fieldcat-no_zero      = 'X'.
      gtw_fieldcat-do_sum       = p_fieldcat-do_sum.
    ENDFORM.                    " set_alv_field_desc
    *&      Form  validate_period
    *       text
    *      -->P_S_CPUDT_LOW  text
    FORM validate_period  USING value(p_period)
                          CHANGING p_low_date    TYPE d
                                   p_high_date   TYPE d.
      DATA: l_year(4),
            l_poper(2).
      l_year  = p_period(4).
      l_poper = p_period+4(2).
      READ TABLE it_period WITH KEY year  = l_year
                                    poper = l_poper
                 ASSIGNING <fs_it_period>.
      IF sy-subrc NE 0.
        MESSAGE e000 WITH text-e04.
      ENDIF.
      p_low_date  = <fs_it_period>-start.
      p_high_date = <fs_it_period>-end.
    ENDFORM.                    " validate_period
    *&      Form  read_next_item
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM read_next_item  TABLES pt_pvwty_dia     STRUCTURE wty_pvwty_dia
                         CHANGING p_index TYPE i.
      p_index = p_index + 1.
    *     Read next Item information ------------------------------
      READ TABLE pt_pvwty_dia INDEX p_index
           ASSIGNING <fs_pvwty_dia>.
    ENDFORM.                    " read_next_item
    *&      Form  get_the_submit_record
    *       text
    *      -->P_<LFS_PNWTYV_DIA>_HEADER_GUID  text
    *      -->P_<LFS_PNWTYV_DIA>_PREV_VERSION  text
    FORM get_the_submit_record  USING    p_header_guid
                                         p_prev_version
                                         p_claim_no
                                         p_posnr.
      DATA: l_nb_while       TYPE i,
            l_zaehk          LIKE konv-zaehk,
            l_submit_found(1).
    * ... USD1092841 - Add Start
      FIELD-SYMBOLS: <fs_submit_rec_vs3> TYPE tp_submit_records.
    * ... USD1092841 - Add End
      CLEAR: l_submit_found, l_nb_while.
      READ TABLE it_submit_records
           WITH KEY header_guid  = p_header_guid
                    versn        = p_prev_version
           ASSIGNING <fs_submit_rec_vs2>.
      WHILE sy-subrc = 0 .
        ADD 1 TO l_nb_while.
    *   if more than 30 loop(endless loop), it means som

    Hi Siddarth
    As per query, if you want to display sums automatically when you report is displayed for the first time, you'll have to modify your field catalog a bit.
    To acheive this, you need to identify the field for which the totals are calculated ex- for every new material num, or for every new documnet number etc.
    once you have this info, you identify the field that has to be totaled.
    then while building your fieldcatalog, set this parameter :
    l_wa_fieldcat-do_sum     =  'X' for the field that has to be totaled.
    and when you build a sort table then set this parameter:
    l_t_sort           TYPE slis_t_sortinfo_alv.
    l_s_sort-subtot    = 'X'. for the field for which totals are calculated.
    Hope this helps.
    Cheers
    Ravish
    Reward if helpful

  • HELP REQUIRED in ALV

    I am using function module ALV. I need a add a box on the side which comes in ALV. Second i need to control it such that the person can either select one record or mutilple. I know for getting the box there is a field in the layout. Help in this regards will be really helpful.
    Regards,
    Gurpreet

    Hi ,
    The internal table which you are passing to the Function module of ALV ,in that just put a field of character type with length 1 say SEL(1) type C.
    And in the layout just provide the fieldname for e.g. WA_LAYOUT-BOX_FIELDNAME  = 'SEL'.
    Below i am giving a sample code which gives ALV output , In this user can select the record and process it for the smartform . Observe the section of code carefully it will help you out.
    any difficulty you can get bact to me.
    Sample code:
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Project Name : SABIC Sustenance
    Copyright : SABIC
    *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Program Name         : ZMSTR0022
    Program Type         : REPORT
    Development Class    : ZLE_MST
    Originator           : Nilesh Raut
    Initiated on         : 24 DEC 2007
    Completed on         : 30 DEc 2007
    Final Release on     :
    Developed by         : Sudeep Reddy Lingi
    Transport Request No : DS1K9A04GO
    *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Program Description  :Report for application of permit
    *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    NOTES -----This report is used by Permit unit at SMO to develop the
               form of application of permit.
    No Authorization Check Required
    *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    REPORT  ZMSTR0022.
    CONSTANTS: C_FORM_NAME TYPE TDSFNAME VALUE 'ZMST_PER_APPL'.
    TABLES :ZMST_PERMIT.
    TYPE-POOLS: SLIS.
    TYPE-POOLS :VRM.                           "Value Request Manager
    TYPES:BEGIN OF STRU_ZMST_PERMIT,
         CHECKBOX(1) TYPE C,                    " Checkbox
         ZPIDNUM TYPE ZMST_PERMIT-ZPIDNUM,   " Permit ID No.
         ZARBDSC TYPE ZMST_PERMIT-ZARBDSC,   " Arabic description
         ZENGDSC TYPE ZMST_PERMIT-ZENGDSC,   " English description
         ZENQUAN TYPE ZMST_PERMIT-ZENQUAN,   " Qty in English
         ZARQUAN TYPE ZMST_PERMIT-ZARQUAN,   " Qty in Arabic
         ZENUOM  TYPE ZMST_PERMIT-ZENUOM,    " UoM
         ZTARIFF TYPE  ZMST_PERMIT-ZTARIFF,  " Tariff No
         ZARRPRT TYPE ZMST_PERMIT-ZARRPRT,   " Port code
         ZPRT_NAME(60) TYPE C,               " Port name in Arabic
         ZPERNUM TYPE ZMST_PERMIT-ZPERNUM,   " Reference No
         ZEFFDT  TYPE ZMST_PERMIT-ZEFFDT,    " Valid from
         ZEXPDT  TYPE ZMST_PERMIT-ZEXPDT,    " Valid to
         ZARB_DT(15) TYPE C,                 " Arabic Date of letter
         ZNAME_AUTH(50) TYPE C,              " Name of Authority
         ZPERM_MIN(50) TYPE C,               " Permit Ministry
         END OF STRU_ZMST_PERMIT.
    TYPES:BEGIN OF STRU_PERMIT,
          ZPIDNUM TYPE ZMST_PERMIT-ZPIDNUM,  " Permit ID No.
          ZENGDSC TYPE ZMST_PERMIT-ZENGDSC,  " English description
          ZARBDSC TYPE ZMST_PERMIT-ZARBDSC,  " Arabic description
          ZTARIFF TYPE  ZMST_PERMIT-ZTARIFF, " Tariff No
          ZPERNUM TYPE ZMST_PERMIT-ZPERNUM,  " Reference No
          ZARRPRT TYPE ZMST_PERMIT-ZARRPRT,  " Port code
          ZEFFDT  TYPE ZMST_PERMIT-ZEFFDT,   " Valid from
          ZEXPDT  TYPE ZMST_PERMIT-ZEXPDT,   " Valid to
          END OF STRU_PERMIT.
    TYPES: BEGIN OF STRU_FORM_PERMIT,
           ZARBDSC TYPE ZMST_PERMIT-ZARBDSC,   " Arabic description
           ZENGDSC TYPE ZMST_PERMIT-ZENGDSC,   " English description
           ZENQUAN TYPE ZMST_PERMIT-ZENQUAN,   " Qty in English
           ZARQUAN TYPE ZMST_PERMIT-ZARQUAN,   " Qty in Arabic
           ZENUOM  TYPE ZMST_PERMIT-ZENUOM,    " UoM
           ZTARIFF TYPE  ZMST_PERMIT-ZTARIFF,  " Tariff No
           ZPRT_NAME(60) TYPE C,               " Port name in Arabic
           END OF STRU_FORM_PERMIT.
    DATA: IT_PERMIT TYPE TABLE OF STRU_PERMIT.
    DATA: IT_ZMST_PERMIT TYPE TABLE OF STRU_ZMST_PERMIT,
          WA_ZMST_PERMIT LIKE LINE OF IT_ZMST_PERMIT,
          IT_FORM_PERMIT TYPE TABLE OF STRU_FORM_PERMIT,
          WA_FORM_PERMIT LIKE LINE OF IT_FORM_PERMIT.
    DATA: WA_LAYOUT   TYPE SLIS_LAYOUT_ALV,
          WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
          IT_FIELDCAT TYPE TABLE OF SLIS_FIELDCAT_ALV.
    DATA: W_FORM TYPE RS38L_FNAM.
    DATA: W_NAME_AUTH(50),
          W_ZARBDT(15),
          W_ZENGDT(10),
         W_ZPRT_NAME(70).
    DATA: W_PARAM TYPE SSFCTRLOP.
    DATA:W_NAME1 TYPE DFIES-FIELDNAME,
          W_NAME2 TYPE HELP_INFO-DYNPROFLD .
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-023.
    SELECT-OPTIONS:S_PIDNUM FOR ZMST_PERMIT-ZPIDNUM ,
                   S_ENGDSC FOR ZMST_PERMIT-ZENGDSC NO INTERVALS LOWER CASE,
                   S_ARBDSC FOR ZMST_PERMIT-ZARBDSC NO INTERVALS LOWER CASE,
                   S_TARIFF FOR ZMST_PERMIT-ZTARIFF NO INTERVALS,
                   S_PERNUM FOR ZMST_PERMIT-ZPERNUM NO INTERVALS,
                   S_ARRPRT FOR ZMST_PERMIT-ZARRPRT NO INTERVALS MATCHCODE OBJECT ZMST_PORTS.
    PARAMETER:P_PERTYP(2) TYPE C AS LISTBOX VISIBLE LENGTH 20.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PIDNUM-LOW.
      W_NAME2 = 'S_PIDNUM-LOW'.
      W_NAME1 = 'ZPIDNUM'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PIDNUM-HIGH.
      W_NAME2 = 'S_PIDNUM-HIGH'.
      W_NAME1 = 'ZPIDNUM'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ENGDSC-LOW.
      W_NAME2 = 'S_ENGDSC'.
      W_NAME1 = 'ZENGDSC'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ARBDSC-LOW.
      W_NAME2 = 'S_ARBDSC'.
      W_NAME1 = 'ZARBDSC'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_TARIFF-LOW.
      W_NAME2 = 'S_TARIFF'.
      W_NAME1 = 'ZTARIFF'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PERNUM-LOW.
      W_NAME2 = 'S_PERNUM'.
      W_NAME1 = 'ZPERNUM'.
      PERFORM F4_HELP USING W_NAME1 W_NAME2 .         "calling subroutine to provide desired F4 help
    AT SELECTION-SCREEN.
      IF SY-UCOMM = 'ONLI'.
        PERFORM CHECK_INPUT.                            "calling subroutine to check inputs on selection screen
      ENDIF.
    INITIALIZATION.
      PERFORM VAL_PERTYP.
    START-OF-SELECTION.
      PERFORM FILL_FIELDCAT.                          "calling subroutine for filling fieldcatalog
    If Permit ministry is blank then fetch data from ZMST_PERMIT otherwise from ZMST_PERMITHI--
      IF P_PERTYP IS INITIAL.
        PERFORM FETCH_PERMIT.                         "calling subroutine to fetch data from ZMST_PERMIT
      ELSE.
        PERFORM FETCH_PERMITHI.                       "calling subroutine to fetch data from ZMST_PERMITHI
      ENDIF.
    END-OF-SELECTION.
    *&      Form  fill_fieldcat
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_FIELDCAT .
    -passing the parameters of layout--
      WA_LAYOUT-ZEBRA = 'X'.
      WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
      WA_LAYOUT-BOX_FIELDNAME = 'CHECKBOX'.
      WA_LAYOUT-BOX_TABNAME = 'IT_ZMST_PERMIT'.
    -Passing the parameters of fieldcatalog--
      WA_FIELDCAT-FIELDNAME = 'ZPIDNUM'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-001.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZARBDSC'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-002.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-LOWERCASE = 'X'.
      WA_FIELDCAT-OUTPUTLEN = 120.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZENGDSC'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-003.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-LOWERCASE = 'X'.
      WA_FIELDCAT-OUTPUTLEN = 120.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZENQUAN'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-004.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-LOWERCASE = 'X'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZARQUAN'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-005.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-LOWERCASE = 'X'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZENUOM'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-006.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-LOWERCASE = 'X'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZTARIFF'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-007.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-OUTPUTLEN = 15.
      WA_FIELDCAT-LOWERCASE = 'X'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZARB_DT'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_L = TEXT-013.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-LOWERCASE = 'X'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZNAME_AUTH'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-014.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-OUTPUTLEN = 50.
      WA_FIELDCAT-LOWERCASE = 'X'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZPRT_NAME'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-009.
      WA_FIELDCAT-EDIT = 'X'.
      WA_FIELDCAT-OUTPUTLEN = 60.
      WA_FIELDCAT-LOWERCASE = 'X'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZARRPRT'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-008.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZPERNUM'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-010.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZEFFDT'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-011.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZEXPDT'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-012.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ZPERM_MIN'.
      WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.
      WA_FIELDCAT-SELTEXT_M = TEXT-019.
      WA_FIELDCAT-OUTPUTLEN = 50.
      WA_FIELDCAT-LOWERCASE = 'X'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    " fill_fieldcat
    *&      Form  alv_disp
          text
    -->  p1        text
    <--  p2        text
    FORM ALV_DISP .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM       = 'ZMSTR0022'
          I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
          I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
          I_GRID_TITLE             = TEXT-015
          IS_LAYOUT                = WA_LAYOUT
          IT_FIELDCAT              = IT_FIELDCAT
          I_SAVE                   = 'A'
        TABLES
          T_OUTTAB                 = IT_ZMST_PERMIT
        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.                    " alv_disp
    *&      Form  PF_STATUS
          text
      This subroutine sets the GUI status
    FORM PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'ZSTANDARD_FULLSCREEN'.
    ENDFORM.                    "PF_STATUS
    *&      Form  USER_COMMAND
    FORM USER_COMMAND USING R_UCOMM TYPE SY-UCOMM  RS_SELFIELD TYPE SLIS_SELFIELD.
    *For Printing Smartform
      IF R_UCOMM = 'PRT'.
        CLEAR WA_FORM_PERMIT.
        REFRESH IT_FORM_PERMIT.
        LOOP AT IT_ZMST_PERMIT INTO WA_ZMST_PERMIT WHERE CHECKBOX = 'X'.
          MOVE-CORRESPONDING WA_ZMST_PERMIT TO WA_FORM_PERMIT.
          APPEND WA_FORM_PERMIT TO IT_FORM_PERMIT .
    *Check for First occurence of Name of authority
          IF WA_ZMST_PERMIT-ZNAME_AUTH NE SPACE.
            IF W_NAME_AUTH = ' '.
              W_NAME_AUTH = WA_ZMST_PERMIT-ZNAME_AUTH.
            ENDIF.
          ENDIF.
    *Check for First occurence of Arabic date
          IF WA_ZMST_PERMIT-ZARB_DT NE SPACE.
            IF W_ZARBDT = ' '.
              W_ZARBDT = WA_ZMST_PERMIT-ZARB_DT.
            ENDIF.
          ENDIF.
          IF WA_ZMST_PERMIT-ZPRT_NAME NE SPACE.
            IF W_ZPRT_NAME = ' '.
              MOVE WA_ZMST_PERMIT-ZPRT_NAME TO W_ZPRT_NAME.
              CONDENSE W_ZPRT_NAME.
            ENDIF.
          ENDIF.
          CLEAR : WA_FORM_PERMIT, WA_ZMST_PERMIT.
        ENDLOOP.
        CONCATENATE SY-DATUM0(4) '/' SY-DATUM4(2) '/' SY-DATUM+6(2) INTO W_ZENGDT.
    *Printing    Subroutine
        IF NOT IT_FORM_PERMIT[] IS INITIAL.
          PERFORM PRINT_FORM.
        ELSE.
          MESSAGE TEXT-018 TYPE 'I'.
        ENDIF.
      ENDIF.
    ENDFORM.                    "user_command
    *&      Form  F4_HELP
          text
    -->  p1        text
    <--  p2        text
    FORM F4_HELP USING: W_VAR TYPE DFIES-FIELDNAME
                        W_VAR1 TYPE HELP_INFO-DYNPROFLD .
    Fetching data from zmst_permit for F4 help on PERMIT ID No.--
      IF IT_PERMIT[] IS INITIAL.
        SELECT ZPIDNUM
               ZENGDSC
               ZARBDSC
               ZTARIFF
               ZPERNUM
               ZARRPRT
               ZEFFDT
               ZEXPDT
               FROM ZMST_PERMIT INTO CORRESPONDING FIELDS OF TABLE IT_PERMIT.
      ENDIF.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD        = W_NAME1 " 'ZPIDNUM'
          DYNPPROG        = 'ZMSTR0022'
          DYNPNR          = SY-DYNNR
          DYNPROFIELD     = W_NAME2 "'S_PIDNUM'
          VALUE_ORG       = 'S'
        TABLES
          VALUE_TAB       = IT_PERMIT
        EXCEPTIONS
          PARAMETER_ERROR = 1
          NO_VALUES_FOUND = 2
          OTHERS          = 3.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                                                    " F4_HELP
    *&      Form  check_input
          text
    -->  p1        text
    <--  p2        text
    FORM CHECK_INPUT .
      IF S_PIDNUM[] IS INITIAL AND
         S_ENGDSC[] IS INITIAL AND
         S_ARBDSC[] IS INITIAL AND
         S_TARIFF[] IS INITIAL AND
         S_PERNUM[] IS INITIAL AND
         S_ARRPRT[] IS INITIAL .
        MESSAGE TEXT-016 TYPE 'E'.
        LEAVE TO TRANSACTION 'ZMSTR022'.
      ENDIF.
    ENDFORM.                    " check_input
    *&      Form  print_form
          text
    -->  p1        text
    <--  p2        text
    FORM PRINT_FORM .
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME           = C_FORM_NAME
        IMPORTING
          FM_NAME            = W_FORM
        EXCEPTIONS
          NO_FORM            = 1
          NO_FUNCTION_MODULE = 2
          OTHERS             = 3.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      W_PARAM-LANGU ='AR'.
      CALL FUNCTION W_FORM
        EXPORTING
          CONTROL_PARAMETERS = W_PARAM
          W_NAME_AUTH        = W_NAME_AUTH
          W_ZARBDT           = W_ZARBDT
          W_ZENGDT           = W_ZENGDT
          W_ZPRT_NAME        = W_ZPRT_NAME
        TABLES
          IT_FORM_PERMIT     = IT_FORM_PERMIT
        EXCEPTIONS
          FORMATTING_ERROR   = 1
          INTERNAL_ERROR     = 2
          SEND_ERROR         = 3
          USER_CANCELED      = 4
          OTHERS             = 5.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " print_form
    *&      Form  fetch_Permit
          text
    -->  p1        text
    <--  p2        text
    FORM FETCH_PERMIT .
    -Fetching data from zmst_permit based on the inputs on selection screen--
      SELECT
           ZPIDNUM
           ZARBDSC
           ZENGDSC
           ZENQUAN
           ZARQUAN
           ZENUOM
           ZTARIFF
           ZARRPRT
           ZPERNUM
           ZEFFDT
           ZEXPDT
           FROM ZMST_PERMIT INTO CORRESPONDING FIELDS OF TABLE IT_ZMST_PERMIT
           WHERE ZPIDNUM IN S_PIDNUM
           AND   ZENGDSC IN S_ENGDSC
           AND   ZARBDSC IN S_ARBDSC
           AND   ZTARIFF IN S_TARIFF
           AND   ZPERNUM IN S_PERNUM
           AND   ZARRPRT IN S_ARRPRT.
      IF SY-SUBRC <> 0.
        MESSAGE TEXT-017 TYPE 'I'.
        LEAVE TO TRANSACTION 'ZMSTR022'.
      ELSE.
        LOOP AT IT_ZMST_PERMIT INTO WA_ZMST_PERMIT.
          WA_ZMST_PERMIT-ZPERM_MIN = TEXT-020.
          MODIFY IT_ZMST_PERMIT INDEX SY-TABIX FROM WA_ZMST_PERMIT TRANSPORTING ZPERM_MIN .
        ENDLOOP.
        PERFORM ALV_DISP.        " calling subroutine for ALV display
      ENDIF.
    ENDFORM.                    " fetch_Permit
    *&      Form  fetch_permithi
          text
    -->  p1        text
    <--  p2        text
    FORM FETCH_PERMITHI .
    -Fetching data from zmst_permit based on the inputs on selection screen--
      SELECT
           ZPIDNUM
           ZARBDSC
           ZENGDSC
           ZENQUAN
           ZARQUAN
           ZENUOM
           ZTARIFF
           ZARRPRT
           ZPERNUM
           ZEFFDT
           ZEXPDT
           FROM ZMST_PERMITHI INTO CORRESPONDING FIELDS OF TABLE IT_ZMST_PERMIT
           WHERE ZPIDNUM IN S_PIDNUM
           AND   ZENGDSC IN S_ENGDSC
           AND   ZARBDSC IN S_ARBDSC
           AND   ZTARIFF IN S_TARIFF
           AND   ZPERNUM IN S_PERNUM
           AND   ZARRPRT IN S_ARRPRT
           AND  ZPERTYP  = P_PERTYP.
      IF SY-SUBRC <> 0.
        MESSAGE TEXT-017 TYPE 'I'.
        LEAVE TO TRANSACTION 'ZMSTR022'.
      ELSE.
        LOOP AT IT_ZMST_PERMIT INTO WA_ZMST_PERMIT.
          CASE P_PERTYP.
            WHEN 'I'.
              WA_ZMST_PERMIT-ZPERM_MIN = TEXT-021.
              MODIFY IT_ZMST_PERMIT INDEX SY-TABIX FROM WA_ZMST_PERMIT TRANSPORTING ZPERM_MIN .
            WHEN 'H'.
              WA_ZMST_PERMIT-ZPERM_MIN = TEXT-022.
              MODIFY IT_ZMST_PERMIT INDEX SY-TABIX FROM WA_ZMST_PERMIT TRANSPORTING ZPERM_MIN .
          ENDCASE.
        ENDLOOP.
        PERFORM ALV_DISP.        " calling subroutine for ALV display
      ENDIF.
    ENDFORM.                    " fetch_permithi
    *&      Form  val_PERTYP
          text
    -->  p1        text
    <--  p2        text
    FORM VAL_PERTYP .
      DATA: W_NAME TYPE VRM_ID,
            IT_LIST TYPE VRM_VALUES,
            WA_VALUE LIKE LINE OF IT_LIST.
      WA_VALUE-KEY = ' '.
      WA_VALUE-TEXT = TEXT-020.
      APPEND WA_VALUE TO IT_LIST.
      CLEAR WA_VALUE.
      WA_VALUE-KEY = 'I'.
      WA_VALUE-TEXT = TEXT-021.
      APPEND WA_VALUE TO IT_LIST.
      CLEAR WA_VALUE.
      WA_VALUE-KEY = 'H'.
      WA_VALUE-TEXT = TEXT-022.
      APPEND WA_VALUE TO IT_LIST.
      CLEAR WA_VALUE.
      W_NAME = 'P_PERTYP'.
      P_PERTYP = ' '.
      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          ID              = W_NAME
          VALUES          = IT_LIST
        EXCEPTIONS
          ID_ILLEGAL_NAME = 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.                    " val_PERTYP

  • Help needed for ALV report

    Hi,
    i need to add coloums for the existing report which picks from G/L account.
    in this report I need to add some more columns from COSP-KSTAR, which shows the cost element details from G/L account.
    I need to restrict that cost element number according to the company code.
    Plz see this and let me know the things.
    1. I need to add FISCAL YEAR(COEP-GJAHR) in selection screen.
    2. I need to add column: Employee Cost (CSKS-KOSTL)
    3. add a column Staff Welfare (COSP-KSTAR) this is to restrict for the cost element 3000200 from G/L account
    4. add a column Recruitment restrict for the cost element(COSP-KSTAR) 3100040 from G/L account
    5. add a column Travels (suppressing some cost elements(COSP-KSTAR) and putting into Travels)
    6. add a column Subcontracts restrict for the cost element (COSP-KSTAR)3100360 from G/L account
    7. add a column Communication suppressing some cost elements and putting into Communication)
    8. add a column Rent restrict for the cost element (COSP-KSTAR)3100055 from G/L account
    9. add a column Back end Cost restrict for the cost element (COSP-KSTAR)3100065 from G/L account
    i can hardcode these cost elements.
    i did according to some of our sdn friends guidence but it is going to dump.
    hear i am sending the code what i changed.
    it is giving the error with the select.
    SELECT BUKRS KOKRS gjahr kstar OBJNR OBJNR_N1 PERIO  BEKNZ WKGBTR WOGBTR  FROM
    COEP  INTO TABLE
    IT_COEP FOR ALL ENTRIES IN IT_AUFK WHERE OBJNR = IT_AUFK-OBJNR and
    perio in S_PERIO.
    plz try to help me out in this issue.
    hear i am sending the complete code what i worte.
    *& Report  ZPROJECT_PROFIT2
    REPORT  ZPROJECT_PROFIT2.
    *********************MAIN DOCUMENTATION BLOCK*************************
    Project Code           :
    Program Name           :Zproject_profit1.
    Purpose of program     :This report will give the gross margin for a project as
    *a whole based on some selected input criteria.
    Author of program      :JAYA KRISHNA .B.
    INPUT/OUTPUT FILE      :nil
    TYPE-POOLS : SLIS."For ALV display.
    TABLES : COEP,  "CO Object: Line Items  (by period).
             AUFK,   "Order master data.
             csks,    "Cost center master data
             cosp.    "CO Objects
    *&  Include           ZSTRUCTURE
    types:    BEGIN OF TY_COEP ,            "structure of table COEP.
              BUKRS LIKE COEP-BUKRS,
              KOKRS LIKE COEP-KOKRS,
              OBJNR LIKE COEP-OBJNR,
               gjahr like coep-gjahr,
              kstar like coep-kstar,
              OBJNR_N1 LIKE COEP-OBJNR_N1,
              PERIO LIKE COEP-PERIO,
              BEKNZ LIKE COEP-BEKNZ,
              WKGBTR LIKE COEP-WKGBTR,
              WOGBTR LIKE COEP-WOGBTR,
              BELNR LIKE COEP-BELNR,
              END OF TY_COEP,
             BEGIN OF TY_AUFK ,             "structure of table AUFK.
             BUKRS LIKE AUFK-BUKRS,
             KOKRS LIKE AUFK-KOKRS,
             OBJNR LIKE AUFK-OBJNR,
             KTEXT LIKE AUFK-KTEXT,
             ANFAUFNR LIKE AUFK-ANFAUFNR,
             AUFEX LIKE AUFK-AUFEX,
             USER2 LIKE AUFK-USER2,
             USER0 LIKE AUFK-USER0,
             USER1 LIKE AUFK-USER1,
             USER3 LIKE AUFK-USER3,
             USER6 LIKE AUFK-USER6,
             USER7 LIKE AUFK-USER7,
             USER8 LIKE AUFK-USER8,
             ABKRS(10) TYPE C,
             USER9 LIKE AUFK-USER9,
             AUFNR LIKE AUFK-AUFNR,
           END OF TY_AUFK,
           begin of ty_csks,
           kokrs like csks-kokrs,
            kostl like csks-kostl,
            bukrs like csks-bukrs,
            objnr like csks-objnr,
                 end of ty_csks.
    DATA :   BEGIN OF IT_COSP occurs 100,
           OBJNR LIKE COSP-OBJNR,
           GJAHR LIKE COSP-GJAHR,
           KSTAR LIKE COSP-KSTAR,
           END OF IT_COSP.
    DATA : IT_COEP TYPE TABLE OF TY_COEP,     " Declaraton of tables COEP and AUFK.
           IT_AUFK TYPE TABLE OF TY_AUFK,
           IT_CSKS TYPE TABLE OF TY_CSKS.
          IT_COSP TYPE TABLE OF TY_COSP.
    DATA : WA_COEP LIKE LINE OF IT_COEP,      " Declaration of work areas for tables COEP and AUFK.
           WA_AUFK LIKE LINE OF IT_AUFK,
           WA_CSKS LIKE LINE OF IT_CSKS.
          WA_COSP LIKE LINE OF IT_COSP.
    DATA : BEGIN OF IT_DISPLAY OCCURS 0,      " Declaration of display table.
            OBJNR_N1 LIKE COEP-OBJNR_N1,
            OBJNR_N12 LIKE COEP-OBJNR_N1,
            KTEXT1 LIKE AUFK-KTEXT,
            WKGBTR LIKE COEP-WKGBTR,
            WOGBTR LIKE COEP-WOGBTR,
            WKGBTR1  LIKE COEP-WTGBTR,
            WOGBTR1 LIKE COEP-WOGBTR,
            ADDK LIKE COEP-WOGBTR,
            ADDO LIKE COEP-WOGBTR,
            ADDK1 LIKE COEP-WOGBTR,
            ADDO1 LIKE COEP-WOGBTR,
            PROFIT1 LIKE COEP-WOGBTR,
            PROFIT2 LIKE COEP-WOGBTR,
            BEKNZ LIKE COEP-BEKNZ,
            BUKRS LIKE AUFK-BUKRS,
            anfaufnr LIKE AUFK-anfaufnr,
            aufex like aufk-aufex,
            OBJNR LIKE AUFK-OBJNR,
            USER2 LIKE AUFK-USER2,
            USER0 LIKE AUFK-USER0,
            USER1 LIKE AUFK-USER1,
            USER3 LIKE AUFK-USER3,
            USER6 LIKE AUFK-USER6,
            USER7 LIKE AUFK-USER7,
            USER8 LIKE AUFK-USER8,
            ABKRS LIKE AUFK-ABKRS,
            USER9 LIKE AUFK-USER9,
            PERIO LIKE COEP-PERIO,
            AUFNR LIKE AUFK-AUFNR,
            STR(5) TYPE C,
            WORK(10) TYPE C,
           END OF IT_DISPLAY,
      : BEGIN OF IT_DISPLAY1 OCCURS 0,      " Declaration of second display table.
         OBJNR_N1 LIKE COEP-OBJNR_N1,
         OBJNR_N12 LIKE COEP-OBJNR_N1,
         KTEXT1 LIKE AUFK-KTEXT,
         WKGBTR LIKE COEP-WKGBTR,
         WOGBTR LIKE COEP-WOGBTR,
         WKGBTR1  LIKE COEP-WTGBTR,
         WOGBTR1 LIKE COEP-WOGBTR,
         ADDK LIKE COEP-WOGBTR,
         ADDO LIKE COEP-WOGBTR,
         ADDK1 LIKE COEP-WOGBTR,
         ADDO1 LIKE COEP-WOGBTR,
         PROFIT1 LIKE COEP-WOGBTR,
         PROFIT2 LIKE COEP-WOGBTR,
         BEKNZ LIKE COEP-BEKNZ,
         BUKRS LIKE AUFK-BUKRS,
         anfaufnr like aufk-anfaufnr,
         aufex like aufk-aufex,
         OBJNR LIKE AUFK-OBJNR,
         USER2 LIKE AUFK-USER2,
         USER0 LIKE AUFK-USER0,
         USER1 LIKE AUFK-USER1,
         USER3 LIKE AUFK-USER3,
         USER6 LIKE AUFK-USER6,
         USER7 LIKE AUFK-USER7,
         USER8 LIKE AUFK-USER8,
         ABKRS LIKE AUFK-ABKRS,
         USER9 LIKE AUFK-USER9,
         PERIO LIKE COEP-PERIO,
         AUFNR LIKE AUFK-AUFNR,
         STR(5) TYPE C,
         WORK(10) TYPE C,
        END OF IT_DISPLAY1.
    data : it_field type slis_fieldcat_alv,        " Declaration of ALV variables
           it_field_t type slis_t_fieldcat_alv,
            xlayout    TYPE slis_layout_alv.
    data : it_event type slis_t_event,
          wa_event like line of it_event.
    DATA : WA_TOP TYPE SLIS_LISTHEADER,
           IT_TOP TYPE SLIS_T_LISTHEADER.
    data:w_lines type i,
          w_occurs type i,
          STR(5) TYPE C,
          WORK(10) TYPE C.
          constants : c_selection type char20 value 'Selection based on'. " Declaration of a constant.
    selection-screen BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-000.
    SELECT-OPTIONS S_BUKRS FOR AUFK-BUKRS OBLIGATORY.
    SELECT-OPTIONS S_OBJNR FOR AUFK-AUFNR.
    SELECT-OPTIONS S_ANF FOR AUFK-ANFAUFNR.
    SELECT-OPTIONS S_AUFEX FOR AUFK-AUFEX.
    SELECT-OPTIONS S_USER2 FOR AUFK-USER2.
    SELECT-OPTIONS S_USER0 FOR AUFK-USER0.
    SELECT-OPTIONS S_USER1 FOR AUFK-USER1.
    SELECT-OPTIONS S_USER3 FOR AUFK-USER3.
    SELECT-OPTIONS S_USER6 FOR AUFK-USER6.
    SELECT-OPTIONS S_ABKRS FOR AUFK-ABKRS.
    SELECT-options s_gjahr for coep-gjahr obligatory.
    SELECT-OPTIONS S_PERIO FOR COEP-PERIO OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK BLK .
    SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
    PARAMETERS : ONSITE RADIOBUTTON GROUP RADI.
    PARAMETERS : OFFSHORE RADIOBUTTON GROUP RADI.
    PARAMETERS : BOTH RADIOBUTTON GROUP RADI.
    SELECTION-SCREEN END OF BLOCK BLK1 .
    start-of-selection.
    *ZAUFK
                                  " Selection of records from aufk to internal table.
    IF ONSITE EQ 'X' .
    SELECT
    BUKRS
    KOKRS
    OBJNR
    KTEXT
    anfaufnr
    aufex
    USER2
    USER0
    USER1
    USER3
    USER6
    USER7
    USER8
    ABKRS
    USER9
    AUFNR
    FROM AUFK INTO TABLE IT_AUFK WHERE BUKRS IN S_BUKRS AND
    anfaufnr IN s_anf AND
    aufex in s_aufex and
    aufnr IN S_OBJNR AND
    USER2 IN S_USER2 AND
    USER0 IN S_USER0 AND
    USER1 IN S_USER1 AND
    USER3 IN S_USER3 AND
    USER6 IN S_USER6 AND
    ABKRS IN S_ABKRS AND
    USER9 EQ 'X' .
    ENDIF.
    IF OFFSHORE EQ 'X'.
    SELECT
    BUKRS
    KOKRS
    OBJNR
    KTEXT
    anfaufnr
    aufex
    USER2
    USER0
    USER1
    USER3
    USER6
    USER7
    USER8
    ABKRS
    USER9
    AUFNR
    FROM AUFK INTO TABLE IT_AUFK WHERE BUKRS IN S_BUKRS AND
    anfaufnr IN S_anf AND
    aufex in s_aufex and
    aufnR IN S_OBJNR AND
    USER2 IN S_USER2 AND
    USER0 IN S_USER0 AND
    USER1 IN S_USER1 AND
    USER3 IN S_USER3 AND
    USER6 IN S_USER6 AND
    ABKRS IN S_ABKRS AND
    USER9 <> 'X'.
    ENDIF.
    IF BOTH EQ 'X'.
    SELECT
    BUKRS
    KOKRS
    OBJNR
    KTEXT
    anfaufnr
    aufex
    USER2
    USER0
    USER1
    USER3
    USER6
    USER7
    USER8
    ABKRS
    USER9
    AUFNR
    FROM AUFK INTO TABLE IT_AUFK WHERE BUKRS IN S_BUKRS AND
    anfaufnr IN S_anf AND
    aufex in s_aufex and
    aufNR IN S_OBJNR AND
    USER2 IN S_USER2 AND
    USER0 IN S_USER0 AND
    USER1 IN S_USER1 AND
    USER3 IN S_USER3 AND
    USER6 IN S_USER6 AND
    ABKRS IN S_ABKRS.
    ENDIF.
    *&  Include           ZCOEP
                                  " Selection of records from coep to internal table.
    SELECT BUKRS KOKRS gjahr kstar OBJNR OBJNR_N1 PERIO  BEKNZ WKGBTR WOGBTR  FROM
    COEP  INTO TABLE
    IT_COEP FOR ALL ENTRIES IN IT_AUFK WHERE OBJNR = IT_AUFK-OBJNR and
    perio in S_PERIO.
    *&  Include           ZPROFIT_CALC
                                 " Calculations for income and Profit of the employee.
    if not it_coep[] is initial.
        select objnr gjahr wrttp versn kstar from cosp into TABLE It_cosp for
    all entries in it_coep where objnr = IT_COEP-objnr .
    endif.
      LOOP AT IT_coep INTO WA_coep.
        read table IT_aufk into WA_aufk with key OBJNR = wa_coep-OBJNR.
    case it_cosp-kstar.
    when '3000200'.
    it_cosp-kstar = cosp-kstar.
    when '3100040'.
    it_cosp-kstar = cosp-kstar.
    when '3100360'.
    it_cosp-kstar = cosp-kstar.
    when '3100055'.
    it_cosp-kstar = cosp-kstar.
    when '3100065'.
    it_cosp-kstar = cosp-kstar.
    when '3100115'.
    it_cosp-kstar = cosp-kstar.
    when '3100120'.
    it_cosp-kstar = cosp-kstar.
    when '3100130'.
    it_cosp-kstar = cosp-kstar.
    when '3100135'.
    it_cosp-kstar = cosp-kstar.
    when '3100140'.
    it_cosp-kstar = cosp-kstar.
    when '3100145'.
    it_cosp-kstar = cosp-kstar.
    when '3100150'.
    it_cosp-kstar = cosp-kstar.
    when '3100155'.
    it_cosp-kstar = cosp-kstar.
    when '3100160'.
    it_cosp-kstar = cosp-kstar.
    when '3100165'.
    it_cosp-kstar = cosp-kstar.
    when '3100170'.
    it_cosp-kstar = cosp-kstar.
    endcase.
        IT_DISPLAY-BUKRS = WA_AUFK-BUKRS.
        IT_DISPLAY-anfaufnr = WA_AUFK-anfaufnr.
        it_display-aufex  = wa_aufk-aufex.
        IT_DISPLAY-OBJNR = WA_AUFK-OBJNR.
        IT_DISPLAY-USER2 = WA_AUFK-USER2.
        IT_DISPLAY-USER0 = WA_AUFK-USER0.
        IT_DISPLAY-USER1 = WA_AUFK-USER1.
        IT_DISPLAY-USER3 = WA_AUFK-USER3.
        IT_DISPLAY-USER6 = WA_AUFK-USER6.
        IT_DISPLAY-USER7 = WA_AUFK-USER7.
        IT_DISPLAY-USER8 = WA_AUFK-USER8.
        IT_DISPLAY-ABKRS = WA_AUFK-ABKRS.
        IT_DISPLAY-USER9 = WA_AUFK-USER9.
        IT_DISPLAY-KTEXT1 =  WA_AUFK-KTEXT.
        if WA_AUFK-abkrs = 01.
          IT_DISPLAY-STR = 'TM'.
        ENDIF.
        IF WA_AUFK-ABKRS = 02.
          IT_DISPLAY-STR = 'FP'.
        ENDIF.
        IF WA_AUFK-USER9 = 'X'.
          IT_DISPLAY-WORK = 'ONSITE'.
        ENDIF.
        IF WA_AUFK-USER9 <> 'X'.
          IT_DISPLAY-WORK = 'OFFSHORE'.
        ENDIF.
        it_display-ABKRS = it_display-user7.
        IF wa_coep-BEKNZ = 'S'.
          IT_DISPLAY-WKGBTR = WA_COEP-WKGBTR.
          IT_DISPLAY-WOGBTR = WA_COEP-WOGBTR.
          IT_DISPLAY-ADDK = IT_DISPLAY-ADDK + IT_DISPLAY-WKGBTR.
          IT_DISPLAY-ADDO = IT_DISPLAY-ADDO + IT_DISPLAY-WOGBTR.
          IT_DISPLAY-ADDK1 = 0.
          IT_DISPLAY-ADDO1 = 0.
          IT_DISPLAY-PROFIT1 = IT_DISPLAY-ADDK1 +  IT_DISPLAY-ADDK.
          IT_DISPLAY-PROFIT2 = IT_DISPLAY-ADDO1 +  IT_DISPLAY-ADDO.
          APPEND IT_DISPLAY.
        ENDIF.
        IF WA_COEP-BEKNZ = 'H'.
          IT_DISPLAY-WKGBTR1 = WA_COEP-WKGBTR.
          IT_DISPLAY-WOGBTR1 = WA_COEP-WOGBTR.
          IT_DISPLAY-ADDK1 = IT_DISPLAY-ADDK + IT_DISPLAY-WKGBTR1.
          IT_DISPLAY-ADDO1 = IT_DISPLAY-ADDO + IT_DISPLAY-WOGBTR1.
          IT_DISPLAY-ADDK = 0.
          IT_DISPLAY-ADDO = 0.
          IT_DISPLAY-PROFIT1 = IT_DISPLAY-ADDK1 +  IT_DISPLAY-ADDK.
          IT_DISPLAY-PROFIT2 = IT_DISPLAY-ADDO1 +  IT_DISPLAY-ADDO.
          APPEND IT_DISPLAY.
        ENDIF.
        collect it_display into it_display1.
        clear it_display.
      ENDLOOP.
                        "calc
    *&  Include           ZPROFIT_DISPLAY
      LOOP AT IT_DISPLAY1.                                         "it_display.
        read table IT_COEP into WA_COEP with key OBJNR =
        IT_DISPLAY-OBJNR.
        read table IT_AUFK into WA_AUFK with key aufnr = IT_DISPLAY-aufnr.
        if WA_AUFK-abkrs = 01.
          STR = 'TM'.
        ENDIF.
        IF WA_AUFK-ABKRS = 02.
          STR = 'FP'.
        ENDIF.
        IF WA_AUFK-USER9 = 'X'.
          WORK = 'ONSITE'.
        ENDIF.
        IF WA_AUFK-USER9 <> 'X'.
          WORK = 'OFFSHORE'.
        ENDIF.
      endloop.
      clear it_field.
      it_field-col_pos = 1.
      it_field-fieldname = 'AUFNR'.
      it_field-seltext_l = 'project id.'.
      it_field-outputlen = 15.
      append it_field to it_field_t.
      CLEAR it_field.
      clear it_field.
      it_field-col_pos = 2.
      it_field-fieldname = 'KTEXT1'.
      it_field-seltext_l = 'Project Name'.
      it_field-outputlen = 20.
      append it_field to it_field_t.
      CLEAR it_field.
      clear it_field.
      it_field-col_pos = 3.
      it_field-fieldname = 'USER7'.
      it_field-seltext_l = 'Start Date'.
      it_field-do_sum = 'X'.
      it_field-outputlen = 20.
      append it_field to it_field_t.
      CLEAR it_field.
      clear it_field.
      it_field-col_pos = 4.
      it_field-fieldname = 'USER8'.
      it_field-seltext_l = 'End Date'.
      it_field-do_sum = 'X'.
      it_field-outputlen = 20.
      append it_field to it_field_t.
      CLEAR it_field.
      clear it_field.
      it_field-col_pos = 5.
      it_field-fieldname = 'USER2'.
      it_field-seltext_l = 'Location'.
      it_field-do_sum = 'X'.
      it_field-outputlen = 20.
      append it_field to it_field_t.
      CLEAR it_field.
      clear it_field.
      it_field-col_pos = 6.
      it_field-fieldname = 'USER0'.
      it_field-seltext_l = 'Vertical'.
      it_field-do_sum = 'X'.
      it_field-outputlen = 20.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 7.
      it_field-fieldname = 'USER1'.
      it_field-seltext_l = 'Sub_vertical'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 8.
      it_field-fieldname = 'USER3'.
      it_field-seltext_l = 'Technology'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 9.
      it_field-fieldname = 'USER6'.
      it_field-seltext_l = 'Department'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 10.
      it_field-fieldname = 'WORK'.
      it_field-seltext_l = 'Onsite/Offshore'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 11.
      it_field-fieldname = 'STR'.
      it_field-seltext_l = 'T&M/FP'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 12.
      it_field-fieldname = 'KOSTL'.
      it_field-seltext_l = 'EMP COST'.
      it_field-outputlen = 10.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 13.
      it_field-fieldname = 'KSTAR'.
      it_field-seltext_l = 'STAFF WELFARE'.
      it_field-outputlen = 10.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 14.
      it_field-fieldname = 'KSTAR'.
      it_field-seltext_l = 'RECRUITMENT'.
      it_field-outputlen = 10.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 15.
      it_field-fieldname = 'KSTAR'.
      it_field-seltext_l = 'TRAVELS'.
      it_field-outputlen = 10.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 16.
      it_field-fieldname = 'KSTAR'.
      it_field-seltext_l = 'SUBCONTRACT'.
      it_field-outputlen = 10.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 17.
      it_field-fieldname = 'KSTAR'.
      it_field-seltext_l = 'COMMUNICATION'.
      it_field-outputlen = 10.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 18.
      it_field-fieldname = 'KSTAR'.
      it_field-seltext_l = 'RENT'.
      it_field-outputlen = 10.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 19.
      it_field-fieldname = 'KSTAR'.
      it_field-seltext_l = 'BACKEND COST (PROJECT EXP)'.
      it_field-outputlen = 10.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
    it_field-col_pos = 20.
      it_field-fieldname = 'ADDO'.
      it_field-seltext_l = 'Direct costs'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 21.
      it_field-fieldname = 'ADDO1'.
      it_field-seltext_l = 'Income'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 22.
      it_field-fieldname = 'PROFIT2'.
      it_field-seltext_l = 'Profit(income-costs)'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 23.
      it_field-fieldname = 'ADDK'.
      it_field-seltext_l = 'Direct costs(Grp cur)'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 24.
      it_field-fieldname = 'ADDK1'.
      it_field-seltext_l = 'Income(Grp Cur)'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      it_field-col_pos = 25.
      it_field-fieldname = 'PROFIT1'.
      it_field-seltext_l = 'Profit(income-costs)'.
      it_field-outputlen = 20.
      it_field-do_sum = 'X'.
      append it_field to it_field_t.
      CLEAR it_field.
      xlayout-zebra = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = 'ZPROJECT_PROFIT1'
      I_CALLBACK_PF_STATUS_SET          = ' '
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
         I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE_PROFIT'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
         IS_LAYOUT                         = xlayout
         IT_FIELDCAT                       =  it_field_t
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
         I_DEFAULT                         = 'X'
         I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
       TABLES
          T_OUTTAB                          = IT_DISPLAY1
    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.
      clear it_field_t.
      "it_display.
    FORM USER_COMMAND using r_ucomm like sy-ucomm rs type slis_selfield.
      include zinteractive_profit."Secondary list for calling KO03.
    ENDFORM.                    "USER_COMMAND.
    Thanks & Regards,
    Lakshmi..

    Hi,
    i did according to ur suggession.
    now it is going dump.
    and it is telling like this.
    2629               i_event_name      = 'SUBTOTAL_TEXT'
    2630               is_subtottxt_info = ls_subtot_info
    2631               ip_subtot_line    = lr_data
    2632             changing
    2633               c_subtottxt       = l_subtottxt.
    2634           ls_lvc_data-value = l_subtottxt.
    2635
    2636           append ls_lvc_data to ct_lvc_data.
    2637         endif.
    2638
    2639 ************************************
    2640 * Column per Fieldcat Entry
    2641 ************************************
    2642         clear ls_lvc_data-style.
    2643         loop at it_fcat_local assigning <ls_fcat>
    2644                 where tech ne 'X' and no_out ne 'X'.
    2645           if l_invisible eq 'X'.
    2646             clear l_invisible.
    2647             if <ls_fcat>-do_sum is initial.
    2648               continue.
    2649             else.
    2650               clear ls_lvc_data-col_pos.
    2651             endif.
    2652           endif.
    2653
    2654           add 1 to ls_lvc_data-col_pos.
    2655
    2656           assign component <ls_fcat>-fieldname
    2657                            of structure <ls_data> to <l_field_val
    2658           if sy-subrc ne 0.
    >>>>>             message x000(0k).
    2660           endif.
    2661
    2662 *... work on average
    2663           if <ls_fcat>-do_sum eq 'C'.
    2664             clear l_entries.
    2665
    2666             assign space to <l_unit>.
    2667             if not <ls_fcat>-cfieldname is initial.
    2668               assign component <ls_fcat>-cfieldname
    2669                      of structure <ls_data> to <l_unit>.
    2670             endif.
    2671             if not <ls_fcat>-qfieldname is initial.
    2672               assign component <ls_fcat>-qfieldname
    2673                      of structure <ls_data> to <l_unit>.
    2674             endif.
    2675
    2676             l_from = ls_grpl-index_from.
    2677             l_to   = ls_grpl-index_to.
    2678             if ls_grpl-index_from is initial and
    plz any of u help me to come out with solution.
    Thanks & Regards,
    Lakshmi..

  • Help required on Freely Programmed Input help

    Dear all,
    I have developed a component, say comp1, in which i have implemented the interface IWD_VALUE_HELP.
    In the respective view(MAIN) of Comp1 i have a dropdown which contains a list of company codes fetched from T001 table.
    Apart from these two, I have also embedded the Main view into the window WD_VALUE_HELP.
    Now, I have created another component, say Comp2, in which i Used the dynpro component Comp1, and also in the MAIN view of my Comp2. Now in the MAIN view of Comp2 I have created a input field from the node T001 in the context which contains the single attribute BUKRS type String. In the properties of the BUKRS attribute I have also changed the Input help to "Freely Programmed" and linked to the component for the Input help.
    After this, I have created the application for my component Comp2. When i run the application and when i press F4 on the input field i am able to get the window from Comp1 component, and a dropdown with values.
    Now the question is, How can i pass the value selected in that window of Comp1 into the input field of Comp2? we do the same in OVS, when ever a value is selected from the Hitlist, it will be cascaded into the input field, just like that i want to do here.
    Please suggest me how to do this, and also please tell when to go for Freely programmed Input help and its advantages.
    Thank you,
    Shashi.

    You can do as suggested already and use interface nodes and cross component mapping; but that is all really not necessary.  It creates a situation where you calling application is too dependent upon the freely programmed input help.  You want to try to avoid the situation where the calling application needs code or mappings to communicate with the input help.
    That is easy to do because the framework passes all the information you need into the freely programmed input help via the value_help_listener object. 
    Part of the Freeley Programmed Input Help Component should be the component interface IWD_VALUE_HELP.  This comes with a component controller method called SET_VALUE_HELP_LISTENER.  This allows your freely programmed value help to capture this object called listener of type IF_WD_VALUE_HELP_LISTENER. I generally just store it awa into a component controller attribute.
    With this listerner object you have direct access to the context attribute in the calling component. You can query information about the calling UI element and of course set values directly back into it.  The listener is a hugely helpful object and should be the way you interact with the calling component whenever possible.  Here is small example:
      set single attribute
      wd_this->value_help_listener->f4_context_element->set_attribute(
      exporting
        name = wd_this->value_help_listener->f4_attribute_info-name
        value = l_time

  • Help required for unicode compatibilty

    Dear All,
    We are in a process of analyzing the impact of unicode compatibility for our environment.
    Following is our scenario:
    - ECC6.0 is non unicode systsem
    - Need to buid unicode CRM 7, SCM 7, PI 7.1 and BI7
    - Need to integrate the above systems to non unicode ECC system.
    Our questions are :
    1. Is there any performance consideration when using communication between an Unicode and non-Unicode system?
       Is Unicode - Unicode faster than Unicode - non-Unicode communication performance wise?
    2. Do we face any  technical or functinal problems while trying to integrate
       unicode BI/ NW Java Stack  to non unicode systems.
    3. Do we need to review our sizing estimations due to unicode implemenation?
    5. what will be the storage consumption increase for unicode systems compared to non unicode?
    It would be greatly helpful for me if you can clarify these doubts.
    Thanks and Regards

    Hi,
    1. I think no one has really measured this. I expect a slightly higher requirement for Unicode <--> Non-Unicode interfaces.
    2. Please have a look at SAP Notes 838402, 73606, 975768 and 1358929 for restrictions in Non-Unicode systems. SAP highly recommends to go for Unicode in the whole landscape.
    3. and 5.  If you use the SAP quicksizer (http://service.sap.com/quicksizing), then Unicode is integrated.
    " Please note that the Quick Sizer results include Unicode requirements. For more
    information on additional requirements caused by Unicode, see
    http://service.sap.com/unicode -> Unicode Media Library -> Unicode information on
    specific topics: SAP Business Suite Unicode Hardware Requirements"
    Best regards,
    Nils Buerckel
    SAP AG

  • Seeburger help required for 810 and Dispatch Advice (IDOC type DESADV).

    Hi All,
    1. Please let me know blogs which clearly shows settings for Seeburger components for 850 (Purchase Order) to IDOC Scenario
    --- Seeburger Workbench
    --- Seeburger Mapping Designer (BIC)
    --- Seeburger Counter and Varaibles
    --- Seeburger AS2 Spoke
    --- Any other Seeburger Component setting required
    I have understand blog for 850 -- /people/rajeshkumar.pasupula/blog/2009/08/05/wanna-implement-seeburger-for-edi-find-the-booster
    2. Anybody has blog for 810 or Dispatch Advice (IDOC type DESADV).
    3. Can anybody provide me Mapping Logic (at field level) done in XI/PI for 850, 810 , Dispatch Advice (IDOC type DESADV) .
    Regards

    Hi Rickkk,
    1. Please let me know blogs which clearly shows settings for Seeburger components for 850 (Purchase Order) to IDOC Scenario
    --- Seeburger Workbench
    --- Seeburger Mapping Designer (BIC)
    --- Seeburger Counter and Varaibles
    --- Seeburger AS2 Spoke
    --- Any other Seeburger Component setting required
    For SEEBURGER workbench please go through this blog and navigate the enbebbed links furthur to know about Seeburger workbench too.
    /people/prateek.srivastava3/blog/2009/08/01/seeburger--part-1--the-basics
    2
    2. Anybody has blog for 810 or Dispatch Advice (IDOC type DESADV).
    For 810 i think the procedure would be the same but themseeburger mapping program that validates the ANSX 810 would be different.As far as 997is concerned 997 is a functional acknowledgement.Its a genric format that is used to send acknowledgement for any EDI transaction set that has been sent.
    3. Can anybody provide me Mapping Logic (at field level) done in XI/PI for 850, 810 , Dispatch Advice (IDOC type DESADV) .
      The logic will be based on the trading partner guidelines which will contain the description of all the semantic and syntactiic description about the segments ,its feilds.we need to consider the guidelines and target side specifications too while mapping.
    Thanks,
    Ram.

  • 2 Layout's for 2 screens different F4 Help needed for same program

    Hi Friends,
    I have 2 layouts in the selection screen the first layout is for screen 1 and the second layout is for screen 2.
    I save the layouts when I run the report.
    Now when I do F4 Help for the first layout it shows me all the layouts available for the program and the same thing
    for Second layout too.
    Is there a way for the first layout I need to get only the layouts for the first screen when I hit the F4 button
    and for the second layout I need to get only the layouts for the second screen when I hit the F4 button. in order to choose
    I am using REUSE_ALV_VARIANT_F4 and passing report name to is_variant and i_save = 'X'.
    Thanks,
    chaithanya.

    I think this is not possible.
    Variant names get stored on Report Name as key.

  • PCUI 4.0, Search Help Required for New field

    Hi everyone
    I am working in CRM 4.0 Sales Order application
    We created a new field in CRM sales Order in Header level in SAP GUI through EEWB.
    The search help for the new field is working fine in SAP GUI. We want to add the same field with F4 help functionaliity in PCUI as well.
    The field has been added in structure CRMT_BSP_SLS_OD1_General. It also shows domain value for the field however Origin of input field ie empty
    The field has been added in PCUI and is successfully showing data inputted in SAPGUI
    However we need search help functionality for the field
    i tried these two steps
    1) i checked on domain value checkbox and changed the field from input to dropdown. However the dropdown is empty in PCUI. Whenever i check box domain values for some field then all the possible values in SPA GUI are displayed in PCUI, however this is not working here.
    2) I put Value_table in F4 of the field
    This is also throwing up empty values
    Am i missing something in this case
    Please let me know how to go about it
    TIA
    Asad

    Hi Frederic
    Thanks for your response
    I am not sure what is meant by regenerating the field group in this case
    I added the entries for my view in the field group and generated the layout of the field group (If this is what you mean)
    The field is working fine. I am able to save values to the field and able to see values saved in GUI.
    I haven't linked search help of the field in PCUI
    I am not sure how to go about it.
    I used the data element in the structure for the field.
    The data element has Domain entry in <b>Entry Help/Check</b> of the structure
    If i check the Domain Value checkbox in my field group then the domain values should be available in dropdown if the field is dropdown
    However i am not able to see the possible values of the field (It is present in SAP GUI)
    Does something else needs to be done in this case
    TIA
    Asad

  • Help needed for compactrio programming

    Hello all,
    I am very new to LabVIEW programming.I've an application where it's required to acquire temprature data at a perticular duration  from a heater.Depending upon the differance between current temp (process varible)and set temprature,heater  has to make ON and OFF in a controlled way to reach the set value.
    I have made a loop where i am acquireing temp data at every 30 sec interval and depending upon temprature diff between set value and present value ,am genarting a pulse   (for eg. 22 sec on period and 8 sec off period).Inside that loop  I am driving the "True" value to DIO of CompactRIO  for ON period to make the  heater ON .Problem what I am facing is the heater is not gaetting ON at Exact 0 to 22 sec and not OFF from 22 sec to 30 sec.
    i have tried to use  separate loop for acustion ,analysis and control but not able  to synchonise all.Heater is getting ON and OFF randomly.Please help.
    thanks
    tapasm

    Can you post your code?
    It would make is so much easier to help.
    Tim
    Johnson Controls
    Holland Michigan

  • Help required in ALV Tree Control

    Hi All,
    I am using OO ALV tree Control in my Project every thing is working fine.
    in treecontrol  'If we double click on Node I con it displays resultant screen'- its fine for us
    'If we double click on Node Text it is displaying nothing means no Event is triggering.
    my Requirement is tha 'it should work even if we click on Node Text' . Like in standard Applications SE15 .
    Suggest some Methods regarding this. Note All these nodes are Dynamic Nodes comes from Data Base table.
    Thanks in Adv.
    Murthy

    Just check Tcode: DWDM.
    Good no of example programs for oops tree are available there

  • Badi required for the program RFFOEDI1

    Hello friends
    when i assigned the variant EDI_CHECK to the existing program in F110 Tcode one outbound idoc was generated with the message type PAYEXT and idoc type PEXR2002. Now i want to extend this idoc with 2 custom segments.I need to write the code in user-exits or Badis for these custom segments.
    please help me on this issue, is there any badis or exits for idoc extension.
    Thanks n Regards
    Naresh

    Hi Naresh,
       Exit FEDI0003 available for your requirement.
    Please check.
    Regards,
    Suhas

  • Help! Urgent help required for adjusting image

    Hi - hoping someone can help.
    I sent the attached PDF -  http://www.sensecreative.co.uk/custUploads/SENSE-36-7977-95928/77317/SENSE-36-7977-95928-7 7317-2440.zip - to print with Sense Creative. The cards were printed and they've turned out quite visibly green on the reverse (where it should be white).
    I've printed the artwork on several printers I have access to and it looks as it should, however SC are saying that the issue is with the artwork
    "The green tinge you see on the reverse of these cards is prevalent in the artwork. The makeup of the background is approximately c-15 m-11 y-15 k-0. the predominant levels of the yellow and cyan will give you the green tint. Upping the levels of the artwork in or substituting the cyan, magenta and yellow levels with more black in Photoshop will likely give you the result you require. We are satisfied that in both instances, the artwork has printed correctly and the colours are well within tolerance given the nature of the artwork."
    So, I'm in a bit of a pickle as the cards are needed for an event next week.
    How do I change the image levels? Or are they talking nonsense and trying to pass the buck?
    Help!

    station_two,
    Acrobat View> Tools> Print Production> Output Preview: Object Inspector will call out the objects' profiles if you click on each one individually (in this case all appeaar to be "Device CMYK" or Untagged CMYK)
    untagged CMYK has the same pitfalls as untagged RGB... if one applys or assumes the wrong SOURCE PROFILE it doesn't CONVERT colors to Monitor RGB or Print Space correctly

Maybe you are looking for

  • FI HR Integration

    Hi friends, HR module is implemented in our project and I need some help on payroll integration with FI. 1.     If HR module is implemented is it necessary to create all employees as vendors? 2.     Assuming that there is no need to create all employ

  • Assets missing from overlay

    I am working with a folio created by another designer. I have linked all of the files and made sure that the links panel is not showing any missing assets. However, when I upload this folio to the folio builder for testing, I get an error message say

  • Notification Mailer Footer

    Hi All In OTL I am using a message Template and also enabled the emails to users at the time of submitting the timesheet. I do not want the footer that appear in e-mails to be there i.e. Please click on one of the following choices to automatically g

  • Firefox 4b2 hangs after no more than 15 minutes

    With no extensions enabled, FF4b2 hangs after a short while. I don't really know how to get more information on this. Another way to hang FF is to open the add-on manager and click "Update add-ons" == This happened == Every time Firefox opened == I u

  • HT1338 why can't I open 'Pages?' What is the problem '-1712?'

    I tried to open the app Pages, but can't do it, and the problem is "1712." I don't know what that means, does anybody know?