Drill down in screen
hi
i have created a screen with table control with number of columns and rows. i want the user to drilldown to transaction IQ03 when he double click on secific cell.
is it possible ? if yes can i get an example ?
thanks
Hi,
Try to use following code :
* Form user_command
FORM user_command USING r_ucomm LIKE sy-ucomm "#EC CALLED
rs_selfield TYPE slis_selfield.
* user command for calling tcode IQ03 (Material Serial Number Display).
CASE r_ucomm.
WHEN '&IC1'.
* Read the record from the internal table on which is double clicked.
READ TABLE gt_output INTO gw_output INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID 'MAT' FIELD gw_output-matnr.
CALL TRANSACTION 'IQ03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM. " USER_COMMAND
Hope this helps.
Regards,
Chandravadan
Edited by: Chandravadan Jaiswal on Mar 9, 2010 3:17 PM
Similar Messages
-
Refresh Drill down report screen
Hi,
I have a report that lists number of sales Order(Blocked, Incomplete) in two seperate lines. If you click(using AT LINE-Selection) on either of the line depending on whether you click on Blocked Sales Order/ Incomplete Sales Order a detailed report is displayed in an ALV format with the respective data. If I make changes to the sales order the ALV list is refreshed, but when I'm back on the summary screen I get the old summary displayed. If I use the routine to display the summary in the AT LINE-SELECTION section I get the new summary report. But then I need to hit BACK twice to get back to the initial selection screen.
Is there a way out to solve this that I do not have to hit BACK button twice.
Thanks,
ALAM.use,
RS_SELFIELD-REFRESH = 'X'.
write the above statement in YOUR USER COMMAND FORM routine.
here is the part of my code, which is doing updating the table & then again i am fetching the data .
FORM F_USER_COMMAND_MODIFY USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA : L_ANSWER TYPE C.
IF R_UCOMM = C_FC_SAVE.
*--User Selected SAVE button.
LOOP AT IT_ZBCAR50_TEMP.
*--Check the entered values are valid or not.
IF NOT ( IT_ZBCAR50_TEMP-STATUS = 'A' OR
IT_ZBCAR50_TEMP-STATUS = 'C' OR
IT_ZBCAR50_TEMP-STATUS = 'E' ).
*--User Entered invalid value for STATUS field,so Display Error Msg
MESSAGE E000 WITH 'Invalid value '''
IT_ZBCAR50_TEMP-STATUS
''' for Status in the Record # '
SY-TABIX.
ENDIF.
ENDLOOP.
*--Modify ZBCAR50 Table with the changed values.
MODIFY ZBCAR50 FROM TABLE IT_ZBCAR50_TEMP.
IF SY-SUBRC = 0 .
COMMIT WORK AND WAIT.
*--Display message with Success in Updating database
MESSAGE I000 WITH SY-DBCNT
' Record(s) has been Updated'.
CLEAR :
IT_ZBCAR50,
IT_ZBCAR50[].
*--Get Data again from database.
<b> PERFORM GET_DATA. "here again i am fetching from Databse</b>
ELSE.
*--Error occured
MESSAGE I000 WITH 'Error occured in Modifying the database'.
ENDIF.
ENDIF.
ENDFORM. "F_USER_COMMAND_MODIFY -
Drill down to all screens of XK03 in ALV report from CALL TRANSACTION
HI!
I have created a vendor master report which calls the XK03 transaction when the vendor is clicked on on the ALV output. It takes me to the XK03 address screen and when I try clicking to go to the next screen it says the last screen is reached , 'Do you wnat to cancell processing'. I want to enable the program to goto the next screens as well like the controll screen and the accounting screen ect in my drill down on call transaction.
following si my code section which does it.
CASE rs_selfield-fieldname.
WHEN 'LIFNR'.
* Set parameter ID for transaction screen field
CHECK NOT wa_vend-lifnr IS INITIAL.
SET PARAMETER ID 'LIF' FIELD wa_vend-lifnr.
SET PARAMETER ID 'BUK' FIELD wa_vend-bukrs.
SET PARAMETER ID 'EKO' FIELD wa_vend-ekorg.
SET PARAMETER ID 'KDY' FIELD kdy_val.
CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN. "EC needed
ENDCASE.
ENDCASE.
Thanks and regards,
AaravHi,
Your code seems to be right.
Try writing the code as the below format.
CASE SY-UCOMM.
* CHECK FUNCTION CODE
WHEN '&IC1'.
* CHECK FIELD CLICKED ON WITHIN ALVGRID REPORT
IF SELFIELD-FIELDNAME = 'LIFNR'.
* READ DATA TABLE, USING INDEX ROW USER CLICKED ON
READ TABLE IT_FINAL INTO WA_FINAL INDEX SELFIELD-TABINDEX.
* SET PARAMETER ID FOR TRANSACTION SCREEN FIELD
SET PARAMETER ID 'BES' FIELD WA_FINAL-LIFNR.
* EXECUTE TRANSACTION 'XK03',AND SKIP INITIAL DATA ENTRY SCREEN.
CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
Thanks
Arbind -
Drill Down Report in screen painter
Hi Experts,
I have a requirement in dialog programming/screen painter to create a 2 level drill down report. for eac page of the report, it should only contain 10 entries then to view the other entries (11 and up), the button for next page should be click (there is also back button).
First question is how will I have the drill down report (alv list type?) in screen painter?
Second question is how should I process the logic mentioned above (next and back) in screen painter/dialog programming?
Thanks in advance for all teh support. Points will be rewarded.
Cheers,
KurttHai,
Go thru this Threads u ll get an idea,
Drill down report help
Re: regarding Drill Down Reporting
drill down capabilities for an alv grid display field using oops concept
Regards,
Padmam. -
How to get back to Selection Screen from Drill Down Screen in ALV
Hi All
How can I come back directly to the Selection Screen from the drill down screen of an ALV Report i.e. in an Interactive ALV Report when sy-lsind > 1.
Thanks
KulpreetTry to use ....
SET SCREEN 0.
LEAVE SCREEN.
Regards,
Rich Heilman -
Not able to drill down S_ALR_87013558 in reports
Hello Experts,
I am in strange situation where in I am not able to drill down my budget report S_ALR_87013558 in my development client. But it is working fine in production client.
What could be the reason.?
Please suggest.
Thanks,
Kumar SrinivasanHi Kumar,
Follow below steps in sequence.
1. Please execute CJE2.
2. Double Click on report 12KST1A. Message will come "You are changing an SAP delivery object". Press the tick mark.
3. On Output Type tab, you must have clicked on radio button "Graphical Report Output". Please change the radio button classical drilldown and check "Available on Selection Screen" at the buttom.
4. Save it.
Check your report again and you will have an option there.
Regards,
Amit -
Alv : drill down not working.
Hi All,
Could you please tell me whats wrong with this code ? its not drilling down to show 'ebeln' with me22n. Am I missing something ?
Please help.
Hrishi
code is :-
REPORT Z_VENDOR_BACKORDER_REPORT_ALV .
TABLES: EKKO, LFA1, MAKT, EKET, EKPO, AFPO, MARC.
*Data Declaration
DATA: BEGIN OF ITAB OCCURS 0 ,
ebeln LIKE ekko-ebeln , " PO number
aedat LIKE ekko-aedat , " creation date
ebelp LIKE ekpo-ebelp , " item no
lifnr LIKE ekko-lifnr , " vendor number
name1 LIKE lfa1-name1 , " vendor name
RESWK LIKE EKKO-RESWK , " PLANT NO
MEMORY LIKE EKKO-MEMORY , " ORDER INCOMPLETE
matnr LIKE ekpo-matnr , " material number
werks like ekpo-werks , " plant
txz01 LIKE ekpo-txz01 , " material description
eindt LIKE eket-eindt , " Promised date
menge LIKE eket-menge , " quantity
wemng LIKE eket-wemng , " delivered quantity
netpr like ekpo-netpr , " value in AUD
peinh like ekpo-peinh , " price unit
banfn like ekpo-banfn , " PR no
aufnr like ebkn-aufnr , " Production order no
MAABC LIKE MARC-MAABC , " MATERIAL ABC Indicator
maktx like makt-maktx , " material long description
open_quant type p decimals 2, " quantity - delivered
VALUE TYPE p decimals 2, " $ VALUE * OPEN QUANTITY
end of ITAB.
data: wa like itab.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: TEMP TYPE EKKO-LIFNR.
data: opt like CTU_PARAMS.
*DATA: WA TYPE FINAL.
all ALV declarations
type-pools: slis. "ALV Declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv with header line,
G_REPID TYPE SY-REPID,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
COL_POS TYPE I.
-----------------SELECTION SCREEN----------------------
selection-screen begin of block b1 with frame title text-001.
select-options VENDORNO for ekko-lifnr.
select-options MATERIAL for ekpo-matnr.
SELECT-OPTIONS PLANT FOR EKKO-RESWK.
select-options REQDAT for eket-eindt.
selection-screen end of block b1.
*................... GET DATA..................
START-OF-SELECTION.
PERFORM GATHER_DATA.
END-OF-SELECTION.
FORM USER_COMMAND USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
CASE rs_selfield-sel_tab_field.
WHEN 'ITAB-EBELN'.
CHECK NOT rs_selfield-value IS INITIAL.
SET PARAMETER ID 'BUS' FIELD rs_selfield-value.
CALL TRANSACTION 'ME22N' AND SKIP FIRST SCREEN.
Do something at 'Sales document type' field selection
when 'ITAB-MATNR'.
SET PARAMETER ID 'BUS' FIELD rs_selfield-value.
CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.
ENDCASE.
ENDCASE.
ENDFORM.
form gather_data.
SELECT EKKO~EBELN
EKKO~AEDAT
EKKO~LIFNR
EKKO~MEMORY
EKKO~RESWK
EKPO~EBELP
EKPO~MATNR
ekpo~werks
ekpo~netpr
ekpo~peinh
ekpo~banfn
ekpo~txz01
makt~maktx
EKET~EINDT
EKET~MENGE
EKET~WEMNG
LFA1~NAME1
INTO corresponding fields of ITAB
FROM (
EKKO inner JOIN EKPO
ON EKKOEBELN = EKPOEBELN
inner JOIN EKET
ON EKPOEBELN = EKETEBELN
AND EKPOEBELP = EKETEBELP
inner JOIN LFA1
ON EKKOLIFNR = LFA1LIFNR
*left outer join makt
*on ekpomatnr = maktmatnr
WHERE EKKO~LIFNR IN VENDORNO
AND EKKO~RESWK IN PLANT
and EKPO~MATNR IN MATERIAL
and ekpo~elikz eq ' '
and ekpo~loekz ne 'L'
and eket~eindt in REQDAT.
append itab.
CLEAR ITAB.
endselect.
clear temp.
sort itab by lifnr.
loop at itab .
ITAB-OPEN_QUANT = ITAB-MENGE - ITAB-WEMNG.
if itab-matnr eq ''.
select single aufnr from ebkn into itab-aufnr where banfn = itab-banfn.
select single matnr from afpo into itab-matnr where aufnr = itab-aufnr.
endif.
select single maktx from makt into itab-maktx where matnr = itab-matnr.
select single maabc from MARC INTO ITAB-MAABC WHERE MATNR = ITAB-MATNR.
ITAB-VALUE = ITAB-NETPR * ITAB-OPEN_QUANT / itab-peinh.
modify itab.
endloop.
SKIP.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'LIFNR'.
fieldcatalog-seltext_m = 'vendor no'.
fieldcatalog-col_pos = 1.
fieldcatalog-outputlen = 15.
fieldcatalog-inttype = 'C'.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'po Number'.
fieldcatalog-col_pos = 2.
fieldcatalog-inttype = 'C'.
fieldcatalog-emphasize = 'C401'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'po date'.
fieldcatalog-col_pos = 3.
fieldcatalog-inttype = 'C'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'item number'.
fieldcatalog-col_pos = 4.
fieldcatalog-inttype = 'C'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-no_zero = 'X'.
fieldcatalog-seltext_m = 'material number'.
fieldcatalog-col_pos = 5.
fieldcatalog-inttype = 'C'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'MAABC'.
fieldcatalog-seltext_m = 'material type'.
fieldcatalog-col_pos = 6.
fieldcatalog-inttype = 'C'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'TXZ01'.
fieldcatalog-seltext_m = 'short text'.
fieldcatalog-col_pos = 7.
fieldcatalog-inttype = 'C'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'MAKTX'.
fieldcatalog-seltext_m = 'long text'.
fieldcatalog-col_pos = 8.
fieldcatalog-inttype = 'C'.
fieldcatalog-outputlen = 15.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'EINDT'.
fieldcatalog-seltext_m = 'date promised'.
fieldcatalog-col_pos = 9.
fieldcatalog-inttype = 'C'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'Quantity'.
fieldcatalog-col_pos = 10.
fieldcatalog-inttype = 'C'.
fieldcatalog-outputlen = 15.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'WEMNG'.
fieldcatalog-seltext_m = 'Delivered'.
fieldcatalog-col_pos = 11.
fieldcatalog-inttype = 'C'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'OPEN_QUANT'.
fieldcatalog-seltext_m = 'Open quantity'.
fieldcatalog-col_pos = 12.
fieldcatalog-inttype = 'C'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-tabname = 'ITAB'.
fieldcatalog-fieldname = 'VALUE'.
fieldcatalog-seltext_m = '$ value'.
fieldcatalog-col_pos = 13.
fieldcatalog-inttype = 'C'.
fieldcatalog-do_sum = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = g_repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
it_fieldcat = fieldcatalog[]
is_layout = GS_layout
IT_SORT = gt_sort
I_DEFAULT = 'X'
I_SAVE = 'X'
is_variant = z_template
tables
t_outtab = ITAB
exceptions
program_error = 1
others = 2.
endform.hi,
please run the code below.
REPORT yfi7g_ing_mic_001 .
*PROGRAM YFI7G_ING_MIC_001.
TABLES: vbak .
TABLES: mara .
TYPES: BEGIN OF tp_vbak ,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
erzet TYPE vbak-erzet,
ernam TYPE vbak-ernam,
vbtyp TYPE vbak-vbtyp,
trvog TYPE vbak-trvog,
auart TYPE vbak-auart,
lifsk TYPE vbak-lifsk,
faksk TYPE vbak-faksk,
waerk TYPE vbak-waerk,
vkorg TYPE vbak-vkorg,
kunnr TYPE vbak-kunnr,
vgbel TYPE vbak-vgbel,
vgtyp TYPE vbak-vgtyp,
END OF tp_vbak .
TYPES: BEGIN OF tp_mara ,
matnr TYPE mara-matnr,
END OF tp_mara .
TYPES: BEGIN OF tp_alv1_data.
INCLUDE TYPE tp_vbak .
TYPES: END OF tp_alv1_data.
TYPES: BEGIN OF tp_alv2_data.
INCLUDE TYPE tp_mara .
TYPES: END OF tp_alv2_data.
TYPE-POOLS: slis.
DATA: gt_vbak TYPE STANDARD TABLE OF tp_vbak WITH HEADER LINE.
DATA: gt_mara TYPE STANDARD TABLE OF tp_mara WITH HEADER LINE.
DATA: gs_variant LIKE disvariant.
DATA: gt_alv1_data TYPE STANDARD TABLE OF tp_alv1_data WITH HEADER LINE.
DATA: gt_alv2_data TYPE STANDARD TABLE OF tp_alv2_data WITH HEADER LINE.
SELECTION-SCREEN *
BLOCK b0 *
SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. "<field not defined?>
PARAMETERS: p_matnr LIKE mara-matnr. "<field not defined?>
SELECTION-SCREEN END OF BLOCK b0.
BLOCK bvar *
SELECTION-SCREEN BEGIN OF BLOCK bvar WITH FRAME.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK bvar.
BLOCK bbox *
SELECTION-SCREEN BEGIN OF BLOCK bbox WITH FRAME.
PARAMETERS: p_box_up RADIOBUTTON GROUP b1,
p_box_do RADIOBUTTON GROUP b1 DEFAULT 'X',
p_box_no RADIOBUTTON GROUP b1.
SELECTION-SCREEN END OF BLOCK bbox.
AT SELECTION-SCREEN ON P_VARI *
AT SELECTION-SCREEN ON p_vari.
PERFORM alv_variant_existence USING p_vari
CHANGING gs_variant.
AT SELECTION-SCREEN ON VALUE REQUEST FOR P_VARI *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM alv_variant_f4 CHANGING p_vari
gs_variant.
INITIALIZATION *
INITIALIZATION.
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM authority_check.
PERFORM get_control_data.
PERFORM get_transaction_data.
PERFORM process_transaction_data.
END-OF-SELECTION *
END-OF-SELECTION.
PERFORM output_data.
F O R M S *
FORM AUTHORITY_CHECK *
Perform authority checks for the report *
FORM authority_check.
!!! Note: authorisation checks are application-dependent.
!!! Some common cases are listed below - please select one of them
!!! or add new authorisation checks.
!!! If the report is creating batch input session or using LDB
!!! it may be sufficient to use automatic SAP auth.checks.
Authorisation for displaying documents in a single company code
authority-check object 'F_BKPF_BUK'
id 'BUKRS' field p_bukrs
id 'ACTVT' field '03'.
if sy-subrc <> 0.
message e001(z9) with 'No authorisation to display documents'
'in company code' p_bukrs.
endif.
Displaying documents from a list of company codes (select-options)
call function 'Y_BUKRS_AUTHORITY_CHECK'
EXPORTING
ACTVT = '03'
NOMESSAGE = ' '
tables
s_bukrs = s_bukrs.
ENDFORM. " AUTHORITY_CHECK
FORM GET_CONTROL_DATA *
Read configuration etc. *
FORM get_control_data.
ENDFORM. " GET_CONTROL_DATA
FORM GET_TRANSACTION_DATA *
Read documents etc. *
FORM get_transaction_data.
!!! Data selection statement below has been generated automatically.
!!! Please check if it is correct and complete.
!!! Use table joins or 'SELECT FOR ALL ENTRIES' when selecting data
!!! from related tables.
SELECT
vbeln
erdat
erzet
ernam
FROM vbak
INTO CORRESPONDING FIELDS OF TABLE gt_vbak
CHECK NOT gt_vbak[] IS INITIAL.
SELECT
matnr
FROM mara
INTO CORRESPONDING FIELDS OF TABLE gt_mara
FOR ALL ENTRIES IN gt_vbak
WHERE ernam = gt_vbak-ernam
ENDFORM. " GET_TRANSACTION_DATA
FORM PROCESS_TRANSACTION_DATA *
FORM process_transaction_data.
LOOP AT gt_vbak .
MOVE-CORRESPONDING gt_vbak TO gt_alv1_data .
APPEND gt_alv1_data .
ENDLOOP.
FREE gt_vbak .
LOOP AT gt_mara .
MOVE-CORRESPONDING gt_mara TO gt_alv2_data .
APPEND gt_alv2_data .
ENDLOOP.
FREE gt_mara .
ENDFORM. " PROCESS_TRANSACTION_DATA
FORM OUTPUT_DATA *
FORM output_data.
PERFORM alv_list_display.
ENDFORM. " OUTPUT_DATA
FORM DISPLAY_RECORD *
Display object associated with the current ALV line *
FORM display_record USING is_selfield TYPE slis_selfield.
READ TABLE gt_alv1_data INDEX is_selfield-tabindex.
CHECK sy-subrc = 0.
!!! SAMPLE IMPLEMENTATION FOR DISPLAYING FI DOCUMENTS:
SET PARAMETER ID 'BUK' FIELD gt_alv1_data-vbeln.
set parameter id 'BLN' field gt_alv1_data-belnr.
set parameter id 'GJR' field gt_alv1_data-gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDFORM. " DISPLAY_RECORD
FORM ALV_LIST_DISPLAY *
Invoke main ALV function to format and show the report *
FORM alv_list_display.
DATA: ls_layout TYPE slis_layout_alv,
ls_print TYPE slis_print_alv,
ls_keyinfo TYPE slis_keyinfo_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv,
lt_exctab TYPE slis_t_extab,
lt_sorttab TYPE slis_t_sortinfo_alv,
lt_events TYPE slis_t_event.
PERFORM alv_init_report_events TABLES lt_events.
PERFORM alv_init_report_layout TABLES lt_fieldcat
lt_exctab
lt_sorttab
CHANGING ls_layout
ls_print
ls_keyinfo.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_interface_check = ' '
i_callback_program = sy-cprog
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_excluding = lt_exctab
IT_SPECIAL_GROUPS =
it_sort = lt_sorttab
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
i_save = 'A'
is_variant = gs_variant
it_events = lt_events
IT_EVENT_EXIT =
i_tabname_header = 'GT_ALV1_DATA'
i_tabname_item = 'GT_ALV2_DATA'
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
is_keyinfo = ls_keyinfo
is_print = ls_print
IS_REPREP_ID =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab_header = gt_alv1_data
t_outtab_item = gt_alv2_data.
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " ALV_LIST_DISPLAY
FORM ALV_INIT_REPORT_LAYOUT *
Set up report layout definition for ALV_LIST_DISPLAY *
<-- OT_FIELDCAT list of fields *
<-- OT_EXCTAB excluded menu options *
<-- OT_SORTTAB sorting/grouping definition *
<-- OS_LAYOUT global report layout settings *
<-- OS_PRINT global report printout settings *
<-- OS_KEYINFO itab key fields (required only for hier.lists) *
FORM alv_init_report_layout TABLES ot_fieldcat TYPE slis_t_fieldcat_alv
ot_exctab TYPE slis_t_extab
ot_sorttab TYPE slis_t_sortinfo_alv
CHANGING cs_layout TYPE slis_layout_alv
cs_print TYPE slis_print_alv
cs_keyinfo TYPE slis_keyinfo_alv.
add menu items to be excluded to ot_exctab.
REFRESH ot_exctab.
REFRESH ot_fieldcat.
REFRESH ot_sorttab.
!!! List all ALV data fields for display here:
DD-struct = data dictionary structure name
DD-field = field of data dictionary structure
itab = internal table for output data
itab-field = internal table field name
key = set to 'X' if key field
sum = set to 'X' for totals
hid = set to 'X' if field is initially hidden
row = list row number (multi-line list if >1)
DD-struct DD-field itab itab-field key sum hid row
PERFORM alv_build_fieldcat TABLES ot_fieldcat USING:
'VBAK' 'VBELN' 'GT_ALV1_DATA' 'VBELN' ' ' ' ' ' ' 1 ,
'VBAK' 'ERDAT' 'GT_ALV1_DATA' 'ERDAT' ' ' ' ' ' ' 1 ,
'VBAK' 'ERZET' 'GT_ALV1_DATA' 'ERZET' ' ' ' ' ' ' 1 ,
'VBAK' 'ERNAM' 'GT_ALV1_DATA' 'ERNAM' ' ' ' ' ' ' 1.
PERFORM alv_build_fieldcat TABLES ot_fieldcat USING:
'MARA' 'MATNR' 'GT_ALV2_DATA' 'MATNR' ' ' ' ' ' ' 1 .
!!! List all ALV data fields for sorting/grouping here
itab = internal table for output data
itab-field = internal table field name
up = sort ascending
down = sort descending
grp = group by
comp = group initially compressed
pos = field position in sort sequence
itab field up down grp comp pos
PERFORM alv_build_sorttab TABLES ot_sorttab USING:
'GT_ALV1_DATA' 'VBELN' 'X' ' ' ' ' ' ' 1.
PERFORM alv_build_sorttab TABLES ot_sorttab USING:
'GT_ALV2_DATA' 'MATNR' 'X' ' ' ' ' ' ' 1.
!!! key definition - required only for hierarchical display (2 itabs)
cs_keyinfo-header01 = 'VBELN' .
cs_keyinfo-item01 = 'MATNR' .
!!! See the declaration of type SLIS_LAYOUT_ALV and set the fields
!!! of OS_LAYOUT record to change list-level attributes
os_layout-no_colhead = 'X'. " no headings
cs_layout-zebra = 'X'. " stripped pattern
os_layout-no_vline = 'X'. " columns separated by space
os_layout-totals_only = 'X'. " show only totals
os_layout-totals_text = 'Total'. " totals line label
os_layout-subtotals_text = 'Subtotal'. " subtotals line label
os_layout-subtotals_text = 'Subtotal'. " subtotals line label
os_layout-key_hotspot = 'X'. " keys as hotspot
os_layout-expand_all = 'X'. " Expand all positions
os_layout...
cs_print-no_print_selinfos = 'X'. " Skip selection statistics
cs_print-no_print_listinfos = 'X'. " Skip list statistics
os_print-...
ENDFORM. " INIT_REPORT_LAYOUT
FORM ALV_BUILD_FIELDCAT *
Format a single line for ALV_INIT_REPORT_LAYOUT *
FORM alv_build_fieldcat TABLES ot_fieldcat
USING iv_ref_tabname "ref to a table/field
iv_ref_fieldname
iv_tabname "actual table/field name
iv_fieldname
iv_key
iv_do_sum
iv_no_out
iv_row_pos.
status variables for auto-numbering of field column position
(column number reset when a new table or row begins)
STATICS: sv_last_tabname TYPE slis_tabname,
sv_last_row_pos TYPE i,
sv_current_col TYPE i.
IF sv_last_tabname <> iv_tabname OR sv_last_row_pos <> iv_row_pos.
sv_current_col = 1.
ELSE.
ADD 1 TO sv_current_col.
ENDIF.
sv_last_tabname = iv_tabname.
sv_last_row_pos = iv_row_pos.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: lv_fieldname TYPE slis_fieldname.
lv_fieldname = iv_fieldname.
!!! List all the special formatting requirements in cases below
case lv_fieldname.
when 'WRBTR'. "<-- link with currency required
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-ctabname = iv_tabname.
when 'HKONT'. "<-- change default column header
ls_fieldcat-seltext_s = 'GL Acc.'.
ls_fieldcat-ddictxt = 'S'. " (S)hort (M)iddle (L)ong
when 'SOME_NUMBER' "<-- change number formatting
ls_fieldcat-nosign = 'X'.
ls_fieldcat-nozero = 'X'.
ls_fieldcat-just = 'L'. " (L)eft (R)ight (C)enter
endcase.
ls_fieldcat-ref_tabname = iv_ref_tabname.
ls_fieldcat-ref_fieldname = iv_ref_fieldname.
ls_fieldcat-tabname = iv_tabname.
ls_fieldcat-fieldname = iv_fieldname.
ls_fieldcat-key = iv_key.
ls_fieldcat-do_sum = iv_do_sum.
ls_fieldcat-no_out = iv_no_out.
ls_fieldcat-row_pos = iv_row_pos.
ls_fieldcat-col_pos = sv_current_col.
APPEND ls_fieldcat TO ot_fieldcat.
ENDFORM. " ALV_BUILD_FIELDCAT
FORM ALV_BUILD_SORTTAB *
Set up sorting information for ALV_INIT_REPORT_LAYOUT *
FORM alv_build_sorttab TABLES ot_sorttab TYPE slis_t_sortinfo_alv
USING iv_tabname TYPE slis_fieldname
iv_fieldname TYPE slis_fieldname
iv_up TYPE c
iv_down TYPE c
iv_subtot TYPE c
iv_comp TYPE c
iv_spos TYPE n.
ot_sorttab-spos = iv_spos.
ot_sorttab-fieldname = iv_fieldname.
ot_sorttab-tabname = iv_tabname.
ot_sorttab-up = iv_up.
ot_sorttab-down = iv_down.
ot_sorttab-subtot = iv_subtot.
ot_sorttab-comp = iv_comp.
APPEND ot_sorttab.
ENDFORM. " ALV_BUILD_SORTTAB
FORM ALV_INIT_REPORT_EVENTS *
Set up program events for ALV_LIST_DISPLAY *
<-- OT_EVENTS list of events and associated report subroutines *
FORM alv_init_report_events TABLES ot_events TYPE slis_t_event.
CLEAR ot_events.
REFRESH ot_events.
ot_events-name = slis_ev_user_command.
ot_events-form = 'USER_COMMAND'.
APPEND ot_events.
ot_events-name = slis_ev_pf_status_set.
ot_events-form = ''. "'PF_STATUS_SET'.
APPEND ot_events.
ot_events-name = slis_ev_top_of_list.
ot_events-form = 'TOP_OF_LIST'.
APPEND ot_events.
ot_events-name = slis_ev_end_of_list.
ot_events-form = 'END_OF_LIST'.
APPEND ot_events.
ot_events-name = slis_ev_top_of_page.
ot_events-form = 'TOP_OF_PAGE'.
APPEND ot_events.
ot_events-name = slis_ev_end_of_page.
ot_events-form = 'END_OF_PAGE'.
APPEND ot_events.
ot_events-name = slis_ev_foreign_top_of_page.
ot_events-form = ''.
APPEND ot_events.
ot_events-name = slis_ev_foreign_end_of_page.
ot_events-form = ''.
APPEND ot_events.
ot_events-name = slis_ev_top_of_coverpage.
ot_events-form = ''.
APPEND ot_events.
ot_events-name = slis_ev_end_of_coverpage.
ot_events-form = ''.
APPEND ot_events.
ot_events-name = slis_ev_before_line_output.
ot_events-form = ''.
APPEND ot_events.
ot_events-name = slis_ev_after_line_output.
ot_events-form = ''.
APPEND ot_events.
ot_events-name = slis_ev_caller_exit_at_start.
ot_events-form = ''.
APPEND ot_events.
ot_events-name = slis_ev_list_modify.
ot_events-form = ''.
APPEND ot_events.
ot_events-name = slis_ev_subtotal_text.
ot_events-form = ''.
APPEND ot_events.
ENDFORM. " ALV_INIT_REPORT_EVENTS
FORM USER_COMMAND *
Subroutine attached as callback form to ABAP List Viewer *
--> UCOMM - user command code passed from ALV *
--> SELFIELD - information record describing current line/field *
FORM user_command USING value(iv_ucomm) LIKE sy-ucomm
is_selfield TYPE slis_selfield.
CASE iv_ucomm.
WHEN '&IC1'. "ALV record selection
PERFORM display_record USING is_selfield.
when ...
ENDCASE.
ENDFORM. " USER_COMMAND
FORM PF_STATUS_SET *
Subroutine attached as callback form to ABAP List Viewer, *
allows setting alternative menu. If necessary: *
1. Copy 'STANDARD' menu from SAPLKKBL and modify as required, *
2. Activate callback *
FORM pf_status_set USING it_exctab TYPE slis_t_extab.
set pf-status 'STANDARD' excluding it_exctab.
ENDFORM. " PF_STATUS_SET
FORM TOP_OF_LIST *
Subroutine attached as callback form to ABAP List Viewer, *
executed once at the start of list output. *
FORM top_of_list.
DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.
DATA: lv_report LIKE sy-repid.
lv_report = sy-repid. "do not pass sy-repid to function!
IF p_box_up = 'X'. "display select options at report start
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = lv_report
TABLES
selection_table = lt_seltab.
remove 'technical' parameters with 'DELETE LT_SELTAB WHERE...'
before display, if necessary
CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
EXPORTING
report = lv_report
seltext = 'X'
dyn_range =
newpage = ' '
screennr = 1000
TABLES
sel_tab = lt_seltab
EXCEPTIONS
sel_tab_empty = 1.
ENDIF. "p_box_up = 'X'
ENDFORM. " TOP_OF_LIST
FORM END_OF_LIST *
Subroutine attached as callback form to ABAP List Viewer *
executed once at the end of list output. *
FORM end_of_list.
DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.
DATA: lv_report LIKE sy-repid.
lv_report = sy-repid. "do not pass sy-repid to function!
IF p_box_do = 'X'. "display select options at report end
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = lv_report
TABLES
selection_table = lt_seltab.
remove 'technical' parameters with 'DELETE LT_SELTAB WHERE...'
before display, if necessary
CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
EXPORTING
report = lv_report
seltext = 'X'
dyn_range =
newpage = ' '
screennr = 1000
TABLES
sel_tab = lt_seltab
EXCEPTIONS
sel_tab_empty = 1.
ENDIF. "p_box_do = 'X'
ENDFORM. " END_OF_LIST
FORM TOP_OF_PAGE *
Subroutine attached as callback form to ABAP List Viewer *
FORM top_of_page.
standard Ingram Micro report page heading
DATA: lv_coco_pos TYPE i, "CurPos of 'Company confidential'
lv_title_pos TYPE i, "CurPos of report title
lv_title(70) TYPE c, "Truncated report title
lv_page_pos TYPE i, "CurPos of page number
lv_date_pos TYPE i, "CurPos of date and time
lv_page_no(10) TYPE c,
lv_date(25) TYPE c,
lv_time(20) TYPE c,
lv_page(10) TYPE c.
We may need to truncate title if the line size is < 81.
IF sy-linsz < 81.
lv_title = sy-title+0(50).
ELSE.
lv_title = sy-title.
ENDIF.
Decide on positioning of text depending on width of page
lv_title_pos = ( sy-linsz / 2 ) - ( STRLEN( lv_title ) / 2 ).
lv_coco_pos = sy-linsz - 20.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE: / 'Ingram Micro',
AT lv_title_pos lv_title,
AT lv_coco_pos 'Company Confidential'.
Setup data correctly in the correct format for the display fields.
lv_page = sy-pagno.
SHIFT lv_page LEFT DELETING LEADING ' '.
CONCATENATE sy-datum6(2) sy-datum4(2) sy-datum+0(4)
INTO lv_date SEPARATED BY '.'.
CONCATENATE sy-uzeit0(2) ':' sy-uzeit2(2) INTO lv_time.
CONCATENATE lv_date lv_time INTO lv_date SEPARATED BY ' '.
CONCATENATE 'Page' lv_page INTO lv_page_no SEPARATED BY ' '.
Decide on positioning of text depending on width of page.
lv_page_pos = sy-linsz - ( STRLEN( lv_page_no ) ).
WRITE: / lv_date,
AT lv_page_pos lv_page_no.
ULINE.
ENDFORM. " TOP_OF_PAGE
FORM END_OF_PAGE *
Subroutine attached as callback form to ABAP List Viewer *
FORM end_of_page.
ENDFORM. " END_OF_PAGE
Form ALV_VARIANT_EXISTENCE
Reads ALV variant definition
FORM alv_variant_existence USING iv_variant LIKE disvariant-variant
CHANGING os_variant LIKE disvariant.
CHECK NOT iv_variant IS INITIAL.
os_variant-report = sy-repid.
os_variant-variant = iv_variant.
IF iv_variant CP '/*'. "user-specific variants begin with slash
os_variant-username = sy-uname.
ENDIF.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = os_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE e001(z9) WITH 'Please select a valid display variant.'.
ENDIF.
ENDFORM. " ALV_VARIANT_EXISTENCE
FORM ALV_VARIANT_F4 *
Display list of layout variants on report selection screen *
FORM alv_variant_f4 CHANGING cv_varname LIKE disvariant-variant
cs_variant LIKE disvariant.
DATA: lv_exit(1) TYPE c.
cs_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = cs_variant
i_save = 'A'
it_default_fieldcat =
IMPORTING
e_exit = lv_exit
es_variant = cs_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF lv_exit = space.
cv_varname = cs_variant-variant.
ENDIF.
ENDIF.
hope this will help.
see form user_command.
regards,
Ruchika -
Drill down on all values of a row from bex universe
Hi
We had developed BO universe on bex query, and as in web i the whole row will come as a single object.
so when we drill on the row the drill is not performing on the whole row rather its happenig on a single value of the row
Ex:- if we have rows named as US, china, America, Japan, Gross sales, invoice etc
when wen i drill on any row for lets say US, and i drilled on currecy type the drill is happening only us from the row.
But we need this drill on whole values of the row,
if aware of bex analyser, we need the same drill down future as in bex.
Any help in this regards is appreciable.
Thanks in Advance,Hi,
Your code seems to be right.
Try writing the code as the below format.
CASE SY-UCOMM.
* CHECK FUNCTION CODE
WHEN '&IC1'.
* CHECK FIELD CLICKED ON WITHIN ALVGRID REPORT
IF SELFIELD-FIELDNAME = 'LIFNR'.
* READ DATA TABLE, USING INDEX ROW USER CLICKED ON
READ TABLE IT_FINAL INTO WA_FINAL INDEX SELFIELD-TABINDEX.
* SET PARAMETER ID FOR TRANSACTION SCREEN FIELD
SET PARAMETER ID 'BES' FIELD WA_FINAL-LIFNR.
* EXECUTE TRANSACTION 'XK03',AND SKIP INITIAL DATA ENTRY SCREEN.
CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
Thanks
Arbind -
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 -
Problem displaying drill down STANDARD ALV for a particular record after pressing back button
I have a simple interactive ALV grid report. NOT 'OO'. It display correctly on initial execution. AT the moment, 6 records. I want it to work such that if i click record '1', a drill-down version of that ALV with only that one record clicked is displayed. This currently occurs correctly. The problem arises when i click the back button and want to click on a new record, say in the 2nd row..this new 2nd row record is not displayed. The first one is displayed again. I tried clearing and fiddling around but then the last record is displayed. I have used the 'ID' field as a 'hotspot' getting picked up by sy-tabindex. Maybe it could be that i shouldn't loop and use a work area e.g in my select statement. i'm not so sure i've looked around, and tried a few things. I can't get it right yet. My code is below:
*& Report ZALV
REPORT ZALV.
TABLES: ZCONTACT.
TYPE-POOLS: slis. "slis contains all of the ALV data types.
TYPES: BEGIN OF ty_zcontact.
INCLUDE STRUCTURE zcontact.
TYPES: icon TYPE char4, "field holding traffic light value- adding a column to internal table to hold the traffic light
END OF ty_zcontact.
DATA: "fieldcatALOG TYPE slis_t_fieldcat_alv WITH HEADER LINE,
it_zcontact TYPE TABLE OF ty_zcontact,"declares an internal table of type ZCONTACT
wa_zcontact TYPE ty_zcontact,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid,
g_variant TYPE disvariant,
gx_variant TYPE disvariant,
g_save TYPE c VALUE 'X',
it_fieldcat TYPE slis_t_fieldcat_alv,"declares field catalog table of line type alv
wa_fieldcat TYPE slis_fieldcat_alv, "declares the work area of the field catalog
it_list_top_of_page TYPE slis_t_listheader.
DATA: it_fieldcat1 TYPE slis_t_fieldcat_alv,
wa_fieldcat1 TYPE slis_fieldcat_alv.
DATA: V_FIELD(30) TYPE C,
V_VALUE(10) TYPE C.
"izontact TYPE TABLE OF zcontact.
"i_logo TYPE OT.
"ls_layout TYPE slis_layout_alv.
**Selection Screen details
*SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
*PARAMETERS: variant like disvariant-variant.
*SELECTION-SCREEN END OF BLOCK B1.
SELECT-OPTIONS:
age FOR wa_zcontact-age,
lastnme FOR wa_zcontact-lastname.
**Getting default variant
* AT SELECTION-SCREEN ON age.
* SELECT SINGLE age FROM zcontact INTO wa_zcontact-age WHERE age = age.
* IF sy-subrc NE 0.
* MESSAGE:'That age does not exist mate, Please enter another age' TYPE 'E'.
* ENDIF.
INITIALIZATION.
*gx_variant-report = sy-repid.
*CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
*EXPORTING
* I_SAVE = G_SAVE
* CHANGING
* CS_VARIANT = GX_VARIANT
* EXCEPTIONS
* NOT_FOUND = 2.
*IF SY-SUBRC = 0.
* VARIANT = GX_VARIANT-VARIANT.
* ENDIF.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_FIELDCATALOG.
PERFORM DISPLAY_ALV_REPORT.
PERFORM top_of_page.
"g_repid = sy-repid.
*Fetch data from the database
FORM DATA_RETRIEVAL.
SELECT * FROM zcontact INTO TABLE it_zcontact WHERE age IN age AND lastname IN lastnme.
"assigning traffic light colour to each row based on a condition
* IF wa_zcontact-age GE 65.
* wa_zcontact-icon = 1. "Red Traffic Light
* ELSEIF wa_zcontact-age BETWEEN 40 AND 64.
* wa_zcontact-icon = 2. "Yellow traffic light
* ELSE.
* wa_zcontact-icon = 3." Green traffic light
* ENDIF.
* MODIFY it_zcontact FROM wa_zcontact TRANSPORTING icon.
* CLEAR wa_zcontact.
ENDFORM.
FORM BUILD_FIELDCATALOG.
*Build field catalog
wa_fieldcat-fieldname = 'ID'.
"wa_fieldcat-seltext_m = 'The Contact ID'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LASTNAME'.
"wa_fieldcat-seltext_m = 'Contact Lastname'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FIRSTNAME'.
"wa_fieldcat-seltext_m = 'Contact Firstname'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'DOB'.
"wa_fieldcat-seltext_m = 'Date Of Birth'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'TEL'.
"wa_fieldcat-seltext_m = 'Telephone Number'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ADDRESS'.
"wa_fieldcat-seltext_m = 'The Address'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'OCCUPATION'.
"wa_fieldcat-seltext_m = 'The Occupation'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'WEIGHT'.
"wa_fieldcat-seltext_m = 'WEIGHT'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'AGE'.
"wa_fieldcat-seltext_m = 'AGE OF THE CONTACT'.
wa_fieldcat-do_sum = 'X'. "Display column total
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'SALARY'.
"wa_fieldcat-seltext_m = 'SALARY'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
gd_layout-lights_fieldname = 'ICON'.
ENDFORM.
FORM DISPLAY_ALV_REPORT.
gd_repid = sy-repid.
*Pass data and field catalog to ALV function module to display ALV list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = it_fieldcat
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'ZCONTACT'
i_save = 'X'
is_variant = g_variant
is_layout = gd_layout
TABLES
t_outtab = it_zcontact
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM.
FORM top_of_page.
*ALV Header declarations
DATA: it_listheader TYPE slis_t_listheader,
wa_listheader TYPE slis_listheader,
t_line like wa_listheader-info,
ld_lines TYPE I,
ld_linesc(10) TYPE C.
wa_listheader-typ = 'H'.
wa_listheader-info = 'Contact Details'.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-info = sy-repid.
wa_listheader-key = 'Program Name:'.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-info = sy-uname.
wa_listheader-key = 'User Name:'.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Run Date :'.
CONCATENATE sy-datum+6(2)
sy-datum+4(2)
sy-datum(4)
INTO wa_listheader-info
SEPARATED BY '/'.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Time :'.
CONCATENATE sy-uzeit(2)
sy-uzeit+2(2)
sy-uzeit+4(2)
INTO wa_listheader-info
SEPARATED BY ':'.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader
i_logo = 'KLOGO'.
ENDFORM. "top_of_page
*& Form sub_user_command
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELTAB TYPE SLIS_SELFIELD.
CASE P_UCOMM.
WHEN '&IC1'.
CASE p_seltab-fieldname.
WHEN 'ID'.
READ TABLE it_zcontact INTO wa_zcontact INDEX p_seltab-tabindex.
PERFORM DATA_RETRIEVAL1.
PERFORM BUILD_FIELDCATALOG1.
PERFORM SECOND_GRID.
ENDCASE.
ENDCASE.
ENDFORM. "
FORM DATA_RETRIEVAL1.
SELECT * FROM zcontact INTO TABLE it_zcontact WHERE id EQ wa_zcontact-id.
ENDFORM.
FORM BUILD_FIELDCATALOG1.
*Build field catalog
CLEAR: wa_fieldcat, it_fieldcat.
wa_fieldcat-fieldname = 'ID'.
"wa_fieldcat-seltext_m = 'The Contact ID'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LASTNAME'.
"wa_fieldcat-seltext_m = 'Contact Lastname'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FIRSTNAME'.
"wa_fieldcat-seltext_m = 'Contact Firstname'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM.
FORM SECOND_GRID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = IT_FIELDCAT
i_structure_name = 'ZCONTACT'
i_callback_user_command = 'USER_COMMAND'
TABLES
T_OUTTAB = IT_ZCONTACT.
ENDFORM.Hi Ten Mariga,
I wonder why the second select Query is needed at all instead you can use
---> Not Needed
FORM DATA_RETRIEVAL1.
SELECT * FROM zcontact INTO TABLE it_zcontact WHERE id EQ wa_zcontact-id.
ENDFORM.
----> Instead you can do
READ TABLE it_zcontact INTO wa_zcontact INDEX p_seltab-tabindex.
Append wa_zcontact to Second_table.
And you can use the Second_table to display the second ALV. The second Select Query will affect the performance too.
Cheers,
Krishnakumar B. -
Drill down report...
HI abapers,
How to create drill down report in alv.
When i double click the particular field, another report has to pop up and display the details of that particular field.
for eg,
When double click the amount spent field other report has to say, For which material the amonut has spend.
Thanking You
arvindhi arv,
for me your scenario is not clear..
you want to drill down the alv .. and show the report in the same program or you want to call another program when u try to hit the alv report..
well for drilling down the same program.. you can use the following method
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GV_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'TOP1' " drill down
I_CALLBACK_TOP_OF_PAGE = 'TOP2'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
FORM TOP1 USING UCOMM TYPE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
READ TABLE GT_FINAL_TOTAL INTO GS_FINAL INDEX SELFIELD-TABINDEX.
CASE SELFIELD-TABINDEX.
WHEN SELFIELD-TABINDEX.
perfrom itab2_operation. " in this form you will write the code to get the data for drill dispplay
now defing fieldcatalog again : example :
GS_FCAT-COL_POS = 1.
GS_FCAT-FIELDNAME = 'EBELN'.
GS_FCAT-SELTEXT_L = TEXT-001.
GS_FCAT-FIX_COLUMN = 'X'.
GS_FCAT-OUTPUTLEN = 13.
APPEND GS_FCAT TO GT_FCA
and call alv display again :
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GV_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP2'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = ''
I_GRID_SETTINGS =
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FCAT
and if you want to call another progam when u hit..u have to use..submit key work
like SUBMIT ZAFI013R VIA SELECTION-SCREEN AND RETURN. -
S_ALR_87013326 report not coming up with Output to drill down.
All,
I have user who can run the report in the PRD and was able to see the out put
with drill down option.
However, when running the same report with same selection option
in QA, before Ouput screen comes up, it prompts to send the output to the work flow.
Security Access is the same in QA and PRD.
Please advise,
From,
Pranav Thaker.
8457Hi,
Can you check if Workflow has been activated using this report or maybe some user exit.
Seems like an interesting problem
Post the actual solution.
Regards
Sajimon Chandran -
Drill Down for Multiple Series in a Line Chart
Hello,
I seem to have a problem with the drill-down functionality in a line chart that has multiple series.
I have a line chart that displays the readings of a patient over a period of 1 month. For each day, there is the glucose level reading, blood pressure reading, etc... So, each reading is a different series in my line chart graph.
The basic requirement is: With a mouse over event on the chart, I am willing to display all the data that belongs to that day. The data will be displayed at the bottom of the screen in a small panel. It is very simple to do it when the line chart has only 1 series:
i) Enable drill down.
ii) Choose 'Row' as insertion type.
iii) Fill out the destination field.
iv) Make sure your labels (at the bottom of the screen) get the data from the destination cell.
When there is more than one series, it becomes very difficult. XCelsius will not let me use the same destination cells for different series. So, I will have to use other destination cells. In that case, I will not know on which day is the user on. Is there any way to achieve this functionality?
Let me know if you need further information.This is certainly possible, but there's a bit of a trick to it (and really hard to explain without screenshots!). There's two halves to it:
1. Write the date that has been selected to a cell (for each series).
2. Write the name of the series that was clicked to some cell (this is the property 'Series Name Destination').
So let's say your three series are Glucose, Blood Pressure and Temp. Have those series names in B1,C1,D1 (with your dates down in column A). Insert a row below the series names (2:2), and then set up your insertion type for the chart as 'row'. The source data (for all three series) should be your list of dates in column a. The insertion cells for the three series will be, in order, B2,C2,D2. Now, depending on which point is clicked in the chart, the selected day will be inserted into one of those three cells. Completely useless unless you know which series was clicked.
So you need to insert the name of the series that was clicked ('Series Name Destination') into the spreadsheet, let's say in F1. The rest is just Excel formulas. The logic is, you can now tell what series was clicked, and go and look up the date that was inserted for that series, then go and look up the row that corresponds to that date. So to get the date that was just clicked, your formula (in F2) would be =HLOOKUP(F1,B1:D2,2,0).
Then a VLOOKUP will get the results from that row of data. For example, if I inserted another row at row 3 (to show my 'result' values) the formula in B3 would be =VLOOKUP($F$2,$A$4:$D$13,2,0).
I hope that makes sense. -
Error in Drilled down ALV Report.
Hi all
i am creating a single level drilled down report , in that in the first screen i am displaying the header detials , in the second level i am displaying the item detial of the particular line..
While processing the second level i am getting a dump like
A PERFORM was used to call the routine "USER_COMMAND" of the program
"SAPLSLVC_FULLSCREEN".
This routine contains exactly 1 formal parameters, but the current
call contains 2 actual parameters.
parameters.
here is my code :
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM.
CASE R_UCOMM.
WHEN '&IC1'.
PERFORM BUILD_CATALOG_EKPO.
PERFORM EVENT_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_EKPO.
PERFORM BUILD_LIST.
PERFORM DISPLAY_EKPO.
ENDCASE.
ENDFORM.
*& Form BUILD_CATALOG_EKPO
text
--> p1 text
<-- p2 text
FORM BUILD_CATALOG_EKPO .
WA_FIELDCAT-TABNAME = 'ITAB_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'ITAB_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'Item No.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'ITAB_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'Material NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'ITAB_EKPO'.
WA_FIELDCAT-FIELDNAME = 'WERKS'.
WA_FIELDCAT-SELTEXT_M = 'PLANT.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'ITAB_EKPO'.
WA_FIELDCAT-FIELDNAME = 'LGORT'.
WA_FIELDCAT-SELTEXT_M = 'Storage Loc.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'ITAB_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'Quantity.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'ITAB_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UNIT.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " BUILD_CATALOG_EKPO
*& Form EVENT_EKPO
text
--> p1 text
<-- p2 text
FORM EVENT_EKPO .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " EVENT_EKPO
*& Form POPULATE_EVENT_EKPO
text
--> p1 text
<-- p2 text
FORM POPULATE_EVENT_EKPO .
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME = WA_EVENT-FORM.
ENDIF.
ENDFORM. " POPULATE_EVENT_EKPO
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM.
*& Form DATA_EKPO
text
--> p1 text
<-- p2 text
FORM DATA_EKPO .
DATA:RS_SELFIELD TYPE SLIS_SELFIELD.
READ TABLE ITAB_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
SELECT EBELN EBELP MATNR WERKS LGORT MENGE MEINS
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE ITAB_EKPO
WHERE EBELN = WA_EKKO-EBELN.
DATA :ID_ITEM_COLOR.
LOOP AT ITAB_EKPO INTO WA_EKPO.
ID_ITEM_COLOR = ID_ITEM_COLOR + 1.
IF ID_ITEM_COLOR = 8.
ID_ITEM_COLOR = 1.
ENDIF.
CONCATENATE 'C' ID_ITEM_COLOR '10' INTO WA_EKPO-LINE_COLOR_ITEM.
MODIFY ITAB_EKPO FROM WA_EKPO TRANSPORTING LINE_COLOR_ITEM.
ENDLOOP.
ENDFORM. " DATA_EKPO
*& Form DISPLAY_EKPO
text
--> p1 text
<-- p2 text
FORM DISPLAY_EKPO .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = V_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB_EKPO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_EKPO
*& Form BUILD_LIST
text
--> p1 text
<-- p2 text
FORM BUILD_LIST .
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
Set layout field for row attributes(i.e. color)
gd_layout-info_fieldname = ' LINE_COLOR_ITEM'.
ENDFORM. " BUILD_LIST
Arun JosephThe form USER_COMMAND should have 2 changing/actual parameters which is standard.
Ex:
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
ENDFORM. -
Unable to create a drill through or drill down report
Hello I am new to report builder (or any SQL related tools) and I am still learning to do a many things.
Background: I have managed to design a pie-chart report that shows Number of Assets, and when they were maintained. The fields I have for the table seven columns
Asset ID (e. 123456), Accepted On Date(dd/mm/yyyy), Last Serviced on Date(dd/mm/yyyy), Min. Service interval per year (e.g 1,2,3,4) Overall Risk Score (between 0-16), Risk Category (e.g Green or Orange), maintenance
Compliance (e.g Compliant or No Proof)
I get an extract in .rdl format from our Asset Database (CRM) which includes Asset ID, Accepted On Dates, Last Serviced on Date, Min Service Interval per year, Overall Risk Score
I add calculated field of Risk Category as Orange or Green, where an overall risk score > 8 will make the Asset ID fall in the Orange Category and any risk < 8 will be Green Category
The second calculated field is the Maintenance Compliance, where I have added formula when certain conditions between Accepted On Date(dd/mm/yyyy), Last Serviced on Date(dd/mm/yyyy) and Min. Service interval per year, are
met. When they are met, it is "Compliant", when not met it is "No Proof".
The pie chart has
Values as Count(Risk Category)
category Groups (Risk category) + (Maintenance Compliance)
Probelm: I am trying to design a drill down or a drill through report where if I click on the slice, the table displayed below will only contain values (or rows) corresponding to that region. So, if I click on Green - Compliant,
then a table should appear which shows only asset values which have Risk category value Green and Maintenance Compliance Value as Compliant
Please let me know if anyone can help (Link Copy Paste in browser: https://drive.google.com/file/d/0BzjF_kUloVtkSUk0YlZDbFVYR3c/edit?usp=sharing)
Note: I am doing this report offline, as the server connection does not work. So i usually edit the .rdl file and then upload it to the server to check if it runsHello Alisa
Thank you for the response. I tried doing the following, and I am pretty sure I must be doing something wrong because of my inexperience with SQL tools.
But I get an error while I try to upload it onto the server. I have uploaded my files here
https://drive.google.com/folderview?id=0BzjF_kUloVtkSjhCd3J6VU11alk&usp=sharing
Is it possible to check these. The files are (.rdl file, error log text file, screen shot of error when uploading to server)
Also, in your explanation you mentioned
Add a dataset (DataSet1) in the report with the corresponding fields (when I try to add another data set(DS1) with the values shown in DSMain (my main report), it does not allow populate the query fields of the main report (DSMain). So I have to manually
add all query field + the two calculated fields (Risk_Category & Maintenance_Compliance). Add another dataset (DataSet2) with RiskCategory, MaintenanceCompliance two fields (I added another Dataset and named it as DS2, and copied the same Calculated
fields from DSMain (main report) for Risk_Category & Maintenance_Compliance
Add two parameters (RiskCategory, MaintenanceCompliance) in the report, get these Available value from DataSet2 fields.( two parameters appears new
RiskCategory --> Dataset-DS2, Value Field- Risk_Category, Label Field: Risk_Category
MaintenanceCompliance --> Dataset-DS2, Value Field- Maintenance_Compliance, Label Field: Maintenance_Compliance
3. Add two filters of DataSet1. Please refer to the following values:
Expression: [RiskCategory]
Operator: =
Value: [@RiskCategory](I am not sure I have clearly understood this part. As my values in Dataset 1 (DS1) are the same as the main report (DSMain), the query + calculated fields are the same. Hence my Dataset 1 (DS1) will also have a Calculated field
as Risk_Category and Maintenance_Compliance. And do I have to add these values as filters in DataSet2 (DS2) ? In which am actually manually typing Expression: [RiskCategory]
Operator: =
Value: [@RiskCategory]
Expression: [MaintenanceCompliance]
Operator: =
Value: [@MaintenanceCompliance]
Main Report
3. Add the subreport below “Specify a report”. (I had to give a random name as 'DrillThrough' in this field. Am I doing something wrong)
4. Click Add icon to add parameter to run the subreport. Please refer to the following values:
Name: RiskCategory (Note: This is parameter name in the subreport.) Value: RiskCategory
Name: MaintenanceCompliance Valeu: MaintenanceCompliance
(I had to manually type the Name & Value fields, as they did not appear in the drop down list when I click on add)
I am sure by now you must have realised how amateur I am with this tool
Please let me know
Thank you once again for being patient
Silent_Tracker
Maybe you are looking for
-
FCKEditor implemented in Apex - save button doesn't save!
Hi there, I used the excellent notes on implementing FCKEditor into apex (see Re: textarea html editors and everything is working very well, however the FCKEditor Save button, whilst doing a submit is not saving the edited contents of the window. I'm
-
Cannot change image size dimensions
the program will NOT let me enter values or change dimension values, can anyone help?
-
File attachent not sent to Approver in Purchase Requitions
Hi all I have issue about Purchase Requition: When i create a Purchase Requions fianlly, i go to menu View -> Attachment to attach file after that i press button Approve to send approver My Approver receive Requition but not receive file attachment i
-
Question I want to install Google Toolbar for Firefox, but this is availaible only for Firefox 4. Can I replace My Firefox 6 with this older one Firefox 4, please?
-
Why do my button functions work perfectly on my iPad2 Adobe Content Viewer the first time and then do not function at all in subsequent viewings. For example, the next page button ceases functioning after the first viewing. On page 2, the next page b