萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 多媒體工具

FineReport 自動計算日期教學:以年齡欄位為例實作報表動態運算

FineReport 作為企業級報表工具,支援豐富的資料運算與動態欄位功能。常見需求如「根據出生日期自動計算年齡」,無需資料庫額外欄位,即可在報表設計階段透過內建函數實現。本文以員工資料表為例,示範日期自動計算的完整設定流程。

應用場景

資料庫僅存「出生日期」,報表需顯示「年齡」欄位。傳統做法需在 SQL 查詢中計算或新增資料庫欄位,FineReport 允許直接在報表模板中定義運算公式,即時反映最新年齡,維護成本極低。

報表設計步驟

1. 建立報表框架

開啟 FineReport 設計器,新建報表模板。依業務需求拖拉欄位至儲存格:員工編號、姓名、出生日期(假設位於 E5 儲存格)、年齡(目標儲存格 E6)。調整欄寬、邊框、標題樣式,完成基本版面。

2. 設定年齡自動計算公式

選取年齡欄位儲存格(E6),於公式編輯器輸入:

=year(now())-year(E5)+1

公式解析:

  • year(now()):取得系統當前年份(如 2024)。
  • year(E5):取得出生日期儲存格的年份值。
  • +1:依虛歲習慣加 1(若需足歲可改用 if(month(now())>month(E5) or (month(now())==month(E5) and day(now())>=day(E5)), year(now())-year(E5), year(now())-year(E5)-1))。

設定完成後,報表預覽即會依當前日期動態顯示正確年齡,無需人工維護。

3. 儲存與預覽驗證

儲存路徑建議:%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/5.3.cpt。啟動報表伺服器,點擊設計器右上角「填報預覽」或於瀏覽器直接存取報表 URL,確認年齡欄位隨日期正確變動。

延伸應用

  • 服務年資計算:=year(now())-year(入職日期)
  • 合約剩餘天數:=day(到期日-now())
  • 動態顯示季度/月份:配合 quarter(now())、month(now()) 函數。

善用 FineReport 內建日期時間函數,能大幅減少資料庫冗餘欄位,確保報表資料即時性與準確性,是報表開發必備技能。

copyright © 萬盛學電腦網 all rights reserved