Changes

Jump to: navigation, search

Visibility Condition

3,226 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 page is loaded. They will not run dynamically if the condition is based on changing the value 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'''-->
===Basic Condition Syntax===<!--* To make the field visible after 06 February 20092015. now()>'2009-02-06'
now()>"2015-02-06"
or
"@date(currentdate)@">"2015-02-06"
* '''IMPORTANT:''' for a visibility condition based 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 a Contact field visible only to the contact and to System Administrators (''[[roleid]]'' 12345):
* To make the field visible only if the date in the field named '''Date Initiated''' is on or after 2009-01-31 '"@Date initiatedme.userid@' >"= '2009-01-31'"@userid@" OR @me.inRole(System Administrator)@
* To make a field visible to a role (''[[inRole]]'' Reviewer):
* To make the field visible for a user with roleid 9999 ',@me.rolelistinRole(Reviewer)@,' REGEXP ',9999,' =1
* To hide a field from those in the role ''Reviewer''
*To make !@me.inRole(Reviewer)@-->Visibility works by determining the truth of a given condition. For example: the field hidden only shows for a user with roleid 9999someone in the Reviewer role. In that case, the condition syntax would look like this: ',@me.rolelistinRole(Reviewer)@,' REGEXP ',9999,' = 0
If the condition is true--that is, the user viewing the page does have the Reviewer role--then the field is displayed.
*To make This can also work with a negative: the field visible only when the status is Draft or Open * '@status@' in ('Draft','Open') ::''Note: The above Visibility Condition would only to be used '''Standard Fields'''. [[Custom Fields]] have hidden from a separate [[Status Field Permissions|Status Field Permission]] section that can be usedReviewer.''
!@me.inRole(Reviewer)@
*More ExamplesNote: because the statement must be true, '@Destination City@'='Toronto' '@Type@'!='Contract'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>
|}
* '''NoteIMPORTANT:''' remember to include for a visibility condition based on the '''startdate''' or '''enddate''':*:* Use ''''@fieldnamefullstartdate@ in single quotes'''' 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 hide the field for new Level 1 records until they have been saved once
 
This should not be done with a Visibility Condition. Use the [[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 hidden for a user if they have a [[UTA Role]] of ''XYZ''
 
INSTR("[#(?object=contact::criteria=rolename like 'XYZ')~userid~,#]","@me.userid@")=0
 
 
** To make the field visible for a user whose parent company has Organization category 1234
 
"@me.parent.catlist@" like "%,1234,%"
 
 
** To make the field visible only when the status is Draft or Open
 
"@status@" in ('Draft','Open')
*
*:: ''Note: The above Visibility Condition would only be used for '''Standard Fields'''. [[Custom Fields]] have a separate [[Status Field Permissions|Status Field Permission]] section that can be used.''
*
 
 
 
** To make the field visible only when it contains a value.
 
"@''fieldname''.length@"*1>0
*
*:: ''Note: When used with [[Custom Field Type: Text – Multiple Lines|Multiple Line Text fields]] that may contain double quotes, use "@''fieldname''.value@"!="" (See [[Ssescape|SSEscape]] for additional information.)''
*
 
 
 
** 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==
Visibility of [[Custom Fields]] can also be controlled using:
* [[Role Field Permissions]]
* [[Status Field Permissions]]
* [[Show/Hide Field Control]]
For help constructing logical statements for '''Visibility Condition''':==Note==* [[Determining It is usually best practice to use double quotes (") around variables rather than single quotes ('). This is because single quotes are also apostrophes, so if the statusid]]* [[Determining variable is processed and replaced with a term with an apostrophe it will close the roleid]]* [[Determining statement and cause a server side error. (In principle the typeid]]* variable could also be replaced with text containing a double quote, also resulting in an error, but double quotes are less commonly stored.) (See [[Advanced LogicSsescape|SSEscape]] (for more examplesadditional information.==See Also=={{DeterminingIDs}}
** [[UTA Standard Field Settings]]
** [[Contact and Account Standard Fields]]
{{VisibilityofCustomFields}}
[[Category:Custom Fields]]
Smartstaff
56
edits

Navigation menu