Problem with aligning values in ALV header???????

I am supposed to show  some values in ALV header some thing like this
PGMID:      xxxxx
Material:    p_Matnr-low    to   p_Matnr high
Plant:        p_werks-low    to  p_werks-high
   ALV Reoport
For this i wrote code something like this.
Fieldcatalog-status='s'.
Fieldcatalog-key = 'PGMID:'.
FieldCatalog-info = 'xxxxxxxx'
append field catlalog.
Fieldcatalog-status='s'.
Fieldcatalog-key = 'Material:'.
Concatenate p_Matnr-low
                   'to'
                    p_Matnr-high into FieldCatalog-info. 
append field catlalog.
etc................
Now output shown is like this
PGMID:      xxxxx
Material:    p_Matnr-low  to p_Matnr high
Plant:        p_werks-low  to p_werks-high
I am not able to give a good gap in between the 'to' as shown initially. Any idea on this??
Rakesh

Hi,
Please find attached below code :
  IF NOT so_bukrs-low IS INITIAL AND NOT so_bukrs-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Company Code'(015).
    CONCATENATE so_bukrs-low 'to' so_bukrs-high INTO gs_line-info
    SEPARATED BY space.
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_bukrs-low IS INITIAL AND so_bukrs-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Company Code'(015).
    gs_line-info = 'ALL Values'(012).
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_bukrs-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Company Code'(015).
    gs_line-info = so_bukrs-low.
    APPEND gs_line TO lt_top_of_page.
  ENDIF.
*Fiscal Year
  CLEAR gs_line.
  gs_line-typ = gc_s.
  gs_line-key = 'Year'(014).
  MOVE sp_gjahr TO gs_line-info.
  APPEND gs_line TO lt_top_of_page.
*Period
  CLEAR gs_line.
  gs_line-typ = gc_s.
  gs_line-key = 'Period'(013).
  MOVE sp_monat TO gs_line-info.
  APPEND gs_line TO lt_top_of_page.
*Currency Key
  IF NOT so_waers-low IS INITIAL AND NOT so_waers-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Currency'(011).
    CONCATENATE so_waers-low 'to' so_waers-high INTO gs_line-info
    SEPARATED BY space.
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_waers-low IS INITIAL AND so_waers-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Currency'(011).
    gs_line-info = 'ALL Values'(012).
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_waers-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Currency'(011).
    gs_line-info = so_waers-low.
    APPEND gs_line TO lt_top_of_page.
  ENDIF.
*Clearing Doc
  IF NOT so_augbl-low IS INITIAL AND NOT so_augbl-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Clearing Doc'(020).
    CONCATENATE so_augbl-low 'to' so_augbl-high INTO gs_line-info
    SEPARATED BY space.
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_augbl-low IS INITIAL AND so_augbl-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Clearing Doc'(020).
    gs_line-info = 'ALL Values'(012).
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_augbl-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'Clearing Doc'(020).
    gs_line-info = so_augbl-low.
    APPEND gs_line TO lt_top_of_page.
  ENDIF.
*User ID
  IF NOT so_usrid-low IS INITIAL AND NOT so_usrid-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'User ID'(021).
    CONCATENATE so_usrid-low 'to' so_usrid-high INTO gs_line-info
    SEPARATED BY space.
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_usrid-low IS INITIAL AND so_usrid-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'User ID'(021).
    gs_line-info = 'ALL Values'(012).
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_usrid-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'User ID'(021).
    gs_line-info = so_usrid-low.
    APPEND gs_line TO lt_top_of_page.
  ENDIF.
*GL Account
  IF NOT so_hkont-low IS INITIAL AND NOT so_hkont-high IS INITIAL.
    SHIFT so_hkont-low LEFT DELETING LEADING '0'.
    SHIFT so_hkont-high LEFT DELETING LEADING '0'.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'GL Account'(004).
    CONCATENATE so_hkont-low 'to' so_hkont-high INTO gs_line-info
    SEPARATED BY space.
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_hkont-low IS INITIAL AND so_hkont-high IS INITIAL.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'GL Account'(004).
    gs_line-info = 'ALL Values'(012).
    APPEND gs_line TO lt_top_of_page.
  ELSEIF so_hkont-high IS INITIAL.
    SHIFT so_hkont-low LEFT DELETING LEADING '0'.
    CLEAR: gs_line.
    gs_line-typ  = gc_s.
    gs_line-key  = 'GL Account'(004).
    gs_line-info = so_hkont-low.
    APPEND gs_line TO lt_top_of_page.
  ENDIF.
Thanks,
Sriram Ponna.

