Drill Down Settings
Hi
In BPC for Excel is there a way to default the Drill Down options in Workbook Options to 'Expand by inserting new rows' currently all our workbooks open with 'Expand by overwriting rows', which we never use, so each time we start a new workbook we have to change the setting.
Thanks in advance for your help.
Kiund Regards
Gav
Hi friends,
upto some extent i got required things. I included characterstic 'zregion' in selection criteria step with set of 4 values while designing a frame in cockpit. Now i'm able to see field 'zregion' in drilldown setting option(left side pane of characterstics) and then dragged to right side pane for allowing drill down in frame. Next at presentation mode of frame(cockpit), in for month wise(x-axis,chart type: colon chart) able to see with two expenses. After that i want to drll down on expenses using "parameters" option, it displays list of regions for drill-down. But if i selected any region, it won't show respective regionwise expenses. How can i achieve this?
thanks,
naresh
Similar Messages
-
Managment cockpit(drill down settings)
Hi friends,
At frame level i want to drill down on particular characterstic eg: region(zregion). what setting i have to made inorder to see 'zregion' field in defining: "Drill down settings"(inside screen, left side list of characterstics) for management cockpit? In selection criteria while defining frame, do i have to give all region values in order to select one of region values through "parameters" option?
Actually i'm displyaing expenses, eg: exp1 & exp2 on month wise. User wants to see on regionwise these two expenses in the same graphic frame. I want to give through "parameters" option. How can i achieve this?
thanks,
nareshHi friends,
upto some extent i got required things. I included characterstic 'zregion' in selection criteria step with set of 4 values while designing a frame in cockpit. Now i'm able to see field 'zregion' in drilldown setting option(left side pane of characterstics) and then dragged to right side pane for allowing drill down in frame. Next at presentation mode of frame(cockpit), in for month wise(x-axis,chart type: colon chart) able to see with two expenses. After that i want to drll down on expenses using "parameters" option, it displays list of regions for drill-down. But if i selected any region, it won't show respective regionwise expenses. How can i achieve this?
thanks,
naresh -
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 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
PHello 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 -
In SQL Server Reporting Services (SSRS), drill-down is an action we can apply to any report item to hide and show other report items. They all are ways that we can organize and display data to help our users understand our report better. In this article,
we are talking about how to use parameter to control the Expand/Collapse drill-down options in SSRS report.
Consider that the report has a dataset (dsSales) with following fields: SalesTerritoryGroup, SalesTerritoryCountry, CalendarYear, SalesAmount.
1. The report has the following group settings:
Parent Group: SalesTerritoryGroup
Child Group: SalesTerritoryCountry
Child Group: CalendarYear
Details: SalesAmount
2. Add three parameters in the report:
GroupExpand:
Available Values: “Specify values”
Label: Yes Value: Yes
Label: No Value: No
Default Values: “Specify values”
Value: Yes
CountryExpand:
Available Values: “Specify values”
Label: Yes Value: =IIF(Parameters!GroupExpand.Value="No",Nothing,"Yes")
Label: No Value: No
Default Values: “Specify values”
Value: =IIF(Parameters!GroupExpand.Value="No","No","Yes")
YearExpand:
Available Values: “Specify values”
Label: Yes
Value: =IIF(Parameters!GroupExpand.Value="No" or Parameters!CountryExpand.Value="No",Nothing,"Yes")
Label: No Value: No
Default Values: “Specify values”
Value: =IIF(Parameters!GroupExpand.Value="No" or Parameters!CountryExpand.Value="No","No","Yes")
3. Right click SalesTerritoryCountry icon in the Row Groups dialog box, select Group Properties.
4. Click Visibility in the left pane. Select “Show or hide based on an expression” and type with following expression:
=IIF(Parameters!GroupExpand.Value="Yes", False, True)
Select “Display can be toggled by this report item” option, and select “SalesTerritoryGroup” in the drop down list.
5. Use the same method setting CalendarYear, (Details) drill-down with following expression:
=IIF(Parameters!CountryExpand.Value="Yes", False, True)
=IIF(Parameters!YearExpand.Value="Yes", False, True)
6. Click SalesTerritoryGroup text box in the tablix. Select InitialToggleState property in the Properties dialog box, and type following expression:
=IIF(Parameters!GroupExpand.Value="Yes", True, False)
7. Use the same method setting SalesTerritoryCountry, CalendarYear text box with following expression:
=IIF(Parameters!CountryExpand.Value="Yes", True, False)
=IIF(Parameters!YearExpand.Value="Yes", True, False)
After that, when we preview the report, we can use these three parameters to expand/collapse drill-down.
Note:
In our test, we may meet following issue. We can check the expression of InitialToggleState property to troubleshooting the issue.
Applies to
Reporting Services 2008
Reporting Services 2008 R2
Reporting Services 2012In SQL Server Reporting Services (SSRS), drill-down is an action we can apply to any report item to hide and show other report items. They all are ways that we can organize and display data to help our users understand our report better. In this article,
we are talking about how to use parameter to control the Expand/Collapse drill-down options in SSRS report.
Consider that the report has a dataset (dsSales) with following fields: SalesTerritoryGroup, SalesTerritoryCountry, CalendarYear, SalesAmount.
1. The report has the following group settings:
Parent Group: SalesTerritoryGroup
Child Group: SalesTerritoryCountry
Child Group: CalendarYear
Details: SalesAmount
2. Add three parameters in the report:
GroupExpand:
Available Values: “Specify values”
Label: Yes Value: Yes
Label: No Value: No
Default Values: “Specify values”
Value: Yes
CountryExpand:
Available Values: “Specify values”
Label: Yes Value: =IIF(Parameters!GroupExpand.Value="No",Nothing,"Yes")
Label: No Value: No
Default Values: “Specify values”
Value: =IIF(Parameters!GroupExpand.Value="No","No","Yes")
YearExpand:
Available Values: “Specify values”
Label: Yes
Value: =IIF(Parameters!GroupExpand.Value="No" or Parameters!CountryExpand.Value="No",Nothing,"Yes")
Label: No Value: No
Default Values: “Specify values”
Value: =IIF(Parameters!GroupExpand.Value="No" or Parameters!CountryExpand.Value="No","No","Yes")
3. Right click SalesTerritoryCountry icon in the Row Groups dialog box, select Group Properties.
4. Click Visibility in the left pane. Select “Show or hide based on an expression” and type with following expression:
=IIF(Parameters!GroupExpand.Value="Yes", False, True)
Select “Display can be toggled by this report item” option, and select “SalesTerritoryGroup” in the drop down list.
5. Use the same method setting CalendarYear, (Details) drill-down with following expression:
=IIF(Parameters!CountryExpand.Value="Yes", False, True)
=IIF(Parameters!YearExpand.Value="Yes", False, True)
6. Click SalesTerritoryGroup text box in the tablix. Select InitialToggleState property in the Properties dialog box, and type following expression:
=IIF(Parameters!GroupExpand.Value="Yes", True, False)
7. Use the same method setting SalesTerritoryCountry, CalendarYear text box with following expression:
=IIF(Parameters!CountryExpand.Value="Yes", True, False)
=IIF(Parameters!YearExpand.Value="Yes", True, False)
After that, when we preview the report, we can use these three parameters to expand/collapse drill-down.
Note:
In our test, we may meet following issue. We can check the expression of InitialToggleState property to troubleshooting the issue.
Applies to
Reporting Services 2008
Reporting Services 2008 R2
Reporting Services 2012 -
Having Trouble with Drill Down Report
Hello,
I am having issues with getting Carl's example to work. http://htmldb.oracle.com/pls/otn/f?p=11933:13
This is my main query:
SELECT
AD_SPRIDEN_ID,
AD_FIRST_NAME_PREF,
AD_LAST_NAME_PREF,
AD_SPOUSE_BANNER_ID,
AD_SPS_PREF_FIRST_NAME,
AD_SPS_PREF_LAST_NAME,
AD_ATHL_MATCH_GIFTS_CFY,
AD_CURES_MATCH_GIFTS_CFY,
AD_UNRES_MATCH_GIFTS_CFY,
AD_ENDOW_MATCH_GIFTS_CFY,
AD_FACIL_MATCH_GIFTS_CFY,
AD_SPS_ATHL_MATCH_GIFTS_CFY,
AD_SPS_CURES_MATCH_GIFTS_CFY,
AD_SPS_UNRES_MATCH_GIFTS_CFY,
AD_SPS_ENDOW_MATCH_GIFTS_CFY,
AD_SPS_FACIL_MATCH_GIFTS_CFY,
FROM MATCHING_GIFTSI want to drill down on past fiscal year data:
SELECT
AD_SPRIDEN_ID,
AD_FIRST_NAME_PREF,
AD_LAST_NAME_PREF,
AD_SPOUSE_BANNER_ID,
AD_SPS_PREF_FIRST_NAME,
AD_SPS_PREF_LAST_NAME,
AD_ATHL_MATCH_GIFTS_CFY_1,
AD_CURES_MATCH_GIFTS_CFY_1,
AD_UNRES_MATCH_GIFTS_CFY_1,
AD_ENDOW_MATCH_GIFTS_CFY_1,
AD_FACIL_MATCH_GIFTS_CFY_1,
AD_ATHL_MATCH_GIFTS_CFY_2,
AD_CURES_MATCH_GIFTS_CFY_2,
AD_UNRES_MATCH_GIFTS_CFY_2,
AD_ENDOW_MATCH_GIFTS_CFY_2,
AD_FACIL_MATCH_GIFTS_CFY_2,
AD_ATHL_MATCH_GIFTS_CFY_3,
AD_CURES_MATCH_GIFTS_CFY_3,
AD_UNRES_MATCH_GIFTS_CFY_3,
AD_ENDOW_MATCH_GIFTS_CFY_3,
AD_FACIL_MATCH_GIFTS_CFY_3,
AD_ATHL_MATCH_GIFTS_CFY_4,
AD_CURES_MATCH_GIFTS_CFY_4,
AD_UNRES_MATCH_GIFTS_CFY_4,
AD_ENDOW_MATCH_GIFTS_CFY_4,
AD_FACIL_MATCH_GIFTS_CFY_4,
AD_SPS_ATHL_MATCH_GIFTS_CFY_1,
AD_SPS_CURES_MATCH_GIFTS_CFY_1,
AD_SPS_UNRES_MATCH_GIFTS_CFY_1,
AD_SPS_ENDOW_MATCH_GIFTS_CFY_1,
AD_SPS_FACIL_MATCH_GIFTS_CFY_1,
AD_SPS_ATHL_MATCH_GIFTS_CFY_2,
AD_SPS_CURES_MATCH_GIFTS_CFY_2,
AD_SPS_UNRES_MATCH_GIFTS_CFY_2,
AD_SPS_ENDOW_MATCH_GIFTS_CFY_2,
AD_SPS_FACIL_MATCH_GIFTS_CFY_2,
AD_SPS_ATHL_MATCH_GIFTS_CFY_3,
AD_SPS_CURES_MATCH_GIFTS_CFY_3,
AD_SPS_UNRES_MATCH_GIFTS_CFY_3,
AD_SPS_ENDOW_MATCH_GIFTS_CFY_3,
AD_SPS_FACIL_MATCH_GIFTS_CFY_3,
AD_SPS_ATHL_MATCH_GIFTS_CFY_4,
AD_SPS_CURES_MATCH_GIFTS_CFY_4,
AD_SPS_UNRES_MATCH_GIFTS_CFY_4,
AD_SPS_ENDOW_MATCH_GIFTS_CFY_4,
AD_SPS_FACIL_MATCH_GIFTS_CFY_4
FROM MATCHING_GIFTSExample if the user clicks on AD_ATHL_MATCH_GIFTS_CFY in the first query, I want the following fields to display (note that these are colums. I would want the actual value of the columns to display):
AD_ATHL_MATCH_GIFTS_CFY_1
AD_ATHL_MATCH_GIFTS_CFY_2
AD_ATHL_MATCH_GIFTS_CFY_3
AD_ATHL_MATCH_GIFTS_CFY_4
or if the user selected AD_SPS_CURES_MATCH_GIFTS_CFY, I want the following to display:
AD_SPS_CURES_MATCH_GIFTS_CFY_1
AD_SPS_CURES_MATCH_GIFTS_CFY_2
AD_SPS_CURES_MATCH_GIFTS_CFY_3
AD_SPS_CURES_MATCH_GIFTS_CFY_4
Any help is appreciated,
KellyHi Kelly,
OK - this is what I've done:
1 - Created two application items through Shared Components:
G_CITY_ID
G_DEPTNO
these will be used to pass CITY_ID and DEPTNO values from the page to application processes using Ajax
2 - Created two application processes through Shared Components, with the following settings:
Process Point: On Demand: Run this application process when requested by a page process
Name: GET_DEPARTMENTS
Type: PL/SQL Anonymous Block
Process Text:
BEGIN
HTP.P('<table class="t17Standard" cellspacing="0" cellpadding="0" border="0" summary="">');
HTP.P('<TR>');
HTP.P('<TH class="t17ReportHeader">DEPTNO</TH>');
HTP.P('<TH class="t17ReportHeader">DNAME</TH>');
HTP.P('</TR>');
FOR x IN (SELECT DEPTNO, DNAME FROM DEPT WHERE CITY_ID = :G_CITY_ID ORDER BY DNAME)
LOOP
HTP.P('<TR>');
HTP.P('<TD class="t17data">' || x.DEPTNO || '</TD>');
HTP.P('<TD class="t17data">' || x.DNAME || '</TD>');
HTP.P('</TR>');
END LOOP;
HTP.P('</table>');
END;This will return a list of departments for a selected CITY_ID value in the report
Process Point: On Demand: Run this application process when requested by a page process
Name: GET_EMPLOYEES
Type: PL/SQL Anonymous Block
Process Text:
BEGIN
HTP.P('<table class="t17Standard" cellspacing="0" cellpadding="0" border="0" summary="">');
HTP.P('<TR>');
HTP.P('<TH class="t17ReportHeader">EMPNO</TH>');
HTP.P('<TH class="t17ReportHeader">ENAME</TH>');
HTP.P('<TH class="t17ReportHeader">SAL</TH>');
HTP.P('<TH class="t17ReportHeader">COMM</TH>');
HTP.P('</TR>');
FOR x IN (SELECT EMPNO, ENAME, TO_CHAR(NVL(SAL,0)) SAL, TO_CHAR(NVL(COMM,0)) COMM FROM EMP WHERE DEPTNO = :G_DEPTNO ORDER BY UPPER(ENAME))
LOOP
HTP.P('<TR>');
HTP.P('<TD class="t17data">' || x.EMPNO || '</TD>');
HTP.P('<TD class="t17data">' || x.ENAME || '</TD>');
HTP.P('<TD class="t17data">' || x.SAL || '</TD>');
HTP.P('<TD class="t17data">' || x.COMM || '</TD>');
HTP.P('</TR>');
END LOOP;
HTP.P('</table>');
END;This will return a list of employees for a selected DEPTNO value in the report
3 - On the report page's HTML Header setting, I have entered:
<script type="text/javascript">
function getEmployees(deptno)
var d = document.getElementById("DEPTNO_" + deptno);
if (d.style.display == "none")
var g = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=GET_EMPLOYEES',0);
g.add('G_DEPTNO',deptno);
var gRet = g.get();
d.innerHTML = gRet;
d.innerHTML += "";
d.style.display = "block";
else
d.style.display = "none";
function getDepartments(city)
var d = document.getElementById("CITY_ID_" + city);
if (d.style.display == "none")
var g = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=GET_DEPARTMENTS',0);
g.add('G_CITY_ID',city);
var gRet = g.get();
d.innerHTML = gRet;
d.innerHTML += "";
d.style.display = "block";
else
d.style.display = "none";
</script>These are two javascript functions that will be called when an item is clicked in the report.
Each runs an Ajax call to the appropriate application process, passes the selected DEPTNO or CITY_ID value into the application items, runs the process, retrieves the results and then inserts that into a DIV next to the item in the report and makes that visible. Clicking the link again just hides the DIV
4 - In the report definition, on the DEPTNO column definition, I have set the following HTML Expression:
<a href="#" onclick="getEmployees('#DEPTNO#');">#DEPTNO#</a><div id="DEPTNO_#DEPTNO#" style="display:none"></div>This creates the DEPTNO as a link and clicking the link runs the getEmployees javascript. Next to the link is a DIV tag with a unique ID (created using #DEPTNO# - which is replaced by the actual DEPTNO value on the row)
5 - I have done a similar thing on the CITY_ID setting:
<a href="#" onclick="getDepartments('#CITY_ID#');">#CITY_ID#</a><div id="CITY_ID_#CITY_ID#" style="display:none"></div>And, that should be it - the user clicks the "link", the javascript is called, the clicked value is passed into an application item, which, in turn, filters the required data. This data is formatted into a table and passed back to the page. The javascript then receives this and inserts it into the DIV next to the link and displays it.
I think the CITY_ID column is one that I added to the standard DEPT table, so you may not have that one, but hopefully you get the idea from the above
Also note that I have used the Theme 17 Standard report template - you will need to adjust the class names in the application processes if you are using a different theme/template
I hope that all makes sense!
Andy -
Drill down on posting date and Document number
Hello Gurus,
In a Bex report, I am looking at account balance on a keydate for a G/L Account. When I drill down based on posting date I do not see any values for the keyfigure 'Account balance as on key-date'....But after I drill down on posting date --> document number I get to see values for thie key figure.
What is this strange behaviour? Kindly explain.
Regards,
KPHi KK,
This may be due to the values/quantities having different UOM or currency for different documents/posting date.For example, Usually when there are mixed values like this, the aggregated value is not displayed, instead a '*' is displayed in the report result. However there is a setting in BW where you can mention how to handle such mixed values.
So I suggest you first check the currencies for the amount at the posting date/document level(when you drill down). If they are different then check the settings in the transaction SPRO --> SAP Business Information Warehouse --> Report-relevant settings --> General Reporting settings in the Business Explorer --> Presenting the numeric value in the Business Explorer.
Here check the value maintained for 'Mixed Values'. If it is blank, then this is the reason that no value is displayed.
Regards,
Shilpa -
Bubble Chart drill down issues
I have a filter and a bubble chat with 7 series. The chart is showing up bubbles with different size and colors as per the settings when I chnage the filter
The problem is with drill down
I want to drill down to a Bar chart when I click on bubbles. Each bubble click will drill down data into that bar charchart as a pop up. I know how to do it as I have done it in the past with other components.
But when I use drill down with bubble chart, I have to assign separate destination area for each series which makes it difficult to drill down into a chart. What i want is the bubbles to drill down data into a single row so that I can map the Y-axis of chart component to that row and X axis as fixed labels. But I am not able to do that. Moreover once inserted there is no way to clear the destination cells.
However if I use data in range options in bubble chart then I can use drill down as I get only one series in that case. But that method also has limitations.
1. I am not able to display series name on the bubbles. It doesn't make any sense to show bubbles without any labels.
2. All bubbles are of same color.
Is it possible to overcome above two limitations when using data in range option?
ThanksHi Tarun,
as a workaround you could define a special area as mapping area for the X-Y-chart.
This area is filled via excel formulas from the bubble chart drill down destinations. You can concatenate the values from the drill down target areas, like "=A4&A5" etc. Make sure to clear all cells except the actual drill down target cells.
Hope this helps,
best regards
Heiko -
Drill Down in Pie Chart not working in IE8 / Mozilla 5
Hi Experts,
In my dashboards, drill down feature in Pie charts are not working if the flash is viewed in IE8 / Mozilla Firefox 5.
In IE7 it is working. Is there any browser settings required for this ? Pls suggest.
Drill down in column chart is working fine.
Xcelsius Version: Xcelsius 2008 SP3 FP 3.5
Browser Version: Firefox 5.0 / IE 8
Many thanks,
PASGHi,
You may want to download Xcelsius 2008 with SP4.
SP4 will support the newer IE 8 (32 bits) for Xcelsius related issue.
As for FireFox 5 that came out last week, this won't be supported anytime soon.
Regards,
Ken
Edited by: Ken Low on Jun 27, 2011 8:50 AM -
How does OBI decide what column to display when drilling down on hierarchy
Hi All,
Lets say I have a logical table called Custom_Account which has Level 1 through 10, where 1 being the total level and 10 being the detail level. I have created a level based hierarchy.
On the total level, lets say I have 2 columns called Hier1_code and Hier1_name, and in the next level, I actually have four columns, Hier2_code, hier2_name, hier2_desc, hier2_details.
Now what configuration settings do I need to make in order for OBIEE to display all the fouce columns from level 2 when a user clicks on a column from level1?
Meaning, how do I define the columns that would be displayed upon drilling down from a parent level to child level.
Can someone please give some clear explanation, as I am confused here.
Thank you,
Peter.Hi Peter,
After you have defined a hierarchy, you could open the properties of any level in the hierarchy and set the 'Use for Display checkbox' in the "Keys" tab for all the columns you would like to be displayed at this level.
Hope this helps.
Thank you,
Dhar -
In input form- for the feilds, i used as Drill down, and selected entry list as dynamic in control properties.
when i publish in Portal , i can see list of values ( A- F) for input feilds.-when i select the one value ( A) and i see the output aswell.
Issue is when i want to see remaining values , i can only value A not others.how do i see other values as well???
I have attached a screenshot of the model and the dynamic dropdown list settings.
http://img111.imageshack.us/my.php?image=inputform1re2.png.
Thank you
Sidhu
Edited by: sidhu ch on Feb 18, 2008 9:50 AMHi ,
I have doubt regarding ur Question.
Where you want see the Remaining values i.e From B-F .
your are already getting IN Portal wright.
Is you added them (B-F)In additional Entries Options.
Beacuse your are doing Dyanamic Entry List right you can see the entries from the System only.
If you have your own Entries you can go for Static Emtry List.
Is it Clear?
Otherwise come back to me agian .
Regards,
Govindu -
Query Drill Down without affecting the structure layout
Hi All,
We have a query which has structure both in Rows & Columns . When we drilldown ( WAD ) the drilldown characteristics goes within the structure . What i want is even we drilldown the sturcture layout shoud not chnage .
For example the structure is as below
2007 2008
Revenue 100 200
Cost 50 100
Margin 50 100
say we drill down by material , then i want the layout to be like this
Material 0001 2007 2008
Revenue 50 100
Cost 25 50
Margin 25 50
Material 0002
Revenue 50 100
Cost 25 50
Margin 25 50
currently we are getting
2007 2008
Revenue
Material 001 50 100
Material 002 50 100
Cost
Material 001 25 50
Material 002 25 50
Margin
Material 001 25 50
Material 002 25 50
We are currently in BW 3.5 version . Is there any settings in WAD or anywhere , by which the drilldown should not affect the structure layout. ( Please note i dont want to fix the drilldown in query or swap axis during navigation to get the desired result ).
Kind Regards
SudipHi,
For the example shown by you, does not require 2 structure, You can doing it using One structure.
Consider the following in Rows and Columns:
Rows:
1. Material or other cahar and material in Free char.
Columns:
1. Fiscal Year
2. Structure comprising the KFs Revenue, cost and Margin.
Try this it should solve.
Regards,
Vishwa. -
Drill/Down don't work and Characteristic is deleted after filter in BEx Ana
Hi All, please help me experts
I have 2 issue:
1.- When I execute a Query in BEx Analyzer I got the first result, I can add other characteristics just to click on this.. or with context menu.. but later If I try to move de order of columns in the report the function for drill down doesn't work. Then, I need to click on Design mode and then click off design mode... and the function for drill and down is actived, then only I can click on the characteristics and move to other column into the report. Please if you can tell how can I activate this functionality without need to move to design mode..
2.- When one characteristics is filter in to the report, example select some values for this characteristics and click on execute, I get the result but this characteristics dissapear form the report.
Please help me I will assign points for the answers.
Alice1. You will find this option beside ? in Add-Ins. In that Settings --> BW Server Connection.
+ Not I didn't find... for example I saw... File.. Edit...view.. Insert... and others exactly like when you enter in excel ... the only difference it's that I saw activated the tool bar for bex analyzer.. on where I saw .. design mode... refresh..etc.+
2. If you select the field in Free characteristics and restrict it with a variable in query designer mode, you will get that characteristic in variable screen and you can give the selection and you will not get that charcteristic in the output as you have taken that in free characteristic. Only if you do drilldown accross rows for that characteristic, then it will appear.
If you take that into Rows in query designer mode, then you will get the same for variable selection and as well as in the output without drilldown accross rows. It will be displayed automatically.
+The clear example is: I have one free characteristic in report, like 0MATERIAL, this characteristics didn't have any restric value... then the user add 0MATERIAL into report just for see more details... later if the user filter 0MATERIAL with some values and click ok, the column 0MATERIAL dissapear from the report +
did you have another idea to solve this?¡
Thank you a lot.
alice -
How to Drill Down Between Queries
Hi Experts,
I am fairly new to developing reports, so at the current system there are 2 queries Summary(on a Cube) and Detail(on ODS). These are independent queries rt now. I want to pass Cost center and fiscal Period as parameters from Summary to Detail queries and make it a drill down report so that for each cost element we can get the document details. I have read the other posts relavant to how to drill down while passing parameters but dint understand much out of those.
Can anyone please lay down a step - step approach in doing this? Or share any kind of explanatory documents.
Thanks
SarahHi Sarah,
Each response you have received so far is recommending the Report-Report Interface (RRI). It is a powerful and useful technique. It is simple to do (minutes) and it works in all current and future front-end environments.
The problem with using is that users need a little bit of training. And the results they get are ALWAYS exactly as the "receiver" query is displayed in its Global Definition.
If your users are using Excel and you want them to use a standard template workbook for the receiver, this is difficult (not impossible) to obtain because you need to "touch" each of their PCs and ensure that they have the correct settings on their PC each time you have an upgrade of the front-end (either BW upgrade or PC upgrade).
In most peoples' opinion, the benefits of RRI outweigh the disadvantages.
There is another option if you are using Excel. You can put both queries in a single workbook and use the Business Explorer Analyzer's API functions to create a "Jump" from query 1 to query 2.
You can set this up to occur every time that query 1 is refreshed. Or, your user can select one (or several) results from query 1 to make the jump to query 2.
The great disadvantage of this alternative approach is that it requires use of both Visual Basic and the BEx API functions. Not very many people are good at either one of these. But, they are simple to learn and once you do, there is no end to the amount of customization that can be obtained.
If you want more information about this approach, post again. Or, do a search on previous posts that I have made (from these you will find the names of others who are very knowledgeable in this approach as well.)
Also, here is a link to some examples of BEx API functions that accompany an article written by Joerg Boeke
http://www.bwexpertonline.com/downloads/boeke04.doc
- Pete -
Hi,
I am using the product hierarchy in the report and its used for drilling down. when i say drilldown the report is not working and TIME OUT warning is coming.
I have run the same report in quality system which contains more or less the same data. it works fine. all the packages are same in both the systems ?
any one have an idea of why its behaving like that?
Best Regards
BhavBhavani,
Welcome to SDN ...
what is the timeout set in the servers .... Check in your Quality systems for the profile settings in RZ10 for the timeout setting and have the same in the other server as well..
otherwise leave it blank if you do not want any time out.
Arun
Assign points if useful
Message was edited by:
Arun Varadarajan
Maybe you are looking for
-
Another odd thing that has happened, Bing took over my blank page and had a searchbar on it, but that has suddenly disappeared, I'm not sad at all, but am wondering if it is connected.
-
Mini display port to vga not detected
Hi, Can't put the mini displayport to VGA adapter working in my macbook pro 13" running snow leopard. To debug I try a mini displayport to DVI and it works fine, so I think that it is not an hardware problem, unless VGA adapter uses extra pins from t
-
Photos on iphone 5c as well as my ipad?
I would like to have all my photos on my Iphone 5c and Ipad 2 to be synced the same. Could someone help me with the process of how this is done. Thank you!
-
RDA for Transactional Data Changes (But needs to load as Master Data to IO)
Hi, I would like to use RDA to load Data changes into IO (Not for DSO). I tried using this, i can able to load data into PSA. But, from PSA to IO, No datapackage is getting transfered. i.e. Transfered records = 0. We considered several options i.
-
JComboBox/setSelectedIndex
I'm having a problem with JComboBox's setSelectedIndex. The JComboBox is in a table cell, and I want to be able to set the index of the combobox to 0 if the user clicks a button on the window. The code that does the setSelectedindex is simple and loo