2015年4月14日星期二

OACC 開源會計軟件 - 一個階段的完結



終於, 畫了這麼多天的鬼腳圖後, 我的思緒已經有點呆呆滯滯, 我想這也是時候推進到另一個階段. 雖然心中隱若覺得還有些未盡完善的地方, 但實踐是最好的尋找缺憾的方法, 或許時間會多花一些, 可猶豫不決危害更大.

猶幸現在有了 MySQL Workbench 這方便好用的工具, 我可以不停的 Trial & Error, 不用像以往般一個個 Table 在 Command Line 中小心奕奕的逐字更改, 還同時要不停地被提醒按 ; 鍵...

好了, 現在開始匯入我的鬼腳圖到 MySQL 之中. 


首先你要安裝好 MySQL Community Server 及 MySQL Workbench, 並確定你 MySQL Community Server 是在運行之中



然後打開你的 EER (.mwb) 檔


選取 Database > Forward Engineer...


看到上圖的 Dialog Windows 後按 Next. 系統或許會要你輸入密碼, 你只需用回你的 Root 密碼就可以了. Root 密碼就是當你安裝 MySQL Community Server 時你一定要輸入的那個.


勾選 Skip creation of FOREIGN KEYS 及 Skip creation of FK Indexes as well 兩項, 然後按 Next.


用預設的選項就可以, 按 Next 跳下一頁


MySQL Workbench 會自動生產出一個 Script, 你可以按左下的 Save to File... 匯出成一個 MySQL Script 檔 或 Copy to Clipboard 將整在 Script 放在記憶體之中以備後用, 或直按 Next 跳下一頁


如果沒有出現什麼 Error Message, 即代表你已成功將鬼腳圖匯入 MySQL Community Server 成功. 如果有 Error Message 出現, 請細心閱讀內容, 並修改你的 EER 檔. 一切完成後, 按 Close 即可.


你現在可以 MySQL Workbench 的 Local instance 頁中的 Schemas 項目 (近左下角) 下看到剛匯入的 Database. 如果看不到, 請按一下 Schemas 旁的 Refresh 按鈕.

好了, 有關 MySQL Community Server 及 MySQL Workbench 暫時說到這裡. 以下是如何設定 MySQL ODBC Connector.  在開始前, 請確定你的電腦已經下載 mysql-connector-odbc-5.3.4-win32.msi 並安裝妥當.


去 Control Panel > System and Security > Administrative Tools, 打開 ODBC Data Sources (32-bit). 當 ODBC Data Source Administrator (32-bit) 視窗打開後按 Add...

在 Create New Data Source 視窗中選擇 MySQL ODBC 5.3 Unicode Driver 然後按 Finish.

為什麼不選擇 MySQL ODBC 5.3 ANSI Driver? 因為 ANSI Driver 不支援中文輸入.


在 MySQL Connector/ODBC Data Source Configuration 視窗中輸入你的 MySQL Community Server 登入資料:
  • Data Source Name 可以填入你想要的名稱
  • Description 可填可不填
  • TCP/IP Server 輸入 MySQL Community Server 所在的 IP Address, "127.0.0.1" 是本機的預設 IP Address, 只適用於  MySQL Community Server 是安裝在本機之上.
  • Port 就用預設的 3306 好了
  • User 任何你已設定好的  MySQL Community Server User
  • Password 就是上述 User 的密碼
  • 如果你的 IP Address, User 及 Password 正確無誤, 那 Database 一欄中就會出現如圖中的選項, 否則只會空白一片.

當所有資料都填妥後, 按 OK 完成設定.

以下是如何設定 Microsoft Access 與 MySQL Community Server 的 Connection.

你必須擁有完整版的 Microsoft Access, 如果你沒有或你沒有興趣自行開發則可以跳過這一步.


打開 Microsoft Access, 選擇建立 Blank desktop database


輸入檔案名稱


在剛建立的 Microsoft Access 檔中, 先刪除預設的 Table 1, 然後在 External Data 下選 ODBC Database


在 Get External Data - ODBC Database 視窗中選 Link to the data source by creating a linked table 後按 OK


在 Machine Data Source 頁下選擇剛才設定好的 ODBC Connector 後按 OK 