Similar Messages

  • FIELD VALUE IN ALV HEADER

    Hi friends,
    I make one header alv ok I want and take one variable count in my program so I want to display its value in ALV HEADER
    Total Target Qty:
    Total EMP. Efficiency 
    Total Machine Effi. 
    I take may header like this and pass thre text here.ok Now I want to display value of this three.
    Total Trget Qty: 2.23 like that.
    CLEAR st_line.
      st_line-typ = 'S'.
      CONCATENATE 'Total Target Qty: '  count     ' ' INTO st_line-info.
      APPEND st_line TO t_list_top_of_page.
    So I took like this in header count is my variable in which I take value.
    So how can we pass the value in ALV Header please tell me.
    its urgent so.
    Thnaks in Advance.
    Prashant.

    HI DHWANI,
    *& Report  ZPP_RE_EMP_DETAILS
    *& This Report is used to check the Employee Performance And Used Machine Quantity
    *& Rqueirement By Santhosh
    *& Developed By Prashant On Date 01.02.2008
    *&  Created By: Prashant Brahmbhatt
    *&  Creation Date: 20080201
    *&  Module: PP (Production & Plannig)
    *&  Changed By         Changed Date        Reason
    REPORT  zpp_re_emp_details.
    TABLES:zpplan.
    TYPE-POOLS:slis.
    DATA:BEGIN OF itab OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF itab.
    DATA:BEGIN OF temp OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF temp.
    DATA:BEGIN OF itab_t OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF itab_t.
    DATA:BEGIN OF itab1 OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         act_prod LIKE zpplan-act_prod,
         quaty LIKE zpplan-quaty,
         planned LIKE zpplan-planned,
         iserh LIKE zpplan-iserh,
         temp TYPE c,
         tar_qty TYPE p DECIMALS 2,
         ach_qty TYPE p DECIMALS 2,
         mch_eff TYPE p DECIMALS 2,
         END OF itab1.
    DATA: wa LIKE  itab1.
    DATA:BEGIN OF itab2 OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         act_prod LIKE zpplan-act_prod,
         quaty LIKE zpplan-quaty,
         planned LIKE zpplan-planned,
         iserh LIKE zpplan-iserh,
         temp TYPE c,
         tar_qty(10) TYPE p DECIMALS 2,
         ach_qty(10) TYPE p DECIMALS 2,
         mch_eff(10) TYPE p DECIMALS 2,
         count(10) TYPE c,
         END OF itab2.
    DATA: a(10) TYPE c,
          b(10) TYPE c,
          count(10) TYPE c,
          count1(10) TYPE c.
         c(2) TYPE p DECIMALS 2.
    DATA:t_fcat TYPE slis_t_fieldcat_alv,
         t_events TYPE slis_t_event,
         t_list_top_of_page TYPE slis_t_listheader,
         t_list_end_of_page TYPE slis_t_listheader.
    CONSTANTS:c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    CONSTANTS:c_formname_end_of_page TYPE slis_formname VALUE 'END_OF_PAGE'.
    DATA: st_line TYPE slis_listheader.
                  SELECTION-SCREEN
    SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    *PARAMETERS:shftin LIKE zpplan-shftin.
    SELECT-OPTIONS:date FOR zpplan-zdate,
                   shftin FOR zpplan-shftin,
                   werks FOR zpplan-werks.
    SELECTION-SCREEN:END OF BLOCK blk1.
                   ALV CALL
    INITIALIZATION.
      PERFORM build_fieldcatalog USING t_fcat .
      PERFORM event_call.
      PERFORM head_built USING t_events.
    START-OF-SELECTION.
      PERFORM data_retrieval.
      PERFORM display_alv.
    *&      Form  build_fieldcatalog
          text
         -->P_T_FCAT  text
    FORM build_fieldcatalog  USING temp_fcat TYPE slis_t_fieldcat_alv.
      DATA:w_fcat TYPE slis_fieldcat_alv.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'MNAME'.
      w_fcat-seltext_m = 'Machine Name'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'SHFTIN'.
      w_fcat-seltext_m = 'Emp No'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ZDATE'.
      w_fcat-seltext_m = 'Pos Date'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
    w_fcat-tabname = 'ITAB2'.
    w_fcat-fieldname = 'QUATY'.
    w_fcat-seltext_m = 'Quantity'.
    APPEND w_fcat TO temp_fcat.
    CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ACT_PROD'.
      w_fcat-seltext_m = 'Actual Quantity'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ISERH'.
      w_fcat-seltext_m = 'Down Time'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'TAR_QTY'.
      w_fcat-seltext_m = 'Target Qty.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ACH_QTY'.
      w_fcat-seltext_m = 'EMP Effec.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'MCH_EFF'.
      w_fcat-seltext_m = 'Machine Effec.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
    w_fcat-tabname = 'ITAB2'.
    w_fcat-fieldname = 'COUNT'.
    w_fcat-seltext_m = 'Machine Effec.'.
    APPEND w_fcat TO temp_fcat.
    CLEAR w_fcat.
    ENDFORM.                    " build_fieldcatalog
    *&      Form  event_call
          text
    -->  p1        text
    <--  p2        text
    FORM event_call .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type           = 0
       IMPORTING
         et_events             = t_events
      EXCEPTIONS
        LIST_TYPE_WRONG       = 1
        OTHERS                = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " event_call
    *&      Form  data_retrieval
          text
    -->  p1        text
    <--  p2        text
    FORM data_retrieval .
      IF shftin <> ''.
        SELECT zdate werks mname shftin  INTO CORRESPONDING FIELDS OF TABLE
         temp FROM zpplan
         WHERE shftin IN shftin
         AND zdate IN date
         AND werks IN werks.
      ELSE.
        SELECT zdate werks mname INTO CORRESPONDING FIELDS OF TABLE
           temp FROM zpplan
           WHERE  zdate IN date
           AND werks IN werks.
      ENDIF.
      SORT temp BY mname zdate shftin.
      DELETE ADJACENT DUPLICATES FROM temp.
      SORT temp BY mname shftin zdate.
      DELETE ADJACENT DUPLICATES FROM temp.
      APPEND temp.
      LOOP AT temp.
        SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab_t
        WHERE mname = temp-mname
        AND zdate = temp-zdate
        AND werks = temp-werks.
        LOOP AT itab_t.
          MOVE-CORRESPONDING itab_t TO itab.
          APPEND itab.
        ENDLOOP.
      ENDLOOP.
      *******************************************8
    SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab
         FOR ALL ENTRIES IN temp
         WHERE zdate = temp-zdate AND
               werks = temp-werks
              AND mname = temp-mname.
    SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab
       WHERE zdate IN date AND
             werks IN werks AND
    shftin = shftin.
      SORT itab BY mname zdate.
    DELETE ADJACENT DUPLICATES FROM itab.
      LOOP AT itab.
        MOVE-CORRESPONDING itab TO itab1.
        COLLECT itab1.
      ENDLOOP.
      LOOP AT itab1.
        itab1-tar_qty = itab1-tar_qty + ( itab1-quaty / 3 ).
        IF  ( itab1-tar_qty NE 0 ).
          itab1-ach_qty = ( itab1-ach_qty +  itab1-act_prod / itab1-tar_qty ) * 100.
        ELSE.
          itab1-ach_qty = 0 * 100.
        ENDIF.
        itab1-mch_eff = ( ( 8 - itab1-iserh ) / 8 ) * 100.
        MODIFY itab1 TRANSPORTING tar_qty ach_qty mch_eff.
      ENDLOOP.
      LOOP AT itab1.
        READ TABLE itab1 INDEX 1 INTO wa.
        IF itab1-mname = wa-mname.
          itab1-zdate = wa-zdate.
          itab2-shftin = itab1-shftin.
          itab2-mname = itab1-mname.
          itab2-zdate = itab1-zdate.
               itab2-quaty = itab2-quaty + itab1-quaty.     
               itab2-act_prod = itab2-act_prod + itab1-act_prod.
               itab2-iserh = itab2-iserh + itab1-iserh.
               itab2-tar_qty = itab2-tar_qty + itab1-tar_qty.
               itab2-ach_qty = itab2-ach_qty + itab1-ach_qty.
          itab2-mch_eff = itab2-mch_eff + itab1-mch_eff.
        ELSE.
               APPEND itab2.
               CLEAR itab2.
               MOVE-CORRESPONDING itab1 TO wa.
          itab2-shftin = itab1-shftin.
          itab2-mname = itab1-mname.
          itab2-zdate = itab1-zdate.
          itab2-quaty = itab2-quaty + itab1-quaty.     
          itab2-act_prod = itab2-act_prod + itab1-act_prod.
               itab2-iserh = itab2-iserh + itab1-iserh.
               itab2-tar_qty = itab2-tar_qty + itab1-tar_qty.
               itab2-ach_qty = itab2-ach_qty + itab1-ach_qty.
               itab2-mch_eff = itab2-mch_eff + itab1-mch_eff.
        ENDIF.
      ENDLOOP.
      APPEND itab2.
      LOOP AT itab2.
        IF  ( itab2-tar_qty NE 0 ).
          itab2-ach_qty = ( itab2-ach_qty +  itab2-act_prod / itab2-tar_qty(10) ) * 100.
        ELSE.
          itab2-ach_qty = 0 * 100.
        ENDIF.
        itab2-mch_eff = ( ( 8 - itab2-iserh ) / 8 ) * 100.
        MODIFY itab2 TRANSPORTING tar_qty ach_qty mch_eff.
      ENDLOOP.
    APPEND itab2.
      LOOP AT itab2.
       count = sy-tfill.
        a = a + itab2-tar_qty.
        b = b + itab2-ach_qty.
      ENDLOOP.
      CLEAR itab2.
      itab2-tar_qty = a.
      itab2-ach_qty = b.
      APPEND itab2.
      CLEAR itab2.
      count = a / sy-tfill.
      count1 = b / sy-tfill.
      itab2-tar_qty = count.
      itab2-ach_qty = count1.
    itab2-tar_qty = count.
      APPEND itab2.
    ENDFORM.                    " data_retrieval
    *&      Form  head_built
          text
         -->P_T_EVE  text
    FORM head_built  USING    p_t_eve TYPE slis_t_event.
    count = a / sy-tfill.
      DATA: ls_event TYPE slis_alv_event.
      REFRESH t_list_top_of_page.
      READ TABLE p_t_eve WITH KEY name = slis_ev_top_of_page INTO ls_event.
      IF sy-subrc = 0.
        MOVE c_formname_top_of_page TO ls_event-form.
        MODIFY p_t_eve FROM ls_event   INDEX sy-tabix.
      ENDIF.
       CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Total Target Qty: '.
        st_line-info = count.
        APPEND st_line TO t_list_top_of_page.
    CLEAR st_line.
    st_line-typ = 'S'.
    st_line-info = count.
    CONCATENATE 'Avg Target Qty.'  count  ' ' INTO st_line-info.
    APPEND st_line TO t_list_top_of_page.
      CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Avg.EMP Efficiency: '.
        st_line-info = count1.
        APPEND st_line TO t_list_top_of_page.
      CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Avg. Machine Efficincy: '.
       st_line-info = count.
        APPEND st_line TO t_list_top_of_page.
    REFRESH t_list_end_of_page.
    READ TABLE p_t_eve WITH KEY name =  slis_ev_end_of_list INTO ls_event.
    IF sy-subrc = 0.
       MOVE c_formname_end_of_page TO ls_event-form.
       MODIFY p_t_eve FROM ls_event INDEX sy-tabix.
    ENDIF.
    CLEAR st_line.
    st_line-typ = 'S'.
    CONCATENATE 'END OF PAGE' ' ' INTO st_line-info.
    APPEND st_line TO t_list_end_of_page.
    ENDFORM.                    " head_built
    *&      Form  top-of-page
          text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_list_top_of_page
        I_LOGO                   =
        I_END_OF_LIST_GRID       =
        I_ALV_FORM               =
    ENDFORM.                    "top-of-page
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = 'ZPP_RE_EMP_DETAILS'
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
       i_background_id                   = 'ALV_BACKGROUND'
       i_grid_title                      = 'EMP Information'
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
         it_fieldcat                       = t_fcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
         it_events                         = t_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                          = itab2
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " display_alv

  • Problem with offset values

    Hi Experts,
    I have a problem with offset values. I have create a variable on OFISCPER, it's characteristic value, indivdual value, mandatory and ready for the input. I need to show the varibel period and the l previous period and so on till 12 periods. I used the offset values (-1, -2, etc.) but when I execute the query I can show just the variable period and the period previous I don`t see. The query is based on multiprovider and don´t has filters. Can anyone help me?

    Leonel,
    You may nt need to have 12 columns in the query designer.
    You could include the keyfigure and restrict it to the variable and create the offset for the 12 periods
    Check this http://help.sap.com/saphelp_nw04/helpdata/en/00/e8d13f7fb44c21e10000000a1550b0/frameset.htm
    -Doodle

  • How to merge rows with similar values in alv grid display in webdynpro

    Hi experts,
                   i want to know about how to merge rows with similar values in alv grid display of webdynpro.grouping rows is possible in table display in webdynpro but i am not able to do row grouping in the alv grid display in webdynpro.
    kindly suggest.
    thanks ,
    Anita.

    Hi Anita,
    did you find a solution for this? I have opened a Thread, if you know the answer maybe you could help me out:
    Is there an ALV function similar to the TABLE Row grouping?
    Thanx in advanced!!!
    Kind Regards,
    Gerardo J

  • Problem with align element.

    Hi everybody,
    i have a problem with align element on my page. I explain:
    i have used into a panel page a panel group to align my element horizontal, but when i set the vertical-align on top, the element are align in middle.
    Now is......
    text text text text text text
    text text text text text text
    text text text text text text
    text text text text text text tablelayout
    text text text text text text
    text text text text text text
    text text text text text text
    But i wont........
    text text text text text text tablelayout
    text text text text text text
    text text text text text text
    text text text text text text
    text text text text text text
    text text text text text text
    text text text text text text
    Thanks.

    Have you tried using a panelHorizontal instead of a panelGroup?
    The components are automatically laid out horizontally and it has a Valign property that you can set to top.

  • LOV Problem with multiple values

    HI All,
    I have a problem with LOV .When ever i click LOV after search button all values are displaying fine.
    But when i get so many values i want to select only one vlaue that is not cmng to the main page ....Cursor is in running state always after that time out error is coming in my application .
    This problem is coming with with only single value selection in lOV only problem with Multiple values retrival that time only...
    (Iam using 11.1.1.3 Jdeveloper.)
    Thanx in advance...

    duplicate of {thread:id=2286814}

  • Problems with Audigy2 Value and CMS

    I have an Audigy2 value sound card running on windows xp with sp2. My speakers are 4. Creative 4400. I installed the drivers that came along with the card and they work fine. The trouble is that unless I turn on CMSS 3D, I get sound only from the front left and front right speakers. Only if CMSS 3D is on does the rear channel activate.
    This is very odd considering that I had a SBLi've! before this and I had no such problems with my speakers. I've tried tweaking the software but to no avail. Also tried reinstalling - but no change.
    Please help.Message Edited by shadowfall on 0-06-2005 05:59 PM

    You are a victim of the align to pixel grid option.
    Starting in CS5 if when you chose a new document profile of web, that feature gets turned on. Select All and remove uncheck "Align to pixel grid".
    Adiitonally uncheck Align New Object To Pixel Grid, so this does not come back when you draw new objects.
    Now if you are working on a web image, then that option is good to have on, but work in units of pixels, and all should be better as long as you work in whol pixel numbers.

  • Facing Problem with passing Values from One report to another

    Hi,
    I am Hemanth, I have developed 2 reports. Firast Report High Level Summary, Secong is detailed. First report is developed using Union(4 union) , I am having 4 columns. The report is generating the data. I have used Navigation option on Client Column to move on to Second report. In Second report with in Filter i am using Prompted option. Due to some problem, the client value from first report is not passing to the second one. The second report is getting generated for all the clients.
    Normally i have used this Navigate option in other reports and that works fine. I have even tested with Union, it works. This time it is giving some trouble.
    Please, let me know whats going wrong.
    Thanks for the help.

    sorry for the late updation.
    My First Report, Summary level is a Pivot Table.
    I tried the same report with Table option, the value is passing correctly.
    Is there a way to get rid of this situation using Pivot table.
    Thanks for your help.
    below is the original request.
    Hi,
    I am Hemanth, I have developed 2 reports. Firast Report High Level Summary, Secong is detailed. First report is developed using Union(4 union) , I am having 4 columns. The report is generating the data. I have used Navigation option on Client Column to move on to Second report. In Second report with in Filter i am using Prompted option. Due to some problem, the client value from first report is not passing to the second one. The second report is getting generated for all the clients.
    Normally i have used this Navigate option in other reports and that works fine. I have even tested with Union, it works. This time it is giving some trouble.
    Please, let me know whats going wrong.
    Thanks for the help.

  • Problem with align and Selection Tool.

    This is a weird problem which I cannot explain at all.
    I am using AI CS3 with Windows XP.
    I am having this completely random problem with the selection tool and align pallette I cannot explain.
    I have a group of objects and groups of objects I am trying to use the align pallette on.
    Sometimes when I select all of the items I want to align, either by shift-clicking each one, or by drag-selecting them I am getting a random behavior where sometimes the align button will move all of the objects COMPLETELY off of the artboard, all the way to the edge of the working area and beyond into the grey area you cannot see.
    Normally, this would be caused by a stray point somewhere way off-screen or some other cleanup oriented thing on my part. However in this case, the behavior is random and does not happen every time I hit the align button.
    Sometimes it takes items within my grouped objects (lines of text) and moves THEM completely off the work area, leaving the other items in the groups in place. Sometimes the bounding box when I drag-select the items will stretch extremely far off of the work area.
    I have even dragged the extra large bounding box, bringing the edge that was once way off screen onto the work area, in outline view, in hopes of finding the stray point or object that could be causing this. However NOTHING appears that can be causing the align to throw all of my objects off-screen.
    The random nature of this behavior and the way it sometimes affects my text objects inside of groups leads me to believe it is a program bug and nothing I am doing.
    The behavior takes place regardless if I select by dragging or by shift-clicking, and is happening in more than one file, also randomly.
    Also, choosing "align to art board" vs. "align to crop area" does nothing to change this behavior.
    It is quite irritating. I've been using illustrator since v.88 so I have enough experience to know this is not normal.
    Any help with this one would be greatly appreciated.

    When this behaviour occurs, are perhaps guides included in your selection?

  • Problem with checkbox value and app.settings.getSetting()

    Hello everyone.
    I`ve got a problem with getting saved settings for checkbox.
    Saved settings doesn`t apply on checkbox value.
    It`s strange, but it always "true".
    So here piece of code:
    checkMe = 11;    //any value for the first time running
    if (app.settings.haveSetting("savea", "chck")) {                           
                          checkMe = app.settings.getSetting("savea", "chck");  // get saved value, else 11
                          alert("checkMe = "+checkMe)
                        if(checkMe == 11){
                            checkMe= false;   //if there is no saved settings, checkbox value will be false/ unchecked
                            alert("You run this script first time, so manual value will be 'false'")
                            }else{
                                checkMe = app.settings.getSetting("savea", "chck");     // if saved settings exist, get true or false
         alert("Yes, checkMe will = "+checkMe)       
    win.checkPanel.chkOne.value = checkMe;  /// checkbox value will equal saved checkMe
    var fff = win.checkPanel.chkOne.value;  // string for alert
    alert("aha! but checkbox value is  = " +fff+ "\n Why so?")     // here we`ve got always "true"
    win.checkPanel.chkOne.onClick  = function () {
        var path11 = win.checkPanel.chkOne.value;  //  checkbox value to variable
        app.settings.saveSetting("savea", "chck", path11);  //saving checkbox value
        alert("Saved this value - " + app.settings.getSetting("savea", "chck"))
    win.checkPanel.chkOne.value is always true.
    Can someone exmplain why and how to get rid of this static value?
    P.S. just in case, here is full code:
    function mainFun()
        this.windowRef = null;
    mainFun.prototype.run = function()
        /*----- UI -----*/
              var retval = true;
              var win = new Window("palette", "Check option", [150, 150, 460, 455]);
              this.windowRef = win;
              win.checkPanel = win.add("panel", [25, 150, 285, 265], "Checkbox");
              win.checkPanel.chkOne = win.checkPanel.add("checkbox", [10, 15, 125, 35], "Checkbox One");
              //win.checkPanel.chkTxtOne = win.checkPanel.add('edittext', [140, 15, 230, 35], '');
         win.quitBtn = win.add("button", [110,275,200,295], "Close");
    checkMe = 11;    //any value for the first time running
    if (app.settings.haveSetting("savea", "chck")) {                           
                          checkMe = app.settings.getSetting("savea", "chck");  // get saved value, else 11
                          alert("checkMe = "+checkMe)
                        if(checkMe == 11){
                            checkMe= false;   //if there is no saved settings, checkbox value will be false/ unchecked
                            alert("You run this script first time, so manual value will be 'false'")
                            }else{
                                checkMe = app.settings.getSetting("savea", "chck");     // if saved settings exist, get true or false
         alert("Yes, checkMe will = "+checkMe)       
    win.checkPanel.chkOne.value = checkMe;  /// checkbox value will equal saved checkMe
    var fff = win.checkPanel.chkOne.value;  // string for alert
    alert("aha! but checkbox value is  = " +fff+ "\n Why so?")     // here we`ve got always "true"
    win.checkPanel.chkOne.onClick  = function () {
        var path11 = win.checkPanel.chkOne.value;  //  checkbox value to variable
        app.settings.saveSetting("savea", "chck", path11);  //saving checkbox value
        alert("Saved this value - " + app.settings.getSetting("savea", "chck"))
              win.quitBtn.onClick = function() {
                  win.close();
        win.center();
              win.show();
              return retval;
    if(typeof(mainFun_unitTest) == "undefined") {
        new mainFun().run();

    Played around with different values, combinations...
    Doesn`t work too:
    checkMe = 111;    //any value for the first time running
    if (app.settings.haveSetting("333", "check")) {                           
                          checkMe = app.settings.getSetting("333", "check");
    alert(checkMe);
                    if(checkMe == 111){
                             win.checkPanel.chkOne.value= false;
                            }else{
                                if (checkMe != false){
                                win.checkPanel.chkOne.value= true;
                                }else{
                                win.checkPanel.chkOne.value= false;
    win.checkPanel.chkOne.onClick  = function () {
        var path11 = win.checkPanel.chkOne.value;
        var path12 = path11.toString();
        app.settings.saveSetting("333", "check", path12);
        alert("Saved value - " + app.settings.getSetting("333", "check"))

  • Problem with File download in ALV via ITS. Please help!

    Hi Experts,
           I have a ALV report which I have web enabled using ITS service. In the ALV there is a delivered functionality for file download. It works fine when the report is run in the SE80. But when I run the ITS service for the report and choose file download option it displays a page saying "this page has been diaplayed due to technical reasons" with title "File properties". In addition it looks for Java runtime in the browser. After all this it opens a popup window for selecting path and file name.
    This is not user friendly and many customers have rasied their concerns on it.
    My question is that,
    Q1: What is the need of this "File properties page"? Why ITS calls this while ABAP editor does not?
    Q2: Is there any way we can suppress this so that it directly opens a popup window for selecting path and file name?
    Please help me.
    Thanks
    Gopal

    Hello Klaus,
    i have also the problem with these intermediate screens!
    We have in between installed patch 22 for ITS 6.20 and SP18 at SAP Netweaver 2004!
    But they are still not processed invisible for the users.
    Are there any additional parameters, which controls this behaviour(~webgui_updown_make_visible is not used!)?
    How can i check, if i have really a.ex. the actual ws.jar-file or other related files of the patch?
    We are using the standalone ITS with an own (modified) IAC with an own CI-design for the webpages. The intermediate screens are displayed with the "normal" SAPGUI-design because of the parameter ~generatedynpro. Without this it does not work, because the template SAPLSIT_0100 is missing!
    Or do you have an example for such a intermediate template with the applet for an upload of a file?
    Thanks in advance
    Felix

  • Problem with the Value property node (MacOS)

    As far as I have tested it, Value Property nodes (and Value (signaling)) don't work in MacOS : The value property appears as a boolean, the value(signaling) as a cluster (width, height).
    Even with boolean controls, the node is not working.
    No such problem in LV 8.6.
    Am-I missing something ? Is that some "intended use"  ? Or simply a bug ?
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        
    Solved!
    Go to Solution.

    That sounds like some sort of indexing problem with the property nodes like somesort of corrupted installation.  What if you just delete the property node and recreate it?
    I dropped a numeric control and looked at the shortcut menu for the list of property nodes.  Right below Value and Value (signalling) are Visible (which would be a boolean) and Xcontrol, which when you step down through the submenus, the first choice is Container bounds, a cluster of Width and Height.  So these 2 datatypes that are 2 lower on the list match the ones you are getting.
    What happens if you pick another property node a few elements up or down on the shortcut menu?  Does is happen for some other properties, and if so, are thereany properties that are okay?
    Here is what my property nodes look like for a numeric and I draggged the box up and down to show the natural order of the property nodes.  Note that I have scripting installed, so there are a few more property nodes (and the blue box at the top) that you might not have.
    PS.  Check you signature.  The Kudos button is now moved to the left since the forum upgrade. 
    Attachments:
    Example_VI_BD.png ‏4 KB

  • Problem with small text in iview header

    hi,
    i got a little problem with iView header.
    I've set 2 pages containing the same iViews. The 2 pages have layout (1 column full width -- standard) and the 2 pages have the same properties, themes.
    The problem is that in the first page the header text is very small and in the second one the header text display correctly.
    Have anyone had this problem and how did you solve it ?
    Thanks in advance.

    Hi,
    I don't have a straight answer but:
    1. Have you tried creating a copy of the page which is working correctly?
    2. Why do you need two pages with the same content? Personally, I can't see any reason for maintaining two identical objects.
    Roy

  • JSpinner problems with alignment of text

    I experience problems with the alignment of the text within the spinner. I read a few topics on this forum. Many answers point to the solution of grabbing the JFormattedTextField from the spinner and call the setHorizontalAlignment(int) method. Seems hat doesn't work for me.
    Here is the code I wrote:
    SpinnerDateModel dateModel = new SpinnerDateModel();
    JSpinner dateSpinner = new JSpinner(dateModel);
    JSpinner.DateEditor dateEditor = (JSpinner.DateEditor)dateSpinner.getEditor();
    JFormattedTextField tf = dateEditor.getTextField();
    tf.setHorizontalAlignment(JFormattedTextField.RIGHT);
    maybe I am missing something. Please help!
    Thank You in advance.

    I'm not sure if this is the solution, but the getTextField() Method should be called on a JSpinner, rather than a SpinnerDateModel. I took this Method from the Swing Tutorial and made it static, so i could use it anywhere:
    public static JFormattedTextField getTextField(JSpinner spinner) {
              JComponent editor = spinner.getEditor();
              if (editor instanceof JSpinner.DefaultEditor) {
                   return ((JSpinner.DefaultEditor)editor).getTextField();
              } else {
                   System.err.println("Unexpected editor type: "
                                          + spinner.getEditor().getClass()
                                          + " isn't a descendant of DefaultEditor");
                   return null;
         }Besides, setting an Editor for this JSpinner is not neccesary, because it is chosen automaticaly. You only need to do so if you have implemented a custom SpinnerModel.
    Hope this was any help...

  • Problems with F4 Value Help in NW2004s Portal

    Hello,
    we are having some troubles with the F4 ValueHelp Extension from the Advanced BSP Programming book (and the blogs of course).
    We've implemented the solution on a 4.7 backend and portal 6.0. No problems there, everything was working fine.
    We now moved to erp2005 (WebAS 700) and NW2004s Portal (7.0).
    The popup shows and I can select entries from the list. But when clicking the ok icon a javascript error is thrown stating that 'parent.document.getElementById(...)' is null or no object.
    I think the problem is, that by making a call to 'parent' we are searching in the portal frame and not the BSP. There (in the portal frame) the element is not known so the error is thrown.
    I allready changed from the dialog_ie6.js provided on the BookCD to the one delivered by SAP. Did nothing regarding the error.
    I also tried changing ZCL_BSP_M_INPUT_HELP->BUILD_ACCEPT_SELECTION_SCRIPT. I changed all the "parent.document.get..." "to document.get...". The error message was still the same, 'parent.document.getElementById(...)' is null or no object.
    So now I'm kind of stuck. If I try the example outside the portal everything works as expected. So this clearly seems to be a problem with the portal integration. All involved BSP-Apps are marked as "supports portal integration".
    Any ideas on this topic?
    Thanks and kind regards,
    Alexander Sperling

    I have a working solution to the problem.  It isn't the nicest solution because it will probably require some modifications to the application that hosts the value help, but we will get to that in a second.
    I tried many different ways to come up with a solution that would still work via JavaScript. The portal is now loading the popup javascript in the master frame.  It registers event handlers so that if any application triggers a popup internally it "hi-jacks" the event.  So regardless of what I change in the BSP javascript library, it gets overriden by the portal one. The portal also now even enforeces its theme on the inner page in the popup.  Truly the portal takes complete control over the inner html of the popup.
    To make things worse the popop has not path to reach the source that triggered it.  The source objects are tracked in the javascript, but because the master frame takes over; the popup window only has access and visibility to the master frame and the navigation frame.  In essence in the DOM it is now higher in the stack than the object that actually triggered it. 
    Web Dynpro gets around this because it doesn't use any client side mechanisms to communicate it results back to the source frame. Web Dynpro has the luxury of always being stateful and therefore can make certain assumptions that would never work in BSP.  The hi-jacking is an excellent solution for Web Dynpro.  The portal can then override the functionality of Web Dynpro - providing the new functionality of floating the dialog box over the entire portal - without having to make any changes to the Web Dynpro Framework.  However they never had our little BSP solution in bind obviously.
    It might be possible to completely rewrite the popup_ie.js and popup_ns.js to use all different event, method and variable names.  This separate version could then provide complete separation from the portal script. However this is just a theory. I'm afraid that I wouldn't have the bandwidth to rewrite the entire script right now so I focused on a quicker solution.
    The only approach that I could come up was to follow the Web Dynpro approach and return to the server with the value. To do that I used Portal Eventing.  Portal Eventing allows us to pass a value to the source frame regaurdless of our relative positions in the DOM. 
    In my inner BSP application for the value help (ZES_VALUEHELP), I made the following change in the model method BUILD_ACCEPT_SEL_SCRIPT_V2.  At line 141 I changed the logic.  Instead of using JavaScript to write the selected value back into the source element, we will just trigger a Portal Event:
    ****With an InputField we write the contents directly back into the element
          ELSE.
            CONCATENATE me->js_close1
            `portalFireEvent('com.sap','`
            me->element_id
            `',"`
            key
            `");`
             INTO me->js_close1.
            EXIT.
    The other change is within the Element handler class for inputHelpV2 - ZCL_ES_BSP_ELMNT_INPUT_HELP_V2.  We need to register the listener for the Portal Event. Therefore in DO_AT_BEGINNING we will add the follwing at line 23 (right after we place the Element Id into the URL Parameters Table.
      data: portal_event type ref to cl_portal_event.
      portal_event = cl_portal_event=>factory(
        name = <wa_params>-value
        namespace = 'com.sap' ).
      while m_page_context->element_process( element = portal_event ) = co_element_continue.
      endwhile. "End portalEvent Render
    Overally using the portal eventing actually is an intersting approach.  There is only one drawback, now we have a server side event.  That being the case, our application now needs some event logic to process this event and populate the value. Depending upon if you are using MVC, Data Binding, or Flow Logic this could vary - and would have to handled by each application. The nice thing about the old approach was that it all happened via JavaScript on the Frontend and didn't require the application programmer to do anything - that was obviously its weakness as well.

Maybe you are looking for

  • Multiprovider  is not capturing some fields data

    Hi Friends,                I got a proble when iam working on multiprovider,where i have taken two cubes into that multiprovider,now the problem is when i execute a report on muliprovider some fields are not populating with data. {{cube are :billing

  • Why is the iPhone cheaper from Apple store than elsewhere?

    Hi there, possible silly question for you here! Why is the iPhone 5C £319 from apple and £399 from the likes of Carphone Warehouse or Virgin Mobile?? What am I missing? Having been with Virgin for a very long time and using basic phones I need someth

  • Number of vehicles based on delivery quantity

    Hi Experts, My outbound delivery is containing 20 MT of material to be despatched. How to find or plan for 2 vehicle of 10MT capa each. Or if i have availability of 4 vehicles of 5MT capa each, how to plan and execute? warm regards marias

  • Adobe muse slide show

    Hello people Does anyone of you out there know of its possible to make a slide show like this in adobe muse? Linda Charlotte Ehrl - Freunde von Freunden – the link for the website where i saw it. thanks and cheers vincent

  • Udate

    I have adobe 9.5.5 and think I have adobe acrobat, but "it" says I have to update adobe air, but "it" won't..get  error #16820 I don't want to buy acrobat for $139 or Pro for $199 !!!