Changes

Jump to: navigation, search

Visibility Condition

1,179 bytes added, 18:18, 20 October 2021
no edit summary
{{MySQL Syntax}}The Visibility Condition section of [[Custom Fields]], [[UTA Standard Field Settings|UTA Standard Fields]] and , [[Contact and Account Standard Fields]] allow and [[Submit Buttons]] allows you to use logical statements to determine whether or not a field is [[visible]] or not. Common visibility condition statements are based on roles, types, statuses, and even field values.
'''Note:''' Visibility Conditions take effect when the record page is savedloaded. They will not run dynamically if the condition is based on changing the value in of a field that is on the page. If you wish to change the visibility of fields dynamically , you should use the [[Show/Hide Header]] procedure.<!--'''Examples'''-->
'''Examples'''===Basic Condition Syntax===<!--* To make the field visible after 06 February 2015.
* To make the field visible after now()>"2015-02-06 February 2009." or now"@date(currentdate)@">"20092015-02-06"
* To make a Contact field visible only to the contact and to System Administrators (''[[roleid]]'' 12345):
  "@me.userid@"="@userid@ or instr("OR @me.rolelistinRole(System Administrator)@",",12345,")>0
* To make a field visible to a role (''[[inRole]]'' Reviewer):
 
@me.inRole(Reviewer)@
 
* To hide a field from those in the role ''Reviewer''
 
!@me.inRole(Reviewer)@-->
Visibility works by determining the truth of a given condition. For example: the field only shows for someone in the Reviewer role. In that case, the condition syntax would look like this:
@me.inRole(Reviewer)@
If the condition is true--that is, the user viewing the page does have the Reviewer role--then the field is displayed.
 
This can also work with a negative: the field is to be hidden from a Reviewer.
 
!@me.inRole(Reviewer)@
Note: because the statement must be true, the above syntax is actually looking to display the field to anyone NOT in the Reviewer role. ===More Examples==={| class="wikitable"|-||'''Condition'''||'''Syntax'''|-||Field is only visible if Status is either Draft or Open||<nowiki>"@status@" in ('Draft','Open')</nowiki>|-||Field is only visible when it contains a value||<nowiki>"@fieldname.length@"*1>0</nowiki>|-||Field is visible if the type is NOT "Contract"||<nowiki>"@Type@"!="Contract"</nowiki>|-||Field is only visible after February 6, 2015||<nowiki>"@date(currentdate)@">"2015-02-06"</nowiki>|-||Field is only visible if Start Date is on or after May 1, 2009*||<nowiki>"@fullstartdate@" >= "2009-05-01"</nowiki>|-||Field is only visible if the value of Date Initiated is on or after 2014-01-31||<nowiki>"@Date Initiated@" >= "2014-01-31"</nowiki>|} * '''IMPORTANT:''' for a visibility condition based on the '''startdate''' or '''enddate'''::*:* Use ''''@fullstartdate@'''' rather than ''''@startdate@'''' :*:* Use ''''@fullenddate@'''' rather than ''''@enddate@''''.: * ''This will format the stored date as yyyy-mm-dd so it can be compared using < and >.''
"@fullstartdate@" >= "2009-05-01"
<!--** To make the field visible only if the date in the field named '''Date Initiated''' is on or after 2014-01-31
 
"@Date initiated@" >= "2014-01-31"
* To make the field visible only if the date in the field named '''Date Initiated''' is on or after 2009-01-31
"@Date initiated@" >= "2009-01-31"
** To hide the field for new Level 1 records until they have been saved once
* To hide This should not be done with a Visibility Condition. Use the field for new Level 1 records until they have been saved once @opportunityid@>0[[New Record Display]] setting
** To make the field visible if the Template or Type is named '''Sample''' or '''Example''' 
"@type@"="Sample" OR "@type@"="Example"
** To make the field visible hidden for a user with if they have a [[roleidUTA Role]] 9999 instr("@me.rolelist@,",",9999,")>0:of ''XYZ''instr checks to see of the 2nd term (,9999,) can be found within the first term (@me.rolelist@) and returns the numeric character position at which it is found. It returns a value of -1 if the search term is not found.
INSTR("[#(?object=contact::criteria=rolename like 'XYZ')~userid~,#]","@me.userid@")=0
*To make the field hidden for a user with roleid 9999
instr("@me.rolelist@",",9999,")<0
:''In this case ''instr'' will return false (-1) if the role is not found that will only display the field for users that don't have [[roleid]] 9999
** To make the field visible for a user whose parent company has Organization category 1234
"@me.parent.catlist@" like "%,1234,%"  **To make the field hidden for a user if they have a [[UTA Role]] of visible only when the status is Draft or Open  "@status@" in ('Draft'XYZ,'Open') * INSTR("[#(?object=contact*::''Note:criteria=rolename like The above Visibility Condition would only be used for '''Standard Fields''XYZ')~userid~,#. [[Custom Fields]] have a separate [[Status Field Permissions|Status Field Permission]]","@mesection that can be used.userid@")=0''*
*To make the field visible for a user whose parent company has company category 1234
"@me.parent.catlist@" like "%,1234,%"
** To make the field visible only when it contains a value.
*To make the field visible only when the status is Draft or Open * "@status@" in ('Draft',fieldname'Open') .length@"*1>0* *::''Note: The above Visibility Condition would only be When used for ''with [[Custom Field Type: Text – Multiple Lines|Multiple Line Text fields]] that may contain double quotes, use "@'Standard Fields'fieldname''. value@"!="" (See [[Custom Fields]] have a separate [[Status Field PermissionsSsescape|Status Field PermissionSSEscape]] section that can be usedfor additional information.)''*
*To make the field visible only when it contains a value.
"@''fieldname''.length@">0
::''Note: When used with [[Custom Field Type: Text – Multiple Lines|Multiple Line Text fields]] that may contain double quotes, use "<ssEscape>@''fieldname''.value@</ssEscape>"!="" (See [[Ssescape|SSEscape]] for additional information.)''
** More Examples:
*More Examples:
"@Destination City@"="Toronto"
"@Type@"!="Contract"
 '''Note:''' remember to include the @fieldname@ in quotes.-->
===Multiple Conditions===
It is also possible to test multiple conditions:
 
* For an '''OR''' condition use two pipes (|)
'"@status@' " = '"Closed' " || "@me.fullname@"="Jane Doe"
''The above field will be visible either if the status of the record is ''Closed'', OR if the user viewing the record is named ''John Doe''.''
 
* For an '''AND''' condition use two ampersands (&)
  '"@status@' " = '"Closed' " && "@me.fullname@"="John Doe"
''The above field will be visible only if the status of the record is ''Closed'' AND the user viewing the record is named ''John Doe''.''
 
* You can also use a combination of these, using brackets to control the order of validation:
  ( '"@status@' " = '"Closed' " || '"@status@' " = '"Cancelled'") && ("@me.fullname@"="John Doe" || "@me.fullname@"="John Deer" || "@me.fullname@"="Dear John")
''The above field will be visible only if the status of the record is either ''Closed'' OR ''Cancelled'', AND the user is one of the 3 named users.''
 
==See Also==
{{DeterminingIDs}}
 ** [[UTA Standard Field Settings]]** [[Contact and Account Standard Fields]]
{{VisibilityofCustomFields}}
 
[[Category:Custom Fields]]
Smartstaff
56
edits

Navigation menu