Changes

Jump to: navigation, search

Custom Field Type: Special – Calculated Value

1,842 bytes added, 19:18, 5 September 2018
Undo revision 33084 by ATsim (talk)
=='''General Description'''== {{JavaScript Syntax}}
==General Description==Executes an expression to calculate a value and store the result. Additional information can be found in the [[SmartSimple]] wiki. =='''Field Options'''==
* '''Allow Empty''': N/A* '''Default Text''': N/A* '''Options''': Expression* '''Track Changes''': Yes* '''Store To Value''': N/A =='''Special Options for Field'''== {{FieldOptions}}
* '''Expression''' – defines : Defines the expression to be executed.(additional details on Expression found in section below){{LabelAboveField}}{{ToolTip}}{{HideFieldForNewRecord}}{{SmartFieldView}}
==Expression Field Details=='''Expression''': Defines the expression to be executed All values are treated as strings. For arithmetic operations, PARSEINT and PARSEFLOAT functions are used to convert the string value to a numeric value.
Example summing the values using five custom fields:
''ParseFloatssParseNum([Total Monthly Cost]) + ParseFloatssParseNum([Total Cost Ex]) + ParseFloatssParseNum([Hardware Rental]) + ParseFloatssParseNum([Email]) + ParseFloatssParseNum([Other])''
<pre>If you are using this field in a '''"Dynamic Control Field''' " address the fields by thier their field ids with the following syntax:
frm.cf_customfieldid.value
Example: ''PARSEFLOATssParseNum(frm.cf_1254625.value)*0.44'' </pre> {{OptionsTab}}{{Searchable}}{{TrackChanges}}{{HideField}}{{DisableFromGlobalSearch}} ==Formatting=='''Field Validation'''{{FieldFormattingOptions}} == Value Storage=={{ValueStoresTo}}  {{CFPermissionsTab}}
* '''Type''': N/A
* '''JavaScript Validation''': N/A
* '''Message''': N/A
* '''HTML Tag''': N/A
=='''Field Formatting Options'''==
* '''Height''': N/A '''Measure''': '''Default''':
* '''Width''': N/A '''Measure''': '''Default''':
* '''Number Format''': Yes
* '''Style''': Yes
* '''Tool Tip''': Yes
=='''Notes'''==
==Notes==* You can in general use arithmeticeither the name of the field within square brackets, string, comparison operators and functions within or frm.cf_''customfieldid''.value to refer to the values for the calculations.* In both cases is that the field must be visible on the calculated page (or a [[Custom Field|Hidden Value]] custom fieldthat is on the page).* A [[Combo Box]]custom field can be used in mathematical as long as the stored value is numeric. The displayed value does not have to be numeric* References to other fields are always enclosed in square brackets: [variable1[Check Boxes] * The calculations are performed when you click the '''Save''' button and save the page] cannot normally be used in Calculated Value fields. (They can be accommodated with sufficient knowledge of JavaScript)
=='''Important Notes on Calculation Order'''==
* Calculated field formulas are executed in the same order that the calculated fields are displayed on the page. * You must not place fields that perform summary calculations based on other calculated fields ABOVE the subordinate calculations. * If the fields are ordered in this mannercan use arithmetic, saving the page will not update the summary calculationstring, as summary formula will be executed BEFORE comparison operators and functions within the subordinate calculations are performedcalculated [[Custom Field|custom field]].
* References to other fields are always enclosed in square brackets: [variable1]
* The calculations are performed when you click the '''Save''' button and save the page.
 
 
 
* Calculated field formulas are executed in the same order that the calculated fields are displayed on the page.
* You must not place fields that perform summary calculations based on other calculated fields ABOVE the subordinate calculations.
** If the fields are ordered in this manner, saving the page will not update the summary calculation, as summary formula will be executed BEFORE the subordinate calculations are performed.
==SmartSimple Calculated Field Operators==
===Arithmetic Operators===
[[Image:CS08.png]]
===Arithmetic Operators==='''Rounding''': ** To round a calculation to 2 decimal places use the following syntax:*** '''Math.round(('''''expression''''')*100)/100''''''Note:''' To round to a different decimal place just change '''*100)/100''' part as per requirement. Example:To round to 3 decimal places, you would use '''Math.round(('''''expression''''')*1000)/1000'''
[[Image*** For no decimal places:CS08**** '''Math.pnground('''''expression''''')'''where ''expression'' is the calculation to be rounded off, such as PARSEINT([variable 1])/PARSEINT([variable 2])
===String Operators===
 
[[Image:CS081.png]]
===Comparison Operators===
 
[[Image:CS084.png]]
===Date Functions===
[[Image:CS085.png]]
'''calage([date of birth])''' - Calculates the number of full years between the current date and the date included in the function.'''calage([Image:CS085date of birth],1)''' - Calculates the number of years and months between the current date and the date included in the function as a floating point.png]'''calage([date of birth],2)''' - Calculates the number of years and months between the current date and the date included in the function as the string "X years and Y months".
===Time Functions===
To calculate the time difference for '''Standard Fields''' in hours and minutes use the following
To calculate the time difference in hours and minutes use the following '''Standard Fields''' at Level 1:* ''timediff(frm.ostartdate.value,frm.oenddate.value,frm.ostarthour.value,frm.ostartminute.value,frm.oendhour.value,frm.oendminute.value)'''''Standard Fields''' at Level 2:* ''timediff(frm.startdate.value,frm.enddate.value,frm.starthour.value,frm.startminute.value,frm.endhour.value,frm.endminute.value)''
For '''Custom Fields''' (any level)**** ''timediff([starttimefieldname]frm.ostartdate.value,[endtimefieldname]frm.oenddate.value,frm.ostarthour.value,frm.ostartminute.value,frm.oendhour.value,frm.oendminute.value)''Level 2:
**** ''timediff(frm.startdate.value,frm.enddate.value,frm.starthour.value,frm.startminute.value,frm.endhour.value,frm.endminute.value)''
(note: the starttime and endtime '''Standard Fields''' are actually stored as part of the startdate and enddate fields, which is why they are used here)
===Other Functions===
To show the number of characters in a text field, use:
**** [[Image''fieldname''].lengthTo show the number of words in a text field, use:CS086.png]]
**** [''fieldname''].split(" ").length==See Also==**** [[How Calculated Custom Fields Work]]**** [[ssParseNum]]**** [[Template / Type Formula]]**** [[:Category:Custom FieldsJavaScript]]**** [[Variable List]]**** [[The Musings of Chin - Correct Variable Processor Use]]**** Disambiguation: [[Calculated Field|Calculated Field in Reporting]]{{CustomFieldPageFooter}}
0
edits

Navigation menu