從一組數個選項中選取一個選項
您可能會想要根據使用者回應從一組數個可能的選項中選取一個選項。但是,選項可能會非常多,以至於針對每個選項分配一欄時,單一案例表可能都難以組織或維護。
例如,一個木製桌面可能會有非常大量的材料與拋光,例如 Oak Veneer、Solid Oak、Solid Oak with Maple Trim、Maple Veneer、Solid Maple、Solid Maple with Oak Trim、Cherry Veneer、Solid Cherry 及 Solid Cherry with Maple Trim。
為了使此資訊更易於管理,您可以引入媒介參數,來將案例表與決定應包括哪個選用子組件的布林參數連接起來。利用此方法,系統會在由包含有效選項之案例表所評估的輸入參數中擷取使用者的請求。案例表的結果或輸出會在單一參數中擷取。最後,會透過評估這一媒介參數來決定每個布林值的值。
欲從一組數個選項中選取一個選項:
1. 建立可供配置模組。
2. 為每個相關拋光選項附加子零件。
3. 將字串輸入參數 (例如 askFinish) 新增至可供配置模組。
為此字串參數定義適當的提示值。
為具有下列值的字串參數定義「清單條件約束」:
Oak Veneer
Solid Oak
Solid Oak with Maple Trim
4. 定義一個字串非輸入參數,以用來將使用者回應與正確的子組件 (例如,pickFinish) 進行匹配。此參數會作為案例表與布林參數之間的媒介運作。
5. 針對每個相關選項,將布林非輸入參數新增至可供配置模組。例如:
useOakVeneer - 表示使用 oak veneer 材料
useSolidOak - 表示使用 solid oak 材料
useSolidOakMaple - 表示使用 solid oak with maple trim 材料
6. 將預設運算式新增至評估媒介參數的每個布林參數。例如:
pickFinish.equals(“OakVeneer”) - 針對 oak veneer 布林值
pickFinish.equals(“SolidOak”) - 針對 solid oak 布林值
pickFinish.equals(“SolidOakMaple”) - 針對 solid oak with maple trim 布林值
7. 為每個選項的相關子零件,將布林參數新增至此可供配置模組的「包含選項」,如下所示:
useOakVeneer - 針對 oak veneer 拋光子組件
useSolidOak - 針對 solid oak 拋光子組件
useSolidOakMaple - 針對 solid oak with maple trim 拋光子組件
8. 建立案例表條件約束,以將使用者回應對應至媒介參數的正確值。例如,請考慮案例表條件約束 pickFinish
askFinish
pickFinish
Oak Veneer
Oak Veneer
Solid Oak
Solid Oak
Solid Oak with Maple Trim
SolidOakMaple
Maple Veneer
Maple Veneer
Solid Maple
Solid Maple
Solid Maple with Oak Trim
SolidMapleOak
* 
案例表 pickFinish 欄中的所有值都必須具唯一性,此方法才能正常運作。
在此方法中,使用者選取特定值 (例如 Oak Veneer) 之後,案例表會將值 OakVeneer 指派給參數 pickFinish。布林參數 useOakVeneer 會將其預設運算式 {pickFinish.equals(“OakVeneer”)} 評估為 true,且 oak veneer 的子組件會包括在變體產品結構中。
這是否有幫助?