最近些日子一直在研究報表生成的模組,用的是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 =
new
hashmap();
submap.put(
"subparam"
,
"subparam display"
);
connection type屬性選擇use a datasource expression
(tips:此項向子報表傳遞資料集,即list型別等可迭代的集合型別引數)
然後再data source expression中填寫 ?
12
new
net.sf.jasperreports.engine.data.jrbeancollectiondatasource(((map)$p)
.get(
"persons1"
))
我的後台**是 ?
其中困擾了我很久的一點就是,按照高洪巖寫的《jasperreports + ireport報表開發詳解》書中data source expression屬性填寫的格式為 ?
1new
net.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...