顯示包含「關聯式資料庫」標籤的文章。顯示所有文章
顯示包含「關聯式資料庫」標籤的文章。顯示所有文章

2015年3月22日星期日

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第二十一日/超時第十四日>


其實在上一篇中, 完成了 Matrix Report 之後, 就應該進入微調及收結階段, 但是這些工作真的很鎖碎, 鎖碎到我完成了一些後已經忘記了當天完成了什麼. 好像有些時候可能是修正一些小缺憾, 有些時候只是對齊了介面上的按鈕, 甚至只是串法的錯誤, 總之就是好好好好鎖碎.

然而, 一個應用的成敗就是取決於這些小地方, 而這也是執行力的體現. 好明顯我是需要多一點外部壓力. 

從今天, 我不會再在這個 Blog 上繼續 Update 這個 Database 的更新, 但我會 from time to time 繼續改進她.

那下一步是什麼呢? 我會全力的弄出一個商業級但免費的 Accounting Database. 當然依然是建立在 Microsoft Access 及 MySQL / MairaDB. 為了增加自己的壓力, 我已經邀請了數間香港會計師樓及其他公司提供意見及承諾在今年七八月之間將成品交與他們試用. 有關詳情將會在這個Blog 上公佈. 

如果你有興趣得到這個 OaccPFA2014, 請發電郵到 oaccinfo@gmail.com 並在主旨上標明 "OaccPFA2014" , 我就會把最新的版本送給你.

如果你有空, 請到我的 Facebook Page 參觀及給我一個 Like 吧. 

謝謝
Bicky


2014年12月30日星期二

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第二十日/超時第十三日>


今天還是忍不住弄了三個 Matrix Report,分別是 Account Movements,Cash Flow,及 Expenses Analysis。三個 Matrix Report 所覆蓋的期間都是最近十二個月內的資料。

Matrix Report 不難弄,基本上三個 Query 就可以了。首先,一個是用來作 Row Heading 的資料來源,另一個則是 Column Heading (Time) 及 Value 用;最後一個就是把前兩個 Query 整合在一起的 Crosstab Query。



設計好 Query 後,就是設計 Report 的時候。如果你想 Report 可以分組計 Sub-Total,就必須先在 Row Heading 的 Query 中設計好。為什麼不直接用 Table?因為用 Query 的自由度更大,只要個 Logic 無錯或不出現"笛卡兒積 (Cartesian Product)",你可以串聯 Database 內所有的資料。


當你設計好第一個 Matrix Report 後,你就可以用 Copy & Paste 神功去創造更多不同的 Matrix Report 以符合要求。你所要做的只是更改 Query 的 結構及 Report 的 Data Source,Group 及 Sorting 就可以了。


2014年12月27日星期六

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十九日/超時第十二日>


聖誕節的歡樂氣氛,使我的懶蟲症大發,一停就是七天。。。今天終於總算走出假日心情。

完成了 Deal Closing (Matching) 的 Printout,修改了一些 Queries。如無意外,明天應該是 User Login Controls,之後整個 Accounting DB 就算是完成了。

是時候計劃一下2015 新 Project。。。


2014年12月20日星期六

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十八日/超時第十一日>


今天完成了 Statement of Financial Position,其中最大的挑戰在於如何計算出Retained Profit。為了要得到 Retained Profit,必須要先求出 Opening Stock 及 Closing Stock。計算 Closing Stock 比較容易,但 Opening Stock 則比較困難。

我的方法是不依靠 VBA,而是透過三四層 Query 去求出不同時間值,每一項 Investment (Stock) 的餘數,再乘以相對應的市價。我以前初初學 Access,老是希望一條 Query 可以應付多種需求,但這是一種很錯的態度。我們應該將 Query 想像成一個一個的小齒輪,他們功能單一,容易複製,也可以放到不同環境中使用。這種概念要盡早深植腦中。

以下是 Statement of Financial Position 的部份 Query:

1.) 這是處理 Assets 及 Liabilities 但不包括 Investment (Stock) 的 Query  


2.) 這是處理 Equities 的 Query  


3.) 以下三個 Query 是用來找出最新 Market Price 