在 Link Tables 視窗中選擇 Select All 後按 OK 


當你在左手邊看見一個個地球時, 就代表在 MySQL Community Server 中你的 Database 中所有 Tables 已經連上你的 Microsoft Access 檔案. 然後就可以繼續開發 Queries, Forms, 及 Report 以增加可用性, 或你也可以直接開始輸入資料.


說到這裡, 我的開發工作也要展開了. 要是你有興趣知道我這個 <<OACC 開源會計軟件>> 的開發目標是什麼, 可以到 內容 看看.

如果你發現我遺留了什麼功能, 請發電郵到 oaccinfo@gmail.com 或在我的 Facebook Page 留言.

謝謝.

2015年4月11日星期六

獨立思考


每一個人一出生, 他的腦袋就立即被圍繞著他的思想之海所塑造. 要衝出這無形的囚籠, 就要勇敢地接受與自己相左的思想, 了解它們的歷史, 仔細的閱讀它們, 切實的感受它們. 趟開胸懷地接受這些與自己已有的思想, 信念衝突的東西在心內生根成長. 在每一次開口前, 在每一次發表意見前, 要讓心中的互相衝突的思想鬥爭, 要無畏地讓自己揪心難耐, 而不是舒舒服服的順心而行.

生存在一個資訊自由流通的社會, 不代表在其中生活的人就會擁有獨立思考的能力. 而在一個資訊受控的社會, 也不代表在其中生活的人就沒有獨立思考的能力. 質疑, 是獨立思考的一個表徵. 不只要質疑自己反對的聲音, 更重要的是去質疑自己支持的聲音. 不懂, 不願去質疑自己支持的思想, 就是你所支持的是自由,民主,博愛,平等的所謂"普世價值", 你也只是一個被所謂"普世價值"所洗腦的人.

人的肉身不可以超越時空地域, 但思想可以. 支持反對的界線在沒有獨立思考能力的人眼中是明確可見的, 而在有獨立思考能力的人眼中那界線卻難以辨認. 正因為沒有界線, 一個真正的自由人就誕生了. 而為了繼續享有這種自由, 他必定求知若渴; 因為他了解到, 他的自由的最大敵人就是固化的思想, 陳腐的教條. 只有不停的吸收消化四方八面, 甚至互相衝突的思想, 他, 這個自由人, 才可以繼續存在.

說擁護自由的人, 未必明白什麼是自由. 說打倒邪惡的人, 亦未必明白什麼是邪惡.

2015年4月7日星期二

OACC 開源會計軟件 - 為何要再發明輪子?


"為何要再發明輪子?"  在網絡上, 不論中外的論壇中, 每當有人提出要自己開發一個會計程式, 總會有其他人提出這個疑問. 是的, 在實體及網絡世界中, 收費的, 免費的會計程式多如牛毛, 確實好像真的不應該浪費自己的時間去重複他人已有的成果.

但是, 如果仔細點想想"為何要再發明輪子?" 這個問題, 你或許會發現這其實是一個偽名題. 根本那些人, 他們不是想要發明會計程式, 他們是想創造屬於自己的會計程式. 那為什要自己動手弄一個呢? 原因可以很多, 例如不滿現有的會計程式, 或者想創業, 或者想挑戰自己, 又或者只是為了滿足自己的興趣 (如我).

但在這裡我不想探討動機是什麼, 我是想告訴大家, 自己一手一腳去開發一個會計程式有什麼好處. 在繼續看下去之前, 我希望大家想想: 大家都有想像過自己的愛情故事, 但為何我們不是誰也可以寫出一本愛情小說?

增強將思想化為實物的能力:
現實世界是由一連串的事件所組成, 而電腦不是. 雖然不時有人讚嘆現代電腦的強大運算能力, 但其實電腦還是很笨的. 它不懂理解一連串事件的含意, 先後關係等抽象的東西. 因此, 當你思考如何讓電腦執行你想要的工作, 你首先就要透徹地了解這些 "一連串事件", 換句話說, 就是你要懂得如何去簡化, 歸類這些事件.

