使用用户输入以Birt格式生成报告。当输入为空时,应提取所有内容,否则应显示相应的数据

|| 我必须使用用户输入参数创建一个Birt报告。就像当 仪表留空,应从表中获取所有值,否则当用户输入学生卷号时,应获取相应的数据。可以通过Birt报告完成此操作吗?如果是,请提出一个建议。 谢谢!     
已邀请:
        是的,你可以这么做。如果参数是可选的,则不能使用数据集参数(查询中带有?),因为它将为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\"]);
}
当参数具有值时,它将用子句替换注释。您可以在搜索字符串中使用正则表达式,然后根据需要将其插入多个位置。     
        使用like语句创建参数
 where students_roll_no like ?
使用文本框创建报告参数,默认值为% 因为百分比\'%\'是SQL通配符,所以它返回所有值。如果用户输入学生成绩编号,则仅返回该记录。此外,用户可以输入0500%并获取所有以0500开头的记录。     

要回复问题请先登录注册