Using stored procedures within Crystal Reports
Hello all,
Background Information:
I am trying to teach myself how to execute a stored procedure within Crystal Reports. This is an aspect of Crystal that my work group has not utilized before and we're trying to gather information on the subject. We use Oracle to create and execute functions and procedures all the time, but I've never tried this within Crystal.
I use the "Add Command" functionality within Crystal on most of my reports so that I can taylor the sql to the report. I find this easier to do versus using the ODBC connection to the tables and writing the code through the Crystal Reports wizard. I also frequently use functions within these sql statements that are inserted in the Add Command.
What I'm trying to achieve:
I have a report that needs to run as a "trial", and then later as a committed "run". This is for a monthly billing system. Essentially, the user will run the report as the "trial", preview the data, make any necessay corrections, and then later, run the actual billing run. Within my application, the bills are not actually marked as "billed" until they are actually "billed', if that makes sense. As a result, the "trial" report will need to mark the bills as "billed", generate the report, and then rollback the data (so that the bills are not "billed". Once the actual billing reports are ran, the same report will run, but with a "commit" at the end of the report so that the bills are now "billed".
I'm trying simple tests and failing (i.e. taking baby steps to learn what capabilities Crystal has):
I created as simple of a procedure as I can envision. This procedure inserts the word "test" in one of my fields for a provided account number. When I try to run this procedure via Crystal (via New Report ->History->My ODBC Database link->Stored Procedures), Crystal asks for the account number parameter, as it should. But I then receive the error message:
Database Connector Error: '42000:[Microsoft][ODBC driver for Oracle]Syntax error or access violation'
The existing ODBC connection has work great for years and years to retrieve data from tables, but this is the first time I've tried to utilize procedures. Can anybody help? And can anybody explain what the Stored Procedures link is supposed to do? Am I going down the right path?
thanks,
Noel
Hello,
Make sure the Oracle client install path is in the PATH statement. And also make sure you are using an IN/OUT cursor. CR only reads the last SELECT statement. Search the Documents area on how to create a Stored Procedure.
Also, if you are using CR XI ( 11.0 ) then upgrade to CR XI R2 and apply all service packs ( SP 6 ). Go to this link: http://www.sdn.sap.com/irj/boc and download the trial version of CR XI R2 and use your XI keycode, then apply the patches which you can get to by clicking on the BusinessObjects tab above, then Downloads.
Direct link to the Trial version: http://www.sap.com/solutions/sapbusinessobjects/sme/freetrials/index.epx
It may fix your issue also.
Thanks again
Don
Similar Messages
-
How to use stored procedure in crystal report for eclipse
Hi;
I am working on crystal report for eclipse 2.0 and trying to use stored procedure in report .It is created from Oracle but it is not showing any dependencies
CREATE OR REPLACE procedure ACT_DB.getCostTransferDetails
p_In_Contract_ID varchar2 DEFAULT '*',
p_In_Status_ID varchar2 DEFAULT '*',
p_In_COST_TRAN_DATE varchar2 DEFAULT '*',
p_In_DEPT_ID varchar2 DEFAULT '*',
p_In_PROJECT_ID varchar2 DEFAULT '*',
p_In_EMPLOYEE_ID varchar2 DEFAULT '*',
p_Out_CostTransfer_Cusor OUT COST_TRANSFER_PACKAGE.COST_TRANSFER_TYPE
AS
BEGIN
OPEN p_Out_CostTransfer_Cusor FOR
SELECT
header.cost_tran_id,
header.cost_tran_date,
header.total_credit_amount,
header.total_debit_amount,
header.transfer_status,
header.updated_by,
header.added_by,
header.trf_over_ninety_days,
header.business_unit_id,
header.equip_approval,
header.batch_desc,
details.opr_unit_id,
status.status_id,
details.fund_code_id,
details.prgm_code_id,
details.class_id,
details.activity_id,
details.product_id,
details.status_id,
details.transaction_amount,
details.jrnl_date,
details.adjust_prcnt,
details.adjust_amnt,
details.details_equip_approval,
details.detail_desc,
details.account_id,
details.project_id,
details.dept_id,
details.contract_id,
details.reason_code_id,
details.jrnl_id,
employee.f_name,
employee.l_name,
employee.employee_id,
project.project_id,
project.project_status,
--header.transfer_status,
contracts.contract_desc
FROM header, details, status, employee, department, project, contracts
WHERE (header.cost_tran_id = details.cost_tran_id)
AND (header.cost_tran_date = details.cost_tran_date)
AND (header.transfer_status = status.status_id)
AND (department.dept_id = details.dept_id)
AND (department.dept_id = employee.dept_id)
AND (project.project_id = details.project_id)
AND (contracts.contract_id = details.contract_id)
AND (details.Contract_ID = p_In_Contract_ID OR p_In_Contract_ID ='*' )
AND (header.TRANSFER_STATUS = p_In_Status_ID OR p_In_Status_ID ='*' )
AND (TO_CHAR(details.COST_TRAN_DATE, 'MM/DD/YYYY') = p_In_COST_TRAN_DATE OR p_In_COST_TRAN_DATE ='*' )
AND (details.DEPT_ID = p_In_DEPT_ID OR p_In_DEPT_ID ='*' )
AND (details.PROJECT_ID = p_In_PROJECT_ID OR p_In_PROJECT_ID ='*' )
AND (header.ADDED_BY = p_In_EMPLOYEE_ID OR '*'=p_In_EMPLOYEE_ID )
Can any another way to make procedure
Thanx
Regards ,
AmolHi Amol,
Are you able to execute your stored procedure from oracle?.
- If "Yes" then use the Crystal Report XIR2 Designer to create the report.
- Import this report in the Crystal Report For Eclipse Workbench.
- The latest version for Crystal Report For Eclipse is SP1.
Please let me know the results.
Thanks,
Neeraj -
Calling a stored procedure in crystal report
I am using crystal reports 11 on the front end connected to mssql server in the back end and i have a stored procedure written in mssql and has a view created. i want to know how do i call a stored procedure from crystal report when i run my report and how to pass the values from my prompt to the stored procedure
As long as the stored procedure returns a result set, the procedure should look and act just like table and the report will know what parameters are need to execute the procedure. If this does not answer your question, please provide more specifics.
-
Stored Procedure for Crystal Reports
Hi All,
I developed this test stored procedure to see wheather we could a stored procedure for crystal reports. It compiled without any problem, but when I run it, it gives me error message. Here is the stored Procedure..
CREATE OR REPLACE PROCEDURE WOLD1SIM.TEST_PROCEDURE(
TEST_CURSOR IN OUT TEST_PACKAGE.TEST_TYPE,
TEST_PARAMETER IN TEST_TABLE.ID%TYPE)
AS
BEGIN
OPEN TEST_CURSOR FOR
SELECT *
FROM TEST_TABLE
WHERE TEST_TABLE.ID = TEST_PARAMETER;
END TEST_PROCEDURE;
And
This is the error message..
ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00201: identifier 'TEST_PROC' must be declared
ORA-06550: line 2, column 1:
PL/SQL: Statement ignored
I have created the package sucessfully.
I was wondering If any one of you can advice me where I am making the mistake.
Thank youCREATE OR REPLACE PROCEDURE WOLD1SIM.TEST_PROCEDURE(TEST_CURSOR IN OUT TEST_PACKAGE.TEST_TYPE,
TEST_PARAMETER IN TEST_TABLE.ID%TYPE)
...you have 2 parameters in your procedure WOLD1SIM.TEST_PROCEDURE(). you should also use two parameters when you execute the procedure. -
Error connecting to stored procedure in crystal report
Hello
I'm using crystal reports 2008 with the latest service pack.
i'm trying to access stored procedure using the mysql jdbc driver 5.17. The crystal report has been designed which works fine with a login that created the stored procedure but when i try to run with another login that will used to run the crystal reports
The login has access to execute the stored procedure but entered in the crystal report it complains about
"User does not have access to metadata required to determine stored procedure parameter types. If rights cannot be granted, configure with {noAccessToProcedureBodies=true} to have driver generate parameters that represent INOUT strings irregardless of actual paramter types"Hi Sharon
Thanks for response.
I have checked that the user has permission to read and write. When i try and execute the stored procedure in the database by login with the user, it runs fine.
When i try and call the stored procedure from crystal reports it throws that error message.
regards
Naresh -
Stored Procedure in Crystal Report
Dear Experts,
I have created one Stored Procedure where Baseentry of invoice is the parameter. Now want to design a crystal report based on that. How to proceed? Please guide stpwise. I am using ODBC connection. And in Crystal report also the parameter should be the baseentry. How to integrate?
Regards,
Akash A.Hi Akash,
Using a Stored Procedure in Crystal
And with that little introduction, we finally get to the point of this articleu2014using stored procedures to simplify data queries for Crystal. Although we canu2019t make the above query into a database view, we can incorporate it into a stored procedure that returns a result set and then feed that stored procedure into Crystal no differently than we would feed a query based on views or tables.
Since stored procedures are so different between Oracle and SQLServer, weu2019ll first show you how to use a stored procedure in Crystal, given that it is already created. Then, weu2019ll separately show you how to create the procedure in SQLServer and Oracle.
When creating a Crystal Report, make it like any other report, except for the following.
1. When specifying a data source, instead of selecting Tables or Views, select Procedures, and then select the newly created procedure.
2. Crystal will immediately prompt you to enter values for the procedureu2019s input parameters. Do NOT do so; rather, check u201CSet as Nullu201D and click OK so Crystal will know to prompt for these as input parameters each time the report is run.
3. If you are using SQLServer, click on the Field Explorer and rename the fields to remove the u201C@u201D prefix that Crystal automatically adds to conform to SQLServer parameter/variable naming conventions. (This is not necessary if you are using Oracle.)
Then finish the report as you normally would. In our example, since all of the hard work was done in the query embedded inside of the stored procedure, the work in Crystal is trivial.
or check http://www.pdssoftware.com/newsletter/mar07/page6.htm
http://www.crystalreportsbook.com/Forum/forum_posts.asp?TID=2143
Thanks,
Neetu -
Using Stored Procedure Universe in Reports
Hi Friends,
I got some issues using SP's in Universe and WebI Report.
Case #1:
Can we execute dynamic SQL using stored procedure universe..?
I use SQL server as the DB for my reports.I created a SP which will execute on getting a input value from the user.This input value will frame the SQL dynamically in the SP.for executing the dynamic SQL i use sp_executesql inside the SP.The SP wexecutes successfuly in the DB but when i try executing it in the Universe i get a error message as follows: "Exception : DBD,[Microsoft][SQL SErver Native Client 10.0][SQL Server]Incorrect syntax nesr 'FROM'.State:42000"
The script i used for creating SP for your reference:
CREATE PROCEDURE P_S_GetCodeValueList
@s_table nvarchar(75)
as
begin
declare @s_sqlCommand nvarchar(1000)
declare @s_tablename nvarchar(75)
declare @s_code nvarchar(75)
set @s_tablename=@s_table
set @s_code = '*'
set @s_sqlCommand= 'SELECT ' + @s_code + ' FROM ' + @s_tablename
exec sp_executesql @s_sqlCommand
end
Case #2:
AIl also tried creating reports using the SP Universe which needs to get the parameter when the user refesh the report.
But every time the report is refreshed the report fetches the data which was produced when the SP is executed in the Universe for the first time.
I need to get the prompt in the report , to which the user could give a value and the SP gets executed for that value.
Is there any option in BO to do this?
It will be very helpful if you could give me some work arounds on this.
Regards,
SugumarHi Sugumar,
I can answer you for your 2nd question:
When you create the Stored procedure in the Universe and test it on retreiving data by inserting variable input you can check if the user could insert new value for the SP parameters.
Hope this helps!
Regards
Giuseppe -
How to pass parameter from 1 stored procedure to another stored procedure inside crystal report
Hi
I have several stored procedure in my Crystal Report. I am wondering if it is possible for me to pass a parameter to one of the stored procedure and to use the result of that stored procedure E.g. CustomerCode. To another 2 stored procedure to generate the report dynamically?
I have 3 stored procedure
The 1st one is used to gather information and process the calculation
another 2 stored procedure is used for generate the graph and both of them required to take 2 parameters. The 1st stored procedure will require 1 parameter (E.G. Reference Code) and will return a set of information including the data that could be use on the other 2 stored procedures.
After I added these 2 stored procedure, it requires me to pass 3 parameters to the report. I would like to know if I could only pass the Reference Code for stored procedure 1 and use it to retrieve the information for the other 2 parameter?
Thanks in advance
ChiHi Chi
To pass parameter from 1 stored procedure to another stored procedure, you will have to create sub report. In your case you will have to create 2 sub reports for 2nd and 3rd stored procedure and link those sub reports with the main report using Reference Code field in order to pass the values.
After creating the report when you will refresh the report, it will ask 4 parameters, one parameter for main report, one for the first subreport and two for second subreport to fetch the data correctly.
Regards
Poonam Thorat. -
Using Stored Procedure in Crystal
Hi Gurus,
I am using Crystal Reports 2008. I have a report which uses the stored procedure named as 'XA'. Now there is another stored procedure named as 'XA_1' which is same as procedure XA with some additional fields.
Now I have to point the report to the stored procedure XA_1 which was previously pointing to XA. Should I rebuild the entire report or Is there anyway so that I can replace the XA procedure with XA_1 so that the report is not disrupted. Please let me know your suggestions. Any help is appreciated.
Thanks,
SukumarHi Sukumar,
You don't need to rebuild your report. When you open your report in Crystal, go to Database | Set Database Location. In the top window you will see the Stored Procedure the report is using. Highlight the Stored Procedure.
In the bottom window, logon to the database where your new Stored Procedure is scroll down until you find it and highlight it. Now click the Update button on the right.
The report will now be using your new stored procedure and you should see the new fields you added.
Good luck,
Brian -
Stored Procedure and Crystal Report
Hi,
I am using oracle 9i and trying to make a crystal report out of a stored procedure. I am using sys_refcursor type to return the record. I just wonder if it is at all possible to return two or more select statements from different tables using the stored procedure. Any help with an example will be highly appreciated.
This is my code :
CREATE OR REPLACE PROCEDURE "TEST"."PROC_TEST_1" (Test_Cursor
OUT sys_refcursor,
p_extract_date IN CHAR
AS
v_extract_date VARCHAR2(10);
BEGIN
OPEN Test_Cursor For
select emp_id,emp_name from employees;
--- this is what I want to send after sending employees records.
--- select emp_loan,emp_loan_type,emp_loan_date from emp_loans;
END PROC_TEST_1;
Thanks,
JSYou could do something like the following:
SQL> variable rc refcursor
SQL> exec open :rc for select d.*, CURSOR(select empno, ename from emp e where e.deptno = d.deptno) from dept d ;
PL/SQL procedure successfully completed.
SQL> print rc
DEPTNO DNAME LOC CURSOR(SELECTEMPNO,E
50 OPERATIONS MY LOC CURSOR STATEMENT : 4
CURSOR STATEMENT : 4
no rows selected
DEPTNO DNAME LOC CURSOR(SELECTEMPNO,E
10 ACCOUNTING NEW YORK CURSOR STATEMENT : 4
CURSOR STATEMENT : 4
EMPNO ENAME
7782 CLARK
7839 KING
7934 MILLER
3 rows selected.
20 RESEARCH DALLAS CURSOR STATEMENT : 4
CURSOR STATEMENT : 4
EMPNO ENAME
7369 SMITH
7566 JONES
7788 SCOTT
7876 ADAMS
7902 FORD
5 rows selected.
30 SALES CHICAGO CURSOR STATEMENT : 4
CURSOR STATEMENT : 4
EMPNO ENAME
7499 ALLEN
7521 WARD
7654 MARTIN
7698 BLAKE
7844 TURNER
7900 JAMES
6 rows selected.
40 OPERATIONS BOSTON CURSOR STATEMENT : 4
CURSOR STATEMENT : 4
no rows selected
5 rows selected.
SQL>you could also have your procedure return more than one SYS_REFCURSOR as OUT parameter. You would have to see how the caller will be able to handle this type of syntax.
Others may provide better/easier solutions. -
Calling stored procedure into Crystal Report
Could any one help in suggesting how to call the stored procedure with parameters into crystal report?
i have tried using couple of methods
I have added this in add command option of Crystal report
Execute HRMS_DEVP.DPRC_GET_LEAVE_BAL(P_COMP_CODE,P_EMP_CODE,P_LV_CATG_CODE,P_DATE,P_BALANCE)
WHERE in p_balance i would be retrieving the output.
Second method i followed is
SELECT DFUN_GET_LEAVE_BAL(:P_COMP_CODE,:P_EMP_CODE,:P_LV_CATG_CODE,:P_DATE)FROM
DUAL;Hi,
Have you tried the 'get_value' function?..The syntax is
declare
l_dept number(5);
begin
l_dept := get_value('dept');
/* further process */
end;
where 'dept' is name of the bind variable.
-Krishnamurthy -
How run stored procedure in Crystal report?
I have table from query in report, but first I need to run stored procedure in report.
How I need to do it?previous post not correct
this is correct
When I need to run my report
1) I need to run storeed procedure ( the stored procedure will update some tables)
I just used Add Command and added stored procedure in Database Fields, but I think the procedure doesn't work in report. Maybe I need add new commant and write there:
exec ProcedureName par1 par2
or
exec ProcedureName (par1={?parameter1} par2={?parameter2})
It's doesn't work. What I need to do?
2) I use some query in report
ex.
select t1.col1, t2.col2, t6.col3 t1.col7 t4.col1
from t1, t2, t6, t4, r4, ju, hh
where hh.col11={?parameter1}
and ju.col3=6
and r4.col3={?parameter2}
group by .....
order by ......
How I need to create me report? What I need to do first?
If parameter in stored procedure par1={?parameter1} in query
and par2={?parameter2} -
How to use dynamic parameter when a report is created using Stored Procedures
Hi all,
any one have the idea of how to use dynamic parameter in crystal report XI R2
when report is created using Stored Procedure.
Regards
shashi kant chauhanHi
You can create an SQL command in Database Expert > Expand your datasource > Add command
Then enter the SQL query that will create the list of values to supply to the user
eg select field1,field2 from table
Then edit the parameter of the report. These will be the SP parameters adn can be seen in field explorer.
Change the parameter type to Dynamic
Under the word Value click on Click here to add item
Scroll down to your Command and select one of the values that you want to appear in the list
e.g field1
Then click on the Parameters field - this is essential to create the param
You can edit other options as required
That should do it for you.
I must say that i use CR 2008 connected to Oracle 10g SP, but i reckon this will work for SQL DB and CR XI as well
Best of luck -
Sub report using Stored Procedure returns incorrect data
Post Author: rikleo2001
CA Forum: Data Connectivity and SQL
Guys,
I am using CR 9 in ASP.net application.
One simple report and one Sub report, sub report is basically linked with Stored procedure accepting one parameter and returns a select query.
Main report is linked with that sub report using that parameter field.
Sub report is on demand sub report.
Now when I execute that main report and click on on demand sub report I am getting Wrong order information.
Here is out put on main report
Order 1 on demandDetail
Order 2 on demandDetail
Order 3 on demandDetail
NOW If I click on Order 3 (On demanddetail link, it displays rondom order details, some time correct on too), I am really stuck and don't know where I am going wrong.
Please help me to solve this issues.
Many ThanksPost Author: rikleo2001
CA Forum: Data Connectivity and SQL
Hi Yangster,
Thank you so much for your reply.
On DEMAND Sub report is located in main report, IN DETAIL SECTION
I am passing Order ID from main report linked to {?morderid} in subreport under command object, and if I run it in design mode, it works perfectly alright, so problem is isolated to ASP.NET and Crystal report post back method on Crystal report.
The example I give to you this is a simple example to identify issues in my real application and report.
My main report contains summary of data base on unique identifier. that summary have 4 differant types of details which has to be on the same report (as Crystal report doesn't provide Nested subreport), so I decided to use 4 subreports on main report and all subreport using Stored procedure command object.(Sub report has it own complex processing requirement to fulfill).
Please help me with any further ideas? for the sample which I presented to you this is only using one SP on main report with a simple processing.
Many Thanks -
Why Dynamic Parameter is not working, when i create report using stored procedure ?
Post Author: Shashi Kant
CA Forum: General
Hi all
Why Dynamic Parameter is not working, when i create report XI using stored procedure ?
Only i shaw those parameters which i used in my stored procedure, the parameter which i create dynamic using stored procedure
is not shown to me when i referesh the report for viewing the results.
I have used the same procedure which i mention below but can not seen the last screen which is shown in this .
============================================================================================
1. Select View > Field Explorer2. Right-click on Parameter Fields and select New from the right-click menu.3. Enter u201CCustomer Nameu201D as the name for your parameter4. Under u201CList of Valuesu201D select u201CDynamicu201D5. Under the Value column, click where is says u201Cclick here to add itemu201D and select Customer Name from the drop-down list. The dialog shown now look like the one shown below in Figure 1. Click OK to return to your report design.
Dynamic Parameter Setup6. Next, select Report > Select Expert, select the Customer Name field and click OK.7. Using the drop-down list beside select u201CIs Equal Tou201D and using the drop-down list, select your parameter field (it should be the first field). 8. Click OK to return to your report design and see the parameter dialog.The parameter dialog will appear and show you a dynamic list of values that is updated each time your run your report. It couldnu2019t be easier! In our next tutorial, we will be looking at how to use this feature to create cascading parameter fields, where the values are filtered by the preceding selection.
Dynamic Parameters in Action
My question is that whether dynamic parameter is working with storedprocedure or not.
When i added one table and try to fetch records using dyanmic prameters. after that i am not be able to find the dynamic parameter option when i referesh my report.
One more thing when i try the static parameter for my report, the option i see when i referesh the screen.
Please reply soon , it's urgent
Regards
shashi kantHi Kishore,
I have tested the issue step by step by following you description, while the first issue works well in my local environment. Based on my research, this can be caused by the lookup expression or it indeed return Male value based on the logic. If you use the
expression below, it will indeed only return the Male record. So please try to double-check the record in the two datasets and the expression in your environment:
=lookup(first(Fields!ProgramID.Value,"DataSet1"),Fields!ProgramID.Value,Fields!Gender.Value,"DataSet2")
As to the second issue, please try to use the following expression:
=Count(Lookup(fields!ProgramID.value,fields!ProgramID.value,fields!Gender.value,"DataSet2"))
Besides, if this issue still exist, in order to trouble shoot this issue more efficiently, could you please post both the .rdl file with all the size properties to us by the following E-mail address? It is benefit for us to do further analysis.
E-mail: [email protected]
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support
Maybe you are looking for
-
Blue screen of death (not iWork's problem) on 5s
I've heard of people having the blue screen of death before. But unlike others my 5s just went to a blue screen on the App Store. Then it shut off and when It turned it back on it just went to the blue screen. It faded from blue then white and then t
-
Hi In FS10n if i click on cumulative balance line item data not appearing the error MSG is no item exists (see long text).but it showing balances. after that i have checked line item display check box in fs00 every a/c is selected? pls solve the iss
-
Import PSE 3 catalog into PSE 13?
I have an old PSE 3 catalog (.psa file) that I need to open in PSE 13. I downloaded, installed, and ran Adobe's dedicated converter, per Adobe's instructions and obtained a "successful conversion" message upon completion. However, when I open the res
-
TS3249 My iweb does not open anymore!
I have updated as recently as today, and this evening, it doesn't work. The website is still "live" and I can view it from Safari, but on my end, iweb keeps prompting me to select a theme as though the site is brand new.
-
My MacBook Pro is very slow to start
Here is a report can someone please help. EtreCheck version: 1.9.12 (48) Report generated 13 July 2014 3:49:19 pm AWST Hardware Information: MacBook Pro (13-inch, Early 2011) (Verified) MacBook Pro - model: MacBookPro8,1 1 2.3 GHz Intel Core i5