增強邏輯性思考的能力:
在簡化, 歸類之後, 你就要開始組織這些事件. 組織事件不是一件輕鬆的工作, 因為在過程之中, 你會發覺這個世界的所有事情都是你中有我, 我中有你, 而你卻要在這些剪不斷理還亂的關係中, 理出最重要的那層關係. 這代表了你要思考, 你要捨棄, 然後再思考, 再捨棄, 直到想無可想, 再無可捨棄為止. 其中你會碰到無數的矛盾, 你會面對重重思考的障礙, 可同時你也在不停地強化你的邏輯思考能力.

增強前瞻想像的能力:
正如前述, 電腦是很笨的, 它不只不理解我們, 它更只懂守著它自己的那一套規則. 於是簡化, 歸類, 組織事件後, 你更要開始想像電腦會如何回應我們. 亦因此, 你要學會前瞻想像, 否則你辛辛苦苦的努力可能只得著電腦一個無情的拒絕! 

另一方面, 當你開發一項程式, 你不可以只主觀地認為其他使用者都會100%跟著你的思路來使用你的心血結晶. 人們不會像電腦一樣呆呆的跟著你的腳步走, 他們會嘗試挑戰你的邏輯, 因為大部份人都會想走捷徑, 尤其是當他們熟悉了一樣工具之後, 這是人性. 更有甚的是, 你還要想像你的程式所回饋資訊是否足夠滿足你的使用者. 滿足不代表越多越好, 而是適當的資訊量. 這才是最困難的地方.

所以你除了要想像電腦的回應外, 你還要想像你的使用者是什麼模樣, 處於什麼位置, 更要想像他們的行為模式.

當你增強了上述三樣能力, 就算你不是以編寫程式為生, 但它們對你的日常工作有所助益. 如果細心留意, 或許在你身邊比較成功的人士, 很多都精於它們. 思想是很廉價的, 只有可以執行的思想才真正有價值.

想想看, 如果Apple當年也是抱著"為何要再發明輪子?"  這種態度, 今日我們還會擁有 IPhone 嗎?

後記: 這篇可以說是 <自製記帳軟件-原因> 的續章.

2015年4月2日星期四

OACC 開源會計軟件 - 內容


Basic Functions:
- General Ledgers
- Payment Vouchers
- Journal Vouchers
- Cash Adjustment Vouchers
- Receipts
- Sales Quotation / Invoices
- Purchase Order / Bills
- Opening / Closing Vouchers
- Fixed Assets Register (2/4/15: advised by a friend)
- Trial Balance
- Stocks sub-Ledger & Reports
- Items sub-Ledger & Reports
- AR, AP sub-Ledgers & Reports
- Investment / Security Items sub-Ledger
- Multi-currency (spot rate / universal rate / year-end rate)
- Multi-users (Local Area Networks required)
- Double Entries

Advanced Functions:
- Financial Positions Statement
- Income Statement
- Investment Market Value vs Cost Reconciliation
- Account Reconciliation Manager & Reports
- Direct Method Cash Flow Statement single / matrix format (any periods)
- AR, AP Aging Reports (any number of days segment , up to five segments)
- Indent Sales Report
- Sales & Purchase Registers
- Sales to Customers Analysis
- Purchases to Suppliers Analysis
- FIFO Stock Reports
- Payroll with MPF (6/4/15: advised by a friend)
- Hong Kong IRD Form BIR56A, B, E, F, G, & M Integrated  (8/4/15: advised by a friend)
- Employee Records
- Create and Modify Record with Timestamp
- System Audit Log

System Requirements:
- Windows 7, Windows 8, Windows Server 2008 R2, Windows Server 2012 or later versions
- Microsoft Access 2013 (32 bit) , Microsoft Access 2013 Runtime (32 bit) or later versions
- Oracle MySQL Community Edition 5.1 or later versions
- Oracle MySQL Workbench 6.2 or later versions
- Microsoft Excel 2010 or later versions (optional)
- Adobe PDF Reader (optional)

如果大家想到有什麼功能我遺漏了, 請不吝告之啊
聯絡電郵: oaccinfo@gmail.com
Facebook Page: OACC-Systems

謝謝大家!

2015年4月1日星期三

OACC 開源會計軟件


