Replace Where Clause in a Report?
Is there any way to programmatically replace the Where clause on a report?
Hi,
You can use QBE reports. This way you can give the where clause in the customization form.
Thanks,
Sharmila
Similar Messages
-
Dynamic where clause for generated reports (designer 6.0)
Hi,
I'd like to include dynamic where clause into my reports. It's easy with report builder by using bind parameter in a query where clause (¶m where param is a parameter in which you fill a VARACHAR2 to complete default where clause).
Problem with designer 6.0 report generator is that he failed while trying to parse the query statement he contructs if there is a bind parameter within.
How can I manage this problem ?
Thanks for answers
RomainHi Divya,
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no P_WHERE_CLAUSE= '||Where_Clause);Instead of using SET_REPORT_OBJECT_PROPERTY built in try using ADD_PARAMETER built in which
adds parameters to a parameter list. Each parameter consists of a key, its type, and an associated value.
v_rep := RUN_REPORT_OBJECT(repid); and instead of using RUN_REPORT_OBJECT try using RUN_PRODUCT.
DECLARE
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
Where_Clause Varchar2(4000) := null ;
*Pl_Id ParamList;*
*Pl_Name VARCHAR2(10) := 'param_list';*
BEGIN
Where_Clause := 'Where '||Create_Where_Clause();
message(Where_Clause);
message(' ');
pl_id := Get_Parameter_List(pl_name);
IF not Id_Null(pl_id) THEN
Destroy_Parameter_List(pl_id);
END IF;
pl_id := Create_Parameter_List(pl_name);
Add_Parameter(pl_id,'P_WHERE_CLAUSE', TEXT_PARAMETER, WHERE_CLAUSE);
Add_Parameter(pl_id,'PARAMFORM',TEXT_PARAMETER,'NO');
-- Add_Parameter(pl_id,'ANY_OTHER_PARAMETER', TEXT_PARAMETER, 'VALUE FOR OTHER PARAMETER');
RUN_PRODUCT(REPORTS,'REPORT_NAME', ASYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
END;Also you can add as many User created or System parameters as you want using add_parameter. Updated the code to add PARAMFORM parameter.
Best Regards
Arif Khadas
Edited by: Arif Khadas on Mar 15, 2011 9:31 AM -
Constructing a where clause in my report.
I have a report based on a view, I also have a parameter call P_status and user can select multiple statuses. The status selected is based on a rule table.
Eg IF Status is active, the condition is
select empid from emp where termination_date is Null
If status is terminated the the condition is
select empid from emp where termination date is not null.
my report view is
select * from emp
where empid IN p_status.
In case of multiple statuses , how can this be achieved.
Thanks.1. create a user parameter called p_where_clause (character 4000 and default value of 1 = 1).
2. Edit the query to include the reference to p_where_clause:
select empid
from emp
where &p_where_clause2. in the after param form trigger construct the where clause (assuming p_status is a comma delimited string of statuses, ie. "Active, Terminated, Suspended"):
function AfterPForm return boolean is
begin
if :p_status = 'Active' --only for active status
then :p_where_clause := 'termination_date is null';
elsif :p_status = 'Terminated' --only for terminated status
then :p_where_clause := 'termination_date is not null';
elsif :p_status is not null --for all others
then :p_where_clause := 'staus IN ('''||replace(p_status,',',''',''')||''')';
else :p_where_clause := '1 = 1';
end if;
return (TRUE);
end; -
Using a report value for a where clause in other report
Hi All,
i'm getting kinda nuts here. I created a page with three reports.
First report show the name of the user who logged in with his/her whole name. Second report shows the year, week, begin/end date of the week for the user in the first report. The third report show the hours the user worked in the week selected in the second report.
The link between first and second report is on column report. Somehow i managed it to work with second_report.mdw_code = :P3_ACRONIEM. I have no idea were this P3_ACRONIEM item is coming from, while i have no items in my page whatsoever. Now i need to link the second report to the third report. I have to use the second_report.mdw_code, second_report.year and second_report.week but i have no idea how to link these together. Any idea's? (Like making items, but then i have no idea how to link that item to the value in the second report). Please help.
Kind regards,
Dave
The link between the first and the second i could get it to work with :P3_ACRONIEM. I have no idea where this ITEM is coming from, because i have no items in my page (and it's the only page in the application). ThenHi Dave,
If I understand you correctly, you have a one report that lists users, a second report that lists dates and a final report that shows hours worked?
If so, you may find it easiest to have hidden fields on your page and base the second and third reports on these using appropriate WHERE clauses. (I generally put hidden fields in a region in the "After Header" position)
So, if the first report contains a USER_ID field, have a hidden field called P1_USER_ID. The link on the first report will branch back to the same page and set the value of P1_USER_ID to #USER_ID# The second report can then use WHERE USER_ID = :P1_USER_ID. When the page reloads, the second report redisplays and is filtered to show only those records relating to the selected USER_ID in the first report.
To extend this, if the second report contains WEEK_NUMBER, it should have a link that branches back to the same page and sets a hidden P1_WEEK_NUMBER field with #WEEK_NUMBER#. The third report should when have WHERE WEEK_NUMBER = :P1_WEEK_NUMBER AND USER_ID = :P1_USER_ID. You can, if need be, have and set more than one hidden field during each link.
Regards
Andy -
How having a where-clause in a report without affecting the actions button
Hi,
let's suppose I have a simple report built on a table where I have a date field.
If I want the report to get the records of the table when you login ao as to have only those of the current month, I could modify the region source in the page rendering of the report in this way:
select
“COLUMN1"
"COLUMN2",
"COLUMN3"
from "MYTABLE"
where to_char(COLUMN2,'mm-yyyy') = to_char(trunc(sysdate),'mm-yyyy')
order by COLUMN2
The problem is that if I try to choose another range of date on the application by using the filter of the Actions button, I get no records and I suppose that is 'cause the report applies the filter to the query where I have
where to_char(COLUMN2,'mm-yyyy') = to_char(trunc(sysdate),'mm-yyyy')
and so I doesn't work.
How should I do?
Thanks!try this...
select
“COLUMN1"
"to_char(COLUMN2,'mm-yyyy') ",
"COLUMN3"
from "MYTABLE"
where COLUMN2 between to_char(COLUMN2,'mm-yyyy') and to_char(trunc(sysdate),'mm-yyyy')
order by COLUMN2 -
SSRS Expression & a WHERE clause for a report
Sorry if this is stupid but can' t get it to work.
What I want to do is if the field OPERATION is a 'U' then sum the fields CONTNRSIZE.
So:
OPERATION CONTNRSIZE
U 2
R 5
U 1
Total 3
This is what I have tried but it won't work.
=iif(Fields!OPERATION.Value='U',Sum(Fields!CONTNRSIZE.Value),"No")
Thank youSorry if this is stupid but can' t get it to work.
What I want to do is if the field OPERATION is a 'U' then sum the fields CONTNRSIZE.
So:
OPERATION CONTNRSIZE
U 2
R 5
U 1
Total 3
This is what I have tried but it won't work.
=iif(Fields!OPERATION.Value='U',Sum(Fields!CONTNRSIZE.Value),"No")
Thank you
Try it like this...
=Sum(IIf(Fields!OPERATION.Value='U', Fields!CONTNRSIZE.Value, 0))
I typically try to avoid mixing text and numeric values but if you feel the need to have "No" instead of "0", you can try this...
=IIf(Sum(IIf(Fields!OPERATION.Value='U', Fields!CONTNRSIZE.Value, 0)) = 0, "No", Sum(IIf(Fields!OPERATION.Value='U', Fields!CONTNRSIZE.Value, 0)))
Jason Long -
How do I modify the WHERE clause in my SQL query?
This seems like such a straight-forward part of the report design, but I'm fairly new to Crystal Reports and I only have experience with modifying reports someone else has already written. In this particular case, I just need to modify the WHERE clause of the SQL query. I can select Show SQL Query and see what statement is being used to select data, but I can't find where to modify it since it's grayed out. I see how to change the selection criteria, parameters, grouping, etc...just not the WHERE clause. The report is linked to a database used for reporting with a table created and populated by a stored procedure. I don't need to modify the stored procedure because the data I want to filter by is currently in the table--I just don't know how to filter by what I need. Here's part of the query:
SELECT "rpt_dist"."startdate", "rpt_dist"."transtype", "rpt_dist"."laborcode", "rpt_dist"."crewid", "rpt_dist"."regularhrs" FROM "Reporting"."dbo"."rpt_dist" "rpt_dist"
WHERE (rpt_dist."transtype" <> 'WORK' AND rpt_dist."transtype" <> 'WMATL') AND rpt_dist."laborcode" LIKE 'S%' AND (rpt_dist."crewid" = 'HOUS' OR rpt_dist."crewid" = 'HOUS2' ...
I would like to add another crewid to the WHERE clause. Thanks for any input.1.Open the report in the crystal designer
2.Go to the field explorer(if hidden go to view menu->field explorer)
3.Rt. click on the database fields->choose database expert
4.Now you will see 2 columns-Available DataSource and Selected Tables
5.Rt. click on the object(ex.command) available in the Selected Tables column->Choose Edit command
6.A new Modify Command window will appear,here you can edit your SQL Query
I get to step 4 and I see the two columns including my database and the report table, but there is no command object available. If I right-click on my table, I can just view the Properties. ??
As for the other tip to modify the record selection: I don't see anywhere the other crewid values are set and if I add the one I'm missing, it doesn't modify the existing SQL Query and when I preview the report it throws off the results so that no data displays??
I'm using Crystal Reports 11.5 if that makes a difference. Thanks again. -
Passing where clause with spaces from forms to reports
Hi,
Has anybody passed where clause as lexical parameter with spaces from forms to preports..
I have seen people mention that, we can replace the spaces with special characters and then replace it again in the before trigger report..does anyone have a working example of that??
Thanks.i solved the issue..
i had written the procedure in the before report
trigger instead of writing it in the before parameter
form trigger..
it works perfecto now..
Thanks.We had removed the spaces and used commas to delimit each item.
So you are saying spaces are not a problem in 10g? -
Where clause is not being passed to the report
I just upgraded my crystal reports from 10.0 to 11 R2. Reports were working fine in 10.0 version,
Reports are called from vb.net (vissual studio 2005). When I was running this reports using crystal 10.0 and visual studio 2005, it was working fine, After the upgrade report runs but I am noticing that where clause is not being passed to the reports.It generates report as there is no where clause and produces multiple pages report.I believe you are encountering an issue documented in [this|https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_bip/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes.do] note.
Ludek -
No output for XML Publisher Report using CASE/DECODE in Where Clause
Hi,
I've a business requirement to modify an existing report which has two input parameters,
-> p_statcode (Closed Status) which can have values 'Y' or 'N'
-> p_overdue (Overdue Flag) which can have values 'Y' or 'N'
The Overdue Flag is an evaluated column having values of Y/N and it is evaluated as follows,
ONTF_MOD_VAL(NVL (
(TRUNC (SYSDATE)
- (TO_DATE (oe_order_lines.attribute18,
'DD-MON-RRRR')
+ TO_NUMBER (fnd_lookup_values.meaning))),
0
overdue_flagThe user requirement now is they needs to be a third option for parameter p_overdue called ALL,
passing which the output should include records having
p_statcode is Y ELSE p_statcode is N AND p_overdue is Y OR p_overdue is N
In other words records having both Y and N vlaues for Overdue Flag have to be returned irrespective of the value given to Closed Status.
Original where clause in the Data Definition file is as follows,
WHERE Closed_Status = nvl(:p_statcode,Closed_Status)
AND overdue_flag = nvl(:p_overdue,overdue_flag)My modified code is as follows,
WHERE Closed_Status = NVL (:p_statcode, Closed_Status)
AND overdue_flag = (CASE
WHEN :p_overdue = 'Y' THEN 'Y'
WHEN :p_overdue = 'N' THEN 'N'
ELSE overdue_flag
END)
OR
WHERE Closed_Status = NVL (:p_statcode, Closed_Status)
AND overdue_flag = DECODE (:p_overdue, 'Y', 'Y', 'N', 'N',overdue_flag)Both approaches have the same problem.
The output is in EXCEL format. The modified query works fine for p_overdue as Y or N but when p_overdue is passed as ALL it returns an empty EXCEL sheet with just the report output column headers.
Any help as to why this is the case ?? What is wrong in my approach ?
Regards,
Vishalnot clear about p_overdue = ALL
which values needed for p_overdue = ALL ?
try smth like
WHERE Closed_Status = NVL (:p_statcode, Closed_Status)
AND (
overdue_flag = DECODE (:p_overdue, 'Y', 'Y', 'N', 'N',overdue_flag) and :p_overdue != 'ALL'
or
:p_overdue = 'ALL' and (overdue_flag = 'Y' or overdue_flag = 'N')
)for overdue_flag which has more then 'Y', 'N' values
if overdue_flag only in ('Y','N') then
WHERE Closed_Status = NVL (:p_statcode, Closed_Status)
AND (
overdue_flag = DECODE (:p_overdue, 'Y', 'Y', 'N', 'N',overdue_flag) and :p_overdue != 'ALL'
or
:p_overdue = 'ALL'
) -
Apex 4.0 Image Buttons to update SQL Where clause of Report?
I made a table called Letters with 1 column in it called Letter and the data in it is simply A,B,C, to H. I made an apex form around this table and then created two image buttons A and B that display above the reporting area b/c i want to be able to click on the A image button and have it update the Where clause for the Letters table to be "Where Letter = A" (so once you click the A button, only the A will appear), same for the B button. I have attached a link to an album of images to show what i'm trying to do to better explain it. I just can't figure out what or how to make it so that the image button can update the where clause. I should note that i am relatively new to Apex and i tried using a dynamic action to do it but can't get this to work.
Link to images of what i have so far-> http://imgur.com/a/guxkd/oracle_apex_40_use_image_buttons
Any suggestions?
Edited by: Brobot on Feb 8, 2011 9:58 PMSince you are using some kind of button(with images or otherwise) , add some attributes to identify them together aswell as uniquely.
For instance if you add a name and an a common classname to each button
For example, in button attributes for A this could be
name="A" class="where_clause_button"You can use these attributes to trigger a Dynamic action which can refresh the report.
Since you want the report to be filtered based on the button(ie using the "name" attribute of the corresponding button) , you need to set that value in some hidden item, say P100_FILTER_LETTER. and add a where clase to your Report Region' SQL Query
WHERE <column name> = :P100_FILTER_LETTERNow create a Dynamic Action as
Event :Click
Triggering Element : jQuery selector
Selector : *.where_clause_button*
<li>True action 1 : Execute Javascript code
filter_item_name = 'P100_FILTER_LETTER'
this_button_name = $(this.triggeringElement).attr('name');
//Set session state of Hidden Item before refresh
var ajaxRequest=new htmldb_Get(null,$v('pFlowId'),'null',$v('pFlowStepId'));
ajaxRequest.add( filter_item_name ,this_button_name );
var ajaxResult=ajaxRequest.get();<li> True Action 2: Refresh
Affected Element: Region
Name : Choose Report Region Name
Hope it helps -
Binding an SQL "where" clause to a field in the report.
Hello everybody,
I have made a crystal report that works fine. Now, I need to add a specific query to the report and drag and drop the returned fields in the report.
The problem is that I need to add a query that contains a "Where" clause that is binded to a field already existing in the report, for example :
SELECT T0.Field1,
T0.Field2,
T0.Field3
FROM Table1 T0
WHERE T0.Field4=(a field from a report)
Is it possible to do it ? if yes, how can I do it.
Thank you in advance for your further responds,
Best Regards,
- Youssef -Moved to Report Design forum
You can't do it in that specific way. It would have to be done server side or use a subreport and then link the subreport on the field from the main report.
Don -
Interactive report - conditional where clause
Hello,
i have an interactive report like
SELECT a.id, a.my_column
FROM my_table a
WHERE a.id = 12
Now, when the user select a assigned value, the where clause don't be execute, also like this (without where)
SELECT a.id, a.my_column
FROM my_table a
The User is not allowed to see this column, also i can not use the filter-function of the interactive report.
Any Idea how did i make?
thank's, Daniel
Message was edited by:
DaKaHi Andy, this functionalitiy is clear.
I will manipulate the region source in fact of an interaction of a user.
Now, my select shows like:
SELECT a.* FROM v_test a
WHERE (:P40_ID = -1 OR a.id = :P40_ID)
:P40_ID is a select box with return-null-value of "-1".
This is not very fast. Therefore i search a method, when user select the null-value, then the select like:
SELECT a.* FROM v_test a;
and when user select another value then:
SELECT a.* FROM v_test a
WHERE a.id = :P40_ID;
All this without the "filter"-functionality of the IR!
Any idea?
Sorry for this misunderstood.
Daniel. -
REPORT with dynamic WHERE CLAUSE (run RDF or REP) ?
Hi:
When running a REPORT (myreport.rep) with dynamic where clause using a lexical parameter, I got this error:
REP-1439: Cannot compile .REP or .PLX file as it does not have source
If i run the report specifiying RDF extension (myreport.rdf) the report run successfully! Is this normal ?
If I specify RDF extension will Report Server COMPILE the report everytime I execute it ?
When using dynamic WHERE CLAUSE I will have to run RDF files instead of REP ?
I'm running Reports 9i under Linux, with IDS under Windows.
Waiting Help
Joao OliveiraIt sounds like you are building the .rep files on one platform (windows) and running them on another (linux). The reason that the .rdf file continues to work is that Reports recompiles the PL/SQL within the report when you move from one platform to another or change schemas. .rep files can't be re-compiled in this way so you need to ensure they are compiled successfully when converting them.
You need to convert from .rdf to .rep on the platform that you are intending to run on. Try running rwconverter on the linux platform with "compile_all=yes" to produce the .rep file and running that .rep file. -
Passing where clause to lexical parameter in report
I have a requirement to send the values of lexical parameters in reports from Forms 6i , like i have written one query in report builder with lexical clause being where.Now i want to pass this where clause as a whole from forms 6i, for example.
select asset_code,asset_name from fix_asset @p_status
now i want to pass this p_status from forms 6i which has 1 radio group with 3 values , if i select value 1 then where nvl(at_status,'X') = 'X' ,if i select value 2 or radio button 2 then where nvl(at_status,'X')='Y' and if i select 3 then both x and y should come together.Edited by: 998476 on Jun 5, 2013 12:01 AMI have a Before trigger Function to which the parameters will be passed.
Suppose if User selects multiple values for a parameter then how to pass these multiple Values to that parameter?
eg:In first Workbook Before Trigger is fired and the paramters for the trigger are
'par1','par2','par3' etc.
If User selects multiple values for a parameter 'par1' from the list of values displayed then how to pass all these values to 'par1' in Function?
After firing the trigger rows are inserted in a temp_table .My second Workbook will
fetch the rows inserted in this Temp Table.
I hope u understood what my requirement is...
Thanks in advance
Maybe you are looking for
-
I would like to copy my iPhoto (9.4.1) library from my Mac Pro (10.7.5) to a Macbook Pro (10.7.5). Can I drag the iPhoto Library from the Pictures folder to Air Drop and send them to the MacBook? If I then move that to the Pictures folder on the MacB
-
i have mac book air os x 10.8.2 i create a photo library on iPhoto and i moved it to my time capsule disk now i try to access library from my wife mac book running on mac os x 10.5.8 i always receive library locked on locked disk
-
Freezes after setting ISO in camera app
The phone freezes after the following: 1. Set ISO to 800 in manual mode click a picture or two. 2. See the images from preview panel in camera app(touch bottom right of image) 3. Get back to camera. The only way to get back is to restart the phone us
-
Hi all, What does Term w/Pay mean in assignment status details. Best Regards
-
Sorting serial packet data into queues
I am receiving serial packet data which originates from different sensor nodes in a network. Each sensor node has a unique ID which is sent in the packet. The idea is to display the data in one chart and choose which sensor data to display by using a