客戶即將接受保監會驗收,標準 FSG (Financial Statement Generator) 報表格式不符合要求,時程緊迫、人力有限,決定在標準模板基礎上修改而非重寫。
嘗試: 模板內直接加邊框 → 無數值行顯示「缺省」,不美觀。
折衷: 空值行填 0 或多項求和 → 客戶拒絕(資產負債表首行「項目」不應有數值)。
最終方案: **外層再包一層表格**,上傳測試後,「缺省」處自動出現外邊框,單元格內部邊框仍無法解決但客戶接受。
隨方案 1 同步解決:外層表格邊框覆蓋所有列,含空值行。
標準行為: 僅千位以上自動加 .00。
嘗試: 列集定義 → 數字格式欄位加任意字符 → 字符會顯示在報表中,客戶拒絕。
嘗試: 行集顯示選項 → 係數設定 → 無效。
狀態: 仍在尋找純配置解法,或考慮 PL/SQL 後處理。
正在嘗試模板 RTF 樣式控制與 FSG 列集格式選項組合。
FUNCTION Get_Amount_Format(p_amount IN NUMBER) RETURN VARCHAR2 IS
l_amt VARCHAR2(9999);
BEGIN
IF p_amount <> 0 THEN
SELECT TRIM(TO_CHAR(p_amount, '999,999,999,999,999,999.99'))
INTO l_amt FROM dual;
RETURN l_amt;
ELSE
RETURN '0.00';
END IF;
EXCEPTION WHEN OTHERS THEN
Log_Msg('Format error: ' || p_amount || ' ' || SQLERRM);
RETURN NULL;
END;
效果:1,034,332,32.00、230.00、1.00 統一格式,可直接在報表 SQL 或模板中呼叫。
FSG 模板修改屬於「配置式開發」,核心難點在於黑盒試誤與客戶標準妥協。外層表格解決邊框、PL/SQL 函數統一金額格式,是實務上高 ROI 的解法。完美解決往往意味著「客戶簽收」而非「技術純粹」。