網上有這樣的說法
主要原因:
主報表找不到子報表的jasper檔案(深入分析)
解決辦法:
在主報表中設定變數subreport_dir(若不存在則新建),代表子報表模板檔案的真識路徑,設定子報表的屬性subreport expression 的值為:$p+"subreportname.jasper",通過程式動態設定subreport_dir,使得主報表 能夠獲得子報表模板檔案的真識路徑.
步驟如下:
1.設定主報表變數: subreport_dir
veiwparameters選中subreport_dir變數名modify設定default value expression的值為:」」;
2.修改子報表屬性
在主報表中右擊子報表,選擇subreport(other)選項,設定subreport expression的值為:$p+"subreportname.jasper"
3.在action中動態獲得子報表的真實路徑,設定成subreport_dir變數的值:param.setparameters("subreport_dir",request.getrealpath("/reports/")+"/");
另:對於多個子報表,做法類似,只需設定子報表屬性即可(前提:所有子報表存放在同一路徑下),若存放在不同的路徑下, 需在主報表中建立多個表示子報表路徑的變數,一一對應到各個子報表上,並通過程式一一設定其真實路徑
如果傳遞引數麻煩,最後的做法是
在報表中,傳遞引數
如果是三層子報表,類似,分別要傳遞下去,根報表會由jasper賦值為跟報表所在位置,但是子報表卻沒有被賦值,所以這裡的賦值工作必須我們人工傳遞下去,直到最後一層報表
Jasper報表製作小技巧
安裝開啟後介面布局及部分快捷鍵說明如下 報表結構 title title 段只在整個報表的第一頁的最上面部分顯示,除了第一頁,不管報表中有多少個頁面也不會再出現title band 中的內容。就是報表的標題。pageheader pageheader 段中的內容將會在整個報表中的每乙個頁面中都會出現...
子報表,內嵌報表 子報表
有時在報表某處需要顯示一些額外的資料,這些資料結構相對複雜,僅使用fastreport的欄可能無法達到效果,此時可能考慮在欄上使用子表報表 當插入子表報表後,fastreport會自動生成新的報表頁面,此頁面物件插入的子報表控制項。內嵌的子報表在結構上與多頁面報表相似,不同之處僅在於報表列印時並不像...
解決 Jasper 等報表工具製作報表中的幾個難題
在製作業務報表時,經常會遇到一些單獨依靠報表工具難以解決的問題。本文將針對幾個 jasper 報表工具使用者在國外論壇中提出的現實問題,介紹如何用集算器 spl 語言加以解決的方案。這裡的解決方案其實並不僅適用於 jasper,對其它報表工具也同樣適用。資料檔案 data.csv 儲存著某賬戶各期資...