資料表事件

Smart eBuilder 提供各種資料表事件可以讓設計者依需要在新增、修改、刪除、存檔、瀏覽時處理邏輯,做到編輯權限管控、過帳、新增時多個欄位設定初值、資料正確性檢查等功能。可以在設計頁面時點選資料規格,選取資料表內的事件節點新增您所需要的 Table Event。

此章節包含的主題:

onInsert

新增資料時會被呼叫,可用來一次設定多個欄位初值。

    範例:



    用ActionFlow 設計 Assign Data,分別指定Price、CategoryID、Gender的欄位初值。

onCheckSecurity

在資料瀏覽切換資料時都會被呼叫,輸出的變數有三個:canInsert、canEdit及canDelete,設計者可以依需要分別指定boolean值到輸出變數,達到資料權限管控效果,若輸出變數未指定值則預設為 true,可依據目前使用者的資訊或每筆資料內容判斷新增、修改、刪除的權限,結合Command Bar動態顯示有權限的按鈕。

    範例:





用ActionFlow 設計Condition,在Condition判斷該筆資料是否已關帳,若是已關帳則執行Assign Variables,設false到canEdit及canDelete,表示若資料已關帳不可修改及刪除。

afterSave

異動資料存檔完成後會被呼叫,一般可用來做過帳功能、異動 Log 記錄或將資料存到其他資料庫,可搭配 Database 分類下的 Actions,如: Insert Data、Update Data、Delete Data、Execute Query、Execute Procedure等來執行額外的資料異動,設計可依異動類型(新增、修改、刪除)放置要執行的 Action,其中累加過帳、累減過帳是針對存檔後處理設計,不需放在異動類型判斷內,而是放在執行主線,這兩個 Actions會判斷異動類型自行做加新減舊的異動處理。

    範例:





用ActionFlow設計累減過帳,根據來源「Oltp1.訂貨明細」的「數量」欄位對「產品資料」資料表的「庫存量」做累減異動,過程中會組成 UPDATE…WHERE SQL,由「訂貨明細」的「產品編號」找出相對應的「產品資料」記錄做更新,例如:原始「庫存量」60單位會因新增一筆「Oltp1.訂貨明細」「數量」出貨10單位,「庫存量」減少變為50單位,若修改「Oltp1.訂貨明細」「數量」從10單位改為5單位,則「庫存量」會從50單位變為55單位,50 + 10 -5 = 55,累加過帳Action的計算式剛好相反。

beforeSave

資料存檔前會被呼叫,輸出的變數:abortMessage,若檢查不合格時將此變數設為錯誤警告訊息,會彈出視窗顯示並中斷存檔處理,若輸出變數未指定或設為空字串、null則表示可以繼續存檔。可用來做存檔前多欄位合併檢查或輸入時不需顯示的欄位給值,單一欄位的輸入檢查(Validate)可以在每個欄位新增Validate自行檢查,但若需多個欄位合併檢查,例如:日期起訖範圍檢查、未付款訂單金額累計未超過信用額度等,則可在此事件處理。

    範例:







用ActionFlow 設計Condition判斷課程類別 CategoryID==”A”且價格 Price>=1000,在「是」的分支線新增 Assign Variables指定錯誤訊息給 abortMessage,在「否」的分支線新增 Assign Data,選擇資料來源及資料表並指定 CurrentDateTime() 給 CreateCourseData,當檢查不合法時顯示訊息並中斷存檔,若合法則將課程建立日期設為目前時間。

beforeDelete

刪除資料前會被呼叫,輸出的變數:abortMessage,若判斷不可刪除時將此變數設為警告訊息,會彈出視窗顯示並中斷刪除處理,若輸出變數未指定或設為空字串、null則表示可以繼續,這個事件和onCheckSecurity差別在於onCheckSecurity結合CommandBar,若新增、修改、刪除功能不可執行會直接隱藏,使用者沒機會按到不可執行的功能,而beforeDelete則是使用者可以按刪除,但按了以後才判斷是否可執行。

    範例:





用ActionFlow 設計Condition判斷該筆資料是否已關帳,若已關帳則執行Assign Variables,設警告訊息到abortMessage,若資料已關帳使用者按刪除時會顯示訊息並中斷刪除處理。

beforeChangeMode

新增、修改資料前會被呼叫,輸入變數:newMode,要進入的新模式,新增為 ”insert”,修改為 “edit” ,輸出的變數:abortMessage,若判斷不可執行時將此abortMessage設為警告訊息,會彈出視窗顯示並中斷處理,若輸出變數未指定或設為空字串、null則表示可以繼續,這個事件和onCheckSecurity差別在於onCheckSecurity結合CommandBar,若新增、修改、刪除功能不可執行會直接隱藏,使用者沒機會按到不可執行的功能,而beforeChangeMode則是使用者可以按新增、修改,但按了以後才判斷是否可執行。

    範例:





用ActionFlow 設計Condition判斷該筆資料是否已關帳且是進入修改模式,若「是」則執行Assign Variables,設警告訊息到abortMessage,若資料已關帳使用者按修改時會顯示訊息並中斷刪除處理。

關於我們 網站導覽 隱私權保護及著作權聲明 服務專線:(02)2726-0885