How to do a drill down whit 'REUSE_ALV_GRID_DISPLAY'

Hi Guru,
i must do a drill down with 2 field of a 'REUSE_ALV_GRID_DISPLAY'
this is the program:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
    I_INTERFACE_CHECK                 = ' '
    I_BYPASSING_BUFFER                = ' '
    I_BUFFER_ACTIVE                   = ' '
    I_CALLBACK_PROGRAM                = ' '
    I_CALLBACK_PF_STATUS_SET          = ' '
    I_CALLBACK_USER_COMMAND           = ' '
     IT_FIELDCAT                        = tabcatalogo
    TABLES
      t_outtab                          = appoggio
where
TYPE-POOLS slis.
DATA : tabcatalogo TYPE slis_t_fieldcat_alv,
      rec_tabcatalogo TYPE slis_fieldcat_alv.
TABLES: viob03,
        viob37,
        ekkn,
        ekko.
DATA : BEGIN OF appoggio OCCURS 0,
       bukrs LIKE viob03-BUKRS,
       swenr LIKE viob03-swenr,
       j_objnr LIKE viob03-j_objnr,
       sgenr LIKE viob03-sgenr,
       anln1 LIKE viob37-anln1,
       anln2 LIKE viob37-anln2,
       ebeln LIKE ekkn-ebeln,
       kdatb LIKE ekko-kdatb,
       kdate LIKE ekko-kdate,
       END OF appoggio.
THE FIELD FOR DRILL DOWN ARE swenr  AND  anln1
Thanks and sorry for my english

Hi
See the sample code
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.
here in output. if you will click on material. you can go to other transaction.
also for drill down you can refer one standard program.
DEMO_DYNPRO_DROPDOWN_LISTBOX
Regards
Anji

