漫談Microsoft Dynamics NAV 2013的中文化

這一篇藉由討論如何將Microsoft Dynamics NAV 2013中文化的技術, 大略介紹Microsoft Dynamics NAV 2013的開發工具-Object Designer的使用, 並說明Dynamics NAV支援多語系的方法與技術.

這一篇是前篇Microsoft Dynamics NAV 2013的系統開發初探的進一步討論, 說明Dynamics NAV 2013在中文化方面的開發如何進行, 並以實際操作說明在Dynamics NAV 2013的開發程序如何進行.

首先, 在Dynamics NAV 2013開發客製程式一定要有足充分的授權, Dynamics NAV 2013的開發授權是以物件來授予的, 例如, 想要修改系統已存在的Page或建立新的Page, 就要有Page開發授權, 這方面詳情, 請諮詢顧問公司比較能獲得正確的訊息.

前篇Microsoft Dynamics NAV 2013的系統開發初探中, 我說明中文化與本地化的不同點, 也說明在中文化方面, Microsoft Dynamics NAV 2013完全沒有提供正體或簡體中文版本, 因此, 雖然Dynamics NAV 2013是多語系(Multilanguage)的系統, 但實際上, Dynamics NAV 2013的中文化應屬於本地化的一環, 只是利用Duynamics NAV 2013的多語系的機制提供中文化版本.

而像是稅制、勞健保和票據方面的系統才是真正屬於本地化的範圍, 但因為本地顧問公司在授權方面的做法, 以及Microsoft在中文市場推動ERP系統的力道不足(或許稱之為市場不夠大又已飽和), 以致於Dynamics NAV 2013的中文版本, 僅以本地化的方式存在, 無法公開在Microsoft官方版本成為多語系版本的一環.

什麼是多語系, 我們打開RoleTailered Client, 然後在左上角找到一個Dynamics NAV 2013圖示的下拉選單, 其中個有"Select Language"的選項, 如下圖左上方:

image

點進"Select Language"跳出一個小對話窗, 如下圖:

image

可以看到目前語系是英文(美國), 而且只有這一個語系, 如果需要安裝其他語系, 可以由給已購買授權客戶使用的Dynamics ERP CustomerSource網站下載, 如下圖:

image

因為沒有中文語言套件, 所以我選擇下載德語來測試多語系功能, 完成後, 執行Server端的德語安裝套件, 然後重啟服務Microsoft Dynamics NAV Server, 以及執行RoleTailered Client的德語安裝套件, 記得安裝語言套件時, 一定要先結束RoleTailered Client.

重新啟動NAV Server服務及打開RoleTailered Client, 再到RoleTailered Client的"Select Language"視窗, 就可以在下拉選單看到"德文(德國)"的選項:

image

這樣就可在畫面上看到少少的德文, 為何不全是德文, 我不知道, 或許德文中有一大堆也是和英文共通的吧! 這個要問懂德文的人了.

image

在上面所示的語言套件下載頁面沒有中文, 中文要如何顯示呢? 由於我現在只有Demo授權, 能新建Page, 但不能修改系統中原有的Page, 所以, 為了能夠進行接下來的中文化的討論, 我將展示如何新增一個Page.

因為要能夠顯示中文, 必須要能夠修改物件, 並在物件裏的元件屬性中增加顯示的語言, 既然不能改系統中原有的物件, 我們新建一個Page來測試看看如何讓Dynamics NAV顯示中文.

但因為是Demo授權, 其實也只能做假的新增, 最後不能存到系統中成為可執行的物件, 至少, 讓我們可以展示一些Dynamics NAV 2013的開發概念及其中文化的客製方法.

首先進入Microsoft Dynamics NAV 2013 Development Environment(在Dynamics NAV 2013中把這個視窗命名為Object Designer), 如下圖:

image

在尚未開始前, 我們要先確定當前語系是英文, 這是在Dynamics NAV 2013中進行開發第一件要確認的事. 點選上方功能表中的[Tools](如上圖), 再在下拉選單中選擇[Language..], 出現語系選擇對話窗, 如下圖:

image

可以看到先前安裝的德文(德國)語系和預設的英文(美國), 我們選擇英文, 然後按[OK]結束視窗, 回到[Object Designer]並到[Page]頁面, 如圖:

image

請注意上圖右下方有四個按鍵: New、Design、Run及Help. Design是修改已有的Page, 我們點選第一個"Company Information", 然後按[Design]按鍵, 結果跳出一個錯誤訊息...

image

告訴我們沒有權限修改, 這是因為Demo授權, 就我所知, Microsoft Dynamics NAV 2013的開發者授權是給ID號碼, 也就是指定那些ID是被授權者可以修改的物件.

接下來, 我們點選右下角的[New]按鍵...

image

出現[New Page]視窗, 首先選個Table, 點一下Table欄右邊的向上箭號, 叫出一個[Table List]視窗, 這回先選"Customer" Table來測試. 如下圖:

image

