ireport向子報表傳遞引數詳解

2021-06-27 22:35:03 字數 2312 閱讀 7457

最近些日子一直在研究報表生成的模組,用的是jasperreport,用ireport來設計報表模板,涉及到後台像子報表傳遞引數。

後台採用的是springmvc+spring+spring data jpa,

在後台向子報表傳遞map引數時的步驟是:

1.在parameters新增乙個同後台傳遞到子報表map同名的parameter

2.設定submap的屬性

3.設定子報表的屬性

parameters map expression屬性填寫$p,

(tips:此項只能用來向子報表傳遞普通的引數,比如string型別引數subparam) ?

12

3

mapsubmap =newhashmap();

submap.put("subparam","subparam display");

connection type屬性選擇use a datasource expression

(tips:此項向子報表傳遞資料集,即list型別等可迭代的集合型別引數)

然後再data source expression中填寫 ?

12

newnet.sf.jasperreports.engine.data.jrbeancollectiondatasource(((map)$p)

.get("persons1"))

我的後台**是 ?

其中困擾了我很久的一點就是,按照高洪巖寫的《jasperreports + ireport報表開發詳解》書中data source expression屬性填寫的格式為 ?

1newnet.sf.jasperreports.engine.data.jrbeancollectiondatasource($p.get("persons1"))

如此填寫的後果實jasper檔案編譯無法通過,會報錯

說object型別沒有get()方法,而且parameters引數型別中沒有map型別,

只能選擇父型別object,所以我把object引數$p強制轉換為map,再去獲取其中的list, ?

1((map)$p).get("persons1")

編譯不報錯,成功編譯完成,

子報表map中list也可以正常傳遞顯示。

報表引數傳遞

code 多個引數傳遞 private reportparameter p null 成績報表 protected void btngraderpt click object sender,eventargs e else private reportparameter getparams data...

向指令碼傳遞引數

start 在需要的時候我們可以向 perl 指令碼傳遞引數,perl 會自動將所有的引數放到陣列 argv 中,下面是乙個簡單的例子。usr bin perl use strict if argv 1 my name argv print welcome name n unix 的 cat 命令可...

向指令碼傳遞引數

1.使用 pg opt.sh bin sh opt.sh usage opt 1 processid 1 if ne 2 then usage exit 1 ficase opt in start start echo starting.processid stop stop echo stoppi...