在本課程中,從您撰寫的 EGL 程式庫開始,您將直接處理 EGL 原始碼。程式庫可以包含常數、變數和函數,任何常數、變數和函數都可由應用程式中的不同邏輯單元進行存取。程式庫的一個重要性質是:針對變數的變更可用於存取該程式庫的任何邏輯單元。不過,本指導教學的焦點是函數,您應將這些函數放置在程式庫中,以避免必須維護多個位置中相同且廣泛使用的邏輯。
若要處理某些常見問題,您可以使用 com.ibm.egl.rui 專案所提供的「EGL 模型視圖控制器 (MVC)」架構。 雖然縮寫 "MVC" 通常用於說明企業應用程式的不同元件,但是「多元使用者介面」中的 MVC 架構僅關注使用者介面的元件。這裡,模型是變數或記錄欄位,視圖是小組件,控制器是用於監管模型與視圖之間資料傳送的宣告。該資料傳送有時是自動的,有時是對函數呼叫的回應,如稍後所示。
前一節課程的拖放動作不僅新增控制器宣告,還新增表單管理程式,此表單管理程式是一種宣告,可讓您將其他宣告視做單一表單的元件。表單管理程式包括一組表單欄位,其中每一個欄位都可以包括標籤、控制器和錯誤欄位。
EGL 已建立 inputRec_form_Submit 片段函數。 此函數的目的是要驗證表單上的所有欄位,並「確定」這些欄位。確定動作隸屬於 MVC 實作,表示已使用小組件中的值更新 inputRec 記錄。
您將新增程式碼,以呼叫其他兩個函數。第一個函數使 processImage 影像可見,並透過這種方式告知使用者應用程式處於工作中。 第二個函數會呼叫服務,以計算抵押付款金額。
if(inputRec_form.isValid()) inputRec_form.commit(); showProcessImage(); calculateMortgage(); else errorLabel.text = "Input form validation failed."; end

function showProcessImage() processImage.visible = yes; end
function hideProcessImage() processImage.visible = no; end
function calculateMortgage()
call mortService.amortize(inputRec)
returning to displayResults
onException handleException;
end
function displayResults(retResult MortgageCalculationResult in) paymentLabel.text = MortgageLib.formatMoney(retResult.monthlyPayment as STRING); inputRec_form.publish(); hideProcessImage(); end
依照給定的事件順序,通常如下所示來呼叫表單層次的 publish 函數:在可從服務接收資料的回呼函數中呼叫。
如下所示執行動作:
現在,您已準備好測試計算機。
在下一節課程中,您將建立圓餅圖,以比較給定計算中的總計本金與總計利息。