Regarding Drill down

Dear all,
I have an interactive ALV report.
When i double click on PO number,
if user has authorization to change then drill down should take user to ME22N.
if user has authorization only to display then drill down should take to ME23N.
if user does not have any authorization a pop should say "No authorization to drill down".
Please help me in this.
Thanks in Advance
Regards,
Vineel

REPORT ZMK_SHIPMENT_ALV
         no standard page heading
         line-size 105
         line-count 50(5)
         message-id zz.
       TABLES                  *
tables : vttk, "Shipment Header
         vttp, " Shipment Item
         lips. " Delivary Item
***TYPE-POOLS                    *
type-pools : slis.
*WORK AREAS                      *
Work area for field catalog table
data : wa_fldcat type slis_fieldcat_alv.
Work area for Events table
data : wa_events type slis_alv_event.
Work area for layout.
data : wa_layout type slis_layout_alv.
*INTERNAL TABLES                  *
Shimpment Details
data : begin of itab occurs 0,
       tknum like vttk-tknum,
       shtyp like vttk-shtyp,
       tpnum like vttp-tpnum,
       vbeln like vttp-vbeln,
       end of itab.
data : begin of itab1 occurs 0,
       vbeln like lips-vbeln,
       posnr like lips-posnr,
       matnr like lips-matnr,
       lfimg like lips-lfimg,
       meins like lips-meins,
       end of itab1.
For field catalog table
data : it_fldcats type slis_t_fieldcat_alv.
For Events table
data : it_event type slis_t_event.
For layout.
data : it_layout type slis_layout_alv.
For field catalog table
data : it_fldcats1 type slis_t_fieldcat_alv.
For Events table
data : it_event1 type slis_t_event.
data : v_repid like sy-repid.
*Data Declaration
data: v_index type sy-index,
      v_vbeln like lips-vbeln.
*SELECT-OPTIONS
selection-screen begin of block b with frame title text-001.
          select-options : s_tknum for vttk-tknum .
selection-screen end of block b.
*INITIALIZATION
initialization.
v_repid = sy-repid.
*START-OF-SELCTION
start-of-selection.
  perform populate-data.
  sort itab by tknum.
top-of-page.
write : 'Shipment wise Delivary Report'.
end-of-selection.
  perform build-fieldcatalog.
  perform modify-fieldcatalog.
  perform build-events.
  perform modify-events.
  perform set-layout.
perform set-pfstatus.
  perform list-display.
*&      Form  populate-data
    Retrives the Shipment data depending on the selection criteria   *
FORM populate-data.
select vttk~tknum
       vttk~shtyp
       vttp~tpnum
       vttp~vbeln
       into table itab
       from vttk
       join vttp
       on vttptknum = vttktknum
       where vttk~tknum  in s_tknum.
   if sy-subrc <> 0.
    message e999 with 'NO DATA FOUND'.
    exit.
  endif.
ENDFORM.                    " populate-data
*&      Form  build-fieldcatalog
      text
-->  p1        text
<--  p2        text
form build-fieldcatalog.
  call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
    i_program_name               = v_repid
    i_internal_tabname           = 'ITAB'
  I_STRUCTURE_NAME             =
  I_CLIENT_NEVER_DISPLAY       = 'X'
    i_inclname                   = v_repid
  I_BYPASSING_BUFFER           =
  I_BUFFER_ACTIVE              =
  changing
    ct_fieldcat                  = it_fldcats
  exceptions
    inconsistent_interface       = 1
    program_error                = 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.                    " BUILD-FIELDCATALOG
*&      Form  build-events
      text
-->  p1        text
<--  p2        text
FORM build-events.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
   I_LIST_TYPE           = 0
IMPORTING
   ET_EVENTS             = it_event
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.                    " build-events
*&      Form  set-layout
      text
-->  p1        text
<--  p2        text
FORM set-layout.
  wa_layout-zebra          = 'X'.
  wa_layout-colwidth_optimize = 'X'.
  wa_layout-no_colhead = space.
  wa_layout-no_vline = space.
ENDFORM.                    " set-layout
*&      Form  list-display
      text
-->  p1        text
<--  p2        text
FORM list-display.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
  I_INTERFACE_CHECK              = ' '
  I_BYPASSING_BUFFER             =
  I_BUFFER_ACTIVE                = ' '
   I_CALLBACK_PROGRAM             = v_repid
  I_CALLBACK_PF_STATUS_SET       = ' '
   I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
  I_STRUCTURE_NAME               =
   IS_LAYOUT                      = wa_layout
   IT_FIELDCAT                    = it_fldcats
  IT_EXCLUDING                   =
  IT_SPECIAL_GROUPS              =
  IT_SORT                        =
  IT_FILTER                      =
  IS_SEL_HIDE                    =
  I_DEFAULT                      = 'X'
  I_SAVE                         = ' '
  IS_VARIANT                     =
   IT_EVENTS                      = it_event
  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
IMPORTING
  E_EXIT_CAUSED_BY_CALLER        =
  ES_EXIT_CAUSED_BY_USER         =
  TABLES
    T_OUTTAB                       = itab
EXCEPTIONS
   PROGRAM_ERROR                  = 1
   OTHERS                         = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.                    " list-display
*&      Form  modify-fieldcatalog
      text
-->  p1        text
<--  p2        text
FORM modify-fieldcatalog.
loop at it_fldcats into wa_fldcat.
    case wa_fldcat-fieldname.
      when 'TKNUM'.
        wa_fldcat-seltext_l = 'Ship No.'.
        wa_fldcat-col_pos = 1.
        wa_fldcat-ddictxt = 'L'.
        when 'SHTYP'.
        wa_fldcat-seltext_l = 'Ship Type'.
        wa_fldcat-col_pos = 2.
        wa_fldcat-ddictxt = 'L'.
     when 'TPNUM'.
        wa_fldcat-seltext_l = 'Item No.'.
        wa_fldcat-col_pos = 3.
        wa_fldcat-ddictxt = 'L'.
     when 'VBELN'.
        wa_fldcat-seltext_l = 'Delivary No.'.
        wa_fldcat-hotspot = 'X'.
        wa_fldcat-col_pos = 4.
        wa_fldcat-ddictxt = 'L'.
    endcase.
   modify it_fldcats from wa_fldcat.
   endloop.
ENDFORM.                    " modify-fieldcatalog
*&      Form  modify-events
      text
-->  p1        text
<--  p2        text
form modify-events.
    read table it_event with key name =
slis_ev_top_of_page into wa_events.
   if sy-subrc = 0.
    wa_events-form = 'HEADER-OF-REPORT'.
    modify it_event from wa_events index sy-tabix.
    clear wa_events.
   endif.
   read table it_event with key name =
slis_ev_end_of_page into wa_events.
   if sy-subrc = 0.
    wa_events-form = 'FOOTER-OF-REPORT'.
    modify it_event from wa_events index sy-tabix.
    clear wa_events.
  endif.
endform.                    " modify-events
*&      Form  HEADER-OF-REPORT
      text
-->  p1        text
<--  p2        text
FORM HEADER-OF-REPORT.
write : 'Shipment Wise Delivary Report'.
ENDFORM.                    " HEADER-OF-REPORT
*&      Form  FOOTER-OF-REPORT
      text
-->  p1        text
<--  p2        text
FORM FOOTER-OF-REPORT.
write : 'End of Report'.
ENDFORM.                    " FOOTER-OF-REPORT
*&      Form  USER_COMMAND
      User command for Calling Transaction VT03N, Execute and Refresh
FORM user_command USING    p_ucomm    LIKE sy-ucomm
                         p_selfield TYPE slis_selfield.
  V_INDEX = P_SELFIELD-TABINDEX.      " holds the selected table index
  CASE p_ucomm.
    WHEN '&IC1'.
     IF p_selfield-fieldname eq 'VBELN'.
      perform secondary_list.
     ENDIF.
  ENDCASE.
