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 (&param 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
    Romain

    Hi 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). Then

    Hi 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 you

    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 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,
    Vishal

    not 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 PM

    Since 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:
    DaKa

    Hi 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 Oliveira

    It 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 AM

    I 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