使用用户输入在birt中生成报告。当输入为null时,应该获取所有内容,否则应显示相应的数据

时间:2011-06-23 11:28:24

标签: birt

我必须使用用户输入参数创建一个birt报告。这就像是时候的那样 仪表保留为空白它应该从表中获取所有值,否则当用户输入学生滚动号时,应该获取相应的数据。这可以通过Birt报告完成吗?如果是,那么请建议一种方式 谢谢!

2 个答案:

答案 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开始的所有记录。