4.) 這是用來找出每項 Investment (Stock) 餘數的 Query


5.) 這是用總計每項 Investment (Stock) 市值的 Query



在某程度上來說,如果你可以掌握到如何計算 Stock 的餘數, 價值, 與總計, 那你距離自家制作一個基本 ERP 已經不遠了。

現在只剩下 Deal Matching 的 Printout 是比較複製,應該很快可以完成的了。。。


2014年12月18日星期四

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十七日/超時第十日>


今天沒有懶,好努力的從下班奮戰到剛才。每一次從這種忘我的感覺中清醒過來後,我越加相信寫程式是會上癮的。要不是明天還要上班,我想我會繼續的。。。

奮戰的結果是,完成了 Income Statement,而且把正負數也匡正了。除此之外,也把 Dashboard 的 Formula 也修改了,而使到所呈現資料的時間長度為三十一日。

另一方面,Statement of Financial Position 也已經大致完成,就只差將 Profit 細分為 Retained 及 Current 兩種。而這個部份,如果懶蟲不發作,應該今天可以弄好。

下一步就是要弄出 Deal Matching Note 的 Print Out。



2014年12月16日星期二

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十六日/超時第九日>


不知有沒有杜蟲藥是針對懶蟲的呢?

今天完成了Cash Flow Statement。現在系統內有了兩款不同的 CFS,一款(上圖左側)是可以自由選擇要覆蓋的日期,另一款(上圖右側)是包括由 Date One 開始所有的 Activities。

有時間性那一款 CFS,包含了 Cash and Bank 的 Opening 及 Closing。為了肯定系統沒有計錯數,所以我比較了 Balance Sheet 的數值 (下圖紅方格內的數值),很安慰地,系統是沒有計錯的。當然啦,電腦又怎會計錯數,要肯定的是我所設計的資料結構無錯而已。:-)

到了這一刻,我心知應該盡快完成 FRS,但我又開始想另一些功能。。。例如 Budgeting,和 Matrix Reports。。。心野但又懶!



2014年12月14日星期日

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十五日/超時第八日>


不知不覺已經進入了 User Control 的階段第二天。今天終於將 Voucher Printing 的功能實作出來,就是上圖在 Voucher Editor 背後那兩張 Form 。

很多初初使用 Microsoft Access 的朋友都有一個錯覺,以為要打印資料就一定要用 Report,其實不是的。我個人認為在 Accounting DB 來說,如果不需要用到 Running Balance,就不定用 Report。另外,如果是表格類的打印資料,例如 Voucher,就更加不應該考慮使用 Report 來實作。當然,這些都是我自己的經驗之談,只要你可以做出你想要的東西就好。一如已故的鄧伯伯所說:

"不管黑貓白貓,捉到老鼠就是好貓。"

在上圖看不到的是,在這兩張 Printouts 的底部,是會把總數轉換成文字(英文)格式,相關的程式碼我會在 Fine Tuning 階段完完整整的給大家參考。這不是我大方,而是這段程式碼並不是我的創作,而是一位熱心的英國網友分享出來的,我只是略作修改以符合自己的需求而已。

除了上述的東西,今天也修改了幾個 Form 的設計,加了選擇記錄的 Combo Box,在某些 Text Box 加入了 Double Click Event,和其他的小修小補。

User Control 階段還剩下 Financial Statements 及 Cash Flow Statement 的最後 Printout 版本,Matching 的 Printing 功能,和其他可以提升 User Experience 的小修改。

今天就這樣了,希望明天懶蟲不要發作。。。







2014年12月13日星期六

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十四日/超時第七日>



又拖沓了兩天。。。

今日終於完成這扭計骰及其相關的所有 Reports,八種不同的分類,應該都可以 cover 一個現代城市人的生活習慣,它們分別是 Fashion, Quarters, Dining, Transportation, Vacation, Education, Health Cards, 及 Entertainment。

本來想以單一個 Report 配合 VBA 去 Generat Results,但是想想可能使用者會嘗試一次開幾個不同 Categories 的 Report,於是我又土炮一點的辦法。。。就是做八個不同的 Reports 出來,加上在 Query 那鎖定 Certiria,那使用者就可以隨心所欲地開多個來檢視自己的消費習慣。

