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(開放封閉原則)。

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

2011年4月20日 星期三

Design Pattern - Prototype

Prototype Pattern顧名思義,
就是定義出一個prototype(原型),
然後利用這個原型,來產生物件。
產生的方式不同於Factory Pattern中使用的new,
而是利用clone(複製)。

因此,在介紹Prototype pattern之前,得先了解何謂clone。

2011年4月19日 星期二

Design Pattern - Factory

Factory Pattern(工廠模式),在某些介紹中,會被稱為Simple Factory Pattern(簡單工廠模式),
看到名稱,就知道這個模式非常的簡單,很可能閣下已經不知不覺地使用工廠模式很多年了。
在介紹此模式之前,我們先來看一個沒有套用工廠模式的例子,然後設法將這個例子加以修改成工廠模式。

2011年4月18日 星期一

Design Pattern - Bridge

本文要介紹的是bridge pattern(橋樑模式、橋接器模式、橋模式),
其精神在於降低abstraction和implementor之間的coupling(耦合度)
讓abstraction在延伸子類別時,
不用擔心因為implementor的改變,而須修改子類別的程式碼。
接下來,使用正反兩個例子來說明bridge pattern。

要設計Android上的遊戲叫做AngryBee,要怎麼做呢?

2011年4月13日 星期三

Design Pattern - Template Method

簡介

template method(範本方法)顧名思義,
就是定義好method的內容,當作範本,讓其他程式使用。
也就是說,利用抽象類別宣告要供子類別實作的method,
然後在不能夠被繼承的(例如final)method中呼叫須被實作的method。
這個final method就是所謂的template method。

其精神即透過繼承(inheritance)的方式,讓子類別能夠實作不同的邏輯區塊,
然後在父類別的final method中,依相同順序執行不同區塊的邏輯。

如此一來,不同的子類別,能夠實作各自的方法細節,
然後統一利用父類別的final method,來執行任務。

讓我們用例子,來解釋template method pattern.

範例說明