發表文章

目前顯示的是 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) 畫面上顯示的部分直接就參考那個變數,比較好維護。

[Evernote寫Blogger] 基隆 讚岐烏龍麵 巷子

圖片
[Evernote寫Blogger] 基隆 讚岐烏龍麵 巷子 From Evernote: 讚岐烏龍麵 巷子 讚岐烏龍麵 巷子 2013-3-20            

ie no cache

From Evernote: ie no cache Internet Explorer 無法從 SSL 網站開啟 Office 文件 chrome真的看得到xls的header,不過我測試環境上的看不到,很奇怪 因為他代理伺服器的關係會cache很多狀態,造成使用者登入狀態錯亂 ,所以我大部分的程式還是要no-cache. 本來是使用 annotation @ 用 Stripes framework指定,後來沒效. 下載xls的時候,雖然有指定application/vnd.ms-excel 好像還是被我們用的sitemesh排版套件,嵌入有指定no cache的頁面 只好再單獨加入標頭參數     this.getContext().getResponse().setHeader("Cache-Control", "public");     this.getContext().getResponse().setHeader("Pragma", "public");