下一步弄什麼呢?完善 Voucher Editor 的 Functions 而其中最要緊的就是 Voucher Printing。話說當年驅使我設計Accounting DB 原因,就是我手上的 MXOB,竟然不可以將輸入好的 Voucher 打印出來。。。我不明白為什麼要這樣限制。。。

下圖是我在 FB Page 的 Cover Picture,是不是很漂亮呢?嘻嘻。。。



2014年12月10日星期三

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十三日/超時第六日>


好懶。。。拖了兩天才願意再繼續。。。

今天最主要的改進就是在 Portal 上一系列的按鈕,這些按鈕是用來開啟不同的 Form。在最右手邊那些是有關資料設定的,例如 Contacts, Accounts, Cash Flow Type 及 Voucher Type 等。除了按鈕之外,我亦略為收縮了 Portal 的大小,令整個佈局更加緊緻。

中間下方的則是資料輸入及報表等,如 Voucher,Matching , Market Price Update, Quick Statistic, Quick Financial Position 及 Printing Manager 等。

其實還有很多 Form 我沒有加在 Portal 上,而是隱藏在不同有關聯的 Form 之中。

明天繼續。。。

2014年12月6日星期六

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十二日/超時第五日>


今天花了五個小時,就為了弄出一個 Dashboard,就是上圖那個啦。為何要弄這個?因為人是懶惰的嘛,沒有人喜歡要按左按右才看到一些基本的東西的。這個 Dashboard 分為五部份,現在可以看到的只有其中的三部份。

左手邊是 Investment Items 及其市值,中間那個大圓餅則是提供一個圖像化的每種不同類型 Investment 的分佈比例。

右手邊上部份是 30 日內的 Cash Flow Summary。而中至下部則是 30 日內的 Income Statement。今次的 Income Statement 比早昨天那個有幾點不同。第一,這次是有時間性的,上篇那個則沒有; 第二,匡正了正負數的安排,使得其更加直觀; 第三,既然有時間性,那就要實作出 Opening Stock 及 Closing Stock。

這個 Dashboard 除了作為演示用途外,還將會是這個 Project 的 Portal 之用。希望完成後不會給人太混亂的感覺。

一個人弄這些是很累的,而一累人就會出錯。我知道有些地方我是貪方便走了捷徑,而未有堅守自己設想的完則。唉,更大問題是我真的很不喜歡寫筆記。。。到 Fine Tuning 階段時,這些的缺憾與失責,一定會使我非常頭大。

還有,我真的好想有部 Microsoft 的 Surface Pro 3 來實機測試。My dear Mr. Bill Gates, can you hear me??? 哈哈!!

睡覺發夢去。。。。


2014年12月3日星期三

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十一日/超時第四日>



終於都到了這次旅程的一半。哈哈,真的,需然好像一個 Accounting Database 要有的都已經有了,但我可憑自己的小小經驗跟你說,User Interfaces 才是真要命的地方。

這篇的兩張圖,都是基於同一套 Datasets,而這個 Datasets 就是依從上一篇所列的公式。上圖是以 Form 來表達 Balance Sheet & Income Statement, 而下圖則是用 Report。因為時間關係,我並未完完全全的跟隨一般慣常的排法,當然要跟足是可以的,在 Fine Tuning 階段我便會實作出來。

其實,寫 Database 並不是很難,不過坊間很多書都把簡單事情複雜化。我以往也曾花了不少時間在書海中尋找出路。但原來,自己落手落腳弄一個出來,得到的經驗,是書本永遠給不了你的。

歡樂嘅時間過得特別快,又係時間講 Bye Bye。周公急 Call 我了,請呀!!!



2014年11月30日星期日

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第十日/超時第三日>


上圖的四個 Query 就是 Financial Position Statement 及 Income Statement 的 Datasets. 如果你有基本的 Accounting 底子, 應該可以四個表所對應的不同部份. 雖然看上去一切準備就緒, 但其實還欠缺了一項至關重要的資料, 就是 Stock .