香港會計行業已經非常成熟, 分工日益仔細, 而競爭亦到了非常白熱化的階段.  說起會計行業, 大家基本上都會首先想起會計師樓, 其實在行業中還包括了會計服務公司, 接散JOB的兼職會計人員等等. 只光說會計師樓, 行內已分為 1ST TIER, 2ND TIER 及其他一眾 LOCAL 的會計師樓, 真的熱鬧非常.

由於會計從業員人數眾多, 會計服務的收費也每況越下. 我記得二十年前入行之初, 平均一個星期三晚的兼職 (是, 那時候還未發展到朝九晚十二的慘況), 我可以輕鬆地賺取六至七千元港幣的額外收入. 可是, 到今天, 連會計師都在抱怨說養家困難的市況下, 一般會計從業員的收入實在不敢想像.

我自己有幸可以暫時跳出香港會計業這極度競爭的環境, 在外圍看著許許多多的會計業人士說要改革會計行業, 痛批香港會計師公會沒有照顧好廣大會員的利益, 然而同時間大批大批的未來精英依然夢想進入 BIG FOUR... 看著這般種種, 我是衷心佩服那些不懈地為香港會計業中的 "弱勢社群" 謀福祉的英雄們, 他們才是真正的唐吉訶德.

幾年前曾經看到一則新聞, 說 MYOB 捐贈價值四百多萬港幣的會計軟件給職業訓練局作為培訓香港新一代會計從業員之用(NEWS LINK). 我當時閱後第一個感覺是想說粗口. 知不知什麼是腦殘? 這就是腦殘! 如果說是某一所中學的單獨行為, FINE! 但如果是擁有數間學院, 資源如此充分的公營機構, 竟然還要依賴商業機構提供如此簡單的會計軟件, 就真的說不過去! 要知道, 這不是 WINDOWS 這些系統級的軟件啊! 或許這樣子說, 如果職業訓練局用來培訓會計學員的是本土開發的, 或是其他開源的會計軟件, 我不會有這麼深的感觸. 一邊說知識型經濟, 要創新, 一邊卻如此為他人作嫁衣裳, 嗚呼哀哉! 

在這個電腦化時代, 會計核數早已離不開電腦, 其中在坊間流行的會計軟件都是需要購買授權的商業軟件, 而可以在網絡世界上找到的開源會計軟件又往往欠缺支援, 這在在加重了香港會計從業員的運作成本. 更有甚者, 隨著版本更替, 作業系統更新, 以往已有的軟件授權可能在三數年間變得一文不值, 或為了保有現存的授權而不在新設備上投資. 可是科技一日千里, 有時候不到你不投降付款以換取新的授權. 市況已經困難, 客源越分越薄, 還要付款購買基於上個世紀所確立的原理的軟件!

我沒能力去改變業界, 但我願意盡我一分綿力為大家提供一套 "開源會計軟件" 以茲利用.

我的開源會計軟件將會以 Microsoft Access 開發使用者介面 (User Interfaces) 並使用 MySQL / MairaDB 作為後台資料庫 (Back End Database). 不要以為安裝 MySQL 很複雜, 你可以在這裡看到示範.

Microsoft Access 雖然是一套商業軟件, 但是 Microsoft 也提供了她的 Runtime 程序.  Microsoft Access Runtime 可讓您將 Access  applications 分散給沒有在電腦上安裝 Access 完整版的使用者. 即是說你不用購買完整的 Microsoft Access, 也可以從 Microsoft Download Centre 下載最新版本的 Runtime 程序來使這開源會計軟件. 當然如果你想修改設計, 例如在報表中加上 Logo , 就需要一套完整的 Microsoft Access (大約港幣860元, 2015年), 然後將修改好的 Access 檔分發與其他使用者即可.

對於想用其他程式設計軟件創造自己的應用程式的朋友, 我亦會在第一版完成之後, 將我的 MySQL Workbench File 公開讓大家修改參考及使用. 

在此, 我希望大家, 不只香港的還包括所有看到這篇文章的朋友, 能夠給我一點幫助; 就是告訴我, 你想在這個開源會計軟件中擁有什麼功能. 

聯絡電郵: oaccinfo@gmail.com
Facebook Page: OACC-Systems

謝謝大家!