Home
Analytics
Dynamic Parameters
Lesbea
Given that I have two parameters for my report
[BRANCH] representing a branch of the bank
[ACCOUNT] representing an account number of the bank
The data set has the [ACCOUNT] as a unique key along with [BRANCH] i.e. each account number belongs to only one branch.
I originally set up the report with a cascading group of parameters starting with [BRANCH] and then [ACCOUNT] so the report would always generate a result from the dynamic nature of the Cascading Parameter group.
Of course I had linked the parameters to the dataset with the 'WHERE Data.Branch = ? and Data.Account = ?'
conditions and linked the parameters to this.
There was a BUT from the users of teh report.
"BUT I also want to select all the accounts for one branch , I want to select all the accounts for the bank and I dont know what branch the account is for but I know the account number".
Given these scenarios yes one could easily solve the problem by creating a copy of the report and use various different parameter sets to achieve the result. However this report is all a drilldown report from another report and as such may be re-run whilst being in drilldown mode.
I moved the [BRANCH] and [ACCOUNT] paramters to normal parameters from cascading group to allow the use of an all default value of '%'. I also altered the WHERE statements to "WHERE data.branch like ?" etc.
This has partially worked except that the dynamic relationship between the parameters is now lost because I only get all the items on the [ACCOUNT] list for the parameter.
I would like to know that when the [BRANCH] parameter changes from '%' default to any of the selections available this then makes the dropdown list for the [ACCOUNT] to have still the default of '%' for all but only those accounts for the branch selected i.e. it acts similar to Cascade Group but allows all records to be selected.
Any ideas or methods of doing this would be greatly appreciated as a solution will be used for a more adventurous report where we have [YEAR] [MONTH] [DAY] [HOUR] as the parameters that need for obvious reasons to follow along the same lines of ALL or selection from the top [YEAR] down to the [HOUR]
Find more posts tagged with
Comments
Tubal
What I have done in the past is create a dataset just for the parameters, and then another dataset that's built from my parameters.<br />
<br />
If you have access to your queries, which it seems you do, then in your parameter dataset, you could do a union that would include an 'ALL' branch, and an 'ALL' account.<br />
<br />
For example, for your parameter dataset:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>SELECT branch, account
FROM myTable
UNION
SELECT 'All Branches', account
FROM myTable
UNION
SELECT branch, 'All Accounts'
FROM myTable
UNION
SELECT 'All Branches','All Accounts'
</pre>
<br />
That query should give you a list of parameters you could cascade, including a branch called 'All Branches' and an account called 'All Accounts' in each branch. If your account is an integer, you may have to cast it as text in your query for it to union with 'All Accounts'.<br />
<br />
Keep in mind that will basically double the # of accounts you actually have, so if you're talking millions of rows, it might be costly on your database.<br />
<br />
<br />
Once you get your parameters, you can modify your query on your data dataset in the dataset's beforeOpen script.<br />
<br />
So the dataset you use to build your report would start out with something like this, or whatever your dataset needs to be, without the parameters (we'll add those later in script):<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>SELECT *
FROM myTable
/**params**/</pre>
<br />
Then in the beforeOpen script, you would just replace the /**params**/ with your parameter. Something like this:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>var branch;
var account;
if(params["myBranch"]=='All Branches'){
branch = '%';
} else {
branch = params["myBranch"];
}
if(params["myAccount"]=='All Accounts'{
account = '%';
} else {
account = params["myAccount"];
}
this.queryText = this.queryText.replace("/**params**/","WHERE branch = '" + branch + "' AND account = '" + account);</pre>
<br />
What this script does is find /**params**/ in your query, and replace it with the 'WHERE .....' statement we create from your parameters.<br />
<br />
I'm not sure if that's exactly what you're looking for, but it should get you pointed in the right direction.
Lesbea
<blockquote class='ipsBlockquote' data-author="'Tubal'" data-cid="112004" data-time="1354561567" data-date="03 December 2012 - 12:06 PM"><p>
What I have done in the past is create a dataset just for the parameters, and then another dataset that's built from my parameters.<br />
<br />
If you have access to your queries, which it seems you do, then in your parameter dataset, you could do a union that would include an 'ALL' branch, and an 'ALL' account.<br />
<br />
For example, for your parameter dataset:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>SELECT branch, account
FROM myTable
UNION
SELECT 'All Branches', account
FROM myTable
UNION
SELECT branch, 'All Accounts'
FROM myTable
UNION
SELECT 'All Branches','All Accounts'
</pre>
<br />
That query should give you a list of parameters you could cascade, including a branch called 'All Branches' and an account called 'All Accounts' in each branch. If your account is an integer, you may have to cast it as text in your query for it to union with 'All Accounts'.<br />
<br />
Keep in mind that will basically double the # of accounts you actually have, so if you're talking millions of rows, it might be costly on your database.<br />
<br />
<br />
Once you get your parameters, you can modify your query on your data dataset in the dataset's beforeOpen script.<br />
<br />
So the dataset you use to build your report would start out with something like this, or whatever your dataset needs to be, without the parameters (we'll add those later in script):<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>SELECT *
FROM myTable
/**params**/</pre>
<br />
Then in the beforeOpen script, you would just replace the /**params**/ with your parameter. Something like this:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>var branch;
var account;
if(params["myBranch"]=='All Branches'){
branch = '%';
} else {
branch = params["myBranch"];
}
if(params["myAccount"]=='All Accounts'{
account = '%';
} else {
account = params["myAccount"];
}
this.queryText = this.queryText.replace("/**params**/","WHERE branch = '" + branch + "' AND account = '" + account);</pre>
<br />
What this script does is find /**params**/ in your query, and replace it with the 'WHERE .....' statement we create from your parameters.<br />
<br />
I'm not sure if that's exactly what you're looking for, but it should get you pointed in the right direction.<br /></p></blockquote>
<br />
<br />
I tried this but get an MYSQL error on the following <br />
<br />
var branch;<br />
var account;<br />
if(params["ParmBranch"]=='All Branches'){<br />
branch = '%';<br />
} else {<br />
branch = params["ParmBranch"];<br />
}<br />
if(params["ParmAccount"]=='All Accounts'){<br />
account = '%';<br />
} else {<br />
account = params["ParmAccount"];<br />
}<br />
this.queryText = this.queryText.replace("/**params**/"," WHERE SmsAcAudit.COMPANY LIKE '" + branch + "' AND SmsAcAudit.ACCOUNT LIKE '" + account );<br />
<br />
<br />
<br />
Table audit: <br />
+ Cannot get the result set metadata.<br />
org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement does not return a ResultSet object.<br />
SQL error #1:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3<br />
;<br />
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3 (Element ID:10835) <br />
odaconsumer.CannotGetResultSetMetaData ( 1 time(s) )<br />
detail : org.eclipse.birt.report.engine.api.EngineException: Cannot get the result set metadata.<br />
org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement does not return a ResultSet object.<br />
SQL error #1:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3<br />
;<br />
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3 (Element ID:10835)<br />
at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1206)<br />
at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1185)<br />
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:96)<br />
at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)<br />
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)<br />
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)<br />
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)<br />
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)<br />
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)<br />
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)<br />
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)<br />
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)<br />
at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:929)<br />
at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)<br />
at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:131)<br />
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)<br />
at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />
at java.lang.reflect.Method.invoke(Unknown Source)<br />
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)<br />
at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)<br />
at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)<br />
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />
at java.lang.reflect.Method.invoke(Unknown Source)<br />
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)<br />
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)<br />
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)<br />
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)<br />
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)<br />
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)<br />
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)<br />
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)<br />
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)<br />
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)<br />
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)<br />
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)<br />
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)<br />
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)<br />
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)<br />
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)<br />
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)<br />
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:317)<br />
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)<br />
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)<br />
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)<br />
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)<br />
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)<br />
at org.mortbay.jetty.Server.handle(Server.java:326)<br />
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)<br />
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:939)<br />
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)<br />
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)<br />
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)<br />
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)<br />
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)<br />
Caused by: org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot get the result set metadata.<br />
org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement does not return a ResultSet object.<br />
SQL error #1:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3<br />
;<br />
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3<br />
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.newException(ExceptionHandler.java:52)<br />
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:108)<br />
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:84)<br />
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeMetaData(PreparedStatement.java:414)<br />
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getProjectedColumns(PreparedStatement.java:377)<br />
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.doGetMetaData(PreparedStatement.java:347)<br />
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.execute(PreparedStatement.java:563)<br />
at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:927)<br />
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:441)<br />
at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1495)<br />
at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)<br />
at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:173)<br />
at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98)<br />
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)<br />
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:265)<br />
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1897)<br />
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)<br />
... 58 more<br />
Caused by: org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement does not return a ResultSet object.<br />
SQL error #1:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3<br />
;<br />
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3<br />
at org.eclipse.birt.report.data.oda.jdbc.Statement.executeQuery(Statement.java:464)<br />
at org.eclipse.birt.report.data.oda.jdbc.Statement.getMetaUsingPolicy1(Statement.java:403)<br />
at org.eclipse.birt.report.data.oda.jdbc.Statement.getMetaData(Statement.java:303)<br />
at org.eclipse.birt.report.data.oda.jdbc.bidi.BidiStatement.getMetaData(BidiStatement.java:56)<br />
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.doGetMetaData(OdaQuery.java:412)<br />
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.getMetaData(OdaQuery.java:379)<br />
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeMetaData(PreparedStatement.java:407)<br />
... 71 more<br />
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''13035001' at line 3<br />
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br />
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)<br />
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)<br />
at java.lang.reflect.Constructor.newInstance(Unknown Source)<br />
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)<br />
at com.mysql.jdbc.Util.getInstance(Util.java:386)<br />
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)<br />
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)<br />
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)<br />
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)<br />
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)<br />
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)<br />
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)<br />
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2281)<br />
at org.eclipse.birt.report.data.oda.jdbc.Statement.executeQuery(Statement.java:460)<br />
... 77 more<br />
<br />
<br />
**************************************************************************<br />
***** FIXED MISSING ' and " at end of replace string<br />
**************************************************************************
Lesjar2509
I want to expand this concept by setting a value of say <empty> as a value to a parameter field before it is displayed in the modified drop down list as in the Classic motors customer table not all customers have a STATE. But i cannot set this up to show on the parameters so that a blank or null value is selectable as my parameters have to be is required type.
Any help on this in the above scripts would be appreciated as i am building an exciting work flow to create all the code as hown above as a cutvand paste text file
.
The current one i have built handles up to five parameters which builds a considerable amount of code as 5 parameters generates 32 different ombinations of select and union
So the spec is to
Check if a database blank then display <empty> as a value that can be selected
Or if null display <no value>
This i hink has to be done in the select and union selection
Then in the before open script convert to the database sql for blank and null just like the All value'. Has been set up
Lesbea
SELECT '[01] Countries [9] States [9] ',
CLASSICMODELS.CUSTOMERS.COUNTRY,
CLASSICMODELS.CUSTOMERS.STATE
FROM CLASSICMODELS.CUSTOMERS
UNION
SELECT '[02] Countries [9] States [A] ',
CLASSICMODELS.CUSTOMERS.COUNTRY,
' All States'
FROM CLASSICMODELS.CUSTOMERS
UNION
SELECT '[03] Countries [A] States [9] ',
' All Countries',
CLASSICMODELS.CUSTOMERS.STATE
FROM CLASSICMODELS.CUSTOMERS
UNION
SELECT '[04] Countries [A] States [A] ',
' All Countries',
' All States'
FROM CLASSICMODELS.CUSTOMERS
This is example I am using however
CLASSICMODELS.CUSTOMERS.STATE
can have a null or blank value as per the demo database
i want to replace the blank or null in the above SELECT to a string '<NO VALUE>' if blank and '<NULL>' if NULL
and thus in the before open script turn the '<NO VALUE>' and '<NULL>' into proper selections again
var VarCountries;
var VarStates;
var TxtCountries;
var TxtStates;
if(params["ParmCountries"]==' All Countries') {
VarCountries = '%'
TxtCountries = ' LIKE ';
} else {
VarCountries = params["ParmCountries"]
TxtCountries = ' = ';
}
if(params["ParmStates"]==' All States') {
VarStates = '%'
TxtStates = ' LIKE ';
} else {
VarStates = params["ParmStates"]
TxtStates = ' = ';
}
this.queryText = this.queryText.replace("/**params**/",
" WHERE CLASSICMODELS.CUSTOMERS.COUNTRY"
+ TxtCountries
+ "'"
+ VarCountries
+ "' AND CLASSICMODELS.CUSTOMERS.STATE"
+ TxtStates
+ "'"
+ VarStates
+ "' order by CLASSICMODELS.CUSTOMERS.COUNTRY,CLASSICMODELS.CUSTOMERS.STATE");
If anybody can help on this it would be very much appreciated
Lesbea
Taking this all a step further !!!!
I have my cascading parameters and they work ok if on a single database i.e. MBGL-201112
However since I also have for example MBGL-201110, MBGL-201109 etc as database names I am able to select these dynamically using
a dataset
SHOW DATABASES LIKE 'MBGL-%'
and edit the
data source property binding with "jdbc:mysql://10.144.11.41/" + params["Dynamic Database Folder Selection"]
This parameter of Database is the first of my cascading parameter group.
I can select the database but now my other parameters no longer show , any help appreciated
Lesbea
<blockquote class='ipsBlockquote' data-author="'Lesbea'" data-cid="112283" data-time="1355156564" data-date="10 December 2012 - 09:22 AM"><p>
Taking this all a step further !!!!<br />
<br />
I have my cascading parameters and they work ok if on a single database i.e. MBGL-201112<br />
<br />
However since I also have for example MBGL-201110, MBGL-201109 etc as database names I am able to select these dynamically using <br />
a dataset <br />
SHOW DATABASES LIKE 'MBGL-%'<br />
<br />
and edit the <br />
<br />
data source property binding with "jdbc:mysql://10.144.11.41/" + params["Dynamic Database Folder Selection"]<br />
<br />
This parameter of Database is the first of my cascading parameter group. <br />
<br />
I can select the database but now my other parameters no longer show , any help appreciated<br /></p></blockquote>
<br />
<br />
<br />
FIXED BY ADDING THE DATABASE SELECTION AS THE FIRST PARAMETER OF THE CASCADING GROUP