如何評價 Stock 一直是 Accounting 的藝術範圍, 以前我們不是用 FIFO 就是 LIFO, 而且是用 At Cost 來計算 (當然除了藝術中的藝術 - W.I.P.). 近年 IFRS 大力推動以 Fair Values 來計算資產價值使 Financial Statements 更好地反映實際的狀況, 希望使到行內的藝術範圖縮小. 然而, 什麼是 Fair Values 呢? 說穿了其實就是依賴會計師的 Professional Judgement, 換句話說就是 "將藝術理性化".

但是在我這一個 Project 來說, 這些都不重要, 因為在這裡, Stock 就是 Investing Interests, 而這些 Interests 大多是有公認的市價, 那 Fair Values 的問題就不存在了. 或許你會想我是不是計不了市價, 所以才只弄出四個 Datasets. 當然不是, 自動以系統內最新價格來計算 Investing Interests 的功能早在 Matching 那時候已實作了出來. 真正令我停下的, 是如何表現 Financial Position Statement 及 Income Statement.

首先說說 Financial Position Statement 的公式:

Assets + Stock = Equity + Profit + Liabilities

即是如果我知道 Assets, Stock, Equity 及 Liabilities 的數值, 我就可以倒迫出 Profits 出來, 列式如下:
Assets + Stock - Equity - Liabilities = Profit 

由於所有數值都是用 Double Entry 方法來獲取, 即使不計算 Income Statement 中任何一粒數, 我這個 Profit 都不會出錯. 甚至可以進一步擴展這公式去得到 Retained Profit 及 Current Profit. 設以下公式中的 T=Day of Report, n=Days of Period:

Assets(T)-Assets(T-n-1)+Stock(T)-Stock(T-n-1)-Equity(T)+Equity(T-n-1)-Liabilities(T)+Liabilities(T-n-1) = Current Profit 

Assets(T-n-1)+Stock(T-n-1)-Equity(T-n-1)-Liabilities(T-n-1) = Retained Profit 

當然, 實際一點的方法是應該 Closing Account, 把 Retained Profit 以數值形存到 Table 內, 但如果只是個人用的 Accounting, 我想使用者未必需要或懂得如此處理. 用公式去處理 Retained Profit 及 Current Profit 還有兩個更大的好處: 第一, 就是報表時間長短的自由度; 第二, Income Statement 的處理可以切割開來.

Income Statement 的處理都是大同小異, 先看看公式:

Income/Sales - Cost of Goods Sold - Indirect Expenses = Profit 
&
Opening Stock + Purchase + Direct Expenses - Closing Stock = Cost of Goods Sold

即可以簡化成:

Income/Sales - Opening Stock - Purchase - Direct Expenses + Closing Stock - Indirect Expenses = Profit

進一步指明時間範圍就可以得到 Current Profit:

Income/Sales(n) - Stock(T-n-1) - Purchase(n) - Direct Expenses(n) + Stock(T) - Indirect Expenses(n) = Current Profit

以一條公式來檢查 Financial Position Statement 及 Income Statement 在某時間範圍(n)內的值是否相等:

Assets(T)-Assets(T-n-1)+Stock(T)-Stock(T-n-1)-Equity(T)+Equity(T-n-1)-Liabilities(T)+Liabilities(T-n-1) = Income/Sales(n)-Stock(T-n-1)-Purchase(n)-Direct Expenses(n)+Stock(T)-Indirect Expenses(n) 

看到了嗎? Accounting 其實就是套套邏輯. 

寫這篇其實是為了弄清自己的思緒... (>o<)


2014年11月29日星期六

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第九日/超時第二日>


今日主要是加了三個有關 Investment 的 Form,分別是用來檢視 Market Price History (左下),用來 Update 個別 Security 的 Market Price Updater (右上),及不作區分的 Market Price Updater (右下)。

在寫這篇東西時,突然發覺 Market Price History 的左欄目有點多餘,或許在 Fine Tuning 階段會弄走它,以減少所佔用的記憶體。

