2012-11-26 122 views
0

我有兩個值(A,B)和自定義字段的選取列表。如果選擇的值不是B,則不應輸入自定義字段。如果選擇值B,則可以輸入自定義字段。使用什麼功能。 ?我很困惑。幫助請驗證規則語法

回答

2

是這樣的?我已使用帳戶的標準字段,Rating是選取列表,ShippingCountry是文本字段。

驗證標準:

ISPICKVAL(Rating, "Hot") && ISBLANK(ShippingCountry) || 
NOT(ISPICKVAL(Rating, "Hot")) && NOT(ISBLANK(ShippingCountry)) 

錯誤消息:

航運國家是強制性時評級爲 「熱」。請 更改評級或清除運輸國家字段中的值。

條件基本上是一個XNOR如果你熟悉邏輯,簡化等;),但我們並沒有在功能參考XOR功能。

你也可以認爲這是分裂成2條獨立的驗證規則 - 這將讓你寫清潔說明什麼,用戶需要做的「你找乙 - >填寫此值!;你選擇了A - >清除該值

+0

雅我包括一個完全像這樣的條件。是否有任何可能的方法來減少條件(我的意思是在第一次使用同一個字段而不是條件) –

+0

不要這麼認爲:)它是'x * y + not(x)* not(y)'(check http://en.wikipedia.org/wiki/Xnor中的「真值表」)。我懷疑你可以使用http://en.wikipedia.org/wiki/Boolean_algebra_(structure)中的規則進一步簡化它(你可能正在考慮某種形式的「補充」規則)。 – eyescream

1

使用示例EYESCREAM了,你可以進一步降低的條件是這樣的尺寸:

ISPICKVAL(Rating, "Hot") = ISBLANK(ShippingCountry) 

即(拼寫):

  • 如果評分是熱水和ShippingCountry是空白的,則兩個條件將是TRUE,並且彼此相等,從而驗證將激活並顯示錯誤

    AND

  • 如果評分不熱和Shippingcountry不爲空,那麼這兩個條件爲FALSE,但彼此相等,從而驗證將啓動並顯示錯誤

時,你必須指定一個類似的搜索標準這種類型的短XOR表達的可能是得心應手對於許多領域來說,比如說「航運街道,城市,州和郵編必須全部輸入或全部空白」的驗證。

在這種情況下,您需要輸入:

ISBLANK(ShippingStreet) != ISBLANK(ShippingCity) 
|| ISBLANK(ShippingCity) != ISBLANK(ShippingState) 
|| ISBLANK(ShippingState) != ISBLANK(ShippingPostalCode) 

通知各街道的狀態一路鏈接到城市郵政編碼條件之間的傳遞。

表達基本上意味着下面闡述了這兩個條件:

  • 如果街道是空白的,則城市應該是空白的,並且如果城市是空白的,則狀態應該是空白的,並且如果狀態爲空,則郵政編碼應該是空白

  • 如果街道不爲空,那麼城市不應該是空白的,如果城市不爲空,則國家不應該是空白的,如果狀態不爲空,則郵政代碼不能爲空

+0

聰明,我喜歡它:) – eyescream