Changes

Jump to: navigation, search

Visibility Condition

4,677 bytes added, 18:18, 20 October 2021
no edit summary
{{MySQL Syntax}} The Visibility Condition section of [[Custom Fields]] and , [[Standard_Field_SettingsUTA Standard Field Settings|UTA Standard Fields]], [[Contact and Account Standard Fields]] 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'
To make the field visible only if the date in the field named '''Date Initiated''' is after 2009 now()>"2015-0102-3106" or '"@Date initiateddate(currentdate)@' ">'2009"2015-0102-31'06"
To make the field visible for a user with roleid 9999
',@me.rolelist@,' REGEXP ',9999,' =1
* To make a Contact field visible only to the field hidden for a user with roleid 9999 contact and to System Administrators (',@me.rolelist@,' REGEXP [[roleid]]',9999,' = 012345):
To make the field visible only when the status is Draft or Open * ' "@statusme.userid@"="@userid@" OR @' in me.inRole('Draft','Open'System Administrator) ::''Note: The above Visibility Condition would only be used '''Standard Fields'''. [[Custom Fields]] have a separate [[Status Field Permissions|Status Field Permission]] section that can be used.''@
* 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 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 "@Destination Citytype@"="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.'Toronto' *    ** 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.''
'''Note:''' remember to include the @fieldname@ in single quotes.
==See Also==
Access ==Note==* It is usually best practice to [[Custom Fields]] can use double quotes (") around variables rather than single quotes ('). This is because single quotes are also apostrophes, so if the variable is processed and replaced with a term with an apostrophe it will close the statement and cause a server side error. (In principle the variable could also be controlled using:* [[Role Field Permissions]] * replaced with text containing a double quote, also resulting in an error, but double quotes are less commonly stored.) (See [[Status Field PermissionsSsescape|SSEscape]]for additional information.)
Help constructing logical statements for the '''Visibility Condition'''==See Also==* [[Determining the statusid]]* [[Determining the roleid]]* [[Advanced Logic]]{{DeterminingIDs}}
** [[UTA Standard Field Settings]]
** [[Contact and Account Standard Fields]]
{{VisibilityofCustomFields}}
[[Category:Custom Fields]]
Smartstaff
56
edits

Navigation menu