I have a problem with BIRT when I try to pass multiple values from report parameter.
I'm using BIRT 2.6.2 and eclipse.
I'm trying to put multiple values from cascading parameter group last parameter "JDSuser". The parameter is allowed to have multiple values and I'm using list box.
In order to be able to do that I'm writing my sql query with where-in statement where I replace text with javascript. Otherwise BIRT sql can't get multiple values from report parameter.
My sql query is
select jamacomment.createdDate, jamacomment.scopeId, jamacomment.commentText, jamacomment.documentId, jamacomment.highlightQuote, jamacomment.organizationId, jamacomment.userId, organization.id, organization.name, userbase.id, userbase.firstName, userbase.lastName, userbase.organization, userbase.userName, document.id, document.name, document.description, user_role.userId, user_role.roleId, role.id, role.name from jamacomment jamacomment left join userbase on userbase.id=jamacomment.userId left join organization on organization.id=jamacomment.organizationId left join document on document.id=jamacomment.documentId left join user_role on user_role.userId=userbase.id right join role on role.id=user_role.roleId where jamacomment.scopeId=11 and role.name in ( 'sample grupa' ) and userbase.userName in ( 'sample' ) and my javascript code for that dataset on beforeOpen state is:
if( params["JDSuser"].value[0] != "(All Users)" ){ this.queryText=this.queryText.replaceAll('sample grupa', params["JDSgroup"]); var users = params["JDSuser"]; //var userquery = "'"; var userquery = userquery + users.join("', '"); //userquery = userquery + "'"; this.queryText=this.queryText.replaceAll('sample', userquery); } I tryed many different quote variations, with this one I get no error messages, but if I choose 1 value, I get no data from database, but if I choose at least 2 values, I get the last chosen value data.
If I uncomment one of those additional quote script lines, then I get syntax error like this:
The following items have errors: Table (id = 597): + An exception occurred during processing. Please see the following message for details: Failed to prepare the query execution for the data set: Organization Cannot get the result set metadata. org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement does not return a ResultSet object. 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 'rudolfs.sviklis', 'sample' )' at line 25 ; 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 'rudolfs.sviklis', 'sample' )' at line 25
Also, I should tell you that i'm doing this by looking from working example. Everything is the same, the previous code resulted to the same syntax error, I changed it to this script which does the same. The example is available here: http://developer.actuate.com/community/forum/index.php?/files/file/593-default-value-all-with-multi-select-parsmeter/
If someone could give me at least a clue to what I should do that would be great.