Eclipse Birt使用动态sql创建data set
Eclipse Birt可以使用sql query来创建数据集,通过在报表中设置参数(Parameter)来传递客户端的用户输入,同时可以设置data set参数并且与报表参数关联(这两个参数是不同的),这样可以将客户端的用户输入传递给data set的参数供sql query的where语句使用,这是通常的创建sql语句的做法,但是种方法只适合固定的sql语句,对于动态的sql就不适用了。
如有这样一条sql query
select user.first_name firstName,user.second_name secondName,user.sex sex,user.age age,user.birth_day birthDay from user_table user where user.second_name = ? and user.sex = ?
var query = " select user.first_name firstName,user.second_name secondName,user.sex sex,user.age age,user.birth_day birthDay"; query += " from user_table user"; query += " where user.second_name = ?" if(param["Sex"].value != null){ query += " and user.sex = '" + param["Sex"].value + "'"; } this.text = query; var query = " select user.first_name firstName,user.second_name secondName,user.sex sex,user.age age,user.birth_day birthDay"; query += " from user_table user"; query += " where user.second_name = ?" var sex = reportContext.getParameterValue("Sex"); if(sex != null){ query += " and user.sex = '" + sex + "'"; } this.queryText = query;