Step1>請先執行桌面上的『SOLUTION1.sln』,此時會進入VS2019開發環境。請在『EEPServer』按滑鼠右鍵,在選單中選『Add』->【New Project..】。
圖
Solution是VS2019的專案集合名稱,一個Solution會有多個專案(Project),一個Project又可以包含有多個程式:EEP2019中,Solution我們可以定義成一個專案,如:進存系統、財會系統、生管系統、人薪系統等。
Project則代表一個獨立的模組(VS2019會生成一個獨立的dll),如客戶管理、訂單管理、出貨管理等),一個模組也可以有多個U/I頁面,但大都會只有一個頁面。
EEP2019中的SOLUTION1是我們預設好的Solution,你可以從此開始往下開發,也可以另建一個Solution從新開始,但要注意的是Solution的目錄規劃,EEP2019中有特別的規定,與Solution有直接的關係,我們將於設計手冊說詳述。
Step2>請選擇『Project types』->『Visual C#』,此時會看見右邊『Templates:My Templates』中有安裝時所Export的四個Template。因為要實做Server端單檔,所以請選擇【SSingle】,接著將『Name』命名為【S001】,『Location』設為【C:\Program Files\InfoLight\EEP2019\方案同名資料夾】。這個case,方案名稱是SOLUTION1。若在Template中無法找到SSingle可參考《(0)EEP2019-Setup.CHM》中的《1-2 EEP 2019資料庫及參數的設置》章節
圖
S001是指Server端的Project名稱,會Build出來S001.dll。
MyProjec則是存放Source
Code的目錄位置,目前請先配合存放在EEP2019之下,因為如果你想放在其他目錄者,必須配合去更改所有Templates的Build Path。
【注】:Templates是可以由設計者自行設計的,此只是EEP為你簡單設計了幾個Templates而已。
Step3>按下【OK】後,自動產生Server端Project。在『Component.cs』上按滑鼠右鍵,在選單中選取【View Designer】。
圖
Step4>在Component 的設計畫面中將畫面做適時的調整後,按下滑鼠右鍵,選擇【Save Location】,接著要設定各個Component 的Property。
圖
這是因為你調整各個元件位置後,VS2019並無法自動將這些位置存下來,因此必須透過EEP的『SaveLocation』與『Load Location』功能來達到目的,未來版本的VS2019有可能會解決此問題。
Step5>設定各個Component 的Property。
q
首先設定infoConnection的Property『EEPAlias』,請下拉選取【ERPS】。
圖
infoConnection是僅用在設計模式的元件,在RunTime執行時是無須此元件的,為了讓開發者可以更容易開發與在設計時期顯示資料等用途。下拉選EEPAlias時會自動按EEP A/P Server上的資料庫設定來選擇,並自動抓取相對的ConnectionString。
q 接著設定MasterinfoCommand的Property『CommandText』。
圖
InfoCommand用來透過A/P Server向database來取得資料,並打包資料給Client端,此CommandText就是指SQL的Select語句。
按下旁邊的【…】按鈕後,會出現Command
Text Editor視窗,請先按下Tables下方【Add】的按鈕。
圖
這是一個SQL語法的Wizard,透過此來快速產生SQL的Select語法,出現一個Tables的選擇表,請選擇【Customers】。
接著將焦點放在『Customer』上,可以看到右邊『Columns』中會出現該Table的所有欄位供選取。
按下【Add *】的按鈕,即可看到產生『Command Text』:select
[Customers].* from [Customers]。代表選擇所有欄位,如果按右邊的【Add】按鈕則代表要產生單一的欄位。
圖
此時可以選取右邊的「View」頁面,並將【Show
Data】打勾,藉此檢視SQL語法是否正確,檢視完畢按下【OK】離開。
圖
q
接著設定Master infoCommand的Property『KeyFields』。(這部分的設定可能在預設值已經完成,如果已經設好就只要檢查一下)。
圖
按下旁邊的【…】按鈕後,會出現KeyItem Collection Editor視窗,代表要選擇這個Table的Primary Key為哪些欄位。請按下『Members』下面的【Add】。
圖
然後在『KeyName』的地方選取正確的鍵值欄位,此處是【CustomerID】。
圖
設定完後就如下圖,按下【OK】離開。
圖
在InfoCommand設定Keyfields有兩個目的,一個是為了配合Client端的InfoDataSet中的PackedRecords設定,InfoCommand不是一次全部下載資料到InfoDataSet中的,而是依PackedRecords的設定來分批下載,為了能準確的分批下載,必須搭配KeyFields的設定;另一個目的是為了配合UpdateComp元件的Update/Delete動作時,必須在此兩個指令中自動設入Where的Keyfields定義才能順利異動資料。
Step6>接著對此Project S001做編譯【Build】的動作,此時已經完成Server端程式。編譯完會產生一個S001.dll檔案。
圖
上圖中,其餘沒有介紹到的兩個元件分別是:
【ServiceManager】:這是在EEP Server模組上一定要貼的元件,否則無法將Build出來的dll掛入A/P Server上執行,此用來分配database連線與提供Server Method的服務,一般情況下不必任何設定,除了想提供Server Method之外。
【UpdateComp】:這是配合InfoCommand用來對InfoCommand的資料自動進行Insert/Delete/Update所使用,只要將UpdateComp與InfoCommand配對即可,暫時不必設定。
Step7>然後到EEP .NET Server中,點選『File』->『Package Manager』。
圖
此用來設定此A/P
Server上要外掛多少Server端的dll服務模組。因為A/P Server與各個dll是各自獨立的,因此,以後只要針對有更改的模組重新編譯即可,不必全部編譯一次。
在此視窗中按下左邊的【Add】。
圖
選擇到SOLUTION1的檔案夾中,在EEP A/P Server上的Server
Module必須規定放在EEP2019\EEPNetServer\之下,因為此Solution名稱為SOLUTION1,因此我們選擇SOLUTION1這個目錄。選S001.dll,再按下【開啟】。(EEP2019規定Solution名稱必須與目錄名稱一致)。
圖
將剛才編譯過的S001.dll加入,然後【Save】後,關閉此對話框。Save代表讓Server端永遠知道有這個Server的服務模組。
圖
到此,單檔的Server端已經設計完畢。
Related Topics