Translations:Expression Manager/69/en
From LimeSurvey Manual
Here are some of the other reasons you might want to use EM.
- Calculations - you can create any calculation you can think of:
- You have access to all common mathematical operators and functions
- You have access to 70+ mathematical, date, and string processing functions
- It is fairly easy for developers to add new functions if users need them
- Storing Calculations to Database
- You can now compute simple and complex calculations and/or scale scores AND have them stored in the database without needing JavaScript.
- You use the Equation question type to accomplish this.
- Assessments
- You can now create assessments or scale scores from any question type, not just the subset that used to be supported
- You can use Tailoring to show running or total assessment scores anywhere needed - even on the same page
- You have more control over the reports generated based upon those assessment scores
- You can store assessment scores in the database without needing JavaScript
- You can hide assessment scores without needing JavaScript or CSS
- Replacement Fields
- Instead of using {INSERTANS:SGQA}, you can just use the Question Code - this makes it easier to read and validate.
- This also avoids the common need to edit questions to change the SGQA code to make everything work.
- Tailoring - you can conditionally display text based upon other values
- Use the appropriate title for a subject, like (e.g. "Hello [Mr./Mrs.] Smith")
- Output gramatically correct sentences based when singular/plural matter: (e.g. "You have 1 child" vs. "You have 2 children")
- Appropriately conjugate verbs and decline nouns based upon subject's gender and plurality.
- New Variable Attributes - you can access the following to do your tailoring:
- (no suffix) - an alias for qcode.code
- .code - the selected response code for the question if it is relevant (otherwise blank), or the text value if it is not a coded question
- .NAOK - same as .code, but can be part of calculations or lists even if irrelevant
- .value - the assessment value for the question if it is relevant (otherwise blank), or the text value if it is not a coded question -- available is assesments are enabled for the survey, otherwise always zero
- .valueNAOK - same as .value, but can be part of calculations or lists even if irrelevant
- .shown - the answer as displayed to the user (this is what {INSERTANS:xxx} does)
- .qid - the question ID
- .gid - the group ID
- .sgqa - the SGQA value for the question
- .jsName - the correct javascript variable name for the question, regardless whether defined on this page or another
- .qseq - the question sequence (starting from 0)
- .gseq - the group sequence (starting from 0)
- .mandatory - whether the question is mandatory (Y/N)
- .question - the text of the question
- .relevance - the relevance equation for the question
- .grelevance - the relevance equation for the group
- .relevanceStatus - whether or not the question is currently relevant (boolean (can be different in PHP and JS))
- .type - the question type (the one character code)
- Dynamic On-Page Changes
- All Relevance, Calculation, and Tailoring works dynamically on a page - so changes in values instantly update the page
- So, you have questions dynamically appear/disappear based upon whether they are relevant
- Questions are also dynamically tailored based upon responses on the page, so you can see running totals, tailored sentences and customized reports.
- New Data Entry Screen
- In addition to using the current data-entry system, you can just use Survey-All-In-One.
- This supports the on-page relevance and tailoring, so data entry clerks can quickly tab through and they will only have to enter the relevant responses
- This can be critical if your data entry person needs to see the tailoring, which is also dynamic.
- Eliminates the need for most custom JavaScript
- EM easily supports complicated computations, scoring, tailoring and conditional logic.
- Some things will still need JavaScript (like custom layouts and conditionally hiding question sub-elements), but your JavaScript can use the EM functions so that you can access questions by their Qcode instead of SGQA, and access any of the question properties listed above.