0
edits
Changes
==General Description==Executes an expression to calculate a value and store the result. Additional information can be found in the [[SmartSimple]] wiki. <u>'''Field Options'''</u>
* '''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])'' <upre>If you are using this field in a "Dynamic Control Field" address the fields by their field ids with the following syntax: frm.cf_customfieldid.value Example: ssParseNum(frm.cf_1254625.value)*0.44</pre> {{OptionsTab}}{{Searchable}}{{TrackChanges}}{{HideField}}{{DisableFromGlobalSearch}} ==Formatting=={{FieldFormattingOptions}} ==Value Storage=={{ValueStoresTo}} {{CFPermissionsTab}} ==Notes==* You can in general use either the name of the field within square brackets, 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 page (or a [[Hidden Value]] custom field that 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* [[Check Boxes]] cannot normally be used in Calculated Value fields. (They can be accommodated with sufficient knowledge of JavaScript) You can use arithmetic, string, comparison operators and functions within the calculated [[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 ValidationOperators=====Arithmetic Operators===[[Image:CS08.png]] '''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''' *** For no decimal places:**** '''Math.round('''''expression''''')'''where ''expression'' is the calculation to be rounded off, such as PARSEINT([variable 1])/u> 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([date 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.'''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 Level 1:
* '''Type''': N/A* '''JavaScript Validation''': N/A** ''timediff(frm.ostartdate.value,frm.oenddate.value,frm.ostarthour.value,frm.ostartminute.value,frm.oendhour.value,frm.oendminute.value)'Message''': N/A* '''HTML Tag'''Level 2: N/A <u>'''Field Formatting Options'''</u>
* '''Height''': N/A '''Measure''': '''Default''':* '''Width''': N/A '''Measure''': '''Default''':* '''Number Format''': Yes* '''Style'timediff(frm.startdate.value,frm.enddate.value,frm.starthour.value,frm.startminute.value,frm.endhour.value,frm.endminute.value)'': Yes* '''Tool Tip'''(note: Yes <u>the starttime and endtime '''NotesStandard Fields'''</u> are actually stored as part of the startdate and enddate fields, which is why they are used here)
**** [''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}}