Complex report (Urgent)
Dear All,
My requirement is
Prompt should be like below
1 prompt:
Date(Calender) 15 Min Interval
30 Min Inteval
2 prompt:
DateBetween All dates data
3 prompt:
DateBetween All month data
I should create one report it contain all level information like 15 min interval data and 30 min interval data and date and month.
1.When i select prompt 1 another prompt it shoud have 15 min and 30 min interval column name(like column selector)
2.When i select prompt 2, another prompt it should have only one value date.based on date it should display the records.
3.When i select prompt 3, another prompt it should have only one value month.based on date it should display the records.
How will implement this. Could you explain me step by step
Thanks
Hi,
I guess you are using UNION to join four reports.First thing in each. of the report dont put any sort on any column and apply sort only on result column.
[nQSError: 59107] Set operation failed due to incompatible sort order
Set operation failed due to incompatible sort order.
To resolve the issue
1)check SORT_ORDER and SORT_ORDER_LOCALE parameters in the NQSCONFIG.INI file.
2)Then go to database features tab in RPD(I guess its in connection name) and check SORT_ORDER_LOCALE parameter.Make sure that it doesnt match with SORT_ORDER_LOCALE value in NQSCONFIG.INI.
Please refer to below link for your reference.Above mentioned steps are well illustrated in this link
1)http://dt365.blogspot.com/2008/11/faced-following-problems-1.html.
2)http://download.oracle.com/docs/cd/E05554_01/books/AnyInConfig/AnyInConfigNQSConfigFileRef7.html
3)http://siebel.ittoolbox.com/groups/technical-functional/siebel-analytics-l/error-codes-opr4onwyu9im8tacoi2dl65p-3603401
Thanks
Sandeep
Edited by: Sandeep Saini on Aug 8, 2010 3:42 AM
Similar Messages
-
hi guru's
i had prepared two complex reports seperately having the same Selection-screen , internal tables and declerations...now i have to combine both the reports into one single report....based upon <b>one field (i.e, filed PROCESS_TYPE)</b> of Selection-criteria(i.e, S_PR_TYP ) i have to display 2 outputs..One for SHC and another for CONF.....But the Logic and Header display for the 2 output's is different ........please let me know where should i write the logic ....and how the logic should be build....
the code is as follows :
<u><b>The code which is common for both the reports:</b></u>
$$********************************************************************
$$ TABLES DECLERATION
$$********************************************************************
TABLES: crmd_orderadm_h,
crmd_orderadm_i,
bbp_pdigp.
$$********************************************************************
$$ TYPE-POOLS
$$********************************************************************
TYPE-POOLS: slis, list.
$$********************************************************************
$$ GLOBAL TYPES
$$********************************************************************
TYPES: BEGIN OF y_str1,
CLIENT TYPE CRMD_ORDERADM_H-CLIENT,
guid TYPE crmd_orderadm_h-guid,
object_id TYPE crmd_orderadm_h-object_id,
object_type TYPE crmd_orderadm_h-object_type,
process_type TYPE crmd_orderadm_h-process_type,
created_at TYPE crmd_orderadm_h-created_at,
changed_at TYPE crmd_orderadm_h-changed_at,
archiving_flag TYPE crmd_orderadm_h-archiving_flag,
deliv_date TYPE bbp_pdigp-deliv_date,
final_entry TYPE bbp_pdigp-final_entry,
del_ind TYPE bbp_pdigp-del_ind,
END OF y_str1.
TYPES: BEGIN OF y_str2,
guid1 TYPE crmd_orderadm_h-guid,
object_id TYPE crmd_orderadm_h-object_id,
object_type TYPE crmd_orderadm_h-object_type,
process_type TYPE crmd_orderadm_h-process_type,
created_at TYPE crmd_orderadm_h-created_at,
changed_at TYPE crmd_orderadm_h-changed_at,
archiving_flag TYPE crmd_orderadm_h-archiving_flag,
guid2 TYPE crmd_orderadm_i-guid,
header TYPE crmd_orderadm_i-header,
guid3 TYPE bbp_pdigp-guid,
deliv_date TYPE bbp_pdigp-deliv_date,
final_entry TYPE bbp_pdigp-final_entry,
del_ind TYPE bbp_pdigp-del_ind,
END OF y_str2.
$$********************************************************************
$$ GLOBAL CONSTANTS
$$********************************************************************
CONSTANTS: C_BLANK_F(1) TYPE C VALUE 'X',
C_DEL_IND_F(1) TYPE C VALUE 'X',
C_ARCHIVING_FLAG(1) TYPE C VALUE 'X',
C_FINAL_ENTRY_F(1) TYPE C VALUE 'X',
C_FINAL_ENTRY_SPACE(1) TYPE C VALUE ' ',
C_CBA_SPACE(1) TYPE C VALUE ' ',
C_DEL_SPACE(1) TYPE C VALUE ' '.
$$********************************************************************
$$ Global Elementary Variables
$$********************************************************************
DATA: w_ld_lines TYPE i,
w_ld_linesc(10) TYPE c,
w_del_ind TYPE c,
w_final_entry TYPE c,
w_COUNT_cba TYPE I VALUE 0,
w_count_f TYPE I VALUE 0,
W_BLANK_F TYPE C,
W_FINAL_ENTRY_F TYPE C,
W_DEL_COUNT TYPE I VALUE 0,
W_PER_CBA1 TYPE P decimals 3,
W_PER_CBA TYPE P decimals 2,
W_PER_E_LINE TYPE I,
W_N TYPE I.
$$********************************************************************
$$ GLOBAL INTERNAL TABLES (custom structure)
$$********************************************************************
DATA: t_str_sc1 TYPE STANDARD TABLE OF y_str1 INITIAL SIZE 1.
DATA: t_str_sc2 TYPE STANDARD TABLE OF y_str2 INITIAL SIZE 1.
DATA: t_header TYPE slis_t_listheader,
w_header TYPE slis_listheader,
e_line LIKE w_header-info.
DATA: v_index LIKE SY-TABIX.
v_index = '1'.
$$********************************************************************
$$ GLOBAL FIELD-SYMBOLS
$$********************************************************************
FIELD-SYMBOLS: <FS_STR1> TYPE Y_STR1,
<FS_STR2> TYPE Y_STR2.
$$********************************************************************
$$ PARAMETERS & SELECT-OPTIONS
$$********************************************************************
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_scno FOR crmd_orderadm_h-object_id,
s_pr_typ FOR crmd_orderadm_h-process_type NO INTERVALS NO DATABASE SELECTION NO-EXTENSION DEFAULT 'SHC',
s_change FOR crmd_orderadm_h-changed_at.
SELECTION-SCREEN END OF BLOCK b1.
$$********************************************************************
$$ START-OF-SELECTION
$$********************************************************************
START-OF-SELECTION.
REFRESH t_str_sc1.
SELECT client
guid
object_id
object_type
process_type
created_at
changed_at
archiving_flag
FROM crmd_orderadm_h INTO TABLE t_str_sc1
WHERE object_id IN s_scno AND changed_at IN s_change AND process_type IN s_pr_typ.
IF sy-subrc <> 0.
MESSAGE I002.
ENDIF.
LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
REFRESH t_str_sc2.
SELECT a~guid
a~object_id
a~object_type
a~process_type
a~created_at
a~changed_at
a~archiving_flag
b~guid
b~header
c~guid
c~deliv_date
c~final_entry
c~del_ind
INTO TABLE t_str_sc2
FROM crmd_orderadm_h AS a INNER JOIN crmd_orderadm_i AS b
ON aguid eq bheader INNER JOIN bbp_pdigp AS c
ON bguid eq cguid
WHERE a~guid eq <FS_STR1>-guid.
<u><b>THE LOGIC FOR FIRST REPORT:</b></u>
*"logic for displaying Delivery date at Header level
SORT T_STR_SC2 BY DELIV_DATE.
DESCRIBE TABLE T_STR_SC2 LINES W_N.
READ TABLE T_STR_SC2 WITH KEY DELIV_DATE = T_STR_SC2-DELIV_DATE INTO <FS_STR2>-deliv_date.
READ TABLE T_STR_SC2 INDEX v_index ASSIGNING <FS_STR2>.
IF SY-SUBRC = 0.
<FS_STR1>-deliv_date = <FS_STR2>-deliv_date.
MODIFY T_STR_SC1 FROM <FS_STR1> TRANSPORTING DELIV_DATE.
ENDIF.
*"Setting up the flags for the entire items in CRMD_ORDERADM_H as per the scenario
LOOP AT T_STR_SC2 ASSIGNING <FS_STR2> WHERE HEADER EQ <FS_STR1>-GUID.
IF <FS_STR2>-DEL_IND NE 'X'.
IF <FS_STR2>-FINAL_ENTRY NE 'X'.
W_BLANK_f = C_BLANK_F.
ELSE.
W_FINAL_ENTRY_F = C_FINAL_ENTRY_F.
ENDIF.
ENDIF.
ENDLOOP.
*"Logic started at item level
LOOP AT T_STR_SC2 ASSIGNING <FS_STR2> WHERE HEADER EQ <FS_STR1>-GUID.
IF W_BLANK_F NE 'X'.
IF W_FINAL_ENTRY_F NE 'X'.
*" Displaying the status for Del 'X' , Final_entry ' ', Archive_flag 'X'.
<FS_STR1>-DEL_IND = C_DEL_IND_F.
W_DEL_COUNT = W_DEL_COUNT + 1.
<FS_STR1>-FINAL_ENTRY = C_FINAL_ENTRY_SPACE.
<FS_STR1>-ARCHIVING_FLAG = C_ARCHIVING_FLAG.
w_COUNT_cba = w_COUNT_cba + 1.
MODIFY T_STR_SC1 FROM <FS_STR1> TRANSPORTING DEL_IND FINAL_ENTRY ARCHIVING_FLAG.
ELSE.
*" Displaying the status for Del ' ' , Final_entry 'X', Archive_flag 'X'.
<FS_STR1>-FINAL_ENTRY = C_FINAL_ENTRY_F.
w_count_f = w_count_f + 1.
<FS_STR1>-DEL_IND = C_DEL_SPACE.
<FS_STR1>-ARCHIVING_FLAG = C_ARCHIVING_FLAG.
w_COUNT_cba = w_COUNT_cba + 1.
MODIFY T_STR_SC1 FROM <FS_STR1> TRANSPORTING FINAL_ENTRY DEL_IND ARCHIVING_FLAG.
ENDIF.
ELSE.
*" Displaying the status for Del ' ' , Final_entry ' ', Archive_flag ' '.
<FS_STR1>-DEL_IND = C_DEL_SPACE.
<FS_STR1>-FINAL_ENTRY = C_FINAL_ENTRY_SPACE.
<FS_STR1>-ARCHIVING_FLAG = C_CBA_SPACE.
MODIFY T_STR_SC1 FROM <FS_STR1> TRANSPORTING DEL_IND FINAL_ENTRY ARCHIVING_FLAG .
ENDIF.
ENDLOOP. "end of t_str_sc2
if <FS_STR1>-DEL_IND eq C_DEL_IND_F.
W_DEL_COUNT = W_DEL_COUNT + 1.
endif.
if <FS_STR1>-FINAL_ENTRY eq C_FINAL_ENTRY_F.
w_count_f = w_count_f + 1.
endif.
if <FS_STR1>-ARCHIVING_FLAG eq C_ARCHIVING_FLAG.
w_COUNT_cba = w_COUNT_cba + 1.
endif.
CLEAR: W_BLANK_F , W_FINAL_ENTRY_F.
*"Logic ended at item level
ENDLOOP. "end of t_str_sc1
*" when Transaction type is SHC
IF <FS_STR1>-process_type EQ 'SHC'.
DESCRIBE TABLE t_str_sc1 LINES w_ld_lines.
w_ld_linesc = w_ld_lines.
CONCATENATE ' TOTAL NO OF RECORDS SELECTED:' w_ld_linesc INTO e_line SEPARATED BY space.
*" Percentage of Archived SC's
W_PER_E_LINE = w_ld_lines.
W_PER_CBA1 = W_COUNT_CBA / W_PER_E_LINE.
W_PER_CBA = W_PER_CBA1 * 100.
*" Displaying the total no of records fetched for DB
FORMAT COLOR 7.
WRITE:/9 e_line .
WRITE:/10 'TOTAL NO OF FINAL ENTRIES SELECTED:', w_count_f.
WRITE:/10 'TOTAL NO OF DELETE ENTRIES SELECTED:', W_DEL_COUNT.
WRITE:/10 'TOTAL NO OF ENTRIES SELECTED FOR ARCHIVING:',w_COUNT_cba.
SKIP.
WRITE:/10 'PERCENTAGE OF CAN BE ARCHIVED:',W_PER_CBA,'%'.
FORMAT COLOR 3.
SKIP.
WRITE:/30 '#### SC HAVING FINAL ENTRY INDICATOR FOR ALL ITEM IN SRM #####'.
FORMAT COLOR OFF.
WRITE:/30(63) SY-ULINE.
ULINE.
*" Displaying Headings for the Report
NEW-LINE SCROLLING.
WRITE:/3 'Transaction No', 18 sy-vline,
19 'Transaction Type', 36 sy-vline,
37 'Business Trans.Cat', 56 sy-vline,
57 'Created On', 68 sy-vline,
69(10) 'Changed On', 84 sy-vline,
85 'Delivery date', 99 sy-vline,
100 'Final Entry Ind', 115 sy-vline,
116 'Deletion Ind', 129 sy-vline,
130 'Can be Archived', 146 sy-vline.
SET LEFT SCROLL-BOUNDARY COLUMN 19.
ULINE.
$$********************************************************************
$$ DISPLAY DATA AT HEADER LEVEL FOR SHC
$$********************************************************************
*" Sort the SC in Sequence
SORT t_str_sc1 BY object_id.
IF SY-SUBRC = 0.
*" Displaying the Report at Header level
LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
IF NOT <FS_STR1>-archiving_flag IS INITIAL.
FORMAT COLOR 7.
ELSE.
FORMAT COLOR 3.
ENDIF.
WRITE:/3 <FS_STR1>-object_id, 18 sy-vline,
19 <FS_STR1>-process_type, 36 sy-vline,
37 <FS_STR1>-object_type, 56 sy-vline,
57 <FS_STR1>-created_at, 68 sy-vline,
69(10) <FS_STR1>-changed_at, 84 sy-vline,
85 <FS_STR1>-deliv_date, 99 sy-vline,
100 <FS_STR1>-final_entry, 115 sy-vline,
116 <FS_STR1>-del_ind, 129 sy-vline,
130 <FS_STR1>-archiving_flag, 146 sy-vline.
ENDLOOP. "end of t_str_sc1 displaying at header level
ENDIF. "End of SY-SUBRC
*ENDCASE.
ENDIF. "End of displaying Transaction type as SHC
*" when Transaction type is CONF
IF <FS_STR1>-process_type EQ 'CONF'.
DESCRIBE TABLE t_str_sc1 LINES w_ld_lines.
w_ld_linesc = w_ld_lines.
CONCATENATE ' TOTAL NO OF RECORDS SELECTED:' w_ld_linesc INTO e_line SEPARATED BY space.
*" Percentage of Archived SC's
W_PER_E_LINE = w_ld_lines.
W_PER_CBA1 = W_COUNT_CBA / W_PER_E_LINE.
W_PER_CBA = W_PER_CBA1 * 100.
*" Displaying Headings for the Report
*" Displaying the total no of records fetched for DB
FORMAT COLOR 7.
WRITE:/9 e_line .
WRITE:/10 'TOTAL NO OF FINAL ENTRIES SELECTED:', w_count_f.
WRITE:/10 'TOTAL NO OF DELETE ENTRIES SELECTED:', W_DEL_COUNT.
WRITE:/10 'TOTAL NO OF ENTRIES SELECTED FOR ARCHIVING:',w_COUNT_cba.
SKIP.
WRITE:/10 'PERCENTAGE OF CAN BE ARCHIVED:',W_PER_CBA,'%'.
FORMAT COLOR 3.
SKIP.
WRITE:/30 '#### SC HAVING FINAL ENTRY INDICATOR FOR ALL ITEM IN SRM #####'.
FORMAT COLOR OFF.
WRITE:/30(63) SY-ULINE.
ULINE.
NEW-LINE SCROLLING.
WRITE:/3 'Transaction No', 18 sy-vline,
19 'Transaction Type', 36 sy-vline,
37 'Business Trans.Cat', 56 sy-vline,
57 'Created On', 68 sy-vline,
69(10) 'Changed On', 84 sy-vline,
85 'Delivery date', 99 sy-vline,
100 'Final Entry Ind', 115 sy-vline,
100 'Deletion Ind', 112 sy-vline,
113 'Can be Archived', 129 sy-vline.
SET LEFT SCROLL-BOUNDARY COLUMN 19.
ULINE.
*$$********************************************************************
*$$ DISPLAY DATA AT HEADER LEVEL
*$$********************************************************************
*" Sort the SC in Sequence
SORT t_str_sc1 BY object_id.
IF SY-SUBRC = 0.
*" Displaying the Report at Header level
LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
IF NOT <FS_STR1>-archiving_flag IS INITIAL.
FORMAT COLOR 7.
ELSE.
FORMAT COLOR 3.
ENDIF.
WRITE:/3 <FS_STR1>-object_id, 18 sy-vline,
19 <FS_STR1>-process_type, 36 sy-vline,
37 <FS_STR1>-object_type, 56 sy-vline,
57 <FS_STR1>-created_at, 68 sy-vline,
69(10) <FS_STR1>-changed_at, 84 sy-vline,
85 <FS_STR1>-deliv_date, 99 sy-vline,
100 <FS_STR1>-final_entry, 115 sy-vline,
100 <FS_STR1>-del_ind, 112 sy-vline,
113 <FS_STR1>-archiving_flag, 129 sy-vline.
ENDLOOP. "end of t_str_sc1 displaying
ENDIF. "End of SY-SUBRC
ENDIF. "End of displaying Transaction type as CONF
<b><u>
THE LOGIC FOR THE SECOND REPORT</u></b>
LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
REFRESH t_str_sc2.
SELECT a~guid
a~object_id
a~object_type
a~process_type
a~created_at
a~changed_at
a~archiving_flag
b~guid
b~header
c~guid
c~deliv_date
c~final_entry
c~del_ind
INTO TABLE t_str_sc2
FROM crmd_orderadm_h AS a INNER JOIN crmd_orderadm_i AS b
ON aguid eq bheader INNER JOIN bbp_pdigp AS c
ON bguid eq cguid
WHERE a~guid eq <FS_STR1>-guid.
IF NOT t_str_sc2[] is INITIAL.
LOOP AT T_STR_SC2 ASSIGNING <FS_STR2>.
IF <FS_STR2>-DEL_IND NE C_DEL_SPACE. " if x
<FS_STR2>-DEL_IND = C_DEL_IND_F.
<FS_STR2>-ARCHIVING_FLAG = C_ARCHIVING_FLAG.
MODIFY T_STR_SC2 FROM <FS_STR2> .
ELSE. "if ' '
EXIT.
ENDIF.
ENDLOOP. "End loop of t_str_sc2
MOVE <FS_STR2>-DEL_IND TO <FS_STR1>-DEL_IND.
MOVE <FS_STR2>-ARCHIVING_FLAG TO <FS_STR1>-ARCHIVING_FLAG.
MODIFY T_STR_SC1 FROM <FS_STR1>.
ELSE. " For sy-subrc
<FS_STR1>-REMARKS = c_itnf.
MODIFY T_STR_SC1 FROM <FS_STR1>.
ENDIF. " End of sy-subrc
IF <FS_STR1>-DEL_IND eq C_DEL_IND_F.
W_DEL_COUNT = W_DEL_COUNT + 1.
ENDIF.
IF <FS_STR1>-ARCHIVING_FLAG eq C_ARCHIVING_FLAG.
w_COUNT_cba = w_COUNT_cba + 1.
ENDIF.
ENDLOOP. "End loop of t_str_sc1
********************************" when Transaction type is CONF
*******************************IF <FS_STR1>-process_type EQ 'CONF'.
DESCRIBE TABLE t_str_sc1 LINES w_ld_lines.
w_ld_linesc = w_ld_lines.
CONCATENATE ' TOTAL NO OF RECORDS SELECTED:' w_ld_linesc INTO e_line SEPARATED BY space.
*" Percentage of Archived SC's
W_PER_E_LINE = w_ld_lines.
W_PER_CBA1 = W_COUNT_CBA / W_PER_E_LINE.
W_PER_CBA = W_PER_CBA1 * 100.
*" Displaying Headings for the Report
*" Displaying the total no of records fetched for DB
FORMAT COLOR 7.
WRITE:/9 e_line .
WRITE:/10 'TOTAL NO OF FINAL ENTRIES SELECTED:', w_count_f.
WRITE:/10 'TOTAL NO OF DELETE ENTRIES SELECTED:', W_DEL_COUNT.
WRITE:/10 'TOTAL NO OF ENTRIES SELECTED FOR ARCHIVING:',w_COUNT_cba.
SKIP.
WRITE:/10 'PERCENTAGE OF CAN BE ARCHIVED:',W_PER_CBA,'%'.
FORMAT COLOR 3.
SKIP.
WRITE:/30 '#### SC HAVING FINAL ENTRY INDICATOR FOR ALL ITEM IN SRM #####'.
FORMAT COLOR OFF.
WRITE:/30(63) SY-ULINE.
ULINE.
NEW-LINE SCROLLING.
WRITE:/3 'Transaction No', 18 sy-vline,
19 'Transaction Type', 36 sy-vline,
37 'Business Trans.Cat', 56 sy-vline,
57 'Created On', 68 sy-vline,
69(10) 'Changed On', 84 sy-vline,
100 'Deletion Ind', 112 sy-vline,
113 'Can be Archived', 129 sy-vline,
130 'Remarks', 150 sy-vline.
SET LEFT SCROLL-BOUNDARY COLUMN 19.
ULINE.
*$$********************************************************************
*$$ DISPLAY DATA AT HEADER LEVEL
*$$********************************************************************
*" Sort the SC in Sequence
SORT t_str_sc1 BY object_id.
IF SY-SUBRC = 0.
*" Displaying the Report at Header level
LOOP AT t_str_sc1 ASSIGNING <FS_STR1>.
IF NOT <FS_STR1>-archiving_flag IS INITIAL.
FORMAT COLOR 7.
ELSE.
FORMAT COLOR 3.
ENDIF.
WRITE:/3 <FS_STR1>-object_id, 18 sy-vline,
19 <FS_STR1>-process_type, 36 sy-vline,
37 <FS_STR1>-object_type, 56 sy-vline,
57 <FS_STR1>-created_at, 68 sy-vline,
69(10) <FS_STR1>-changed_at, 84 sy-vline,
100 <FS_STR1>-del_ind, 112 sy-vline,
113 <FS_STR1>-archiving_flag, 129 sy-vline,
130 <FS_STR1>-REMARKS, 150 sy-vline.
ENDLOOP. "end of t_str_sc1 displaying
ENDIF. "End of SY-SUBRC
**********************ENDIF. "End of displaying Transaction type as CONFVery difficult to give you a solution without having access to the actual data and tables and some basic relationship model to explain the entities of the tables.
But one thing I found that makes dealing complex queries a lot easier - easier to code and to read and to maintain - is to use the WITH clause. This allows the type of modularisation of code that we're using in other languages.
The basic syntax is:WITH <alias1> AS(
SELECT ...
<alias2> AS(
SELECT ...
<aliasn> AS(
SELECT ...
SELECT
FROM alias1, .. aliasnThis allows you to create distinct query sets once - and then re-use these again in joins, selects, and even other sub-sets.
The resulting SQL is a lot les stressful on the eye and makes the whole "processing logic" of getting to the results much easier to analyse, follow and understand. -
Answers access with Java (to enable more complex reports)?
Hello and thanks for reading,
I was wondering if there is a possibility to access BI Answers with Java (or an other procedural language) in order to realize more complex reports than what is possible with the graphical user interface.
Is there an alternative way to access BI Answers in order to build reports, which provides one with a great flexibility in report design?
Thanks for ideas
EvgenyAre you trying to build more complex reports in OBIEE?
If you need to customize the obiee you can do by editing the html files in BI server and data folders. You can add ur own html code and tags there. Also to achive more complex formating you can use OBIEE Publisher that will let you to create your own rtf or pdf templates and upload it to the dashboards
Hope it helps
Prash -
We're moving towards developing J2EE applications. However, since not every single release of Oracle Application Server contains the Oracle Forms and Reports services, I'm concern about report generation of complex reports. I know Oracle has something called XML Publisher. However, it seems to be too expensive for the reporting purpose. Do you think Oracle should at least distribute the report service in every release of its application server.
Thanks.Hi,
Please check the following DEMO reports for scrolling
DEMO_LIST_SCROLL
DEMO_LIST_SCROLLING
DEMO_LIST_SCROLL_1
DEMO_LIST_SCROLL_2
DEMO_LIST_SCROLL_3
DEMO_LIST_SCROLL_4
DEMO_LIST_SCROLL_BOUNDARY
a® -
Hello experts!
I have a very complex reporting problem and can not find a solution at the moment.
I want to calculate the following:
stock quantity x volume (m^3) = stock volume
Now, the problem is that volume is a attribute of 0MATERIAL. Because our people are not very consistent in maintaining this values in the material master, we are not able to calculate this in our data flow of the infocube.
Therefore we use it as a formula variable in the report fetching volume with replacement path.
So far this works and is no problem. What we want to do is to show this also aggregated for a plant or so. Therefore I should calculate it before aggregation.
How you can see here:
http://help.sap.com/saphelp_nw70/helpdata/en/5b/30d43b0527a17be10000000a114084/frameset.htm
to calculate a formula variable is not possible.
So are there any alternative ways to make this szenario?
Best regards,
PeterHi Peter,
well at the moment I would think about a virtual keyfigure. May be someone else has a better idea. In case your report has to be very quick and you have lots of data in your datatargets the virtual keyfigure might not be a good idea, because such a query does not use any aggregate.
regards
Siggi -
Hi,
I have requirement to develop a complex reporting in such way:
Pervious Year(PY) | Current Year(CY) | % PY/CY
KF1
KF1a
KF2
KF2a
How can I make query for this layout?
Thanks,
HelenHi Helen,
You can do it like this. Keep all the required KFs in rows. In columns add a new structure. Make a new selection for Previous year (PY). Add the year characteristic here and include the variable for the year here (Either SAP exit for current year or user entry). Give an offset of -1. Similarly create another new selection for Current year. Use the same variable here without any offset. Create a new formula for %PY/CY. In this way you can achieve this layout. Do post back incase of further clarification.
Thanks.
Sumit -
Hi Experts
my requirement is to combine the standard selection screens of T-CODE IW39 & IW59 as a one selection screen.
i tried a lot but i'm unable to do it.
in these selection screens some blocks are called by dynamically through ldb. if i copied standard prog of T-CODE IW39 as zprogram it dispalying the whole selection screen but at that time i'm unable to merge IW59 selection screen code with this caode.
can any help me urgent .plzhi
chk this out
SELECTION-SCREEN: Special Variant for Logical Databases
You may only use these variants in the INCLUDE program DBldbSEL of logical database ldb.
Variants:
1.SELECTION-SCREEN BEGIN OF VERSION vers TEXT-xxx.
2. SELECTION-SCREEN END OF VERSION vers.
3. SELECTION-SCREEN EXCLUDE ... .
4.SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
5.SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
6.SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE node.
7.SELECTION-SCREEN FIELD SELECTION FOR NODE node.
Variant 1
SELECTION-SCREEN BEGIN OF VERSION vers TEXT-xxx.
Variant 2
SELECTION-SCREEN END OF VERSION vers.
Variant 3
SELECTION-SCREEN EXCLUDE ... .
Effect
Defines a selection screen version (three character name vers). Between BEGIN OF VERSION and END OF VERSION , you can exclude selection screen objects from version vers using SELECTION-SCREEN EXCLUDE. This allows you to reduce the database-specific part of the standard selection screen to those objects relevant to the report in question without having to sacrifice important selection criteria in other reports.
You activate a selection screen version for a report by entering it in the report attributes. If the database access program SAPDBldb itself has a selection screen version in its attributes, this applies to all reports that use the logical database and for which you have not declared a particular selection screen variant.
The function of the text symbol TEXT-xxx is to enable users to choose a selection screen variant using F4 help on the program attributes screen.
Extras:
(for SELECTION-SCREEN EXCLUDE) 1. ... PARAMETERS par 2. ... SELECT-OPTIONS sel
3. ... RADIOBUTTON GROUPS radi
4. ... BLOCKS block
5. ... IDS id
Effect
Excludes selection screen objects between SELECTION-SCREEN BEGIN and END OF VERSION. You can also exclude individual parameters, select-options, and radiobutton groups, within SELECTION-SCREEN BEGIN/END OF BLOCK blocks, and other SELECTION-SCREEN objects such as comments and underlines using the ID id addition.
Notes
You can only exclude objects of the DS:ABEN.SELECTION_SCREEN>standard selection screen 1000, not any that belong to a screen defined using SELECTION-SCREEN BEGIN OF SCREEN ... AS SUBSCREEN. If the standard selection screen includes objects from other screens ( SELECTION-SCREEN INCLUDE ... ID ...), you can use SELECTOIN-SCREEN EXCLUDE IDS ... to exclude them from the screen.
The database program SAPDBldb can use the function module RS_SELSCREEN_VERSION to use the active version of the selection screen for the current report.
Example
TABLES SPFLI.
NODES CHARLY. " with structure SFLIGHT
PARAMETERS PAR_1 LIKE SPFLI-CARRID FOR TABLE SPFLI.
SELECT-OPTIONS SEL_1 FOR SPFLI-CONNID.
SELECT-OPTIONS SEL_2 FOR CHARLY-FLDATE.
SELECT-OPTIONS SEL_3 FOR SPFLI-CITYFROM.
SELECTION-SCREEN COMMENT /10(20) TEXT-100 FOR TABLE SFLIGHT ID 001.
SELECTION-SCREEN COMMENT /8(30) TEXT-200 FOR NODE CHARLY ID 002.
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN NO INTERVALS.
SELECTION-SCREEN BEGIN OF BLOCK B100 WITH FRAME TITLE TEXT_001.
PARAMETERS P100_1 TYPE SFLIGHT-SEATSMAX FOR NODE CHARLY.
SELECTION-SCREEN END OF BLOCK B100.
SELECTION-SCREEN END OF SCREEN 100.
PARAMETERS PAR_2 LIKE SY-SUBRC FOR TABLE SFLIGHT.
PARAMETERS PAR_3 LIKE CHARLY-PLANETYPE FOR NODE CHARLY.
SELECTION-SCREEN BEGIN OF VERSION ABC TEXT-008.
SELECTION-SCREEN EXCLUDE PARAMETERS: PAR_1, PAR_3.
SELECTION-SCREEN EXCLUDE SELECT-OPTIONS SEL_2.
SELECTION-SCREEN EXCLUDE IDS 001.
SELECTION-SCREEN END OF VERSION ABC.
SELECTION-SCREEN BEGIN OF VERSION XYZ TEXT-XYZ.
SELECTION-SCREEN EXCLUDE IDS 100.
SELECTION-SCREEN END OF VERSION XYZ.
If the report attributes (or the attributes of database program SAPDBldb) contain the selection screen version ABC, the parameters PAR_1 and PAR_3, the select-option SEL_2 and the comment with text number 100 (ID 001) do not appear on the selection screen. Text symbol 008 of SAPDBldb is displayed if you choose F4 help for the 'Selection screen version' field.
If the program attributes (or the attributes of the database program SAPDBldb) contain the selection screen version XYZ, the block B100 containing the parameter P100_1 does not appear on the standard selection screen 1000, but it does appear on the subscreen 100..
Variant 4
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
Variant 6
SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE
node.
Extras:
... ID id
Effect
This statement returns the tables or nodes of the logical database for which additional selections are supported. If one of these tables or nodes is active in the report (declared using TABLES or NODES, or in the path from the database hierarchy root to a table declared using TABLES or NODES), the 'Free selections' pushbutton appears on the selection screen. If the user chooses this function, the system branches to a dialog in which the user can enter selections for the relevant fields of the appropriate tables. There are two ways to set the fields for which users can make free selections:
Using a selection view created for that purpose:
You maintain selection views within logical database maintenance. They consist of a set of fields from tables in the logical database that are divided into groups. You can also preselect fields here. Customers may overlay the selection view (that is, the system searches first for a customer-specific selection view. Only if one does not exist will the system display the SAP selection view).
If you have already made a preselection in the selection view, the user sees the selection screen for the preselected fields on which to enter his or her selections. If no fields have been preselected, the user must first select some.
Using all fields of all tables
In this case, the user must choose the table and then the fields for which he or she wants to define additional selections. Having selected these, he or she then passes to the selection screen for entering the free selections.
The database access program SAPDBldb takes on the form of a complex data object DYN_SEL consisting of WHERE clauses generated by the user input for dynamic database access.
Note
You cannot use free selections for nodes with type C (complex data objects).
Note
The precise definition of the object DYN_SEL is stored in TYPE-POOL RSDS and reads:
TYPES: BEGIN OF RSDS_WHERE,
TABLENAME LIKE RSDSTABS-PRIM_TAB,
WHERE_TAB LIKE RSDSWHERE OCCURS 5,
END OF RSDS_WHERE.
TYPES: BEGIN OF RSDS_TYPE,
CLAUSES TYPE RSDS_WHERE OCCURS 5,
TEXPR TYPE RSDS_TEXPR,
TRANGE TYPE RSDS_TRANGE,
END OF RSDS_TYPE.
DATA DYN_SEL TYPE RSDS_TYPE.
The object DYN_SEL contains (amongst other elements) a component (CLAUSES), which is an internal table. Each line in the internal table contains a table name (TABLENAME) and a further internal table (WHERE_TAB), that contains the WHERE clauses for table (TABLENAME).
The structure of the two other components is contained in type pool RSDS.
TEXPR contains the selections in a storeable format that you can use for the 'freely callable' function modules used to enter free selections ( FREE_SELECTIONS_INIT, FREE_SELECTIONS_DIALOG). TRANGE contains the selections in the form of RANGES tables , that you can use with the IN operator in the SELECT, CHECK and IF statements.
Note
Neither the TYPE-POOL RSDS nor the declaration of DYN_SEL need to be written into the database program: both are automatically included by the system.
In the database program SAPDBldb, an access to a table XXXX might look like this:
FORM PUT_XXXX.
DATA L_DS_CLAUSES TYPE RSDS_WHERE.
MOVE 'XXXX' TO L_DS_CLAUSES-TABLENAME.
READ TABLE DYN_SEL-CLAUSES WITH KEY L_DS_CLAUSES-TABLENAME
INTO L_DS_CLAUSES.
SELECT * FROM XXXX
WHERE field1 IN ...
AND field2 ....
AND (L_DS_CLAUSES-WHERE_TAB).
PUT XXXX.
ENDSELECT.
ENDFORM.
Note
If the table L_DS_CLAUSES-WHERE_TAB is empty (in other words, there are no free selections for table XXXX), the system ignores the addition ... AND (L_DS_CLAUSES-WHERE_TAB) in the SELECT statement.
Variant 5
SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
Variant 7
SELECTION-SCREEN FIELD SELECTION FOR NODE node.
Extras:
... ID id
Effect
This statement returns the tables and nodes of the logical database for which field selections are supported.
If required by the report, not all fields of these tables and nodes are filled from the database, but only those that the report needs. You declare these fields in the report using GET dbtab FIELDS f1 ... fn or GET dbtab LATE FIELDS f1 ... fn (the field list is then completed by the system, using the key fields of table dbtab).
You can improve performance considerably by restricting the fields used to those that are really necessary.
The database access program SAPDBldb receives the fields for the dynamic field selection in the form of an internal table SELECT_FIELDS.
Note
You cannot use this addition for nodes with type C (complex data objects).
Note
The exact definition of the object SELECT_FIELDS is stored in TYPE-POOL RSFS and reads:
TYPES: BEGIN OF RSFS_TAB_FIELDS,
TABLENAME LIKE RSDSTABS-PRIM_TAB,
FIELDS LIKE RSFS_STRUC OCCURS 10,
END OF RSFS_TAB_FIELDS.
TYPES: RSFS_FIELDS TYPE RSFS_TAB_FIELDS OCCURS 10.
DATA SELECT_FIELDS TYPE RSFS_FIELDS.
SELECT_FIELDS is an internal table. Each line of the internal table contains a table name (TABLENAME) and a further internal table (FIELDS) containing the fields of table (TABLENAME).
Note
You do not need to declare the TYPE-POOL RSFS or SELECT_FIELDS in the database program, since both are included automatically by the system. Unlike the objects linked using the DYNAMIC SELECTIONS addition, SELECT_FIELDS is also available in the report.
In the database program SAPDBldb, an access to table XXXX might look like this:
FORM PUT_XXXX.
DATA L_TAB_FIELDS TYPE RSFS_TAB_FIELDS.
MOVE 'XXXX' TO L_TAB_FIELDS-TABLENAME.
READ TABLE SELECT_FIELDS WITH KEY L_TAB_FIELDS-TABLENAME
INTO L_TAB_FIELDS.
SELECT (L_TAB_FIELDS-FIELDS)
INTO CORRESPONDING FIELDS OF XXXX
FROM XXXX
WHERE field1 IN ...
AND field2 ....
PUT XXXX.
ENDSELECT.
ENDFORM.
Notes
If table L_TAB_FIELDS is empty (in other words, the report for table XXXX does not require any field selection), SELECT (L_TAB_FIELDS) ... behaves like SELECT * ..., that is, all fields of table XXXX are filled.
The internal table SELECT_FIELDS is filled when the INIT routine runs in the database program or when the INITIALIZATION runs in the report. The program can access it if the logical database requires extra fields. -
Loading complex report data into a direct update DSO using APD
Dear All,
Recently, I had a requirement to download the report data into a direct update DSO using an APD. I was able to perform this easily when the report was simple i.e it has few rows and columns. But I faced problems If the report is a complex one. Summing up, I would like to know how to handle the scenarios in each of the following cases:
1. How should I decide the key fields and data fields of the direct update DSO ? Is it that the elements in ROWS will go to the
key fields of DSO and the remaining to the data fields? Correct me.
2. What if the report contains the Restricted KFs and Calculated KFs? Do I have to create separate infoobjects in the BI
system and then include these in the DSO data fields to accommodate the extracted data ?
3. How do I handle the Free Characteristics and Filters ?
4. Moreover, I observed that if the report contains selection screen variables, then I need to create variants in the report and
use that variant in the APD. So, if I have 10 sets of users executing the same report with different selection conditions, then
shall I need to create 10 different variants and pass those into 10 different APDs, all created for the same report ?
I would appreciate if someone can answer my questions clearly.
Regards,
D. Srinivas RaoHi ,
PFB the answers.
1. How should I decide the key fields and data fields of the direct update DSO ? Is it that the elements in ROWS will go to the
key fields of DSO and the remaining to the data fields? Correct me.
--- Yes , you can use the elements in the ROWS in the Key fields, but in case you get two records with same value in the ROWS element the data load will fail. So you basically need to have one value that would be different for each record.
2. What if the report contains the Restricted KFs and Calculated KFs? Do I have to create separate infoobjects in the BI
system and then include these in the DSO data fields to accommodate the extracted data ?
Yes you would need to create new Infoobjects for the CKF's and RKF's in the Report and include them in your DSO.
3. How do I handle the Free Characteristics and Filters ?
The default filters work in the same way as when you yourself execute the reoprt. But you cannot use the Free characterisitics in the APD. only the ROWS and cloumns element which are in default layout can be used.
4. Moreover, I observed that if the report contains selection screen variables, then I need to create variants in the report and
use that variant in the APD. So, if I have 10 sets of users executing the same report with different selection conditions, then
shall I need to create 10 different variants and pass those into 10 different APDs, all created for the same report ?
--- Yes you would need to create 10 different APD's. Its very simple to create, you can copy an APD. but it would be for sure a maintance issue. you would have to maintain 10 APD's.
Please revert in case of any further queries. -
Hi guru's this is very urgent issue...
i need GR/IR accounts for one particular vendor
for this i use Tcode fbl3n... i gave GR/IR no. i was dowloading this file
sort it vendor wise.
here WE , RE two document type is there
which one i have to take report???? just tell me
( i have submit report document type WE but it snot correct ithink thats why iam asking you) pleas help me out.Hi
Document type WE is created when goods are received... ie. in MIGO
Entry Dr Inventory a/c ; Cr GR/IR a/c
Document type RE is created at the time of Invoice i.e. in MIRO
Entry Dr GR/IR a/c ; Cr Vendor a/c
So take RE to see the GR/IR accoutns for one particular vendor.
Radha -
Hi ABAP Guru's
I got a requirement to develop an report which lists the stock(Opening Stock and Closing stock) for each material of a plant in given date range.whose Values to be matched with either MB5B or MC.9 Tcodes.I have found few tables for Stock like MBEW,MARD but those values are not matching with the Transactions.Can u tell me exactly how can i develop this report.? I'll be very thankful if u do the same.
DESCRIPTION TABLENAME FIELD NAME
Plant :
Material :
Material group :
From date :
to date :
opening stock :
total receipt qty :
total issue qty :
closing stock :
unit :
please provide me table-field name
its urgent
regards
rakeshHi
is you problem is solved if solved please sene me your code ,i do have same kind of requirment... -
: HIDING SUMMARY COLUMNS IN MATRIX REPORT , URGENT
Hi,
Can any one please tell me how to hide a column in oralce matrix report. Its a summary column for the matrix report which appears next to the cell values. For example
Manufacturer
Brand
SubBrand1 SubBrand2 Brand Total Manufacturer Total
Week $ Sales $ Sales Total $ Sales Total $ Sales
This is a case where,the cell value is the $ sales for the SubBrand for the week. And it gets total at each brand level and each Manufacturer level. The requrement is if there is only one SubBrand for a Brand then the Brand total should not appear on the report. Similarly if there is one Brand for a Manufacturer, then the total at Manufacturer level should not appear . The point is not only it should dissapear but the frame should srink to make it fell that there is no totaling going on at those two levels. If the fileds just remains blank then the report looks odd. So the gap should be srinked as well. How to do it . This is very urgent . Please help me out.
Thanks
Ferozuse a formst trigeer on the field that returns false when you don't want to display the field.
-
# in output of report: urgent
Hi,
I am facing a problem. I have an infobject 0class_num of character type. In any case if we dont have value then in output we get # instead of blank. But when i execute my report which is having a column contract type (0class_num) then in output it gives me something like '#/Warranty'. I tried to change display setting which is set to key by default and if i make ti to text then this value comes up 'Not assigned' but when i look up at data in the cube then there is no # preeceding the data. Can anybody please tell me from where this # is coming up and how to remove it ?
Its urgent please help,
Thanks !Yes you are right its having compounding infoobject 0class_type. Please tell me how to remove it. My object 0class_num is being used in a cube, i tried to remove 0 class_type from there but when i remove its compounding from object 0class_num i get following error:
Infoobject 0class_type is used in transfer rules(T) of char 0class_num.
We are not mainting master data for it. so there is no transformation but in text table of 0class_num this 0class_type is present how to remove it.
Please guide !
Thanks -
Problem with printing report (URGENT)
hi every body, (urgent)
When I print a report the margin of report not as i am like, i change the setting of printer to be suitable with what i want but nothong change,so the output of report not good.
can any body tell me if can change margin of the printer from inside the report (at run time) or any solution.
thanks
nullits the simple student management system where the teacher will input the marks of the students in particular subjects and store it in the database. now i have to print that on the report card. printing report as per student might be troublesome so i want to implement the " print all" button where the report card of all the students in that class will be printed in the report cards. its: printer printing the report of a student in the paper (A4 size) and then printer takes another paper sheet and then print the report of another student of same class until finish. how to accomplish this task?
-
Assets reports (URGENT)
Hi all guru's
we need Assets report with invoice date
is it possible...
its very urgent....'
i can get addtion of the assets, with doucment number, date...
but we need assets with invoice date.
regards
ssthere's only abap RAZUGA_ALV01: field asset value date (bzdat)
for analysing bldat you must create a query (sq01/2) with logical database ADA and table ANEK
A.
Message was edited by:
Andreas Mann -
Re:Center wise report urgent
Hai Experts,
For FS10N is there is any option to see by Cost Center and Profir Center wise please let me know urgent same for T.code - F.01 and F.08 also.
Helpful answer will be assign full points.
Thanks in advance,
KUMAR.B.Hi Kumar,
After executing FS10N itself you can change the layout & take the fields Cost center, profit center & many others as you like into the report.
F.01 & F.08 is much of consolidated standard report which provides results on company code & various summarization levels.
But you can you can use various other reports Business area, cost Center & profit center wise if you go into IS tab if you have ECC 6.0 version.
Regards,
Amol
Maybe you are looking for
-
I have a WLC (4402) running version 5.2.193.0. The WLC used to have both interfaces connected to a single switch (LAG was enabled) with etherchannel on the switch end. It was changed such that each port on the WLC is connected to a different switch
-
IMovie showing one thing on the project window and different one in preview
I have create an iMovie project with iMovie 08. On the project window I could see my pictures as I have imported, in the perfect order and with the correct orientation. I just installed iLife09 and I opened the project on iMovie09. The project window
-
Hi All, I have requirement, where i have a Message LOV and a shuttle in one page. Based on the Value selected in the LOV, shuttle has to get populated. So what am doing is, in "lovUpdate" event am redirecting to the same Page, which is going to satis
-
Premiere Pro CC not recognizing my graphics card
I was editing with it fine, not all of sudden Premiere Pro cc dont recognize card a MPE is diabled Mt card is a GTX 660
-
Can we set a variable by assigning another variable to it
Hi, Can we set a variable by assigning another variable to it. If not how can we implement this. Thanks Madhavi