ireport server 怎么访问带参数的报表模版生成报表? 参数是在报表设计中查询条件$P{parameter}的值。 30

 我来答
所谓伊人_在水
2016-09-29 · 超过23用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:42.8万
展开全部

你的意思是需要动态显示参数控件吗?之前在finereport中有个相似的案例,具体步骤如下:

1、打开模板

2、修改数据集

将数据集修改为:

SELECT * FROM 订单 where 1=1 ${if(type=="日报"," and date(订购日期)='"+ date +"'", if(type=="月报"," and strftime('%m',订单.订购日期)='"+ month+"'"+" and strftime('%Y',订单.订购日期)='"+ year+"'"," and strftime('%Y',订单.订购日期)='"+ year+"'"))}

给参数type设置默认值为日报,参数date设置默认值的类型为字符串型值2010-01-03

3、表样设计

将表样修改成如下样式

给A3设置形态,自定义数据,实际值与对应的显示值分别为:日报,日期;月报,年月;年报,年份。

在B3单元格中增加如下公式:=if(type=="日报",$date,if(type=="月报",$year+"."+$month,$year))

4、参数界面设置

将参数界面设置成如下样式

设置参数type的控件类型为下拉框,数据字典选择自定义,实际值与显示值都为日报,月报,年报。

设置参数year的控件类型为下拉框,数据字典选择自定义,显示值与实际值都为2010,2011。

设置参数month的控件类型也为下拉框,数据字典选择公式,在实际值出填写公式["01","02","03","04","05","06"]即可。

设置参数date的控件类型为日期,返回值类型为默认的字符串型。

5、动态显示参数控件js事件设置

给参数type的下拉框控件增加编辑后事件,具体的JS代码如下:

点击参数type的下拉框控件,在属性表的下方选择事件面板,点击增加编辑后事件,具体的js如下:

var form = this.options.form;
var p2Widget = form.getWidgetByName("date");
var p3Widget = form.getWidgetByName("year");
var p4Widget = form.getWidgetByName("month");
var value = this.getValue();  //获取当前参数即type参数的值
if (value == "日报") {       
   p2Widget.visible();
   p3Widget.invisible();
   p4Widget.invisible();
} else if (value == "月报") {
   p2Widget.invisible();
   p3Widget.visible();
   p4Widget.visible();
} else if(value == "年报"){
   p2Widget.invisible();
   p3Widget.visible();
   p4Widget.invisible();
}else {
   p2Widget.invisible();
   p3Widget.invisible();
   p4Widget.invisible();
}

此段代码判断type参数的值,若是日报,则只显示date控件,若是月报,则显示year和month控件,若是年报,则只显示year控件。

6、保存模版

希望可以帮到您,愿采纳。

追问
没表达清楚,我是说在 jasper 的报表服务器上,如何将参数传入报表?
追答
你把值放在一个中介存储地试试,session里面

...............
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式