当前位置: 代码迷 >> 报表 >> birt动态SQL,真正做出来的进解决方法
  详细解决方案

birt动态SQL,真正做出来的进解决方法

热度:1096   发布时间:2016-05-05 08:13:49.0
birt动态SQL,真正做出来的进
birt 的SQL 拼装。比如说 select id,name,age from aa

2个参数 id是必须输入的 name可选添 默认是全选

我在SQL中写 select id ,name,age from aa where id=? and name like replace(?,'全选','%%')
提示错误 NULL 传参传不进去。
网上查说可以动态SQL 但是说的都不是很清楚 在SCRIPT 或是 beforeopen 里写 或者是在data set中 property binding 中设置也不行 现在想问 到底要怎么拼装 能不能说的详细点 或是留下联系方式 发EMAIL 都可以
我的EMAIL [email protected]

------解决方案--------------------
脚本写在beforeOpen里边,也就是在beforeOpen里边拼写你的SQL语句,类似于这样
// 这里用于接收你的报表参数
var p_id=params["id"].value;
var p_name=params["name"].value;
//这里用于拼写你的SQL语句
this.queryText =" select ";
this.queryText +=" id ,name,age from aa where 1=1";
this.queryText +=" id = '"+p_id+"'";

//依照你说的name是非必填项,所以判断非空时才取值
if(p_name!=""){
this.queryText +=" name = '"+p_name+"'";
}

上面说的不知道楼主明白了没有,有问题可以继续提出来,其实Birt挺简单的,多看些资料基本都可以入门了。


------解决方案--------------------
楼上已给出了答案,在beforeOpen事件中动态拼SQL即可,在这里帮顶一下。
  相关解决方案