日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ireport 找不到子报表:Could not load object from location

發(fā)布時間:2024/4/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ireport 找不到子报表:Could not load object from location 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ireport中提供了自帶屬性$P{SUBREPORT_DIR}當(dāng)我們新建.jrxml文件時默認(rèn)$P{SUBREPORT_DIR}="存放當(dāng)前設(shè)計的.jrxml文件的文件夾絕對路徑"

此時需注意應(yīng)把$P{SUBREPORT_DIR}值設(shè)置為$P{SUBREPORT_DIR}="",這表示獲得當(dāng)前運(yùn)行環(huán)境的.jrxml文件的上級文件絕對路徑

如果不進(jìn)行此設(shè)置則部署到運(yùn)行環(huán)境時會以設(shè)計時的路徑加載.jrxml文件,會報Could not load object from location:.jrxml錯誤

另外如果設(shè)計時用到多級子報表,則應(yīng)當(dāng)把頂級報表的$P{SUBREPORT_DIR}參數(shù)傳給子報表,如果不進(jìn)行此操作則第三級.jrxml文件不能被加載

Could not load object from location:.jrxml

?

在IReport中,主從報表完成制作后,在IReport中能夠正常編譯、運(yùn)行及顯示,但加入Java Web應(yīng)該中時出現(xiàn)下列錯誤:
Could not load object from location : subunitlab.jasper,即主報表找不到子報表的模板(jasper)文件.
  主要原因:
  主報表找不到子報表的Jasper文件(深入分析)
  解決辦法:
  在主報表中設(shè)置變量SUBREPORT_DIR(若不存在則新建),代表子報表模板文件的真識路徑,設(shè)置子報表的屬性Subreport Expression 的值為:$P{SUBREPORT_DIR}+"subreportname.jasper",通過程序動態(tài)設(shè)置SUBREPORT_DIR,使得主報表能夠獲得子報表模板文件的真識路徑.
  步驟如下:
  1.設(shè)置主報表變量: SUBREPORT_DIR
?? Veiw?Parameters?選中SUBREPORT_DIR變量名?Modify?設(shè)置Default value Expression的值為:””;
??   2.修改子報表屬性
?? 在主報表中右擊子報表,選擇Subreport(other)選項(xiàng),設(shè)置Subreport Expression的值為:$P{SUBREPORT_DIR}+"subreportname.jasper"
??   3.在Action中動態(tài)獲得子報表的真識路徑,設(shè)置成SUBREPORT_DIR變量的值:param.setParameters("SUBREPORT_DIR",request.getRealPath("/Reports/")+"/");
另:對于多個子報表,做法類似,只需設(shè)置子報表屬性即可(前提:所有子報表存放在同一路徑下),若存放在不同的路徑下, 需在主報表中建立多個表示子報表路徑的變量,一一對應(yīng)到各個子報表上,并通過程序一一設(shè)定其真識路徑.

總結(jié)

以上是生活随笔為你收集整理的ireport 找不到子报表:Could not load object from location的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。