How parameter passed to subreport
Hi all,
I define some parameters in main report and matching parameters in subreport, and pass the value from main to sub to control some sections in sub. I can get the supposed result in some subreports, but all. I am just wondering it is right to pass value between main and subreport using parameters.
Thank you very much!
Clara
Hi Clara,
It is perfectly acceptable to pass values between a main report and a subreport using parameters. Just make sure that you are linking the main report parameters to the correct subreport parameters or you may find some strange results.
Similar Messages
-
Parameter Passing to Subreport Database Command in CR2008 using java
Hi
In subreport i have a query which accept parameter from the parameter list and works fine in crystal report designer but using java when i am trying to pass the parameter form it gives me error ERROR java.lang.nullpointer Exception. Below is the code attached to send parameter to subreport.
oReportClientDocument = new ReportClientDocument ();
oReportClientDocument.open ( strRepPath, 0 );
reportSource = oReportClientDocument.getReportSource ();
oCrystalReportViewer = new CrystalReportViewer ();
oCrystalReportViewer.setOwnPage ( true );
oCrystalReportViewer.setOwnForm ( true );
oCrystalReportViewer.setDisplayGroupTree ( false );
oCrystalReportViewer.setDisplayToolbar ( true );
oCrystalReportViewer.setPrintMode ( CrPrintMode.PDF );
if ( fields != null )
oFields = new Fields ();
if ( !fields.isEmpty () )
o = null;
i = null;
o = new Object ();
i = fields.keySet ().iterator ();
while ( i.hasNext () )
o = i.next ();
setParamaterFields ( oFields, o.toString (), fields.get ( o ) );
oCrystalReportViewer.setParameterFields ( oFields );Hi David,
I guess you already have the parameters in the Main report.
Create a formula called Start_Date:
Min({?Date_Parameter})
Create another formula called End_date:
Max({?Date_Parameter})
Next, insert the sub-report with Order details table as the datasource.
Then, right-click the subreport and select Change Subreport Links > Move the Start_date formula and End_date to the 'Fields to link to' area and make sure you uncheck the option 'Select data in subreport based on field' for both of them.
Then, you also wish to link Salesman_Id, so move this field to the 'Fields to link to' area and from the drop-down for 'Select data in subreport based on field' select the Salesman_ID from the sub-report.
Now, right-click the sub-report and select Edit subreport. The design page of the Subreport opens up. Go to Report > Record Selection formula and it should show {?pmSalesman_ID} = . Edit the selection formula to include the start and end date like this:
*{?Pm-Salesman_ID} = and (ORDER_DATE >= {?Pm-@Start_date} or ORDER_DATE <= {?Pm-@End_date})*
Let me know how this goes!
-Abhilash -
How to pass a combo box parameter on reporting services?
How to pass a combo box parameter on reporting services?
For example, a report has a parameter which is a combo box, its items came from a database query.
Looks like the combo box didn't got populated and greyed out if I didn't pass the parameter.Hi LAScorpion,
In Reporting Services, if we want to pass a combo box parameter (means signal-parameter) from one report (main report) to another report (subreport), we can enable an action with “Go to report” or “Go to URL” option to achieve the requirement. For more details,
please see:
Method1: Go to report
Right-click a report item to open the properties dialog in subreport, click Action in the left pane.
Enable Go to report action, then select the main report name in the drop-down list.
Add a parameter as below:
Select ID (a parameter name from main report) in the drop-down list of Name, and select [ID] (a field name from subreport) in the drop-down list of Value.
Method2: Go to URL
Right-click a report item to open the properties dialog in subreport, click Action in the left pane.
Enable Go to URL action, the URL below is for your reference:
="javascript:void(window.open('http://server_name/ReportServer/Pages/ReportViewer.aspx?%2ffolder_name%2fmain_report_name&rs:Command=Render¶meter_name="& Parameters!parameter_name.Value &"'))"
Besides, if the parameter’s values are based on other parameters, then the combo-box got greyed out when we haven’t select values in preceding parameters. For more details, please see:
Cascading Parameters
If there are any misunderstanding, please elaborate the issue for further investigation.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
How to pass a 'one of' parameter value to a sub-report
I'm using CRXI.
If I have a parameter which is a 'one of', what are my options for passing the values of that parameter to a subreport?
Specifically I would like to know:
Is this a good solution: convert the 'one of' parameter to multiple formulas(one forumula for each of the possible values), and then link the subreport to the main report on each of those values?Thanks for responding, but I dont think you understood my question.
Let me ask the question again a little differently, here are my assumptions, maybe they are incorrect.
1. Parameters are passed to sub reprots by setting the parameter equal to a forumla, and then linking the sub report to main report through the formula.
2. If the Parameter is a 'one of' (ie can be multiple values), it can only be set equal to a forumula if you make the forumula an array.
3. You cant link a sub report to a main report on two formulas which are arrays.
4.Therefore how do you handle this situation? -
Parameter passing from master to subreport
Is it possible to pass a multi-value parameter from a master report to one or more subreports? If so, how?
Thanks for any help.
Wayne E. PfefferYes you can do this. I suggest the following: In your subreport make the report parameter a multi-value parameter. Test the subreport stand alone and make sure it works. Then drop the subreport into your main report, and map the subreport parameters to the main report parameters.
Scenario 1 (multi value parameter pass through):
The Main report has report parameter A which is a multi value parameter. You want to pass it to SubReport1 which has a report parameter B which is also defined as multi value parameter. In this case the mapping is just a simple parameter expression: =Parameters!A.Value
The subreport RDL element would look like this:
<Subreport Name="SubReport1">
<Parameters>
<Parameter Name="B">
<Value>=Parameters!A.Value</Value>
</Parameter>
</Parameters>
</Subreport>
Scenario 2:
The Main report has no report parameters. You have a SubReport1 with a report parameter B defined as multi value parameter. You want to pass e.g. three selected values "A", "B", "C" as parameter values to the subreport. You need to create a multidimensional object array on-the-fly, e.g. with the Split function, e.g.: =Split("A,B,C", ",")
RDL example:
<Subreport Name="SubReport1">
<Parameters>
<Parameter Name="B">
<Value>=Split("A,B,C", ",")</Value>
</Parameter>
</Parameters>
</Subreport>
Scenario 3:
The Main report has a multi-value parameter A. You want to pass only the first selected value from the main report's parameter to the subreport and the subreport's report parameter B is a single-value parameter. You can do this by using e.g. =Parameters!A.Value(0)
RDL example:
<Subreport Name="SubReport1">
<Parameters>
<Parameter Name="B">
<Value>=Parameters!A.Value(0)</Value>
</Parameter>
</Parameters>
</Subreport>
-- Robert -
How to get each value from a parameter passed like this '(25,23,35,1)'
Hi
One of the parameter passed to the function is
FUNCTION f_main_facility(pi_flag_codes VARCHAR2) return gc_result_set AS
pi_flag_codes will be passed a value in this way '(25,23,35,1)'
How to get each value from the string
like 25 first time
23 second time
35 third time
1 fourth time
I need to build a select query with each value as shown below:-
(SELECT t2.org_id, t4.description
from org_name t2, ref_org_name t3, code_table t4
where t2.att_data = t4.code
and t3.ref_code = t2.att_type
and t2.att_type = 25 and t3.code_type = t4.code_type
and to_date('01-JAN-10', 'DD-MON-YY') between t2.att_start_date AND t2.att_end_date) q1,
(SELECT t2.org_id, t4.description
from org_name t2, ref_org_name t3,code_table t4
where t2.att_data = t4.code
and t3.ref_code = t2.att_type
and t2.att_type = 23 and t3.code_type = t4.code_type
and to_date('01-JAN-10', 'DD-MON-YY') between t2.att_start_date AND t2.att_end_date) q2,
(SELECT t2.org_id, RTRIM(xmlagg(xmlelement(e, t4.description || ';')
ORDER BY t4.description).EXTRACT('//text()'), ';') AS DESCRIPTION
from org_name t2, ref_org_name t3,code_table t4
where t2.att_data = t4.code
and t3.ref_code = t2.att_type
and t2.att_type = 35 and t3.code_type = t4.code_type
and to_date('01-JAN-10', 'DD-MON-YY') between t2.att_start_date AND t2.att_end_date
group by t2.org_id) q3,
(SELECT t2.org_id, t4.description
from org_name t2, ref_org_name t3, code_table t4
where t2.att_data = t4.code
and t3.ref_code = t2.att_type
and t2.att_type = 1 and t3.code_type = t4.code_type
and to_date('01-JAN-10', 'DD-MON-YY') between t2.att_start_date AND t2.att_end_date) q4
Please help me with extracting each alue from the parm '(25,23,35,1)' for the above purpose. Thank You.chris227 wrote:
I would propose the usage of regexp for readibiliy purposes and only in the case if this doesnt perform well, look at solutions using substr etc.
select
regexp_substr( '(25,23,35,1)', '\d+', 1, 1) s1
,regexp_substr( '(25,23,35,1)', '\d+', 1, 2) s2
,regexp_substr( '(25,23,35,1)', '\d+', 1, 3) s3
,regexp_substr( '(25,23,35,1)', '\d+', 1, 4) s4
from dual
S1 S2 S3 S4
"25" "23" "35" "1"In pl/sql you do something like l_val:= regexp_substr( '(25,23,35,1)', '\d+', 1, 1);
If t2.att_type is type of number you will do:
t2.att_type= to_number(regexp_substr( '(25,23,35,1)', '\d+', 1, 1))Edited by: chris227 on 01.03.2013 08:00Sir,
I am using oracle 10g.
In the process of getting each number from the parm '(25,23,35,1)' , I also need the position of the number
say 25 is at 1 position.
23 is at 2
35 is at 3
1 is at 4.
the reason I need that is when I build seperate select for each value, I need to add the query number at the end of the select query.
Please see the code I wrote for it, But the select query is having error:-
BEGIN
IF(pi_flag_codes IS NOT NULL) THEN
SELECT length(V_CNT) - length(replace(V_CNT,',','')) FROM+ ----> the compiler gives an error for this select query : PLS-00428:
*(SELECT '(25,23,35,1)' V_CNT FROM dual);*
DBMS_OUTPUT.PUT_LINE(V_CNT);
-- V_CNT := 3;
FOR L_CNT IN 0..V_CNT LOOP
if L_CNT=0 then
V_S_POS:=1;
V_E_POS:=instr(pi_flag_codes, ',', 1, 1)-1;
else
V_S_POS:=instr(pi_flag_codes,',',1,L_CNT)+1;
V_E_POS:=instr(pi_flag_codes, ',', 1, L_CNT+1)-V_S_POS;
end if;
if L_CNT=V_CNT then
V_ID:=TO_NUMBER(substr(pi_flag_codes,V_S_POS));
else
V_ID:=TO_NUMBER(substr(pi_flag_codes,V_S_POS,V_E_POS));
end if;
VN_ATYPE := ' t2.att_type = ' || V_ID;
rec_count := rec_count +1;
query_no := 'Q' || rec_count;
Pls help me with fetching each value to build the where cond of the select query along with the query number.
Thank You. -
How to pass the parameter of a stored procedure to iReport
Hi... i don't know how to pass the parameter of the stored procedure to the iReport.
In the Report Query, i tried
1. sp_storedprocedure ' value'
2. sp_storedprocedure +''''+$P{parameter}+''''+
3. sp_storedprocedure +$V+$P{parameter}++$F($F is a variable having a value of ' (a single quote))may you enlighten us please? thank youFor M$ SQL server I find that it only works when U use the fully qualified name...
e.g. catalod.dbo.my_procedure_name 'variable'
My full query in the Report Query window is something like this:
EXEC arc.dbo.jasper_Invoice 1000
Note that you may find that selecting from VIEWS / TABLES fails for no apparent reason and iReport will prompt you with the usual very unhelpful (we have what we "pay" for) prompt, stating that "The document is empty".
To work around this issue, where a statement like "SELECT * FROM arc.dbo.acc_invoices WHERE Invoice_id=1000" does not work, simply create a PROC, something like:
CREATE PROC jasper_MyProc (@my_rec_id integer) AS
SELECT * FROM arc.dbo.acc_invoices WHERE Invoice_id= @my_rec_id integer
...to wrap your SELECT statement, then call the PROC
Edited by: Sylinsr on Apr 22, 2008 4:23 PM -
How to Pass Multiple Parameter to Discoverer Custom Folder Created in Admin
Hi,
I have done as describe in doc id (metalink) note 304192.1 and it's ok.
Now, my scope is to use the parameter declared in SETPARAMS not with the "=" condition but with "IN CLAUSE" (multipe values).
for example (SQL Inspector):
SELECT i106116 as E106116,i106117 as E106117,SUM(i106118) as E106118_SUM
FROM ( SELECT DS_COMMESSA AS i106116, DS_SCENARIO AS i106117, DS_VALUE AS i106118 FROM (select ds_commessa, ds_scenario, DS_VALUE
from dw_ods.ods_mbo_commessa
where DS_TIPO_COSTO='COSTI MEDI'
and ds_label='DIR'
and cd_scenario in (1,2)
and ds_commessa IN DW_ODS.SETPARAM.GET_PARAM1
union all
select 'Totale' as ds_commessa, ds_scenario, sum(DS_VALUE)
from dw_ods.ods_mbo_commessa
where DS_TIPO_COSTO='COSTI MEDI'
and ds_label='DIR'
and cd_scenario in (1)
and ds_commessa IN DW_ODS.SETPARAM.GET_PARAM1
group by ds_scenario
) CUO106102 ) o106102
WHERE (1 IN (DW_ODS.SETPARAM.SET_PARAM1(:"Commessa")))
GROUP BY i106116, i106117;
where the parameter "commessa" is used with "IN" operator.
Also tried to modifiy the SET_PARAM1 and GET_PARAM1 in order to use a "table of varchar2" ... but with no succes.
Help pleaseRod,
for the first "problem" I find the solution on metalink (note 304192.1) and works fine (also combining SET and GET together)... otherwise I don't know how use this "workaround"...
for the multiple values on a single parameter (for example: Month='Jan,'Feb') I have tried to understand how DISCO pass these values to the SET function (I suppose like an array of varchar2) but don't work. After the first values (Jan) the reports stop... The problem in not how stored the values but understan how DISCO "pass/manage" these values (Jan,Feb)... Can u help me?
my actual SETPARAMS package body is (like metalink):
CREATE OR REPLACE PACKAGE BODY SETPARAM AS
FUNCTION SET_PARAM1(P1 IN VARCHAR2) RETURN NUMBER IS
BEGIN
param1 := P1;
return 1;
END;
FUNCTION GET_PARAM1 RETURN VARCHAR2 AS
BEGIN
return param1;
END;
FUNCTION SET_PARAM_MBO(p_anno IN VARCHAR2) RETURN NUMBER IS
BEGIN
anno := p_anno;
return 1;
END;
FUNCTION GET_PARAM_MBO RETURN VARCHAR2 AS
BEGIN
return anno;
END;
END SETPARAM;
---------------------------------------------------------------------- -
How to make a common parameter for two subreports in the main report.
Hi,
I have a crystal report which has 2 subreports in it. Both the subreports have the same code and I need to create a parameter for Project Cost in both the subreports for filtering the data.
When i create the same parameter in both the subreports, i see two parameters with same name on my prompt page while refreshing the report. however I just want 1 parameter on my prompt page and data should get filtered in both the reports.
Can anyone please suggest something, How can I do that? is there a way for sharing same parameter between two subreports?
Thanks!
Neha.hi Neha,
here's how to do this:
1) create a new parameter with the same name on the main report
2) right click on your first subreport and choose Change Subreport Links
3) in the Field to Link To list drag over your new main report parameter
4) open the Subreport Parameter Field to Use select menu and choose your subreport parameter
5) repeat steps for the 2nd subreport
now you'll only get prompted once.
cheers,
jamie -
How to pass varchar2 in as parameter in SP
I have a sp which takes dname as parameter (see below code), I
tried 'ACCOUNTING', ''ACCOUNTING'' (2 single 's)
and "ACCOUNTING" none of them worked. Could you tell me how to
pass this in ( from pl/SQL and Java)?
This is my code:
CREATE OR REPLACE PACKAGE BODY testpkg1 AS
procedure test(
sum_cv IN OUT NOCOPY sumCur,
name IN VARCHAR2 ) AS
sql_statement VARCHAR2(100);
where_statement VARCHAR2(100);
BEGIN
if name = ' ' then
where_statement := ' ';
else
where_statement := ' AND d.dname = name ';
end if;
sql_statement :='SELECT e.* from emp e, dept d where d.deptno =
e.deptno ' ||where_statement ;
OPEN sum_cv FOR sql_statement ;
END test;
END;
and this is how I execute:
VARIABLE CV REFCURSOR
EXECUTE testpkg1.test(:cv, 'ACCOUNTING' )
ThanksThe problem is in your where_statement; You left out the quotes
on either side of name. If you want your code to get executed
like:
OPEN sum_cv
FOR
SELECT e.*
FROM emp e, dept d
WHERE d.deptno = e.deptno
AND d.dname = 'ACCOUNTING';
then, in order to preserve the quotes around ACCOUNTING, your
sql_statement must look something like:
'SELECT e.*
FROM emp e, dept d
WHERE d.deptno = e.deptno '
|| ' AND d.dname = ''' || name || ''''
So, in order for the sql_statement to end up as above, the
where_statement must look something like:
' AND d.dname = ''' || name || ''''
It is a good practice to use DBMS_OUTPUT.PUT_LINE to display the
sql_statement that you are trying to execute; It can make
debugging a lot easier. Please see suggested code below:
SQL> EDIT testpkg1
CREATE OR REPLACE PACKAGE testpkg1
AS
TYPE sumcur IS REF CURSOR;
PROCEDURE test
(sum_cv IN OUT NOCOPY sumcur,
name IN VARCHAR2 DEFAULT NULL);
END testpkg1;
CREATE OR REPLACE PACKAGE BODY testpkg1
AS
PROCEDURE test
(sum_cv IN OUT NOCOPY sumcur,
name IN VARCHAR2 DEFAULT NULL)
AS
sql_statement VARCHAR2(100);
where_statement VARCHAR2(100);
BEGIN
IF name IS NULL
THEN
where_statement := NULL;
ELSE
--NOTE THE ADDED SETS OF SINGLE QUOTES IN THE LINE BELOW:
where_statement := ' AND d.dname = ''' || name || '''';
END IF;
sql_statement := 'SELECT e.* FROM emp e, dept d WHERE
d.deptno = e.deptno '
|| where_statement;
DBMS_OUTPUT.PUT_LINE (sql_statement);
OPEN sum_cv FOR sql_statement;
END test;
END testpkg1;
SQL> START testpkg1
Package created.
Package body created.
To execute it from SQL*Plus, you would do just what you have
been doing:
SQL> VARIABLE cv REFCURSOR
SQL> SET SERVEROUTPUT ON
SQL> EXECUTE testpkg1.test (:cv, 'ACCOUNTING')
SQL> PRINT cv
SELECT e.* FROM emp e, dept d WHERE d.deptno = e.deptno AND
d.dname =
'ACCOUNTING'
PL/SQL procedure successfully completed.
EMPNO ENAME JOB MGR HIREDATE
SAL COMM
DEPTNO STARS
7782 CLARK MANAGER 7839 09-JUN-81 2450
10
7839 KING PRESIDENT 17-NOV-81 5000
10
7934 MILLER CLERK 7782 23-JAN-82 1300
10 ************* -
How to pass Cascading Parameter in SSRS using Java
How to pass Cascading Parameter in SSRS using Java---
We are having a problem with dependent parameters.There are three drop down--
1.first dropdown is of Country.When we select a country--Accordingly next dropdown(State)will populate
2.Second dropdown is of State. When we select a state--Accordingly next dropdown(City)will populate.
I have three data sources are
CountryList-
SELECT CountryRegionCode, Name
FROM Person.CountryRegion
ORDER BY Name
StateList
SELECT StateProvinceID, StateProvinceCode, CountryRegionCode
FROM Person.StateProvince
WHERE CountryRegionCode = @CountryRegionCode
ORDER BY StateProvinceCode
CityList
SELECT StateProvinceID, City
FROM Person.Address
GROUP BY StateProvinceID, City
HAVING (StateProvinceID = @StateProvinceID)
ORDER BY City
Ihave to show report that has been deployed on server on the besis of these parameters
I am using ReportViewer in JSP Page through url--
http://192.168.90.149/ReportServer/Pages/ReportViewer.aspx?%2fReport+Project1%2fCascading_Parameters&rs:Command=Render&rs:parameter=true&Country="+Country+"&State="+State;
But it is not accepting parameter if they are cascaded.It is working fine if Both parameters are independent.
Edited by: kaushlee on May 11, 2010 9:22 PMTake a look at set_custom_property:
public static final ID SETTEXT = ID.registerProperty("SETTEXT");
public boolean setProperty(ID pid, Object value)
if (pid == SETTEXT)
String text = value.toString();
and in forms
set_custom_property('beans.bean_item', 1, 'SETTEXT', 'some text');
cheers -
How to pass file name as parameter into url: or fo:external-graphic src
Hello gurus,
In my rtf I want to dynamically get the name of the image file and display the image in the report. If use hard coded image file name it works but if I try to get the name into a variable and pass that variable it is not working.
Basically my client is having different logos for each operating unit. in the OA_MEDIA directory there are separate logos for each OU. during run time based on OU name we need to display the corresponding image. If I can get this entire path($OA_MEDIA/logo.jpg') in XML field<?CF_OU_LOGO?> then I'm able to print the logo using url:{CF_OU_LOGO}
But I'm using seeded data source and I cant modify the data source, I need to handle this in RTF only. I could able to get the file name into a variable but not sure how to pass to url.
could some one help me on this. I tried the following options
<fo:external-graphic src="url($ln)" />
url:{$ln} in web etc...
here 'ln' is the variable which holds '$OA_MEDIA/logo.jpg'. ln is defined as <xsl:variable name="ln" select=".//CF_OPERATING_UNIT" />
later I set the values as <?xdoxslt:set_variable($_XDOCTX, 'ln',translate( concat('${OA_MEDIA}/','Logo',.//CF_OPERATING_UNIT,'.jpg'),' ',''))?><?xdoxslt:get_variable($_XDOCTX, 'ln')?>
thanks,
VijayVijay
What version of EBS is the customer running? I read somewhere that in R12 all of the concurrent parameters are passed to the XMLP template. I have not tried this but if true. You could create a conc program parameter that would hold the location of the image. You could either have the user pick the image or maybe derive it from the other parameter choices.
Lets assume the token name is DLOGO you can reference that in your template.
<?param:DLOGO?>
this needs to be at the top of the template. Then where you need to embed the image just reference the value using
$DLOGO
You can embed this in the external graphic field
As I mentioned I have not tested it yet, hopefully its there, if not there are ways around it. Try it first.
Tim -
How to pass parameter into a source variable of a invoke activity
I'm an new BPELer, I created a invoke activity to submit Oracle Appplications concurrent program, but I don't know how to pass parameter into source variable.
BTW, I have created the mapper file (.xsl) file.
could anyone tell me how to do that?
Thanks,
VictorHi.
How you start application? I think you send message to webservice(BPEL process is webservice too). So construct message with variable and value.
But I created only processes where input value doesn't matter. I haven't use mapper yet too. -
How to Pass parameter to Custom Scheduler dynamically
hi ,
I am new to OIM.
Need your help in passing parameters dynamically to Custom Scheduler.
I have created Custom Scheduler by extending Task Support.
I have registered the plugin through API , using PlatformService.registerPlugin() method.
As I need to send the parameter(s) to this CustomScheduler, I have defined them in Metadata (CustomScheduleTask.xml) file as below and got it imported into DB
through weblogicImportMetadata.sh script by providing the path of the file.
<scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
<task>
<name>CustomScheduleTask</name>
<class>org.schedule.custom.task.CustomScheduleTask</class>
<description>Fetch details of the given user_id</description>
<retry>5</retry>
<parameters>
<string-param required="true" helpText="Login Name">Login Name</string-param>
</parameters>
</task>
</scheduledTasks>
Iam able to import this plugin as well as register the plugin successfully. Now I have defined a job to which this Custom SchedulerTask is mapped.
Now in order to run this job(schedule task) I need to provide Login name( or id) which needs to be send as a parameter for the scheduler to get executed.
But while defining the job with this Schedule Task on OIM console, I was not able to define or pass parameter to this job. hence parameter is null in
CustomSchedule 's execute method .
Kindly help me how to pass parameter dynamically while running the scheduler from OIM console so that the execute method would be able to receive it.
Thank you in Advance.
Regards,
KumarHi,
When you have created the schedule job for your custom schedule task, you should see your Login Name textfield in the schedule task. If not, then there verify your schedule task xml.
In your schedule class code, add:
public void execute(HashMap arg0) {
final String METHOD_NAME = "execute :: ";
logger.debug(CLASS_NAME + METHOD_NAME + "Entering Method - execute");
try {
String LoginName = arg0.get("Login Name");
Regards,
Sunny -
How to pass input value to the IN parameter in a function
Hi ,
I'm new to pl/sql programming.
The below function is used inside a package and the package is invoked in visual studio.
The function uses 2 input parameters.
Out of which 'in_report_parameter_id' value comes thru job processor service 's job request.
The second IN paramter values are hard coded in the function.
I'm not able to understand this.
If the values are hard coded , how to make sure that only the hard coded values are the right ones?
Please anyone could explain to me?
I really dont have good idea about how to pass INPUT parameter to the functions or procedure
Is there any nice document which could give me good understanding about what are the ways or types we could pass values to the input parameter in subprograms?
thanks in advance.
CREATE OR REPLACE FUNCTION get_class_text_str
in_report_parameter_id IN NUMBER,
in_which IN VARCHAR2 DEFAULT 'SELECT'
RETURN VARCHAR2
IS
end_text VARCHAR2 (50) := '';
my_class_text_str VARCHAR2(10000) := '';
my_class_value_str VARCHAR2(10000) := '';
CURSOR class_text(c_1_text VARCHAR2, c_2_text VARCHAR2) IS
SELECT c_1_text || report_parameters.report_parameter_value
|| c_2_text
|| report_parameters.report_parameter_value
|| '" '
FROM report_parameters
WHERE report_parameters.report_parameter_id = 3690
AND report_parameters.report_parameter_group = 'CLASS'
AND report_parameters.report_parameter_name = 'CLASS'
GROUP BY report_parameters.report_parameter_value
ORDER BY CAST(report_parameters.report_parameter_value AS NUMBER);
BEGIN
IF (in_which = 'SUM') THEN
OPEN class_text ( 'SUM(NVL("Class ', '", 0)) "Class ' );
ELSIF (in_which = 'PERC')THEN
OPEN class_text ( 'ROUND((("Class ', '" / "Total") * 100), 2) "Class ' );
end_text := ', DECODE("Total", -1, 0, 100) "Total" ';
ELSE
OPEN class_text ( 'SUM(DECODE(bin_id, ', ', bin_value, 0)) "Class ' );
END IF;
LOOP
FETCH class_text INTO my_class_value_str;
EXIT WHEN class_text%NOTFOUND;
my_class_text_str := my_class_text_str || ', ' || my_class_value_str;
END LOOP;
CLOSE class_text;
my_class_text_str := my_class_text_str || end_text;
RETURN my_class_text_str;
END get_class_text_str;
/Edited by: user10641405 on Nov 19, 2009 8:16 AM
Edited by: user10641405 on Nov 19, 2009 8:30 AMThis is not a design I would use, but should work if coded properly. I would probably build a reference cursor query as text and use one open fetch and close.
You have 2 input parameters, in_report_parameter_id and in_which. I could not find where in_report_parameter_id was used in the program, but the value passed in for in_which is being used in IF logic to decide how to open the cursor. After the cursor is open rows are being fetched and eventually the cursor is closed.
The values in_which are compared to are hard-coded. It is the programmer's job to make sure the values listed are the right values and the actions taken are also correct. Your program is assuming that if the first 2 values are not encountered the third one listed is the one you want.
To pass input values to a procedure you merely provide the values as a literal or variable in the call, something like
whatever := get_class_text_str(1,'SELECT');
Maybe you are looking for
-
My hard drive AND my backup drive crashed. I sent my G4 into Apple for a new drive which came back, of course, virgin. However, if I synch my iPod to the new iTunes-which has nothing in it-- I will strip everything on the iPod. Is there a way to get
-
HT4528 old text messages are being deleted automatically
my old text messages are being deleted automatically but this seems to only happen with one contact. Has anyone experienced/fixed this?
-
Sound and Vibration toolkit 3.1
Hi I acquired 2-channel Acceleration data using NI PCI/PXI 4472 along with Labview DAQ Assistant. I received tdms files and converted them in excel files. Now I need to carry out spectral analysis of data. I am using Labview 8.6 and am also provided
-
Have 12.0.1 and notification to update crashes
I keep getting notifications for my windows 7 that I have an Apple update available. When I try it crashes. I checked iTunes andI have 12.0.1 and no updates are available. How do I remove reminder?
-
Why can't I except Terms and Condition for iCloud? All I get is unable to connect to server
Why can't I except Terms and Conditions for iCloud Iphone? All I get is unable to connect.