上圖中點下[OK], 回到[New Page]對話視窗, 然後利用"Create a page using a wizard"功能, 以Dynamics NAV 2013 Development Environment預設的表單設計, 這回先以"Card"來設計, 最後[New Page]將如下圖顯示:

image

按下[OK], 還有幾個選項要處理, 首先是在畫面中要有幾個[Tab]頁, 如下圖:

image

請注意, 不同的Page Wizard會有不同的選項要處理, 這裏是以"Card" Wizard為展示.

什麼叫Tab頁, 請參見下圖的Sales Order表單, 畫面中有好幾個小區域: General、Lines、Invoicing、Shipping、Foreign Trade、Prepayment等等, 每個小區域就代表一個Tab.

image

在這裏, 我們的重點是展示如何中文化, 所以就只建一個"General"即可, 所以直接在前圖按[Next]..接下來是選擇有那些Customer Table欄位要放在表單中, 如下圖:

image

我們簡單挑幾個欄位即可, 按[Next]..接下來要選擇表單裏要放那些子表單, 如下圖:

image

由於Dynamics NAV是一個整合式物件環境, 當我們挑選Table時, 與該Table相關的子表單都會出現, 例如上圖, 因為我們挑選Custome Table, 所以可以選擇Sales Order Subform, 這樣我們就可以直接由客戶資料查看該客戶的訂單資料. 但在這裏, 我們先不選子表單, 以比較簡單的畫面來呈現中文化設計方法. 請在上圖按下[Finish], 讓Card Page Wizard完成自動表單設計, 如下圖:

image

上圖好像看不出來是表單的樣子, 先別緊張, 這是顯示表單會呈現那些欄位資料, 如果還有缺少或不需要的資料欄位, 可以趕快增刪.

在這裏, 我們要展示第一種中文化的方法, 請看上圖最右邊的"Caption"欄, 這是顯示在畫面上欄位標題, 我們可以直接改成中文, 如下圖:

image

讓我們點一下上圖右下方的[Preview], 看看結果如何..

image

一如預期, 欄位標題已經是完全中文的顯示. 對Microsoft Dynamics NAV 2013來講, 這種方式叫本地化(Localized), 不管Dynamics NAV的語系, 只管Windows系統的語系, 所以, 如果這張表單轉到簡體中文Windows環境, 就完全是亂碼. 這種方法不是很完善, 急就章的作法. 所以就不存檔, 直接關掉各視窗.

現在, 讓我們展示第二種中文化的方法...讓我們回到標題還是英文的那一頁:

image

這回, 我們直接按下[Preview]..

image

都是英文, 挑選[No.]欄位, 並按下滑鼠右鍵..

image

點選快速選單中的[Properties], 出現如下圖的欄位屬性頁:

image

我們的重點在上圖中的[CaptionML]屬性, 點一下[CaptionML]欄, 會出現如下圖紅框中所示的點點點的小灰方塊, 在Object Designer裏稱為AssitEdit按鈕.

image

點一下上圖紅框中的AssitEdit按鈕, 出現下圖所示的[Multilanguage Editor]視窗.

image

預設已有英文語系的標題, 現在我們點一下下方空白欄位, 空白欄位出現如上圖一個向上箭號, 點一下那個向上箭號, 出現一個[Windows Language List]視窗, 如下圖:

image

這個Windows Language List把所有Windows支援的語系都列出來了, 也就是說, 經由客製, MIcrosoft Dynamics NAV 2013是可以完全支援所有語系的.

在上圖向下捲動並找到CHT-中文(繁體,台灣), 如下圖反白, 然後按下[OK].

image

回到[Multilanguage Editor], 然後把繁體中文的標題打上去, 有如下圖所示. 按[OK]回到欄位屬性頁.

image

這時, 我們可以看到[CaptionML]屬性已變更, 如下圖:

image

同樣的方法, 我們把其他欄位的標題屬性都加上繁體中文的標題, 然後, 回到[Preview]視窗, 似乎什麼都沒變..

image

我們到Object Designer功能表的[File], 點選[Save]把新增的Page存檔, 如下圖:

image

出現一個[Save As]對話窗, 如下圖..

image

因為現在是Demo授權, 無法進行真正的存檔, 我也只能先展示到這邊. 基本上, [Compile]完成會在系統中多一個CHT的語系資料夾, 而在前述的選擇語系的視窗中會多一個"中文(繁體,台灣)"可選, 把語系設定成中文(繁體,台灣), 就可以正確顯示中文標題了.

本文只說明了如何顯示中文標題, 在Microsoft Dynamics NAv 2013中有很多地方都可以運用相同的方式把系統改成以中文顯示, 諸如欄位標題、系統訊息、報表標題等等, 都可以用相同的方法予以中文化.

最後一個問題是如何把已經完成中文化的部份, 轉化成可安裝的語言套件, 這部份留待日後討論諸如統一發票等客製功能如何構成安裝套件發行時再一併說明.

Simon Huang's ERP Workshop