在這裡,我想首先解釋一下為什麼叫 Matching,其實這是有點 "精神勝利法" 的意味。以一般小投資者如我,通常我們在買股票時,有一個不經意的預設思想就是:All In All Out,但其實在投資世界中,我們應該把自己的投資視作可隨意分割的餅仔,更重要的是記錄不同的倉位。而 Matching 就是用來實現這些的手段。

假設我上年以84元買入了三手匯豐,今年年頭匯豐卻跌到落76元,但我唔認輸再入三手,即我現在擁用6手匯豐,而平均每股作價80元。可這該死的匯豐就是上唔返去80元以上,死死地停在78元,那點算呢? 

這種情況下,最簡單的就是,全部出清6手,認賠算數,再等下次機會。另一種就是先賣三手,鎖定那三手的利潤,然後再謀定而後動。做法簡單,但如何記錄呢? 市場時時刻刻在變,情況絕不會如此簡單。賣出買入,一隻股票可能來來去去幾十次,那如何準確知道自己此時此刻手持的倉位?

答案就是用 Matching 去記錄不同的買賣組合,並以此推算每一隻持有或曾經持有的股票中未結清倉位。

Investment 相關的 Data Entry,Matching 及 Market Price 都已經做好,接下就是 Balance Sheet 及 Income Statement 的事了。

下圖是增加了三筆投資記錄後的 Cash Flow Statement,可以與在前篇的比較一下有什麼不同。雖然資料還未齊全,但架構已經肯定是 Work 的。



如果你有興趣想進一步了解什麼是 Cash Flow Statement,可以到下列網址參考:



2014年11月28日星期五

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第八日/超時第一日>


第八日, Cash Flow Statement 初稿完成!! 如上圖所顯示的, Cash Flow Statement 好像很簡單的樣子, 但是, 其原理可不是那麼直觀. 在簡單的背後, 組成 Cash Flow Statement 的物件其實包括了: 五個 Tables, 四條 Queries 及 三個 Reports.

這個 Cash Flow Statement 可以再水平擴展, 顯示每一個 Cash Flow Statement Type 的 In / Out 數, 也可以向下顯示 Cash Flow Statement Type 中的每一個 Account 的 In / Out 數.


另一方面 Personal Quick Statistic Reports 亦已經準備好. 左手邊的那個報表是整體八個項目的統計圖表, 而右手邊的是每一個項目獨立的統計報告.

整個 '扭計骰' 概念就是讓使用者可以快速找出自己的消費習慣, 而無需理會 Accounting 的事情.

好了, 拖拉了好幾天, 明天要回到 Investment 上去啦... 這次是一定的!!!




2014年11月27日星期四

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第七日>


跳票的情況比我想像中還要嚴重,除了因工事太忙外,我心又真的太多,太貪又太野。。。

上圖的是'扭計骰'相關的報表,可以見到除了 Account Balance 之外,還可以看到在該 Account 內的 Schedule,其實還可以再向下擴充顯示該 Subject 的 Daily Transaction Total。

雖然上一篇說要解決 Investment 相關的報表,但我想我還是會先把 Cash Flow Statement 弄出來,而且會採用 IFRS (ISA 7) 的 Direct Method 來設計。可是昨天我又發現很有趣的 Free Cash Flow Statement,看得我有點心癢癢想試試弄出來。。。

經過多秒的反覆思想,我決定剩下的路線圖要如何走:
1。Cash Flow Statement
2。Investment
3。Balance Sheet & Income Statement
4。User Control
5。Fine Tuning

好了,明天開始'超時階段'。 現在去搵周公先,請呀!!


2014年11月24日星期一

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第六日>



第六天, 今天花了很多時間在輸入測試用的資料上, 因為是時候要知道最初想的資料結構有沒有出問題.

入了資料, 就可以設計 Report , 上圖是三款最基本的 Accounting Report: General Journal, Ledger 及 Trial Balance. Running Balance 當然是一定要的, 但是在 Microsoft Access 中, Running Balance是不需要在 VBA 裡大費周張地Dim這Dim那, 可也不是簡單地在 Report 的Property中Enable "Running Balance" 選項那麼直接, 就是有一點技巧的啦, 這些都會在之後的番外篇中說明.