ENDFORM.                    " USER_COMMAND
*&      Form  secondary_list
      text
-->  p1        text
<--  p2        text
FORM secondary_list.
perform get_data1.
perform build-fieldcatalog1.
  perform modify-fieldcatalog1.
  perform build-events1.
  perform modify-events1.
perform set-layout.
perform set-pfstatus.
  perform list-display1.
ENDFORM.                    " secondary_list
*&      Form  build-fieldcatalog1
      text
-->  p1        text
<--  p2        text
FORM build-fieldcatalog1.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
    i_program_name               = v_repid
    i_internal_tabname           = 'ITAB1'
  I_STRUCTURE_NAME             =
  I_CLIENT_NEVER_DISPLAY       = 'X'
    i_inclname                   = v_repid
  I_BYPASSING_BUFFER           =
  I_BUFFER_ACTIVE              =
  changing
    ct_fieldcat                  = it_fldcats1
  exceptions
    inconsistent_interface       = 1
    program_error                = 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.                    " build-fieldcatalog1
*&      Form  modify-fieldcatalog1
      text
-->  p1        text
<--  p2        text
FORM modify-fieldcatalog1.
loop at it_fldcats into wa_fldcat.
    case wa_fldcat-fieldname.
      when 'VBELN'.
        wa_fldcat-seltext_l = 'Delivary No.'.
        wa_fldcat-col_pos = 1.
        wa_fldcat-ddictxt = 'L'.
        when 'POSNR'.
        wa_fldcat-seltext_l = 'Item No'.
        wa_fldcat-col_pos = 2.
        wa_fldcat-ddictxt = 'L'.
     when 'MATNR'.
        wa_fldcat-seltext_l = 'Material'.
        wa_fldcat-col_pos = 3.
        wa_fldcat-ddictxt = 'L'.
     when 'LFIMG'.
        wa_fldcat-seltext_l = 'Quantity'.
        wa_fldcat-col_pos = 4.
        wa_fldcat-ddictxt = 'L'.
     when 'MEINS'.
        wa_fldcat-seltext_l = 'Unit of Measure'.
        wa_fldcat-col_pos = 5.
        wa_fldcat-ddictxt = 'L'.
    endcase.
   modify it_fldcats from wa_fldcat.
   endloop.
ENDFORM.                    " modify-fieldcatalog1
*&      Form  build-events1
      text
-->  p1        text
<--  p2        text
FORM build-events1.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
   I_LIST_TYPE           = 0
IMPORTING
   ET_EVENTS             = it_event1
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.                    " build-events1
*&      Form  modify-events1
      text
-->  p1        text
<--  p2        text
FORM modify-events1.
read table it_event1 with key name =
slis_ev_top_of_page into wa_events.
   if sy-subrc = 0.
    wa_events-form = 'HEADER_OF_REPORT_2'.
    modify it_event1 from wa_events index sy-tabix.
    clear wa_events.
   endif.
ENDFORM.                    " modify-events1
*&      Form  list-display1
      text
-->  p1        text
<--  p2        text
FORM list-display1.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
  I_INTERFACE_CHECK              = ' '
  I_BYPASSING_BUFFER             =
  I_BUFFER_ACTIVE                = ' '
   I_CALLBACK_PROGRAM             = v_repid
  I_CALLBACK_PF_STATUS_SET       = ' '
  I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
  I_STRUCTURE_NAME               =
   IS_LAYOUT                      = wa_layout
   IT_FIELDCAT                    = it_fldcats1
  IT_EXCLUDING                   =
  IT_SPECIAL_GROUPS              =
  IT_SORT                        =
  IT_FILTER                      =
  IS_SEL_HIDE                    =
  I_DEFAULT                      = 'X'
  I_SAVE                         = ' '
  IS_VARIANT                     =
   IT_EVENTS                      = it_event1
  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
IMPORTING
  E_EXIT_CAUSED_BY_CALLER        =
  ES_EXIT_CAUSED_BY_USER         =
  TABLES
    T_OUTTAB                       = itab1
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.                    " list-display1
*&      Form  get_data1
      text
-->  p1        text
<--  p2        text
FORM get_data1.
READ TABLE itab INDEX V_INDEX.
v_vbeln = itab-vbeln.
select vbeln
        posnr
        matnr
        lfimg
        meins
        from lips
        into table itab1
        where vbeln eq v_vbeln.
ENDFORM.                    " get_data1
*&      Form  header_of_report_2
      text
-->  p1        text
<--  p2        text
FORM header_of_report_2.
write: 'Delivary item list'.
ENDFORM.                    " header_of_report_2
*-- callling a transaction code by passing the initial screen value.
*&      Form  USER_COMMAND
form user_command using    p_ucomm    like sy-ucomm
                         p_selfield type slis_selfield.
  data : l_index like sy-index,
         l_refbn like cooi-refbn.
  l_index = p_selfield-tabindex.       " holds the selected table index
  clear l_refbn.
  case p_ucomm.
    when '&IC1'.
      clear l_refbn.
      read table it_outtab index l_index.
      if sy-subrc eq 0.
        l_refbn = it_outtab-refbn.
        if not l_refbn is initial.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
  EXPORTING
    TCODE         = 'ME22'
EXCEPTIONS
   OK            = 1
   NOT_OK        = 2
   OTHERS        = 3
   if sy-subrc eq 1.
          set parameter id 'BES' field l_refbn.
          call transaction 'ME22' and skip first screen.
  else.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
  EXPORTING
    TCODE         = 'ME23'
EXCEPTIONS
   OK            = 1
   NOT_OK        = 2
   OTHERS        = 3
    if sy-subrc eq 1.
set parameter id 'BES' field l_refbn.
          call transaction 'ME23' and skip first screen.
   endif.
  else.
   call function 'POPUP_DISPLAY_MESSAGE'
  exporting
    titel = 'This is a popup message'
    msgid = '00'
    msgty = 'E'
    msgno = '001'
    msgv1 = 'Message Variable 1'
    msgv2 = 'Message Variable 2'
    msgv3 = 'Message Variable 3'
    msgv4 = 'Message Variable 4'.
  endif.
        endif.
      else.
        message e999 with text-014.
      endif.
  endcase.
endif.

