2011年6月16日 星期四

JasperReports data source

前言
所謂的JasperReports data source,我們可以想像成是一個database,其內的資料依顆粒度大小,可以依序想像成table、record。本文會介紹四種JasperReports data source(可以想像成四種database),他們有各自的table和record格式,程式設計師可根據不同程式使用不同的data source。

版本
JasperReports和iReport版本為4.0.1。(本文發表時最新版本為4.0.2)

JREmptyDataSource
請想像成是一個空的database。當報表中不須要使用到任何的table和record時使用。例如報表中沒有detail band(不用顯示多筆records),又或者是報表中只需要顯示參數或變數,就可以使用JREmptyDataSource。以下是範例說明:

2011年6月8日 星期三

開會啦

這場會議已經開了三個小時啦
每一個人都在各說各話
你說你的想法非常偉大(不見得吧)
他說他的看法很值得誇(是這樣嗎)

這個話題已經討論三個小時啦
交集共識只是一種神話
投影片上的字密密麻麻(重點在哪)
報告好像道士唸經作法(饒了我吧)

南無觀世音菩薩
南無觀世音菩薩

救救我吧 不要讓我像個傻瓜

周圍的喧嘩 好像在吵架 火氣愈來愈大
我緊閉嘴巴 用沉默表達 做無聲的掙扎

資淺的人只能閉上嘴巴 人微言輕能有什麼辦法
我早已彈性疲乏 冷眼看待這一場笑話

2011年6月1日 星期三

JasperReports/iReport中,Text Field的字串長度過長,如何自動斷行(換行),避免值被截斷

版本

JasperReports版本為4.0.1。

前言

有個報表設計如下,其中紅框處的Text Field其寬度為226。


此份報表的資料來源,包含了三筆記錄,其中有一筆記錄的ADDRESS為「大台南市永康區永元路123段456巷789弄876號543樓之21室」。如果報表不做任何設定,則產生出來的報表,這筆記錄的ADDRESS會被截斷成如下圖紅框處(之21室消失了):


2011年5月27日 星期五

如何在JasperReports中製作分組(Group)加總

版本
JasperReports版本為4.0.1。

前言

因為本文的範例,有使用到Subreport,
所以如果閣下還不清楚如何製作Subreport,
請先閱讀如何在JasperReports中製作Subreport

本文介紹分成二部份,分別是Java程式碼和iReport設計畫面。

報表預覽
在看程式碼和iReport設計畫面時,
先來看一下預期會產生的報表長相。


2011年5月14日 星期六

知足

說明
這首歌的詞是依照五月天的知足的曲來填,
但原詞中的"才發現 笑著哭最痛",
在我的詞裡,AB段都採用"才發現 笑著哭最痛 哦...哦..."的旋律來填。

歌詞
曲:五月天 - 知足

工作了五天 才到週末 
兩天的休假 雖然不太夠 
折騰了一週 總算能放鬆 
不用設鬧鐘 不用怕睡過頭 
看深夜的重播 無厘頭的幽默 
過生活 要放空 要自由 要享受 
多希望上天保祐我中大樂透 
那折磨 
那憂愁 
我 
才能擺脫 
才能解脫 
 
才關上了燈 靠上枕頭 
突然我手機 就鈴聲大作 
奪命連環call 讓神經緊繃 
若漏接一通 會被罵到臭頭 
凌晨時分工作 時間都被偷走 
為生活 要沉默 要忍受 要低頭 
結果我大樂透只中四百零頭 
有on call 
沒補休 
我 
做錯什麼 
這樣整我 
 

2011年5月10日 星期二

Design Principle - Open Close Principle

前言
本文要介紹的OCP,不是指證照考試中的Oracle Certified Professional,
而是OOD(物件導向設計)中的Open Close Principle(開放封閉原則)。

精神
系統的變動幾乎是必然的(沒有一成不變的系統,因為使用者是善變的),
開放封閉原則的精神在於面對系統的變動時,儘量不要修改既存的程式碼,
而是增加新的模組、類別來處理系統的變更。