Similar Messages

  • In OBIEE charts, how do you make drill downs work on custom formulas?

    I posted this over on Linked In and didn't get an anser, so I'm hoping someone here has an answer.
    I'm writing a summary query / chart for a dashboard in OBIEE 10.1 with a drill down (technically it's a "navigation") for more information. This chart breaks down the data by fiscal quarter and by geography (both are columns in the subject area) and I can get this drill down to work just fine. But I also have this chart broken down by some custom calculated fields (CASE WHEN statements) that classify revenue into Forecast / At Risk / Upside etc. (which are not columns or values of columns within the subject area).
    When I add a drill down or navigate function onto those calculated columns, I'm getting a full data set ... not a filtered data set for that particular calculated field. (Yes, I have all of the IS PROMPTED filters set up correctly, and yes the formulas in the source and destination queries are identical).
    Does anyone have any ideas on how to make the drill down or navigation work on custom formulas?
    Thanks
    Ted

    Using the Paint demo
    Report 1 Saved as: */shared/Paint Demo/Sample Analyses/Color Analysis*
    <saw:report xmlns:saw="com.siebel.analytics.web/report/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sawx="com.siebel.analytics.web/expression/v1" xmlVersion="200705140">
    <saw:criteria xsi:type="saw:simple" subjectArea="Paint">
    <saw:columns>
    <saw:column formula="case WHEN Markets.Region IN ('CENTRAL REGION', 'EASTERN REGION') then 'East Central' WHEN Markets.Region IN ('SOUTHERN REGION', 'WESTERN REGION') then 'South West' else Markets.Region end" columnID="c4">
    <saw:tableHeading>
    <saw:caption>
    <saw:text>Markets</saw:text></saw:caption></saw:tableHeading>
    <saw:columnHeading>
    <saw:caption>
    <saw:text>Region</saw:text></saw:caption>
    <saw:displayFormat interaction="default"/></saw:columnHeading>
    <saw:displayFormat suppress="default" interaction="navigate" wrapText="true">
    <saw:navigation xsi:type="saw:sawNavLink">
    <saw:navTargets>
    <saw:navTarget xsi:type="saw:reportLink" path="/shared/Paint Demo/Sample Analyses/Color Analysis Navigate"/></saw:navTargets></saw:navigation></saw:displayFormat></saw:column>
    <saw:column formula="&quot;Sales Measures&quot;.&quot;% Chg Year Ago Dollars&quot;" alias="" columnID="c3"/></saw:columns>
    <saw:columnOrder/>
    <saw:filter subjectArea="Paint">
    <sawx:expr xsi:type="sawx:special" op="prompted">
    <sawx:expr xsi:type="sawx:sqlExpression">case WHEN Markets.Region IN ('CENTRAL REGION', 'EASTERN REGION') then 'East Central' WHEN Markets.Region IN ('SOUTHERN REGION', 'WESTERN REGION') then 'South West' else Markets.Region end</sawx:expr></sawx:expr></saw:filter></saw:criteria>
    <saw:views currentView="0">
    <saw:view xsi:type="saw:compoundView" name="compoundView!1" rptViewVers="200510010">
    <saw:cvTable>
    <saw:cvRow>
    <saw:cvCell viewName="Title"/></saw:cvRow>
    <saw:cvRow>
    <saw:cvCell viewName="Table"/></saw:cvRow></saw:cvTable></saw:view>
    <saw:view xsi:type="saw:tableView" deck="bottom" headingDisplay="table2Rows" visibleFormats="all" name="Table" rptViewVers="200510010"/>
    <saw:view xsi:type="saw:titleView" name="Title" rptViewVers="200510010"/></saw:views>
    <saw:prompts/></saw:report>
    Report 2 Saved as: */shared/Paint Demo/Sample Analyses/Color Analysis Navigate*
    <saw:report xmlns:saw="com.siebel.analytics.web/report/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sawx="com.siebel.analytics.web/expression/v1" xmlVersion="200705140">
    <saw:criteria xsi:type="saw:simple" subjectArea="Paint">
    <saw:columns>
    <saw:column formula="Markets.Region" columnID="c5"/>
    <saw:column formula="&quot;Sales Measures&quot;.&quot;% Chg Year Ago Dollars&quot;" alias="" columnID="c3"/></saw:columns>
    <saw:columnOrder/>
    <saw:filter subjectArea="Paint">
    <sawx:expr xsi:type="sawx:special" op="prompted">
    <sawx:expr xsi:type="sawx:sqlExpression">case WHEN Markets.Region IN ('CENTRAL REGION', 'EASTERN REGION') then 'East Central' WHEN Markets.Region IN ('SOUTHERN REGION', 'WESTERN REGION') then 'South West' else Markets.Region end</sawx:expr></sawx:expr></saw:filter></saw:criteria>
    <saw:views currentView="0">
    <saw:view xsi:type="saw:compoundView" name="compoundView!1" rptViewVers="200510010">
    <saw:cvTable>
    <saw:cvRow>
    <saw:cvCell viewName="Title"/></saw:cvRow>
    <saw:cvRow>
    <saw:cvCell viewName="staticchart!1"/></saw:cvRow>
    <saw:cvRow>
    <saw:cvCell viewName="Table"/></saw:cvRow></saw:cvTable></saw:view>
    <saw:view xsi:type="saw:tableView" deck="bottom" headingDisplay="table2Rows" visibleFormats="all" name="Table" rptViewVers="200510010"/>
    <saw:view xsi:type="saw:titleView" name="Title" rptViewVers="200510010"/>
    <saw:view xsi:type="saw:staticchart" name="staticchart!1" rptViewVers="200510010">
    <saw:template tid="charts/pie.cxml"/>
    <saw:canvasFormat/>
    <saw:selections>
    <saw:categories>
    <saw:category position="0">
    <saw:constant value="1"/></saw:category></saw:categories>
    <saw:measures>
    <saw:column columnID="c3" position="0"/></saw:measures>
    <saw:seriesGenerators>
    <saw:column columnID="c5"/>
    <saw:measureLabels/></saw:seriesGenerators></saw:selections></saw:view></saw:views>
    <saw:prompts/></saw:report>
    The first report navigates and prompts the second report on the calculated field.
    Regards
    Chris

  • How can I activate drill down report for planned line items please urgent?

    Hi Everyone,
    Please suggest me how can i activate drill down report for planned line items in internal orders. S_ALR_87012993. Please suggest me, I'll award full points. I am unable to do it in client system, which has already line items. I tried in my sys with new config it is working.
    Kind regards
    Arvey.

    Hi
    It is based on the reports attached in the Report Group - TCODE: GR53
    In the Report Group screen
    Press CONFIGURE – This is to attach any Drill Down reports.
    Press the “Insert Line” icon
    As is the screen may be used to insert a Report Writer report group. To add an ABAP, press “other report type”
    Double click on “ABAP Reports”
    Enter the name of the ABAP and ENTER
    <b>RCOPCA08                       Profit Center: Plan Line Items</b>
    VVR

  • How to suppress the Drill down on Subreport?

    Hi ,
    I created a crystal report with many subreports inside.These subreports are showing a drill down in Report preview.Can someone explain me how to suppress this drill down.
    Thanks & Regards
    Hemalatha Selvam.

    Hi Hemlatha
    In Crystal Reports, to prevent the ability to drill down into a subreport when published on the Web, add a text object that is filled with blank spaces, created by pressing the 'Space Bar' and 'Enter' for line returns, to eclipse the subreport.
    This workaround is applicable only to subreports that does not grow in size. For example, subreports that display only a chart or graph.
    Steps to Add a Text Object over a Subreport
    1. In the Crystal Reports Designer of the main report, insert a text object over the subreport.
    2. Resize the text object to be the same size or a little larger than the subreport object on the main report.
    3. Fill the text object with blank spaces created by pressing the 'Space Bar' and 'Enter'. This is necessary because resizing a text object without
    the blank spaces will not maintain its size when it has been published on the Web.
    ====================
    NOTE:
    You can format the text object with a hyperlink to another report, another file or a URL.
    ====================
    Now, when the Crystal report is previewed on the Web, the text object that fully eclipses the subreport will prevent the ability to drill down into it.
    Regards
    Girish

  • How to setup the drill down on union report

    Hi,
    I'm setting the union report.
    I want to set the drill down to another report.
    But I can't setup it.
    Would you please tell me how to setup.
    Thank you.

    Hi Hemlatha
    In Crystal Reports, to prevent the ability to drill down into a subreport when published on the Web, add a text object that is filled with blank spaces, created by pressing the 'Space Bar' and 'Enter' for line returns, to eclipse the subreport.
    This workaround is applicable only to subreports that does not grow in size. For example, subreports that display only a chart or graph.
    Steps to Add a Text Object over a Subreport
    1. In the Crystal Reports Designer of the main report, insert a text object over the subreport.
    2. Resize the text object to be the same size or a little larger than the subreport object on the main report.
    3. Fill the text object with blank spaces created by pressing the 'Space Bar' and 'Enter'. This is necessary because resizing a text object without
    the blank spaces will not maintain its size when it has been published on the Web.
    ====================
    NOTE:
    You can format the text object with a hyperlink to another report, another file or a URL.
    ====================
    Now, when the Crystal report is previewed on the Web, the text object that fully eclipses the subreport will prevent the ability to drill down into it.
    Regards
    Girish

  • How to collapse a drill down report

    Hi All,
    I have quick question on drill down report. I drill down from year to quarter / month / week and I get correct output. Now our client wants to collapse it back to year level. Is it possible and how?
    Thanks in advance

    Refer to this, it may be helpful
    http://prasadmadhasi.com/2011/12/15/hierarchicalnavigationinobiee11g/
    https://blogs.oracle.com/robreynolds/entry/obiee_11g_new_feature_-_hierar                                                                                                                                                                                                                                                                                                                                                                       

  • How to properly enable drill-down capability

    Dear Experts,
    I am trying to enable drill-down to my existing stacked bar chart.  Can someone briefly describe how I can successfully complete this task?
    Thanks in advance,
    Zack H.

    add a series to the chart
    go to properties for the chart
    click Drill Down Option in the properties window
    click Enable Drill down and follow the options
    good luck
    Amr

  • How to add a drill down feature in the Adobe form output

    Hi,
    I am new to adobe forms.I have a requirement where in i need to develop a form which will have diffeerent rows in the output.
    if the user is accessing the form using SAP GUI i need to provide a hyperlink on the row which will have a drill down feature further to have  the details on the row in a tabular form.Please help me on this.Thanks in advance.
    Moderator message: wrong forum, please have a look in the forum for "Adobe Interactive Forms".
    Edited by: Thomas Zloch on Apr 7, 2011 9:44 AM

    Hi,
    Refers the following links.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/4fd2d690-0201-0010-de83-b4fa0c93e1a9
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5f27e290-0201-0010-ff82-c21557572da1
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70c9a954-aa20-2a10-64bb-ea0835204e03
    Thanks
    Abhilasha.

  • How to create a drill down in crosstab?

    Hi All,
      I have created a crosstab in CRXI repoprt. Now I'm trying to create a drill down in it. The crosstab is very simple.
    Data in table is as:
    SUBJECT   DATE    YIELD PCT
    Browser   04/11    78.90
    Radio     04/13    90.00
    HTTP      04/22    89.09
    Browser   04/15    90.09
    HTTP      04/15    100.00
    Radio     04/15    100.00
    CROSSTAB Data:
                    Browser   HTTP     Radio
    04/11           78.90      0        0
    04/13            0         0        90.00
    04/15           90.09     100.00    100.00
    04/22            0         89.09     0
    Columns are "SUBJECT" and Rows are "DATE" and I have taken "Max of Yield PCT" as Summation field.
    Now If I click on Yeild_PCT data in crosstab, it should drill down. I have created a drill down as Another report. I have tried FormatObject>Hyperlink>"Another Report Object". Copied the yield_PCT column from source report & pasted in "Another Report Object" but it is not working.
    Really appreciate any help.
    Thanks in Advance.

    if you're trying to use drill-down in cross-tabs with report parts you need syntax that is specific to a cross-tab. please look up Report Parts in your Online Help, Index and then go to the Context Scenarios section.
    Cross-tabs
    If the object you copy in your source report is part of a cross-tab, the Context Report Part data context is based on the selected object embedded in the cross-tab. Crystal Reports creates the data context by tracking if the selected object in the cross-tab is a row, column, or cell. Next, the program retrieves row and column names. Then it parses the Design view data context. Finally, it generates the Context Report Part data context by adding the GridRowColumnValue function if the group in the data context formula appears in the row or column names retrieved earlier. You might see, for example, a data context such as:
    "/"GridRowColumnValue("Customer.Country")"/"+GridRowColumnValue("Customer.Region")

  • How to call a drill down report using hyperlink ?

    Can anyone please give an example to call a drill down report using hyper link in Reports 10g ?
    Regards
    Capri !!!

    Hi,
    I've been using this approach in a couple of reports and it works great with one problem. Even if I include the srw.set_hyperlink_attr('target=_new") it still launches the drill report in the current window. When the user hits the back button it doesn't take them back to the main report it takes them back to the reports/rwservlet? page. Can you see if there is anything I'm doing wrong...would be a really cool report if I could force it to open a new window.
    Here is what my code looks like:
    srw.set_hyperlink(:P_SERVER || 'dwn&report=transaction2_v8.rdf' ||
    '&PARAM_COMP_NUM=1' || '&PARAM_ACTV1=' || TRIM(:actvty_cd) || '&PARAM_ACTV2=&PARAM_ACTV3=&PARAM_ACTV4=&PARAM_ACTV5=&PARAM_ACTV6=' ||
    '&PARAM_START_DATE=&PARAM_END_DATE=' || '&PARAM_FY_NUM=' || vYear || '&PARAM_PERIOD=0' || '&PARAM_ACTVTY_GRP=%20' ||
    '&PARAM_LIST=%20' || '&PARAM_START_ACCT_CAT=' || TRIM(vCat) || '&PARAM_END_ACCT_CAT=' || trim(vCat2)|| '&PARAM_SYS_CODE=%20' ||
    '&PARAM_SRC_CODE=%20' || '&PARAM_DATA_TYPE_CD=P' || '&PARAM_ACT_STATUS=%20');
    SRW.SET_TEXT_COLOR('blue');
    srw.set_hyperlink_attrs('target=_new');
    Also I get different behavior if the user saves the PDF and opens the report through their pdf reader.
    Thanks for your help

  • How to create clickable (drill down) Graphs

    Hi Experts,
    I have a requirement in which i want to create clickable(drill down) graph/pie chart.
    I saw SAP standard program "GRAPHICS_IGS_CE_TEST". It works fine for graph display
    but it doesn't provide any drill down option, Although it has some evenhandling for event SAPEVENT.
    But it doesn't seem to work for left click,right click or double click.
    Can you please sugest?
    Thanks
    YG

    Hi Yogesh,
    Try these links, hope it wil help you.
    [Link1|Clickable Graph by ABAP control;
    [Link2|Graph by ABAP control;
    Regards,
    Nidhi Kothiyal

  • "How can I call Drill down report in 10g Without hard code user/password"

    Dear All;
    Can I get the "Pasword" of the login user in oracle, because I want to use in report, i have get the
    User Name and Connecting string already but I can not get the Password. can I anybody tell me
    "How I get the Password in Oracle 10g"
    Give User Name: = SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') FROM DUAL;
    Give DB Name: = SELECT SYS_CONTEXT('USERENV','DB_NAME') FROM DUAL;
    BUT how I get the password............???
    regards;
    Zahid Hussain
    Edited by: zahid9999 on Jun 10, 2010 3:04 AM

    hi
    you can use openDocument for this.
    [http://help.sap.com/businessobject/product_guides/boexir31/en/xi3-1_url_reporting_opendocument_en.pdf]
    I would suggest to use variables that build the HTML code for the hyperlinks dynamically, and display them in your crosstab. Set the display option for the related cells (ie. the cells where your variables are displayed in) so that the cell's contents as interpreted as HTML code.
    Regards,
    Stratos

  • How to attach a drill down report to a form (FDI2)

    Hi,
    I created a report using the "Copy from" functionality in transaction FDI1 copying the standard from SAP to show Due analysis of open items.  I then created a form  (also copied from standard) and adapted that.  But how can I attach that new form to my report ?  If I call up the report in FDI2 I can see at the top of the screen it is attached to the standard form of SAP but I see no functionality anywhere to re-assign to my form.
    thanks
    Hans

    Suresh,
    Hi
    Thanks for the quick response. I think you're right in saying there is no SAP functionality but it seems not logical that it is missing.  So not a bug but an error anyway.  What I did now is to delete the report and form that I had made.  Then in FDI1 created it again but this time without using "Copy from" .  The form is now correctly attached from the start.  I then had to define myself the report characteristics and such but that was ok.  I'll grant points for usefull answer.
    thanks,

  • How to create drill down reports

    pelase help me step to create drill down reports
    Find the manager and their employees Manager names are abc, def employees are abc manager employees are john, lilly.
    def employees are mark,syam
    How can i acheive below format.
    abc-manager
    John
    lilly
    DEF--manager
    Mark
    Syam
    Pelase help me
    Edited by: 893185 on Jun 7, 2012 3:36 PM

    >
    After 213 posts you should have a real handle instead of "893185". Please edit your profile with one as a matter of urgency.
    pelase help me step to create drill down reports
    Find the manager and their employees Manager names are abc, def employees are abc manager employees are john, lilly.
    def employees are mark,syam
    How can i acheive below format.
    abc-manager
    John
    lilly
    DEF--manager
    Mark
    SyamSounds like homework.
    How to Create a Drill Down Report
    Don't see the relevance of this format to "drill down reports". What is drilling down to where?

  • Dvt:pivotTable question how to drill-down?

    Hello All,
    How can I implement drill down functionality in <dvt:pivotTable>
    with drillingEnabled=true
    I need to know, when these get called
    drillAction
    drillRequestingListener
    drillRequestedListener
    get called
    Thank you all

    Can anyone please help here, how to implement drilling functionality with pivotTable,
    <pivotTable IterBinding="InvoiceView1Iterator"
    id="InvoiceView11"
    xmlns="http://xmlns.oracle.com/adfm/dvt">
    <pivotTableDataMap>
    <columns>
    <data>
    <item value="EnteredAmt"/>
    <item value="RetAmt"/>
    <item value="RetTaxAmt"/>
    </data>
    </columns>
    <rows>
    <item value="CompCode"/>
    <item value="BName"/>
    </rows>
    </pivotTableDataMap>
    </pivotTable>
    also, its not accesible in backing bean,
    somebody please put some light on this dvt component
    Thank you

Maybe you are looking for