發表文章

目前顯示的是 9月, 2013的文章

ireport barcode null 不顯示

ERROR: net.sf.jasperreports.engine.JRRuntimeException: java.lang.NullPointerException: Parameter msg must not be empty Caused by: java.lang.NullPointerException: Parameter msg must not be empty     at org.krysalis.barcode4j.impl.code39.Code39Bean.generateBarcode(Code39Bean.java:187)     at net.sf.jasperreports.components.barcode4j.BarcodeSVGImageProducer.createImage(BarcodeSVGImageProducer.java:58)   code Expression ($F{group}.getChannels()==null)?  "" : ("條碼1 *" + $F{barcodeStores1}+ "*") 結果當測試符合條件資料的時候,條碼那段就跳上面的錯誤訊息Parameter msg must not be empty。 一開始還覺得是條碼沒帶值,跑去檢查資料庫條碼欄位的資料確都正常。 而且報表內本來就有一組條碼沒有值的時候會自動不顯示,而且完全沒有做設定。 後來在想是不是判斷式會讓編譯後的xml找不到這幾個在report 中設定成Parameter 的值,就跳出那一段Parameter msg must not be empty。 而沒有設定的那組條碼是抓Parameter 的屬性,而且也沒有做判斷式。 後來把不顯示的條件設定在 printWhenExpression Boolean.valueOf(null!=$F{group}.getChannels()) 報表就可以正常產出了

stripes Hidden form 的日期型態

    在 stripes @validate 檢核非常嚴格 一定要轉成日期才能當成值傳出去 < stripes:hidden id = "hidden.qryDateFrom" name = "qryDateFrom" formatPattern = "yyyy/MM/dd"/>

ireport換行

圖片
  如果是純label的文字類,可以直接在report裡面寫\n換行。 但是如想在來源資料的部分自定義換行符號的話,要使用new String組合文字。 然後使用textfield 建議先設定變數對資料來源做轉換,以免有些符號從前端直接塞值的時候沒效果(ex:\n) 畫面上顯示的部分直接就參考那個變數,比較好維護。