Similar Messages

  • Regarding Drill Down Reports...

    Hi everybody,
    I am doing a drill down for process order.For that i am doing the following code.
    FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
      READ TABLE ITAB_CAUFVD_D INDEX SELFIELD-TABINDEX.
      CASE SELFIELD-SEL_TAB_FIELD.
        WHEN 'ITAB_CAUFVD_D-AUFNR1'.
          SET PARAMETER ID 'ANR' FIELD ITAB_CAUFVD_D-AUFNR1.
          CALL TRANSACTION 'COR3' AND SKIP FIRST SCREEN.
      ENDCASE.
    ENDFORM.
    The problem that i face is : only when i log in to the client & when i run the report for the first time, the drill down is working fine.Otherwise it is not working.Only the first no is coming again & again when i click the other nos.
    Regards,
    Varadharajan.S

    Ok... What is wrong is these 2 statements --
    CASE SELFIELD-SEL_TAB_FIELD.
    WHEN 'ITAB_CAUFVD_D-AUFNR1'.
    I suppose u are doing so to make sure that the user has clicked on Order No field.
    If you see in the debug mode and press F5 on CASE Statement you will know the answer.
    Instead u must do this --
    case selfield-fieldname.
    when 'AUFNR'.
    It will work fine. I have tried this.
    Hope this helps... If it does plz reward points.
    Message was edited by:
            Varun Verma

  • IDA ALV - different behavior regarding "drill-down" for grouped attributes after upgrade to ERP 6.0 EHP7 SPS5

    Hello Experts,
    we have  upgraded our Dev System to ERP 6.0 EHP 7 SPS5 (coming from SPS4).
    We had implement an example with an IDA ALV. On SPS4 we could make a "drill-down" to the single lines of grouped attributes. Now with SPS5 this is not possible anymore if the grouping is done for more than one attribute.
    On the following screenshot it scan be seen that the grouping is done over a Peril attribute and the Currency. I can only make a drill-down via the peril attribute, so that the aggregated values per currency are displayed. ON SPS4 it was possible to make a further drill-down for the currency attribute, so that the different single lines were visible which were part of the grouping/aggregation.
    SPS5 behavior:
    SPS4 behavior:
    I did not found any new settings which steers the behavior. Also I did not found any note which gives a hint that this is a bug.
    Does anyone know if the behavior for that was changed and why?
    Thx & Best regards,
    Florian

    Hi Florian,
    it is related with the currency field and it seems to be a bug. Please open a ticket to get the problem fixed. The component is BC-WD-CMP-ALV.
    Cheers
    Jens

  • Query regarding drill down in Union reports in OBIEE

    Hi
    I have a report which is the union of two reports coming from difft subject areas.
    I have a column A in both the reports.In the union report of these two reports I'm trying to apply drill down on column A.
    The drill should take me to another report which is again a union report.
    When I click on the drilled value say A1 it doesn't show me data careesponding to A1, but intead of it this drill report gives me data for all the values under A A1,A2 ,A3 etc.
    I'm not sure why the drill is not working.
    Any special steps to be follwed when applying drill on union reports?
    pLs help
    thanks in advance !!

    Hi,
    Refer this ... how to drill down in combine request
    hope helps...

  • Regarding Drill Down Reporting

    Hai guys,
    could you please confirm what is the transaction for Drill down reporting tool.
    Expecting your reply.
    thanks.
    Ambichan
    Message was edited by: ambi chan

    Here we go
    KE80 /KE81 /KE82 /KE84 .
    If helpful pl reward.
    Cheers.

  • Drill Down and Drill UP on Web Analysis Report

    Hi all,
    I have a question regarding Drill down and Drill up on Web Analysis Report.
    The situation is the following:
    I've created a report with some account parent elements in row. The dimension account has a multiple hierarchy.
    I need to drill down on the child of these elements keeping the parente on top and so i've selected the option "Selected Member First".
    The drill down it's ok for the first drill to go on the next level but when i drill down once more to go on the next level of the selected member hierarchy the drill move this level out hierarchy.
    Can someone help me on this point?
    After that i've drilled just to the last level when i drill up on these elements to return on the previous level i note that in the report happens a strange thing:
    The Drill Up works fine but on the report appears another elements which is the same parent with anothe code/alias of another hierarchy instead of the Selected member.
    On this i've noted tha this 2 different parente have the same elements...I think that the children of the selected memeber can be shared members....Can be this the problem?
    Thanks for the help.
    Best Regards
    Eugenio Gualtieri

    Hi John,
    thanks for your answer.
    I've trayed to set the report on Smart View to virify tou test your advise.
    The situatio is the following:
    IS05101010-PUBBLICITA'
    702000 - VEND. DI SPAZIO PUBBLICITARIO
    702010 - RETTIFICHE VENDITE SPAZIO PUBBLICITARIO     
    W10004 - RICAVI PUBBL ICITA' ATTIVA (Q.EDIT) INTE     
    W10007 - RICAVI DA SPAZIO PUBBL. INTERASA     
    W10029 - RETTIFICA RICAVI PUBBL. INTERASA     
    ED05101010-PUBBLICITA'
    702000 - VEND. DI SPAZIO PUBBLICITARIO
    702010 - RETTIFICHE VENDITE SPAZIO PUBBLICITARIO     
    W10004 - RICAVI PUBBL ICITA' ATTIVA (Q.EDIT) INTE     
    W10007 - RICAVI DA SPAZIO PUBBL. INTERASA     
    W10029 - RETTIFICA RICAVI PUBBL. INTERASA     
    If I take only one parent member the drill up works fine but if i take all 2 memeber as above and i decide to drill up on one of the two element occur that the drill work for the two elements at the same time.
    Afetr the drill in this case the situation is:
    IS05101010-PUBBLICITA'
    ED05101010-PUBBLICITA'
    Can be a problem due to shared memebers?
    Thanks for your help.
    Regards
    Eugenio Gualtieri

  • Drill Down Report in screen painter

    Hi Experts,
    I have a requirement in dialog programming/screen painter to create a 2 level drill down report. for eac page of the report, it should only contain 10 entries then to view the other entries (11 and up), the button for next page should be click (there is also back button).
    First question is how will I have the drill down report (alv list type?) in screen painter?
    Second question is how should I process the logic mentioned above (next and back) in screen painter/dialog programming?
    Thanks in advance for all teh support. Points will be rewarded.
    Cheers,
    Kurtt

    Hai,
    Go thru this Threads u ll get an idea,
    Drill down report help
    Re: regarding Drill Down Reporting
    drill down capabilities for an alv grid display field using oops concept
    Regards,
    Padmam.

  • Reporting Services Error after Interactive sorting and drill down in pps

    Hi 
    i have a report  that has a drill down option that shows all workgroups within a specific  parent group and an interactive sorting ass well on both columns  parent group &  workgroup 
    This is displayed  in pps combined with a SharePoint
    ---the problem is that after sorting the parent group column by name   i then press the drill through icon  (+) next to it hopping to see all workgroups related to each parent group
      - but instead 
    i receive this Reporting Services Error  :
    The value for parameter 'SortItem' is not specified. It is either missing from the function call, or it is set to null. (rsMissingParameter) Get
    Online Help       
    If I don't press the sorting and just drill through it works fine. the sorting itself also works fine. 
    any suggestions ?
     

    Hi Hyaron,
    I am unable to reproduce the issue in my test environment. How did you add the drilldown feature? Were you doing that by setting visibility of the column or of the group? Please ensure to add the drilldown functionality by set the visibility of the workgroup
    from the Grouping Pane in the Report Designer.
    How did you add the Interactive Sorting on the headers of the two columns? Based on the drilldown functionality, the Interactive Sorting on the second column doesn’t work. So, you can move the Interactive Sorting on the second column. When configuring the
    Interactive sorting on the first column, you should set the parent group to sort, and sort by the field that the parent group groups by.
    Hope this helps.
    Regards,
    Mike Yin
    TechNet Community Support

  • Not able to drill down S_ALR_87013558 in reports

    Hello Experts,
    I am in strange situation where in I am not able to drill down my budget report S_ALR_87013558 in my development client. But it is working fine in production client.
    What could be the reason.?
    Please suggest.
    Thanks,
    Kumar Srinivasan

    Hi Kumar,
    Follow below steps in sequence.
    1. Please execute CJE2.
    2. Double Click on report 12KST1A. Message will come "You are changing an SAP delivery object". Press the tick mark.
    3. On Output Type tab, you must have clicked on radio button "Graphical Report Output". Please change the radio button classical drilldown and check "Available on Selection Screen" at the buttom.
    4. Save it.
    Check your report again and you will have an option there.
    Regards,
    Amit

  • Alv : drill down not working.

    Hi All,
    Could you please tell me whats wrong with this code ? its not drilling down to show 'ebeln' with me22n.  Am I missing something ?
    Please help.
    Hrishi
    code is :-
    REPORT  Z_VENDOR_BACKORDER_REPORT_ALV .
    TABLES:  EKKO, LFA1, MAKT, EKET, EKPO, AFPO, MARC.
    *Data Declaration
    DATA:  BEGIN OF ITAB OCCURS 0 ,
            ebeln       LIKE ekko-ebeln  ,  " PO number
            aedat       LIKE ekko-aedat  ,  " creation date
            ebelp       LIKE ekpo-ebelp  ,  " item no
            lifnr       LIKE ekko-lifnr  ,  " vendor number
            name1       LIKE lfa1-name1  ,  " vendor name
            RESWK       LIKE EKKO-RESWK  ,  " PLANT NO
            MEMORY      LIKE EKKO-MEMORY , " ORDER INCOMPLETE
            matnr       LIKE ekpo-matnr  ,  " material number
            werks       like ekpo-werks  ,  " plant
            txz01       LIKE ekpo-txz01  ,  " material description
            eindt       LIKE eket-eindt  ,  " Promised date
            menge       LIKE eket-menge  ,  " quantity
            wemng       LIKE eket-wemng  ,  " delivered quantity
            netpr       like ekpo-netpr  ,  " value in AUD
            peinh       like ekpo-peinh  ,  " price unit
            banfn       like ekpo-banfn  ,  " PR no
            aufnr       like ebkn-aufnr  ,  " Production order no
            MAABC       LIKE MARC-MAABC  ,  " MATERIAL ABC Indicator
            maktx       like makt-maktx  ,  " material long description
            open_quant  type p decimals 2,  " quantity - delivered
            VALUE       TYPE p decimals 2,  " $ VALUE * OPEN QUANTITY
            end of ITAB.
    data: wa like itab.
    DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    DATA: TEMP TYPE EKKO-LIFNR.
    data: opt like CTU_PARAMS.
    *DATA:  WA TYPE FINAL.
    all ALV declarations
    type-pools: slis.                                 "ALV Declarations
    DATA:   fieldcatalog        TYPE slis_t_fieldcat_alv with header line,
            G_REPID             TYPE SY-REPID,
            GS_PRINT            TYPE SLIS_PRINT_ALV,
            GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
            GT_EVENTS           TYPE SLIS_T_EVENT,
            GT_SORT             TYPE SLIS_T_SORTINFO_ALV,
            GS_LAYOUT           TYPE SLIS_LAYOUT_ALV,
            COL_POS TYPE I.
    -----------------SELECTION SCREEN----------------------
      selection-screen begin of block b1 with frame title text-001.
      select-options VENDORNO for ekko-lifnr.
      select-options MATERIAL for ekpo-matnr.
      SELECT-OPTIONS PLANT FOR EKKO-RESWK.
      select-options REQDAT for eket-eindt.
      selection-screen end of block b1.
    *................... GET DATA..................
    START-OF-SELECTION.
    PERFORM GATHER_DATA.
    END-OF-SELECTION.
    FORM USER_COMMAND USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    CASE r_ucomm.
    WHEN '&IC1'.
    CASE  rs_selfield-sel_tab_field.
    WHEN 'ITAB-EBELN'.
    CHECK NOT rs_selfield-value IS INITIAL.
    SET PARAMETER ID 'BUS' FIELD rs_selfield-value.
    CALL TRANSACTION 'ME22N' AND SKIP FIRST SCREEN.
    Do something at 'Sales document type' field selection
    when 'ITAB-MATNR'.
    SET PARAMETER ID 'BUS' FIELD rs_selfield-value.
    CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.
    ENDCASE.
    ENDCASE.
    ENDFORM.
    form gather_data.
    SELECT EKKO~EBELN
           EKKO~AEDAT
           EKKO~LIFNR
          EKKO~MEMORY
          EKKO~RESWK
           EKPO~EBELP
           EKPO~MATNR
           ekpo~werks
           ekpo~netpr
           ekpo~peinh
           ekpo~banfn
           ekpo~txz01
          makt~maktx
           EKET~EINDT
           EKET~MENGE
           EKET~WEMNG
           LFA1~NAME1
    INTO corresponding fields of ITAB
    FROM (
    EKKO inner JOIN EKPO
    ON EKKOEBELN = EKPOEBELN
    inner JOIN EKET
    ON EKPOEBELN = EKETEBELN
    AND EKPOEBELP = EKETEBELP
    inner JOIN LFA1
    ON EKKOLIFNR = LFA1LIFNR
    *left outer join makt
    *on ekpomatnr = maktmatnr
    WHERE EKKO~LIFNR IN VENDORNO
    AND EKKO~RESWK IN PLANT
    and EKPO~MATNR IN MATERIAL
    and ekpo~elikz eq ' '
    and ekpo~loekz ne 'L'
    and eket~eindt in REQDAT.
    append itab.
    CLEAR ITAB.
    endselect.
    clear temp.
    sort itab by lifnr.
    loop at itab .
    ITAB-OPEN_QUANT = ITAB-MENGE - ITAB-WEMNG.
    if itab-matnr eq ''.
    select single aufnr from ebkn into itab-aufnr where banfn = itab-banfn.
      select single matnr from afpo into itab-matnr where aufnr = itab-aufnr.
    endif.
    select single maktx from makt into itab-maktx where matnr = itab-matnr.
    select single maabc from MARC INTO ITAB-MAABC WHERE MATNR = ITAB-MATNR.
    ITAB-VALUE = ITAB-NETPR * ITAB-OPEN_QUANT / itab-peinh.
    modify itab.
    endloop.
    SKIP.
      fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'LIFNR'.
      fieldcatalog-seltext_m   = 'vendor no'.
      fieldcatalog-col_pos     = 1.
      fieldcatalog-outputlen   = 15.
       fieldcatalog-inttype = 'C'.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    fieldcatalog-do_sum      = 'X'.
      fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
        clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'po Number'.
      fieldcatalog-col_pos     = 2.
       fieldcatalog-inttype = 'C'.
       fieldcatalog-emphasize = 'C401'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'po date'.
      fieldcatalog-col_pos     = 3.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
    fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'item number'.
      fieldcatalog-col_pos     = 4.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'MATNR'.
       fieldcatalog-no_zero     = 'X'.
      fieldcatalog-seltext_m   = 'material number'.
      fieldcatalog-col_pos     = 5.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'MAABC'.
      fieldcatalog-seltext_m   = 'material type'.
      fieldcatalog-col_pos     = 6.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'TXZ01'.
      fieldcatalog-seltext_m   = 'short text'.
      fieldcatalog-col_pos     = 7.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'MAKTX'.
      fieldcatalog-seltext_m   = 'long text'.
      fieldcatalog-col_pos     = 8.
       fieldcatalog-inttype = 'C'.
       fieldcatalog-outputlen   = 15.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
    fieldcatalog-fieldname   = 'EINDT'.
      fieldcatalog-seltext_m   = 'date promised'.
      fieldcatalog-col_pos     = 9.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'Quantity'.
      fieldcatalog-col_pos     = 10.
       fieldcatalog-inttype = 'C'.
      fieldcatalog-outputlen   = 15.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'WEMNG'.
      fieldcatalog-seltext_m   = 'Delivered'.
      fieldcatalog-col_pos     = 11.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'OPEN_QUANT'.
      fieldcatalog-seltext_m   = 'Open quantity'.
      fieldcatalog-col_pos     = 12.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
    fieldcatalog-fieldname   = 'VALUE'.
      fieldcatalog-seltext_m   = '$ value'.
      fieldcatalog-col_pos     = 13.
       fieldcatalog-inttype = 'C'.
       fieldcatalog-do_sum      = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = g_repid
                 I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
                it_fieldcat             = fieldcatalog[]
                is_layout               = GS_layout
                  IT_SORT                = gt_sort
                  I_DEFAULT = 'X'
                    I_SAVE = 'X'
               is_variant              = z_template
           tables
                t_outtab                = ITAB
                exceptions
                program_error           = 1
                others                  = 2.
    endform.

    hi,
    please run the code below.
    REPORT yfi7g_ing_mic_001 .
    *PROGRAM YFI7G_ING_MIC_001.
    TABLES: vbak .
    TABLES: mara .
    TYPES: BEGIN OF tp_vbak ,
          vbeln TYPE vbak-vbeln,
          erdat TYPE vbak-erdat,
          erzet TYPE vbak-erzet,
          ernam TYPE vbak-ernam,
          vbtyp TYPE vbak-vbtyp,
          trvog TYPE vbak-trvog,
          auart TYPE vbak-auart,
          lifsk TYPE vbak-lifsk,
          faksk TYPE vbak-faksk,
          waerk TYPE vbak-waerk,
          vkorg TYPE vbak-vkorg,
          kunnr TYPE vbak-kunnr,
          vgbel TYPE vbak-vgbel,
          vgtyp TYPE vbak-vgtyp,
    END OF tp_vbak .
    TYPES: BEGIN OF tp_mara ,
            matnr TYPE mara-matnr,
    END OF tp_mara .
    TYPES: BEGIN OF tp_alv1_data.
    INCLUDE TYPE tp_vbak .
    TYPES: END OF tp_alv1_data.
    TYPES: BEGIN OF tp_alv2_data.
    INCLUDE TYPE tp_mara .
    TYPES: END OF tp_alv2_data.
    TYPE-POOLS: slis.
    DATA: gt_vbak TYPE STANDARD TABLE OF tp_vbak WITH HEADER LINE.
    DATA: gt_mara TYPE STANDARD TABLE OF tp_mara WITH HEADER LINE.
    DATA: gs_variant LIKE disvariant.
    DATA: gt_alv1_data TYPE STANDARD TABLE OF tp_alv1_data WITH HEADER LINE.
    DATA: gt_alv2_data TYPE STANDARD TABLE OF tp_alv2_data WITH HEADER LINE.
    SELECTION-SCREEN                                                     *
    BLOCK b0                                                             *
    SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME.
    SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.        "<field not defined?>
    PARAMETERS: p_matnr LIKE mara-matnr.           "<field not defined?>
    SELECTION-SCREEN END OF BLOCK b0.
    BLOCK bvar                                                           *
    SELECTION-SCREEN BEGIN OF BLOCK bvar WITH FRAME.
    PARAMETERS: p_vari  LIKE disvariant-variant.
    SELECTION-SCREEN END OF BLOCK bvar.
    BLOCK bbox                                                           *
    SELECTION-SCREEN BEGIN OF BLOCK bbox WITH FRAME.
    PARAMETERS: p_box_up  RADIOBUTTON GROUP b1,
                p_box_do  RADIOBUTTON GROUP b1 DEFAULT 'X',
                p_box_no  RADIOBUTTON GROUP b1.
    SELECTION-SCREEN END OF BLOCK bbox.
          AT SELECTION-SCREEN ON P_VARI                                 *
    AT SELECTION-SCREEN ON p_vari.
      PERFORM alv_variant_existence USING    p_vari
                                    CHANGING gs_variant.
          AT SELECTION-SCREEN ON VALUE REQUEST FOR P_VARI               *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      PERFORM alv_variant_f4 CHANGING p_vari
                                      gs_variant.
    INITIALIZATION                                                       *
    INITIALIZATION.
    START-OF-SELECTION                                                   *
    START-OF-SELECTION.
      PERFORM authority_check.
      PERFORM get_control_data.
      PERFORM get_transaction_data.
      PERFORM process_transaction_data.
    END-OF-SELECTION                                                     *
    END-OF-SELECTION.
      PERFORM output_data.
    F   O   R   M   S                                                   *
          FORM AUTHORITY_CHECK                                          *
          Perform authority checks for the report                       *
    FORM authority_check.
    !!! Note: authorisation checks are application-dependent.
    !!! Some common cases are listed below - please select one of them
    !!! or add new authorisation checks.
    !!! If the report is creating batch input session or using LDB
    !!! it may be sufficient to use automatic SAP auth.checks.
    Authorisation for displaying documents in a single company code
    authority-check object 'F_BKPF_BUK'
           id 'BUKRS' field p_bukrs
           id 'ACTVT' field '03'.
    if sy-subrc <> 0.
      message e001(z9) with 'No authorisation to display documents'
                            'in company code' p_bukrs.
    endif.
    Displaying documents from a list of company codes (select-options)
    call function 'Y_BUKRS_AUTHORITY_CHECK'
       EXPORTING
            ACTVT     = '03'
            NOMESSAGE = ' '
       tables
            s_bukrs   = s_bukrs.
    ENDFORM.                              " AUTHORITY_CHECK
          FORM GET_CONTROL_DATA                                         *
          Read configuration etc.                                       *
    FORM get_control_data.
    ENDFORM.                               " GET_CONTROL_DATA
          FORM GET_TRANSACTION_DATA                                     *
          Read documents etc.                                           *
    FORM get_transaction_data.
    !!! Data selection statement below has been generated automatically.
    !!! Please check if it is correct and complete.
    !!! Use table joins or 'SELECT FOR ALL ENTRIES' when selecting data
    !!! from related tables.
      SELECT
                vbeln
                erdat
                erzet
                ernam
       FROM vbak
          INTO CORRESPONDING FIELDS OF TABLE gt_vbak
      CHECK NOT gt_vbak[] IS INITIAL.
      SELECT
                matnr
       FROM mara
          INTO CORRESPONDING FIELDS OF TABLE gt_mara
          FOR ALL ENTRIES IN gt_vbak
          WHERE ernam = gt_vbak-ernam
    ENDFORM.                               " GET_TRANSACTION_DATA
          FORM PROCESS_TRANSACTION_DATA                                 *
    FORM process_transaction_data.
      LOOP AT gt_vbak .
        MOVE-CORRESPONDING gt_vbak TO gt_alv1_data .
        APPEND gt_alv1_data .
      ENDLOOP.
      FREE gt_vbak .
      LOOP AT gt_mara .
        MOVE-CORRESPONDING gt_mara TO gt_alv2_data .
        APPEND gt_alv2_data .
      ENDLOOP.
      FREE gt_mara .
    ENDFORM.                               " PROCESS_TRANSACTION_DATA
          FORM OUTPUT_DATA                                              *
    FORM output_data.
      PERFORM alv_list_display.
    ENDFORM.                               " OUTPUT_DATA
          FORM DISPLAY_RECORD                                           *
          Display object associated with the current ALV line           *
    FORM display_record USING is_selfield TYPE slis_selfield.
      READ TABLE gt_alv1_data INDEX is_selfield-tabindex.
      CHECK sy-subrc = 0.
    !!! SAMPLE IMPLEMENTATION FOR DISPLAYING FI DOCUMENTS:
      SET PARAMETER ID 'BUK' FIELD gt_alv1_data-vbeln.
    set parameter id 'BLN' field gt_alv1_data-belnr.
    set parameter id 'GJR' field gt_alv1_data-gjahr.
      CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ENDFORM.                               " DISPLAY_RECORD
          FORM ALV_LIST_DISPLAY                                         *
          Invoke main ALV function to format and show the report        *
    FORM alv_list_display.
      DATA: ls_layout      TYPE slis_layout_alv,
            ls_print       TYPE slis_print_alv,
            ls_keyinfo     TYPE slis_keyinfo_alv,
            lt_fieldcat    TYPE slis_t_fieldcat_alv,
            lt_exctab      TYPE slis_t_extab,
            lt_sorttab     TYPE slis_t_sortinfo_alv,
            lt_events      TYPE slis_t_event.
      PERFORM alv_init_report_events TABLES   lt_events.
      PERFORM alv_init_report_layout TABLES   lt_fieldcat
                                              lt_exctab
                                              lt_sorttab
                                     CHANGING ls_layout
                                              ls_print
                                              ls_keyinfo.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          i_interface_check        = ' '
          i_callback_program       = sy-cprog
          is_layout                = ls_layout
          it_fieldcat              = lt_fieldcat
          it_excluding             = lt_exctab
        IT_SPECIAL_GROUPS        =
          it_sort                  = lt_sorttab
        IT_FILTER                =
        IS_SEL_HIDE              =
        I_SCREEN_START_COLUMN    = 0
        I_SCREEN_START_LINE      = 0
        I_SCREEN_END_COLUMN      = 0
        I_SCREEN_END_LINE        = 0
        I_DEFAULT                = 'X'
          i_save                   = 'A'
          is_variant               = gs_variant
          it_events                = lt_events
        IT_EVENT_EXIT            =
          i_tabname_header         = 'GT_ALV1_DATA'
          i_tabname_item           = 'GT_ALV2_DATA'
        I_STRUCTURE_NAME_HEADER  =
        I_STRUCTURE_NAME_ITEM    =
          is_keyinfo               =  ls_keyinfo
          is_print                 =  ls_print
        IS_REPREP_ID             =
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER  =
        ES_EXIT_CAUSED_BY_USER   =
        TABLES
          t_outtab_header          = gt_alv1_data
          t_outtab_item            = gt_alv2_data.
      EXCEPTIONS
        PROGRAM_ERROR            = 1
        OTHERS                   = 2
    ENDFORM.                           " ALV_LIST_DISPLAY
          FORM ALV_INIT_REPORT_LAYOUT                                   *
          Set up report layout definition for ALV_LIST_DISPLAY          *
    <-- OT_FIELDCAT list of fields                                     *
    <-- OT_EXCTAB   excluded menu options                              *
    <-- OT_SORTTAB  sorting/grouping definition                        *
    <-- OS_LAYOUT   global report layout settings                      *
    <-- OS_PRINT    global report printout settings                    *
    <-- OS_KEYINFO  itab key fields (required only for hier.lists)     *
    FORM alv_init_report_layout TABLES ot_fieldcat TYPE slis_t_fieldcat_alv
                                       ot_exctab   TYPE slis_t_extab
                                       ot_sorttab  TYPE slis_t_sortinfo_alv
                              CHANGING cs_layout   TYPE slis_layout_alv
                                       cs_print    TYPE slis_print_alv
                                       cs_keyinfo  TYPE slis_keyinfo_alv.
    add menu items to be excluded to ot_exctab.
      REFRESH ot_exctab.
      REFRESH ot_fieldcat.
      REFRESH ot_sorttab.
    !!! List all ALV data fields for display here:
    DD-struct  = data dictionary structure name
    DD-field   = field of data dictionary structure
    itab       = internal table for output data
    itab-field = internal table field name
    key        = set to 'X' if key field
    sum        = set to 'X' for totals
    hid        = set to 'X' if field is initially hidden
    row        = list row number (multi-line list if >1)
    DD-struct    DD-field     itab         itab-field  key sum hid row
      PERFORM alv_build_fieldcat TABLES ot_fieldcat USING:
    'VBAK'       'VBELN'      'GT_ALV1_DATA' 'VBELN'     ' ' ' ' ' ' 1 ,
    'VBAK'       'ERDAT'      'GT_ALV1_DATA' 'ERDAT'     ' ' ' ' ' ' 1 ,
    'VBAK'       'ERZET'      'GT_ALV1_DATA' 'ERZET'     ' ' ' ' ' ' 1 ,
    'VBAK'       'ERNAM'      'GT_ALV1_DATA' 'ERNAM'     ' ' ' ' ' ' 1.
      PERFORM alv_build_fieldcat TABLES ot_fieldcat USING:
    'MARA'       'MATNR'      'GT_ALV2_DATA' 'MATNR'     ' ' ' ' ' ' 1 .
    !!! List all ALV data fields for sorting/grouping here
    itab       = internal table for output data
    itab-field = internal table field name
    up         = sort ascending
    down       = sort descending
    grp        = group by
    comp       = group initially compressed
    pos        = field position in sort sequence
    itab                   field              up down grp comp        pos
      PERFORM alv_build_sorttab TABLES ot_sorttab USING:
    'GT_ALV1_DATA'         'VBELN'             'X' ' ' ' ' ' '           1.
      PERFORM alv_build_sorttab TABLES ot_sorttab USING:
    'GT_ALV2_DATA'         'MATNR'             'X' ' ' ' ' ' '           1.
    !!! key definition - required only for hierarchical display (2 itabs)
      cs_keyinfo-header01 = 'VBELN' .
      cs_keyinfo-item01   = 'MATNR' .
    !!! See the declaration of type SLIS_LAYOUT_ALV and set the fields
    !!! of OS_LAYOUT record to change list-level attributes
    os_layout-no_colhead     = 'X'.         " no headings
      cs_layout-zebra          = 'X'.         " stripped pattern
    os_layout-no_vline       = 'X'.         " columns separated by space
    os_layout-totals_only    = 'X'.         " show only totals
    os_layout-totals_text    = 'Total'.     " totals line label
    os_layout-subtotals_text = 'Subtotal'.  " subtotals line label
    os_layout-subtotals_text = 'Subtotal'.  " subtotals line label
    os_layout-key_hotspot    = 'X'.         " keys as hotspot
    os_layout-expand_all     = 'X'.         " Expand all positions
    os_layout...
      cs_print-no_print_selinfos = 'X'.       " Skip selection statistics
      cs_print-no_print_listinfos = 'X'.      " Skip list statistics
    os_print-...
    ENDFORM.                               " INIT_REPORT_LAYOUT
          FORM ALV_BUILD_FIELDCAT                                       *
          Format a single line for ALV_INIT_REPORT_LAYOUT               *
    FORM alv_build_fieldcat TABLES ot_fieldcat
                            USING  iv_ref_tabname   "ref to a table/field
                                   iv_ref_fieldname
                                   iv_tabname     "actual table/field name
                                   iv_fieldname
                                   iv_key
                                   iv_do_sum
                                   iv_no_out
                                   iv_row_pos.
    status variables for auto-numbering of field column position
    (column number reset when a new table or row begins)
      STATICS: sv_last_tabname TYPE slis_tabname,
               sv_last_row_pos TYPE i,
               sv_current_col  TYPE i.
      IF sv_last_tabname <> iv_tabname OR sv_last_row_pos <> iv_row_pos.
        sv_current_col = 1.
      ELSE.
        ADD 1 TO sv_current_col.
      ENDIF.
      sv_last_tabname = iv_tabname.
      sv_last_row_pos = iv_row_pos.
      DATA: ls_fieldcat    TYPE slis_fieldcat_alv.
      DATA: lv_fieldname   TYPE slis_fieldname.
      lv_fieldname = iv_fieldname.
    !!! List all the special formatting requirements in cases below
    case lv_fieldname.
      when 'WRBTR'.                      "<-- link with currency required
        ls_fieldcat-cfieldname = 'WAERS'.
        ls_fieldcat-ctabname   = iv_tabname.
      when 'HKONT'.                     "<-- change default column header
        ls_fieldcat-seltext_s  = 'GL Acc.'.
        ls_fieldcat-ddictxt    = 'S'.          " (S)hort (M)iddle (L)ong
      when 'SOME_NUMBER'                 "<-- change number formatting
        ls_fieldcat-nosign     = 'X'.
        ls_fieldcat-nozero     = 'X'.
        ls_fieldcat-just       = 'L'.         " (L)eft (R)ight (C)enter
    endcase.
      ls_fieldcat-ref_tabname   = iv_ref_tabname.
      ls_fieldcat-ref_fieldname = iv_ref_fieldname.
      ls_fieldcat-tabname       = iv_tabname.
      ls_fieldcat-fieldname     = iv_fieldname.
      ls_fieldcat-key           = iv_key.
      ls_fieldcat-do_sum        = iv_do_sum.
      ls_fieldcat-no_out        = iv_no_out.
      ls_fieldcat-row_pos       = iv_row_pos.
      ls_fieldcat-col_pos       = sv_current_col.
      APPEND ls_fieldcat TO ot_fieldcat.
    ENDFORM.                          " ALV_BUILD_FIELDCAT
          FORM ALV_BUILD_SORTTAB                                        *
          Set up sorting information for ALV_INIT_REPORT_LAYOUT         *
    FORM alv_build_sorttab TABLES ot_sorttab TYPE slis_t_sortinfo_alv
                           USING  iv_tabname   TYPE slis_fieldname
                                  iv_fieldname TYPE slis_fieldname
                                  iv_up        TYPE c
                                  iv_down      TYPE c
                                  iv_subtot    TYPE c
                                  iv_comp      TYPE c
                                  iv_spos      TYPE n.
      ot_sorttab-spos      = iv_spos.
      ot_sorttab-fieldname = iv_fieldname.
      ot_sorttab-tabname   = iv_tabname.
      ot_sorttab-up        = iv_up.
      ot_sorttab-down      = iv_down.
      ot_sorttab-subtot    = iv_subtot.
      ot_sorttab-comp      = iv_comp.
      APPEND ot_sorttab.
    ENDFORM.                            " ALV_BUILD_SORTTAB
          FORM ALV_INIT_REPORT_EVENTS                                   *
          Set up program events for ALV_LIST_DISPLAY                    *
    <-- OT_EVENTS   list of events and associated report subroutines   *
    FORM alv_init_report_events TABLES ot_events TYPE slis_t_event.
      CLEAR   ot_events.
      REFRESH ot_events.
      ot_events-name = slis_ev_user_command.
      ot_events-form = 'USER_COMMAND'.
      APPEND ot_events.
      ot_events-name = slis_ev_pf_status_set.
      ot_events-form = ''.                         "'PF_STATUS_SET'.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_list.
      ot_events-form = 'TOP_OF_LIST'.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_list.
      ot_events-form = 'END_OF_LIST'.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_page.
      ot_events-form = 'TOP_OF_PAGE'.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_page.
      ot_events-form = 'END_OF_PAGE'.
      APPEND ot_events.
      ot_events-name = slis_ev_foreign_top_of_page.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_foreign_end_of_page.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_coverpage.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_coverpage.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_before_line_output.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_after_line_output.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_caller_exit_at_start.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_list_modify.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_subtotal_text.
      ot_events-form = ''.
      APPEND ot_events.
    ENDFORM.                            " ALV_INIT_REPORT_EVENTS
          FORM USER_COMMAND                                             *
          Subroutine attached as callback form to ABAP List Viewer      *
      --> UCOMM    - user command code passed from ALV                  *
      --> SELFIELD - information record describing current line/field   *
    FORM user_command USING value(iv_ucomm) LIKE sy-ucomm
                            is_selfield     TYPE slis_selfield.
      CASE iv_ucomm.
        WHEN '&IC1'.                                  "ALV record selection
          PERFORM display_record USING is_selfield.
      when ...
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
          FORM PF_STATUS_SET                                            *
          Subroutine attached as callback form to ABAP List Viewer,     *
          allows setting alternative menu.  If necessary:               *
          1. Copy 'STANDARD' menu from SAPLKKBL and modify as required, *
          2. Activate callback                                          *
    FORM pf_status_set USING it_exctab TYPE slis_t_extab.
    set pf-status 'STANDARD' excluding it_exctab.
    ENDFORM.                               " PF_STATUS_SET
          FORM TOP_OF_LIST                                              *
          Subroutine attached as callback form to ABAP List Viewer,     *
          executed once at the start of list output.                    *
    FORM top_of_list.
      DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.
      DATA: lv_report LIKE sy-repid.
      lv_report = sy-repid.             "do not pass sy-repid to function!
      IF p_box_up = 'X'. "display select options at report start
        CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
          EXPORTING
            curr_report     = lv_report
          TABLES
            selection_table = lt_seltab.
    remove 'technical' parameters with 'DELETE LT_SELTAB WHERE...'
    before display, if necessary
        CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
           EXPORTING
                report        = lv_report
                seltext       = 'X'
            dyn_range     =
                newpage       = ' '
            screennr      = 1000
           TABLES
                sel_tab       = lt_seltab
           EXCEPTIONS
                sel_tab_empty = 1.
      ENDIF. "p_box_up = 'X'
    ENDFORM.                               " TOP_OF_LIST
          FORM END_OF_LIST                                              *
          Subroutine attached as callback form to ABAP List Viewer      *
          executed once at the end of list output.                      *
    FORM end_of_list.
      DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.
      DATA: lv_report LIKE sy-repid.
      lv_report = sy-repid.             "do not pass sy-repid to function!
      IF p_box_do = 'X'. "display select options at report end
        CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
          EXPORTING
            curr_report     = lv_report
          TABLES
            selection_table = lt_seltab.
    remove 'technical' parameters with 'DELETE LT_SELTAB WHERE...'
    before display, if necessary
        CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
           EXPORTING
                report        = lv_report
                seltext       = 'X'
            dyn_range     =
                newpage       = ' '
            screennr      = 1000
           TABLES
                sel_tab       = lt_seltab
           EXCEPTIONS
                sel_tab_empty = 1.
      ENDIF. "p_box_do = 'X'
    ENDFORM.                               " END_OF_LIST
          FORM TOP_OF_PAGE                                              *
          Subroutine attached as callback form to ABAP List Viewer      *
    FORM top_of_page.
    standard Ingram Micro report page heading
      DATA: lv_coco_pos TYPE i,          "CurPos of 'Company confidential'
            lv_title_pos TYPE i,           "CurPos of report title
            lv_title(70) TYPE c,           "Truncated report title
            lv_page_pos TYPE i,            "CurPos of page number
            lv_date_pos TYPE i,            "CurPos of date and time
            lv_page_no(10) TYPE c,
            lv_date(25) TYPE c,
            lv_time(20) TYPE c,
            lv_page(10) TYPE c.
    We may need to truncate title if the line size is < 81.
      IF sy-linsz < 81.
        lv_title = sy-title+0(50).
      ELSE.
        lv_title = sy-title.
      ENDIF.
    Decide on positioning of text depending on width of page
      lv_title_pos = ( sy-linsz / 2 ) - ( STRLEN( lv_title ) / 2 ).
      lv_coco_pos = sy-linsz - 20.
      FORMAT COLOR COL_HEADING INTENSIFIED ON.
      WRITE: / 'Ingram Micro',
               AT lv_title_pos lv_title,
               AT lv_coco_pos 'Company Confidential'.
    Setup data correctly in the correct format for the display fields.
      lv_page = sy-pagno.
      SHIFT lv_page LEFT DELETING LEADING ' '.
      CONCATENATE sy-datum6(2) sy-datum4(2) sy-datum+0(4)
                   INTO lv_date SEPARATED BY '.'.
      CONCATENATE sy-uzeit0(2) ':' sy-uzeit2(2) INTO lv_time.
      CONCATENATE lv_date lv_time INTO lv_date SEPARATED BY ' '.
      CONCATENATE 'Page' lv_page INTO lv_page_no SEPARATED BY ' '.
    Decide on positioning of text depending on width of page.
      lv_page_pos = sy-linsz - ( STRLEN( lv_page_no ) ).
      WRITE: / lv_date,
               AT lv_page_pos lv_page_no.
      ULINE.
    ENDFORM.                               " TOP_OF_PAGE
          FORM END_OF_PAGE                                              *
          Subroutine attached as callback form to ABAP List Viewer      *
    FORM end_of_page.
    ENDFORM.                               " END_OF_PAGE
          Form  ALV_VARIANT_EXISTENCE
          Reads ALV variant definition
    FORM alv_variant_existence  USING    iv_variant LIKE disvariant-variant
                                CHANGING os_variant LIKE disvariant.
      CHECK NOT iv_variant IS INITIAL.
      os_variant-report  = sy-repid.
      os_variant-variant = iv_variant.
      IF iv_variant CP '/*'.    "user-specific variants begin with slash
        os_variant-username = sy-uname.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
        EXPORTING
          i_save        = 'A'
        CHANGING
          cs_variant    = os_variant
        EXCEPTIONS
          wrong_input   = 1
          not_found     = 2
          program_error = 3
          OTHERS        = 4.
      IF sy-subrc <> 0.
        MESSAGE e001(z9) WITH 'Please select a valid display variant.'.
      ENDIF.
    ENDFORM.                               " ALV_VARIANT_EXISTENCE
          FORM ALV_VARIANT_F4                                           *
          Display list of layout variants on report selection screen    *
    FORM alv_variant_f4  CHANGING cv_varname  LIKE disvariant-variant
                                  cs_variant  LIKE disvariant.
      DATA: lv_exit(1) TYPE c.
      cs_variant-report = sy-repid.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                is_variant          = cs_variant
                i_save              = 'A'
              it_default_fieldcat =
           IMPORTING
                e_exit              = lv_exit
                es_variant          = cs_variant
           EXCEPTIONS
                not_found = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF lv_exit = space.
          cv_varname = cs_variant-variant.
        ENDIF.
      ENDIF.
    hope this will help.
    see form  user_command.
    regards,
    Ruchika

  • Drill down on all values of a row from bex universe

    Hi
    We had developed BO universe on bex query, and as in web i the whole row will come as a single object.
    so when we drill  on the row the drill is not performing on the whole row rather its happenig on a single value of the row
    Ex:- if we have rows named as US, china, America, Japan, Gross sales, invoice etc
    when wen i drill on any row for lets say US, and i drilled on currecy type the drill is happening only us from the row.
    But we need this drill on whole values of the row,
    if aware of bex analyser, we need the same drill down future as in bex.
    Any help in this regards is appreciable.
    Thanks in Advance,

    Hi,
    Your code seems to be right.
    Try writing the code as the below format.
    CASE SY-UCOMM.
    * CHECK FUNCTION CODE
    WHEN '&IC1'.
    * CHECK FIELD CLICKED ON WITHIN ALVGRID REPORT
    IF SELFIELD-FIELDNAME = 'LIFNR'.
    * READ DATA TABLE, USING INDEX ROW USER CLICKED ON
    READ TABLE IT_FINAL INTO WA_FINAL INDEX SELFIELD-TABINDEX.
    * SET PARAMETER ID FOR TRANSACTION SCREEN FIELD
    SET PARAMETER ID 'BES' FIELD WA_FINAL-LIFNR.
    * EXECUTE TRANSACTION 'XK03',AND SKIP INITIAL DATA ENTRY SCREEN.
    CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.
    ENDIF.
    ENDCASE.
    Thanks
    Arbind

  • Vendor wise drill down in Trial Balance or Balance sheet report

    Dear Experts,
    Is there any report for Trial Balance or P&L/ Balance Sheet report where vendor wise drill down of amounts is possible?
    Please suggest.
    Regards
    Komal

    Hi Dear ,
    You can use F.08 for Trail Balance  and Vendor details - S_ALR_87012082 - Vendor Balances in Local Currency
    You can get cumulative balance for the vendor.
    Regards
    Radha

  • Drill down ( Collapsible Row ) Report in BEx query designer ?

    Dear Friends!
       I am supoosed to create a report drill down report for Purchasing History to be precise,  I know that we can have drill down feature using heirarchy but is it possible for Us to have PO & PO item heirarachy ? or any other way to do drill down reporting in SAP BEx Query designer ?
    like my current report is : -
    | Vendor | Purchasing Organisation | Purchasing Group | Plant | PO Number | Item | Material / Service | Description | .... ( keyfigures) |
    Now I am supposed to create a report  in which
    normal view
    | Vendor | Purchasing Organisation | Purchasing Group | Plant | |> PO Number| .... ( keyfigures) | Payment |
    drill down or collapsible view ( please consider the heading as data I am not talking about dynamically change of  headings ).
    | Vendor | Purchasing Organisation | Purchasing Group | Plant | V PO Number | Item | Material / Service | Description | .... ( keyfigures) |
    is there anyway to design the report in above mention manner ? you any input will be appreciated greatly.
    Thank you so much!
    Regards
    Naim

    Hi Naim,
    usually we don't do the transactional data as hierarchy.  not sure the reason behind your requirement.
    we can do one of the below :-
    1. To have the default view as
    | Vendor | Purchasing Organisation | Purchasing Group | Plant | | PO Number| .( keyfigures) | Payment |
    and then user can drill down on rest of the characteristics for detailed view later on.
    2. or if they don't want to drill down on characteristics;-
    we can build 2 reports , one for header level information and then jump to second query for detailed information(item level) using RRI.
    first query:
    | Vendor | Purchasing Organisation | Purchasing Group | Plant | | PO Number| .( keyfigures) | Payment |
    second query:
    | Vendor | Purchasing Organisation | Purchasing Group | Plant |  PO Number | Item | Material / Service | Description | .... ( keyfigures) |
    Let us know if this works out?
    Regards,
    Sakthi.

  • Need Drill down in Customer Open Item Analysis by Balance of Overdue Items

    In SAP there is one standard report by the name of
    'Customer Open Item Analysis by Balance of Overdue Items'
    Can I change the report according to my need.. I want to add drill down and customer name to this report. I am using summarisation 6 as my criteria.
    Thanks
    Sajid Hakeem

    Dave!
    Thanks for the help man
    Just one last thing
    can you help us to add  drill down facility in the prescribed report. what code we should write to make it drill down to a line item report.
    Regards
    Sajid Hakeem

  • Drill-Down Report Printing Problem for Selection Parameters

    Dear Experts,
    Have tried to configure Drill-Down Report for Vendor Balances,
    Am having trouble when printing this drill-down report, Printing is coming OK but it comes with ALL selection parameters, for e.g, have entered 20 vendor codes for the balance display, system first prints all selection parameters and then it prints the output of vendor balances,
    User does not want selection Parameters to be printed with the Report Output. Please find below screenshot for the problem.
    Input Parameter Screen
    Report Output Screen
    Print Preview Screen (First Page - Selection Parameters)
    Your help is much appreciated, if anyone can guide me, how to switch off selection parameters from Print Output of Drill-Down Report
    Thanks
    Regards
    P

    Hello Ms. Preeti,
    Thanks for your reply, Have designed the report through FKI0 (FKI*)
    Have already looked these setting, but these are not helping really, PFB screenshot for settings am having in my system, if you have any idea which can avoid User Input Parameters from printing then it will be really great help
    Thanks for your help
    Kind Regards
    P

Maybe you are looking for

  • BSP - UserId and Password for Internal Users - Anonymous for other users

    Hello, We developed an application via BSP's. This application can be accessed by two kind of users. 1. External Users, with should access the page without using a userId and password. 2. Internal Users, they will have more authorisation and need to

  • Problem with Digital Out

    I have installed drivers on my Sound Blaster Creative Audigy2 Value. I have digital output pins on my soundblaster , but the tick to ENABLE Digital Output is missing .. How to enable my digital Output ??

  • Icons not showing up in Dock

    I've got OSX Snow Leopard running and everything was great. However, recently, when I open a program from spotlight, the icon will not show up in the dock. Any suggestions?

  • Help! Major "Security Certificate" Errors when browsing

    The various Mac Forums I've tried have attempted to help (can post their solutions if needed), but none worked. My issue occurs on ALL of my home computers (MacBook and iMac using wi-fi) and ALL of my browsers (Safari, Firefox, Chrome). The problem:

  • Corrupted Pages File Please Help!

    Hi, saved my pages file last night in two locations. Today that files crashes Pages on either of my computers when I try to open it. Called Apple and they had me throw out the library files and run the disk utility and when those didn't work they tol