我必须使用用户输入参数创建一个birt报告。这就像是时候的那样 仪表保留为空白它应该从表中获取所有值,否则当用户输入学生滚动号时,应该获取相应的数据。这可以通过Birt报告完成吗?如果是,那么请建议一种方式 谢谢!
答案 0 :(得分:2)
是的,你可以这样做。如果参数是可选的,则不能使用数据集参数(在查询中带有?),因为它将为null。相反,您必须使用JavaScript修改您的查询。
像往常一样创建报告参数,在本例中为'stud_no'。然后在你的SQL中添加一个你肯定是唯一的注释,我使用类似于 - $ stud_no $的东西,无论你想在哪里插入你的子句。
然后在beforeOpen中将这样的脚本添加到数据集中:
if (params["stud_no"].value){
this.queryText = this.queryText.replace("--$stud_no$", "and stud_no = " + params["stud_no"]);
}
当参数具有值时,这将使用子句替换注释。您可以在搜索字符串中使用正则表达式,然后您也可以根据需要将其插入多个位置。
答案 1 :(得分:1)
使用类似的声明
创建你的paremater where students_roll_no like ?
使用文本框创建报告参数,其中defualt值为%
因为百分比'%'是SQL通配符,所以它返回所有值。如果用户输入学生代码,则仅返回该记录。此外,用户可以输入0500%并获得从0500开始的所有记录。