基本 Accounting 的東西已經弄妥, 接下來就是回到 Investment 這一 part, 亦是我從未完整實作過的東西. 但正如黎天王的金句: "要贏人, 先要贏自己!" , 不挑戰自己, 又如何推展自己的極限呢?



明天已經是第七天, 看來我的七日鮮鐵定要跳票了...


2014年11月23日星期日

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第五日>


看來我的七日鮮很有可能變成十日鮮。。。

今日還是在和 Deal Closing 纏鬥,但最後達成到我想要的自動化程度,這兩天的時間花的很值得。這兩次我好像患上了強迫症, 強迫自己不可以走彎路, 挑戰自已的邏輯推理能力... 其實我很享受這種忘我的感覺, 可是我知道很快Access將再給不了我這種充實的感覺...

隨著兩個主要的Interface完成, 之後就是種種玩弄Data的花巧表現及Report, 當然包括昨天提及的"扭計骰"啦.

話說回來, 我又修改了一些最底層的東東... 唉!


2014年11月22日星期六

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第四日>


第四日, 基本將Deal Closing Form (DC) 整個砍掉重鍊, 現在個Form自動根據使用者的選擇回饋更多資訊, 而另一方面, 在選擇那一筆交易來結清時, 系統會自動顯示那一筆交易尚未結清的餘數, 及該筆交易的每單位價格.

今天洗澡時, 突然靈光一閃, 立即衝出浴室回到電腦前, 弄出了上圖左上角類似"扭計骰"的東東. 那這個東西是什麼來的呢, well, 又是一樣玩弄數字的花巧東西囉.

雖然, 在一開始時, 已經告誡自己不要追求太多花巧的功能, 但心癮這回事嘛, 你懂的... 而結果是什麼呢? 還未達到目標的三份之一, 已經寫了過百行的code (唔計VBA自己generate那些), 半百的objects. 

明天後天, 看來我要開盡個turbo...


2014年11月21日星期五

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第三日>


昂然踏入第三日,因為工作煩重,所以沒有花太多時間在這project之上。雖則如此,但也不是毫無進展。今日在這兩個最主要的user interface上已經增加了不少自動化功能。

先說說在master voucher有什麼自動化功能,包括double entry的autofill,auto voucher numbering,及眾多可以簡化資料輸入的控制項等。

而在deal closing上,一樣有auto voucher numbering,但功能則主要集中在細部。在細部之中,已經整合了master voucher 的 deal transaction,user只需選擇某一特定的buy或sell,其他資料如 security name, type 及該筆交易未結清的剩餘數量。

我在這些自動化的過程中,並沒有使用太多coding的技巧,反而是大量使用了query 作為dataset,我會在七日後的番外篇多加講解。

2014年11月20日星期四

DATABASE七日鮮 - OaccPFA2014 建構全記錄 <第二日>


雖然理論上,TABLE設好了就盡量不要改動,但有時候 "原則" 還是要放一邊的。。。遠目中

我自已有個很怪的習慣,就是喜歡將Form建立在Query之上,而不是直接用Table,不知道為什麼就是不喜歡。所以你會看到有一堆aaq開頭的Query,那些就是為了我這古怪的習慣而來。

今天主要是弄輸入資料的Form,上圖右手邊的那些就是了。這些我都是用Datasheet來設計,目的是增快輸入的速度,減少使用者不必要的操作,雖然看上簡單,但我也有使用到ComboBox及混合Query來進一步加強便利性。

中間的那一個大Form則是今次設計的兩個主角其中之一。這個Form分為三個部份,最上的是標題資料,中間是會計資料,底部則是投資資料。三個部份都有不少的code要寫,來增加實用性。而在上方的則是我在模仿現在很流行的方塊式設計,這個四方的東西是一個按鈕,來控制底部投資區塊是否出現,之後的列印及其他功能按鈕都應該會用同一style來設計。

有興趣的朋友可以比較下圖與昨天的那一張有什麼不同,然後你就會明白我為什麼一開首就要感歎一番。

明天則會是另一個主角出場,Deal Closing Form。