DatStat: Illume Help Frames

1. 2. Using the Survey Designer
1. 2. 1. Survey Designer Overview << PreviousNext Steps | NextSurvey Design Principles and Best Practices >>

The Survey Designer enables you to create questions and Text/HTML objects, and to configure preferences for an entire survey. The pages in this section describe how to use each of the Survey Designer's features.

1. 2. 2. Survey Design Principles and Best Practices << PreviousSurvey Designer Overview | NextReconnecting to the Illume Server >>

This article outlines a specific set of practices to improve survey quality, describing the benefits of each practice and the consequences of neglecting each practice. These practices have the following goals:

  1. To improve the quality of the data you'll be analyzing once the survey is complete
  2. To improve the participant's experience while taking the survey.
  3. To simplify the process of testing your survey
  4. To simplify the process of maintaining your survey
  5. To maximize the usefulness of the Web Console's analysis tools

Organize questions into collections

Group logically-related questions into collections with logical names. For example, if your survey contains 20 questions about travel, put all of those questions into a collection called TRAVEL. See Creating a Collection for details. Why

  1. Collections make questions easier to find, both for the survey designer and for the data analyst, who will see the same set of collections in the Web Console.
  2. Collections greatly simplifies show-if logic. For example, if the first question in your survey asks "Do you plan to travel in the next 6 months?" it's easier to hide the whole TRAVEL collection from those who answer NO than to set show-if conditions on each of the 20 questions in the TRAVEL collection.
  3. Collections simplify the process of building queries in the Web Console. The Web Console enables analysts to select whole collections at once for analysis. This is much easier than manually adding 20 items to a query.

Choose the right display type

Use poplists for select-one type questions that have many options (generally more than 10). Use radio buttons for select-one type questions that have few options (generally less than 10). Use likert scales for select-one type questions that use a continuum (a scale of values that ranges from one extreme, such as "very likely" to the opposite extreme, such as "very unlikely"). Use text questions for any type of short free-form answer (up to 255 characters). Use commentary questions for longer verbal responses (more than 255 characters). See Setting a Question's Display Properties for more information. Use question tables for numerous questions that share a common set of response options. For example, if your survey includes 20 select-one questions with the options "For," "Against," and "Undecided," creating a single question table takes much less time than creating 20 separate questions. The question table layout presents the questions simply and clearly, enabling participants to answer the questions more quickly and easily. See Creating a Question Table for more information about Question Tables.

Choose the most specific data type available

If your question requires a numeric response, choose the most specific numeric data type that applies. This applies above all to Text questions. For example, a question that asks a participant's age should use the type "Whole Numbers >= 0" since age cannot be less than zero. When asking a participant's grade point average, choose the type "Decimal Numbers," since grade point average tend to include decimal components. See Setting a Question's Response Options for details. Why

  1. When you analyze the data you've collected, you can be sure the data are valid. You will not have to spend time weeding out all of the responses in which participants said their age was less than zero. Weeding out bad data after it has been collected takes much more time than preventing bad data from being collected. This is one of the principles on which Illume was built.
  2. Show-if logic elsewhere in your survey may depend on the value of the participant's response being of the correct type. For example, your survey includes a collection of questions called HEALTH with a show-if condition that says the questions should be shown to anyone whose age is greater than 50. If don't specify a numeric data type for the age question, someone who reports their age as "sixty" will not see the HEALTH questions because Illume cannot compare a number (50) to a word (sixty). In this case, specifying the wrong data type causes you to lose data.
  3. Calculations elsewhere in your survey may depend on the value of the participant's response being of the correct type. If a calculation is supposed to add two numbers together, and one of the values is not a number (as in the age example above), the calculation will fail. In this case, specifying the wrong data type may result in missing data or bad data.
  4. Illume's Web Console displays summary statistics for all numeric data. These statistics include minimum, maximum, and average values (among others). These are useful for getting a quick overview of survey results. The Web Console will not display summary statistics for non-numeric data. Therefore, choosing a non-numeric date type for the age question results in the data analyst losing some of the useful functionality of the Web Console.
  5. Incorrect data types may cause problems in data exports and downloads. The Web Console will export data to a variety of formats, including Microsoft Excel, SAS, SPSS, HTML, text, and XML. Statistical analysis programs like SAS and SPSS may not import data sets that include textual data in a numeric field. Again, if the age question is not set to a numeric data type, it's possible that the data set will contain a mix of textual and numeric data. Cleaning these data after they have been collected is tedious, error-prone and time consuming-- especially if the data include thousands of submissions.

Assign specific response guides

Assigning specific response guides prevents bad data from getting into your survey results. For example, when asking for a participant's grade point average, assign lower and upper bounds that ensure a valid response. A reasonable lower bound would be 0; a reasonable upper bound may be 4 or 5, depending on the grading scale. See Setting a Question's Response Guides for details. Starting in version 2.2, Illume enables you to set dynamic bounds, which customize response guides for each participants. For example, one question called KIDS may ask, "How many children do you have?" A later question called KIDS_IN_SCHOOL may ask, "How many of your children are currently in school?" You can define upper bound (i.e. maximum allowable response value) for the second question as less than or equal to the answer to the first question. See Setting Dynamic Defaults and Bounds for specifics about dynamic bounds. Why

  1. The more you can do to ensure valid data, the better. Finding and removing invalid data is much more difficult than preventing those data from entering the system in the first place. The data analyst will certainly not want to compare all of the responses to KIDS to all of the KIDS_IN_SCHOOL responses trying to find and remove invalid responses.
  2. Your survey may include show-if logic and calculations that rely on the value of these variables falling within a reasonable range. Values outside the range may cause the show-if logic or the calculations to fail.

Require answers to questions used in calculations

In order to determine the value of a calculated variable, each of the variables used in the calculation must have a value. For example, a variable calculated as {Value:HEIGHT} / {Value:WEIGHT} cannot be calculated unless the participant has answered both the HEIGHT and WEIGHT questions. To get meaningful data in a calculated variable, you must require that participants answer the questions on which the calculation is based. The answers to those questions, as noted above, must be of the correct data type! See Setting a Question's Response Options for details on how to select a question's data type. See Setting a Question's Response Guides for help in setting the response guides, and Using Calculated Variables for more information on creating calculated variables.

Choose intelligent default values for calculated variables

Each calculated variable in Illume includes a default value. Whenever Illume is unable to perform a calculation, it sets the value of the calculated variable to the default value. For example, if the variable DRINKS_PER_WEEK is calculated as {Value:DRINKS_PER_DAY} * 7, Illume will not be able to calculate a value until the participant has answered DRINKS_PER_DAY question. If DRINKS_PER_DAY does not require an answer, Illume may never be able to calculate a value for DRINKS_PER_WEEK. If you assign a default value of 0 to the DRINKS_PER_WEEK calculation, then all participants who answered 0 to DRINKS_PER_DAY, and all participants who did not answer DRINKS_PER_DAY, will have a value of 0 for DRINKS_PER_WEEK. This is incorrect, and will result in invalid aggregate data for the DRINKS_PER_WEEK variable. A more intelligent design would set the default value of DRINKS_PER_WEEK to -1 (or any other number less than zero). Setting the calculation's default value outside the range of legitimate values enables analysts to identify which data to ignore. In this example, the analyst knows that when DRINKS_PER_WEEK is 0, it can only be because the participant answered 0 to DRINKS_PER_DAY. When DRINKS_PER_WEEK is less than 0, it can only be because the participant did not answer DRINKS_PER_DAY. The analyst can then ignore all values less than 0 and focus only on the valid data. See Using Calculated Variables for more information.

Choose the correct data type for preloaded variables

Preloaded variables are variables loaded from the participant list into the survey, as described in Preloading Participant Data. When creating a preloaded variable, the data type must match the type of data being loaded from the participant list, and the data type should be as specific as possible. For example, when loading a participant's year of birth into a variable called BIRTHYEAR, the data type should be set to "Whole Numbers," because a year is whole number. When loading data from a field that may include non-numeric data, set the data type of the preload to "Text." Why

  1. If the data type of the variable in the participant list does not match the data type you specify for the preload, Illume will not preload the data. The only exception to this rule is for preloads of the "Text" data type. Preloads of type "Text" will load any type of data from the participant list.
  2. Calculations and show-if logic in your survey may rely on preloaded data being of a specific type, such as "Date" or "Decimal Number." If you define the wrong type in the Preload Editor, the calculations and show-if logic may fail.

Avoid jumps

Except for the following cases, using show-if conditions is always preferable to using jumps:

Why
  1. Surveys containing more than one jump are difficult to test. Testers (including even the survey designer) may not know why certain questions or groups of questions never appear.
  2. Surveys containing more than one jump are difficult to maintain. You may add new questions to a survey with multiple jumps, and those questions may never appear. Redefining or deleting the jumps may alter the behavior of the rest of the rest of the survey in unintended ways.
  3. Backward jumps can lead to infinite loops. For example, if a survey jumps from question #10 back to question #2, a participant may never be able to get beyond question #10.
  4. Unlike jumps, show-if conditions are attached to specific survey objects and are displayed in the Survey Designer. This makes it much easier to see what conditions cause an object to be displayed or hidden.
See both Jumping and Setting Show-if Conditions.

Avoid the Date, Time, and Date/Time data types for questions

The Date, Time, and Date/Time data types rely on values having specific formats. Values that may appear valid may not be accepted because of formatting requirements, and this may frustrate survey participants. For example, the date "Thu, 03 Jan 2002" is valid, but "Thurs, 03 Jan 2002" is not. "Thursday, January 03, 2002" is valid, but "Thu January 03, 2002" is not. Try writing an error message that will explain this to a participant. The Date, Time, and Date/Time data types will accept a standardized set of date and time formats, and may reject or incorrectly interpret dates and times in non-standard formats. Dates may also be misinterpreted in cases where the participant is in a different cultural locale than the Illume server. (E.g. Servers in the US are configured to interpret 06/12/2005 as June 12, 2005. A participant in the UK typing in that date would mean December 6, 2005, but the date will show up in the survey results as June 12!) When asking a participant to supply a date, the best solution may be to specify a format. For example, "Please enter your date of birth (mm/dd/yyyy)." Another solution is to create three questions: a poplist containing the 12 months, a poplist containing 31 days, and a poplist containing a valid range of years. See Date and Time Data for more information.

Do use the Date, Time, and Date/Time data types when appropriate for preloading participant data

Because Illume uses Microsoft's .NET framework to interpret and store dates, Illume will correctly interpret and store dates that were produced by other Microsoft products running on computers whose locale is the same as the locale of the Illume server. Exporting data from Microsoft Excel, Access, or SQL Server into a participant list is generally safe. You can preload these dates (and times and datetimes) into a variable of type Date (or Time or Date/Time). Use the Date data type only for variables that must include a day, month, and year. If your variable requires only one of these values (day or month or year), choose the whole number or text data type. Choose Date/Time data type only for variables that require a day, month, and year value with an optional time value. See Date and Time Data for more information.

1. 2. 3. Reconnecting to the Illume Server << PreviousSurvey Design Principles and Best Practices | NextUnderstanding the Survey Console >>

You may lose your connection to the Illume server after an extended period of inactivity, or if there is a problem with your network connection. To reconnect, simply choose the Reconnect option from the Survey Console's File menu. You will need to log in again.

If you have more than one Illume login and you want to switch to your other login while you are already connected, File > Reconnect will let you do that when it presents the login dialog.

1. 2. 1. Working with Surveys
1. 2. 1. 1. Understanding the Survey Console << PreviousReconnecting to the Illume Server | NextCreating a New Survey >>

The Survey Console lists surveys available for editing and review. The surveys that appear beneath the My Surveys tab are on your computer's hard drive and are available for editing. Surveys appearing in red type were checked out from the Illume server to which you are currently connected. Clicking on the Name column header sorts the surveys by name in ascending or descending alphabetical order.

The Survey Administration tab lists the surveys available on the Illume server, along with the status of each survey. From this list, you can preview surveys, check them out for editing, and (if you have sufficient privileges) publish or suspend surveys.

 

1. 2. 1. 2. Creating a New Survey << PreviousUnderstanding the Survey Console | NextEditing an Existing Survey >>

To create a new survey:

1. Choose New... from the Survey Manager's File menu, or right click in the My Surveys pane and select New... from the context menu.

2. Choose a template for your survey. The template determines how the survey will appear in a participant's web browser. If you are not sure which template to choose, choose the Default Template. You can change the template later if you want the survey to have a different look.

3. Type a name for your survey into the New Survey Name field. You must choose a name that is not already in use. (The survey manager lists the names of all of the available surveys.)

4. Click Create Survey.

1. 2. 1. 3. Editing an Existing Survey << PreviousCreating a New Survey | NextCloning an Existing Survey >>

To edit an existing survey, simply double-click on the survey name in the My Surveys tab of the Survey Console. If the survey does not appear under the My Surveys tab, you will have get a copy of it from the Illume server. See Checking Out a Survey for details.

Editing a Specific Language Within a Survey

If your survey includes more than one language, and you have translation tools enabled, you can view and edit the survey in any of its component languages. Simply choose Edit > Languages, and pick the language you want to work with.

The View Language menu in the survey designer

The languages that appear in the list include all of the languages into which the survey has been translated. The language marked by an asterisk (*) is the survey default language.

1. 2. 1. 4. Cloning an Existing Survey << PreviousEditing an Existing Survey | NextDeleting a Survey >>

To clone a survey, right click on the name of the survey in the Survey Manager and select the Clone... option from the context menu.

Type in a name for the new survey when prompted. Check the box next to "Do not include disabled items in clone" to omit survey items whose show-if condition is set to "Never shown (disabled)."

Click OK to create the clone.

1. 2. 1. 5. Deleting a Survey << PreviousCloning an Existing Survey | NextRenaming a Survey >>

To delete a survey, right click on the name of the survey in the Survey Manager and select the Delete option from the context menu. When deleting from the My Surveys tab, you can only delete a survey that has not yet been checked in. To permanently delete a survey from the Illume server, use the link below to Deleting a Survey in the Survey Administration section.

1. 2. 1. 6. Renaming a Survey << PreviousDeleting a Survey | NextEditing a Survey's Description >>

To rename a survey, right click on the name of the survey in the Survey Manager and select the Rename... option from the context menu. Type in a new name for the new survey when prompted, and click OK.

1. 2. 1. 7. Editing a Survey's Description << PreviousRenaming a Survey | NextCreating Custom End Pages >>

A survey's description appears in the Web Console, on the survey console page, just below the survey name.

To edit this description:

  1. Right click on the survey under the Survey Administration tab.
  2. Choose Edit Survey Description... from the context menu.
  3. Type the new description.
  4. Click OK.
1. 2. 1. 8. Creating Custom End Pages << PreviousEditing a Survey's Description | NextCreating Survey Redirects >>

The End Page is the page participants see after they submit the survey. Illume enables you to define custom content for the end page. Each block of end page content can include show-if conditions so that it appears only to participants who meet specific criteria. For example, your survey may screen participants to see if they are eligible for a more detailed follow-up study. Those who qualify for the follow-up study will see on the end page an invitation to participate in the follow-up. Others will see only a message thanking them for their participation. You can determine which content a participant sees by attaching simple show-if logic to each end page content block. For example, the "invitation" may appear to all participants who answered yes to a certain question. Anyone who did not answer yes will see the thank you message.

Creating End Page Content

To create a End Page content, follow these steps:

  1. Choose Survey > Add/Edit Survey End-Page Content... from the Survey Designer menu.


  2. Click the Add button.


  3. Use the HTML editor to create the content. (See Using the HTML Editor below for details.)
  4. (Optional) Click the Show-if tab to set the show-if conditions under which this page should appear. (See the link below.)
  5. (Optional) Click the Data Dictionary tab and enter a descriptive name for this page. This makes the survey easier to edit when you have many end pages.
  6. Click OK in the HTML editor.
  7. Click Done in the Survey End-Page editor.

Can a participant see content from more than one block of content on the end page?

Yes. If a participant meets the show-if conditions for more than one block of end page content, the content from each end page will appear in the same order that the content appears in the End Page Content Editor. All of the content appears on a single HTML page. For example, assume your survey has one question that asks "Which end page would you like to see?" The options are "blue," "red," and "green." You survey has the following four end pages:

When the End Page Content blocks are in this order...



participants will see the content from either the red or green or blue end page, followed by the content from the default end page. (Note that there is no show-if condition on the default end page content, so everyone sees it.) However, when the End Page Content blocks
are in this order...



participants will see the default end page content first (i.e. at the top of the page), followed by either the red or green or blue end page content.

1. 2. 1. 9. Creating Survey Redirects << PreviousCreating Custom End Pages | NextUndoing Changes >>

Survey redirects allow participants to be redirected to another web site or URL after they have submitted a survey.  Survey redirects can also be used to chain one survey to another.

If you need the redirect to occur in the middle of a survey, a Jump object can added that specifies “Jump to the end and automatically submit” and the redirect will occur after the submit.

Creating a survey redirect

How redirects work

After a participant submits a survey each redirect is visited in top to bottom order in which they are specified in the Survey Designer.  The participant is redirected to the first redirect that matches the criteria.  Once a participant matches the criteria of one redirect, all redirect and end page processing stops.  This means that if a redirect is being performed, no end page Text/HTML object content will be displayed.  For SDK users this means that no runtime content objects in the end page will be processed.

It is important to note that order is very important when specifying redirects.  To change the order of redirects, click on a redirect in the Survey Redirects dialog and drag it up or down.

1. 2. 1. 10. Undoing Changes << PreviousCreating Survey Redirects | NextCustomizing Sections in the Data Dictionary >>
 

The Survey Designer keeps track of up to 8 previous changes. You can undo any of these changes by choosing Edit > Undo from the Survey Designer menu, or by pressing Control-Z.

You can redo any action you have undone by choosing Edit > Redo from the Survey Designer menu, or by pressing Control-R.

1. 2. 1. 11. Customizing Sections in the Data Dictionary << PreviousUndoing Changes | NextViewing the Data Dictionary >>

How Illume Constructs the Data Dictionary

Every Illume survey includes a collection called Root, which contains all of a survey's items.

Each of the collections immediately below the Root collection becomes a Section in the Data Dictionary. The section name is the same as the collection name.

By default, each section of the Data Dictionary contains the contents of the top-level collection and the contents of any other collections within that top-level collection.

That is, if your survey contains collections C1, and C2 under the Root collection, the Data Dictionary will display sections C1 and C2. If C1 contains another collection called C1_Subsection, that sub-collection will not appear in the Data Dictionary. All of the questions in C1_Subsection will be listed with the items in C1.

This may not always produce the best results. In some cases, a single section of the data dictionary may wind up with hundreds of questions, making it difficult for data analysts to find specific items. Customizing the sections of the Data Dictionary solves this problem.

Customizing the Data Dictionary

You can make any collection in your survey appear as a section in the Data Dictionary, and you can customize the section's name.

  1. Double click a collection in the right pane of the Survey Designer to bring up the Collection Editor.
  2. Check Make this collection a section in the data dictionary.
  3. Type a name in the Section title field.
  4. Click OK.

To see how this appears in the Data Dictionary, choose Tools > Review Data Dictionary... from the Survey Designer menu.

1. 2. 1. 12. Viewing the Data Dictionary << PreviousCustomizing Sections in the Data Dictionary | NextDrag and Drop Survey Sharing >>

To see your survey's Data Dictionary, choose Review Data Dictionary... from the Tools menu. This displays the same data dictionary that appears in the Web Console.

For more information, see the Related articles below.

1. 2. 1. 13. Drag and Drop Survey Sharing << PreviousViewing the Data Dictionary | NextSetting Survey Preferences >>

Beginning in Illume 4.5, you can drag an entire survey out of the Survey Console and drop it into a folder or application. For example, you can drag a survey into Microsoft Outlook email message, and Outlook will attach the survey the email you are composing. The recipient of your email can then drag the attachment back into Illume for editing.

The survey that you drag into and out of Illume is an XML document. It's in a format that another Illume user can edit with the Illume Survey Designer. It's not in a format that a survey participant can fill out.

Because the survey is an XML file, the types of applications into which you can drag it include email clients (such as Microsoft Outlook), text editors (such as Notepad), and browsers (such as Internet Explorer and Mozilla Firefox).

1. 2. 2. Setting Survey Preferences
1. 2. 2. 1. Setting Survey Preferences << PreviousDrag and Drop Survey Sharing | NextSetting General Survey Preferences >>

Illume surveys include numerous customizable settings, such as page headers and footers, stylesheets, error messages, numbering styles, and more. To view and edit these preferences, choose Edit > Preferences... from the Survey Designer menu.

This brings up the Survey Preferences Editor, in which you can review and edit each of the preferences described below. Illume automatically saves your survey changes when you click OK in the Survey Preferences Editor.

1. 2. 2. 2. Setting General Survey Preferences << PreviousSetting Survey Preferences | NextSetting Page Text Preferences >>

To edit general survey preferences, choose Edit > Preferences... from the Survey Designer menu. The Survey Preferences Editor will appear with the General preferences tab showing.

A survey's general preferences include the following:

Survey Window Title

The title of the survey appears in the title bar at the very top of the participant's browser window, above the toolbar, and outside of the HTML page that contains the survey questions.

Question Numbering

Illume provides options for manually or automatically numbering questions. While manual question numbering offers more control, keep in mind that if you move questions that are manually numbered, you may have to re-number many items in your survey.

If you choose to have Illume automatically number questions, you will never have to reassign question numbers when you add, move or delete questions from your survey.

Automatic numbering provides the following options:

Question numbering style determines how the numbers will appear. Sub-question numbering styles determines how sub-question numbers will appear. This applies to the numbering of individual items within Question Tables.

The sub-question numbering options have the following effects:

You can turn off numbering altogether by checking the "Don't number questions' option on the General tab of the Survey Preferences Editor.

Number Styles

In addition to sequencing, you can choose a numbering style for your survey. Styles include Arabic and Roman numerals followed by different types of punctuation.

Simply choose the style you prefer from the list of available styles. Question numbering styles apply to question numbers, while sub-question numbering styles apply to the individual prompts of question blocks.

Setting an Image Next to Unnumbered Questions

If you choose not to number the questions in your survey, Illume will automatically add a small image to the left of each new question prompt. This serves as a visual marker to alert participants to the start of a new question. By default, the image is a small blue triangle. If you don't like the default, follow these steps to use your own image:

  1. On the General Tab of the Survey Preferences editor, check Do not number questions.
  2. Check Custom image URL.



  3. Click on the dot dot dot (...) button to choose an image.
  4. If you have already added the image to your survey, it will appear in the list of Survey Resources. Simply select the image. If you have not yet added the image, see Working with Survey Resources for information on how to add a new image. If you would like to add an image from a publicly available URL, check the URL option and type in the URL.



  5. Click OK to close the Survey Resource window.
  6. Click OK to save your settings and close the Survey Preferences window.

1. 2. 2. 3. Setting Page Text Preferences << PreviousSetting General Survey Preferences | NextCustomizing Survey Buttons >>

Illume includes an HTML editor that enables you to customize the page header, page footer, and resume page of each individual survey.

Customizing the Survey Page Header

The page header appears at the top of every HTML page in your survey. To edit the page header:

  1. Choose Edit > Preferences... from the Survey Designer menu
  2. Click on the Page Text tab.
  3. Select "Page Header" from the "Set text for" list.
  4. Edit the header in the HTML editor.
  5. Click OK

Customizing the Survey Page Footer

The page footer appears at the bottom of every HTML page in your survey. To edit the page header:

  1. Choose Edit > Preferences... from the Survey Designer menu
  2. Click on the Page Text tab.
  3. Select "Page Footer" from the "Set text for" list.
  4. Edit the footer in the HTML editor.
  5. Click OK

Customizing the Survey Resume/Restore Page

Illume surveys include a resume/restore feature that allows participants to log back in to resume a partially completed survey. When a participant logs in and Illume finds a partially completed survey for that user, Illume presents a resume/restore page, which asks the user whether they would like to resume the existing survey where they left off, or start over with a new survey.

You can customize the message on the resume/restore page by following these steps:

  1. Choose Edit > Preferences... from the Survey Designer menu
  2. Click on the Page Text tab.
  3. Select "Survey Resume/Restore Page" from the "Set text for" list.
  4. Edit the page in the HTML editor.
  5. Click OK.

Customizing the Survey Suspended Page 

A suspended survey is one that has been published, but is not currently available to participants. The "Survey Suspended" page text is what participants will see if they come to your survey when the survey is suspended.

To customize the message on this page:

  1. Choose Edit > Preferences... from the Survey Designer menu.
  2. Click on the Page Text tab.
  3. Select "Survey Suspended Page" from the "Set text for" list.
  4. Edit the page in the HTML editor.
  5. Click OK.

Customizing the Save Page

The save page appears when a participant clicks the Save button. This saves the participant's responses so he/she can continue the survey later. See Setting up Save and Restore for details.

Customizing the Cascading Style Sheet(CSS)/JavaScript Page

The Cascading Style Sheet(CSS)/JavaScript page is a place where custom CSS and/or JavaScript code can be set and included on every survey page.  The content specified on this page is inserted between the tags on every page of the survey.

This page text can be edited by selecting the Edit > Preferences... menu option, clicking the Page Text tab, and then selecting the Cascading Style Sheet(CSS)/Javascript option in the Set text for: poplist.

Custom CSS styles must be defined between style tags.  DatStat advises naming custom CSS styles with a custom prefix (e.g. “.__”) in order to avoid collision with the built-in DatStat survey styles.

Example of a custom CSS style:

This page can also be used to modify a built-in DatStat survey style.  These styles are subject to change between versions of the product but such changes are not common.  DatStat advises caution to customers changing the built-in styles and, if possible, recommends thorough testing of active surveys before upgrading to the next version.  There are no guarantees that changing a built-in style will work on the next version of the product.

Custom JavaScript must be defined between script tags.  This JavaScript code can either be inline or reference a resource.  The JavaScript placed on this page cannot directly reference form elements because the content of this page is placed between the head HTML tags, however, form element objects can be passed as function arguments to JavaScript functions declared on this page. 

Example of inline JavaScript:

Example of referencing JavaScript source from a resource:

1. 2. 2. 4. Customizing Survey Buttons << PreviousSetting Page Text Preferences | NextWorking With Survey Parameters >>

Illume surveys include a standard set of buttons for common actions such as navigating forward or backward, submitting a survey, saving a survey, etc.

You can customize the text and positioning of these buttons, and configure them to use images instead of the standard browser buttons with text.

To customize survey buttons, follow these steps:

  1. Choose Edit > Preferences... from the Survey Designer menu
  2. Click on the Button tab.
  3. Set the options for each button (described below). 
  4. Click OK.

The buttons tab of the Survey Preferences editor

Available Buttons

Illume surveys include the following buttons:

Setting Button Text

To set the text for any button, click on the name of the button in the Buttons list, then type the text in the Button Text field. Your changes will take effect when you click OK.

Setting Button Images

To replace a simple HTML button with an image:

  1. Select the button from the Buttons list and enter a URL for the image in the Image URL field. The URL may point to either a survey resource or to an absolute URL.

    Button tab of the Survey Preferences editor
  2. Click the button with the 3 dots next to the Image URL field. Click to choose a button image This brings up the Button image editor.

    Button image dialog

  3. To use a survey resource, check the Resource option and choose the image you want from the list of available resources. If the image does not appear in the list of available resources, click New Resource... to upload it. (See Working with Survey Resources for details on uploading images and other resources.)
  4. To use a URL, check the URL option and type in an absolute URL. An absolute URL is one that like http://www.datstat.com/images/newlogo.gif that includes the http:// or https:// prefix and a full path to the image. The URL does not have to point to the same server, or even the same domain as your survey. It does have to point to a publicly accessible web server, or your participants may not be able to see it.
  5. Click OK.

When you set a button image, the text in the Button Text field becomes that alt text of the button. Alt text appears when the mouse hovers over the button and when the browser is unable to load or display the image.

Placing Buttons

Each button can appear in more than one place on your survey pages. To place a button, select the button from the Buttons list, then check one or more of the Placement options.

Ordering Buttons

In some cases, you may have selected more than one button to appear in the same location on the page. For instance, you may choose to place the Previous, Save, and Next buttons in the bottom center of the page.

To set the order in which these buttons display,

  1. Choose the placement group you want to order under Button Groups.

    Ordering buttons

  2. In the middle list under Button Groups, choose the group of buttons you want to order.

    Note that in the image above there are two groups of buttons: "Previous, Next, Save" and "Restore, Start Over." These appear as separate entries, and can be ordered separately, because the appear on different pages of the survey. The Previous, Next, and Save buttons appear on survey pages that contain questions. The Restore and Start Over buttons appear only on the first page participants see when they return to complete a survey they started earlier.
  3. Choose a button under the Order Buttons list on the right. Click Up to move the button up in the display order, or Down to move it down. Buttons are displayed left to right on the survey page, so the button at the top of the list appears furthest to the left, while the button at the bottom appears furthest to the right.
  4. Click OK to save your changes.

1. 2. 2. 5. Working With Survey Parameters << PreviousCustomizing Survey Buttons | NextCustomizing Survey Error Messages >>

Survey parameters are custom variables consisting of a name and a value. Generally, you use them to display data that may appear in several places throughout the survey and/or data that may have to change frequently.

For example, if you administer an employee satisfaction survey every quarter you may create a parameter called "quarter", and then change the value of this parameter from "Spring" to "Summer" to "Fall" to "Winter", as necessary.

In question prompts, text and HTML throughout your survey, place the marker {ParamValue:quarter} wherever you want the quarter to appear. Illume will automatically replace {ParamValue:quarter} with the value of the "quarter" parameter when it displays pages to survey participants.

Similarly, if your questions ask participants about a specific product, you may want to create a parameter for the product name. Then, if you want to ask the same questions about another product in the future, you can retrieve the questions from the repository, drop them into a new survey, and change the product name parameter in the survey to the name of the new product. Illume will then automatically insert the new product name into all the question prompts.

Adding and Editing Survey Parameters

To set survey parameters, follow these steps:

  1. Choose Edit > Preferences... from the Survey Designer menu
  2. Click on the Parameters tab.
  3. To add a new parameter, click in the Parameter Name column in the last available row. (This is the row marked by a star.)
    To edit an existing parameter, click on the name of the parameter in the Parameter Name column.
  4. Type the name of the parameter in the left column, and the value in the right column.
  5. Click OK

Deleting Survey Parameters

To delete a parameter, click in the gray column to the left of the parameter name. This highlights the parameter name and value. Press the delete key on your keyboard.

Displaying Survey Parameters

To display a survey parameter in a question prompt or in the survey's HTML, simply type {ParamValue:NAME_OF_PARAMETER}, substituting the actual parameter name for NAME_OF_PARAMETER. Illume will display the proper parameter value when the survey appears in the previewer, or in a participant's browser. For more information about adding custom HTML to your survey, see "Using the HTML Editor."

1. 2. 2. 6. Customizing Survey Error Messages << PreviousWorking With Survey Parameters | NextCustomizing Survey Display Styles >>

All Illume surveys include a set of default error messages. These are messages that participants will see when they fail to provide a valid response to a survey question.

Note: You can also create a custom error message for any question in your survey. See Setting a Question's Response Guides. A default error message appears only for questions that does not have a custom error message.

To customize your survey's default error messages, follow these steps:

  1. Choose Edit > Preferences... from the Survey Designer menu
  2. Click on the Error Messages tab.
  3. Choose the message you want to edit from the "Error message for" list. The items on this list are described below.
  4. The message appears in the main text area. Edit the message as you please. Note that error messages may include some parameters enclosed in curly braces. These are described below.
  5. Click OK

Default Error Message Types

Illume surveys include the following default error message types:

Special Parameters for Default Error Messages

Default error messages include special parameters to make them meaningful for participants. Each of these parameters is replaced by a relevant value while the survey is running.

For example, if you define this default error message:

The value, {Response}, specified in question #{QNum} is greater than the maximum allowed value of {MaxValue}.

When a participant provides an invalid response, Illume replaces these three parameters with 1) the participant's response, 2) the number of question to which the participant was responding, and 3) the maximum allowed value for the particular question.

As a result, the actual error message that a participant sees will look like this:

"The value, 150, specified in question #12 is greater than the maximum allowed value of 100."

Default error messages can use the following parameters:

1. 2. 2. 7. Customizing Survey Display Styles << PreviousCustomizing Survey Error Messages | NextCustomizing Labels for Unanswered Items >>

Survey Styles

Illume's Survey Styles Editor enables you to define styles that will be applied throughout your survey. Style can be set broadly, at they survey level, or more narrowly to items such as buttons or question prompts.

Defining Survey Styles

To define styles:

  1. Choose Edit > Style... from the Survey Designer menu.
  2. In the left pane of the Survey Styles Editor, click on the name of the item whose style you want to set. For example, in the image below, Question Prompt is highlighted, so the image properties being defined will apply to all question prompts throughout the survey.



  3. In the right pane, click the area to the right of each property you want to set, and choose from the list of available settings.
  4. Repeat this for each of the survey objects for which you would like to set properties.
  5. Click OK to save your settings.
After clicking OK, use the survey previewer to see how your survey looks with the new styles.

How Styles Are Applied

Illume uses Cascading Style Sheets (CSS) to define the fonts, colors, borders, and other stylistic elements of your survey. The styles you define will apply to the selected object and to all of the items contained within the selected object, except where you explicitly define those properties differently. To understand what this means, look at the left pane of the Survey Styles Editor. It shows a hierarchy of survey objects. At the top of the hierarchy is the object called Survey. If you choose the Survey object in the left pane and then define properties like font, color, etc., those properties will be applied to all objects within the survey, except where you explicitly define them differently. Similarly, if you define properties for Question, those properties will apply to Questions and to all of the sub-items below it in the hierarchy: Question Numbers, Question Prompts, Scale Labels and Values, Question Error Messages, etc. To override these settings in any of the Question sub-items, select the sub item and define the properties you want.

Overriding Styles: An Example

Example: You want your survey to use Verdana font throughout, and to display black text everywhere except in the question prompts. The question prompts should use bold blue text in the same Verdana font. To do this, you would follow these steps:

  1. Choose Survey in the left pane of the Survey Styles Editor, and set FontFace to Verdana, and FontColor to #000000 (black).
  2. Then choose Question Prompt in the left pane, and set FontColor to #3333CC (blue) and FontStyle to Bold.
  3. Click OK.
Question prompts will now appear in bold blue Verdana font, while the rest of the survey will appear in black Verdana font. Notice that by not setting the FontFace property for Question Prompts, you are choosing to use the font face defined further up the hierarchy in the Survey object.

Survey Styles vs. Custom HTML

When you add a question prompt, a response option, or some custom HTML to your survey, Illume provides an HTML editor that enables you to format your text as you compose it. What happens if your Survey Style says the font color should be blue and you used the HTML editor to make some green text? The text will be green. Any formatting you apply in the HTML editor overrides the formatting from the Survey Styles Editor.

Survey Objects

You can set styles for the following objects. Note that not all styles apply to all objects. For example, you cannot set border properties for Radio Buttons and Checkboxes because these items do not have borders.
ObjectDefinition
SurveyProperties you apply to the Survey object will apply to all parts of your survey where those properties are not otherwise defined.
HeaderThe header appears at the top of each page of your survey. You define header content in the Page Text tab of the Survey Preferences Editor.
Progress BarThe progress bar (if enabled) appears on all pages of the survey to indicate how far a participant has progressed.
CollectionProperties applied to a collection are applied to all elements within all collections.
Text/HTMLProperties applied to Text/HTML objects will affect all Text/HTML objects, but note that any formatting you apply within the HTML editor will override the style properties.
Collection Error MessagesThese are error messages that are not associated with a particular question. Examples include messages for invalid logins and attempts to submit a survey more than once.
QuestionProperties applied to questions will affect all parts of all questions (prompts, response options, question numbers, etc.) except where overridden.
Question NumberThe Question Number appears to the left of each question prompt in the survey. (Question numbers will not appear of question numbering is disabled in the Survey Preferences.)
Question PromptThe Question Prompt is the text to which participants respond.
Scale Labels and ValuesScale Labels are the response options from which a participant chooses when answering a question. Scale Values are the values associated with each label. Generally, only Labels are displayed to the participant.
Alternating Radio Scale LabelsThis sets the background color of even numbered scale items in radio type questions.
Alternating Checkbox Scale LabelsThis sets the background color of even numbered scale items in check all that apply questions.
Question Error Messages

Question Error Messages are the messages participants see when they have failed to supply a valid response to a question.

Note that most error messages for most users will appear as JavaScript alerts (the little pop-up dialog with the OK button). You cannot set styles for JavaScript alerts. This is a limitation of browser technology, not a limitation of the Illume product.

Any errors that are not caught by the JavaScript validation will be caught by the Illume server, and the server will display an error message in the current page of the survey. When you define styles for Question Error Messages, the styles are applied to these messages.

Input ControlsInput controls include items like text boxes and popup menus. Font properties apply to the text within the controls.
Radio/Checkbox Controls

The only property available for Radio and Checkbox controls is ControlSize. Set this to a numeric value to set the height and width of the controls.

A value of "20" will set the height and width to 20 pixels. A value of "20pt" will set the height and width to 20 points.

Question TablesQuestion Tables are groups of questions that share a common set of responses. The prompts for each question appear in the first column of the table, and the response options appear in the following columns. Any attributes you set for Question Tables will apply to Row Headings, Column Headings, Alternating Row and Alternating Column, unless you specifically override the settings in any of those objects.
Sub-Question NumberProperties you define here apply to the question number that precedes the prompt of each item in a Question Table.
PromptsProperties you define here will apply to each individual prompt within a Question Table.
Column HeadingsColumn Headings in Question Tables appear at the top of each of the columns that contains a response option. The text of the response options is printed in the column headers.
Alternating RowAlternating Row properties will be applied to the even numbered rows in a Question Table.
Alternating ColumnAlternating Column properties will be applied to the even numbered columns in a Question Table. The properties will not apply to the question prompts.
Alternating QuestionThe background against which survey questions appear alternates by default between white and yellow.
Button BoxThe Button Box is the area around the buttons at the top and/or bottom of the page. It extends almost to the full width of the page, and is normally not visible. You can make it visible by setting a background color and border.
ButtonsThe properties you set here will apply to all of the buttons in your survey.
FooterThe footer appears at the bottom of each page of your survey. You define footer content in the Page Text tab of the Survey Preferences Editor.

Valid Values for Style Properties

Most style properties present a list of valid values from which to choose. Those properties that do not display a list of valid values expect you to supply numeric values. Some properties, such as font size, allow you to ignore all of the items on the list and type in a number of your choosing. Numeric values use the following units:
UnitAbbreviationDescription
PixelspxOne pixel represents 1/72 of an inch (1/29 cm.) on most computer monitors, though it may represent 1/90 of an inch (1/36 cm.) on some monitors.
PointsptOne point represents 1/72 of an inch (1/29 cm.).
PicaspcOne pica is 12 points (1/6 in. or about 2/5 cm.)
InchesinOne inch is 72 points, or approximately 2.5 cm.
CentimeterscmOne centimeter is approximately 29 points, or 0.4 inches.
MillimetersmmOne millimeter is approximately 3 points or 0.04 inches.
EmemEm-units are calculated relative to each participant's system-wide default font-sizes.
ExexAn ex unit is the height of the letter x calculated from the participant's system-wide default font size. This height will differ for each font.
Percent%Percent values represent widths relative to the nearest block-level container. E.g. If you set the width of a button to 50%, the button will be half as wide as the table cell that contains it.
Of these units, pixels, em-units and percents are generally best for the Web because computers can scale these units as necessary for the participant's monitor.If you set the value of a property to a simple number, like 12, the Survey Styles Editor will assume points as the unit, and will set the value to 12.00pt. If you mean to set the value to 12 points, you should specify 12pt. If you mean to set the value to 12 percent, you should specify 12%.

Font Size and Section 508 Compliance

While you may set font sizes to a numeric value such as 12pt or 16px, Illume uses em values by default to comply with Section 508 of the US Rehabilitation Act. If your survey needs to comply with Section 508, you should use em values to define font sizes because em values set font sizes relative to each participant's system default font sizes. Participants who have difficulty reading text on a computer monitor will generally use a large font size as the default. Em values respect these settings. For example, and em value of 1.00 displays text at exactly the system default point size. An em value of 1.50 displays fonts at 1.5 times the system default font size.

1. 2. 2. 8. Customizing Labels for Unanswered Items << PreviousCustomizing Survey Display Styles | NextSetting the Survey-Wide Response Requirement >>

Items which require participants to select a single answer, such as poplists and radio buttons, may include an "unanswered" option reminding participants to answer the question.

Generally, this is a simple message, like "Select One" or "Please Answer." It appears as the first option in a poplist. In a radio group, it appears as the first answer, and is displayed in red text.

To customize unanswered data labels, follow these steps:

  1. Choose Edit > Preferences... from the Survey Designer menu
  2. Click on the Responses tab.
  3. Type in the label for poplist items and/or radio group items.
  4. Click OK

Suppressing the "Unanswered" Option

If you do not want the "unanswered" option to appear, leave the unanswered data label fields blank.

1. 2. 2. 9. Setting the Survey-Wide Response Requirement << PreviousCustomizing Labels for Unanswered Items | NextSetting Response Requirements for a Group of Questions >>

Beginning in Illume 3.0, all surveys include a survey-wide default setting to indicate whether responses are required or optional. This default setting applies to each question in your survey*, unless you specify otherwise.

To set the survey-wide response requirement:

  1. Choose Edit > Preferences from the survey designer menu.
  2. Click the Responses tab.
  3. Choose the desired option under Responses Required.
  4. Click OK.

While this setting provides a default, individual questions can override the default. Follow the link to the article "Setting a Question's Response Guides" below for instructions on how to override this setting for an individual question or for a group of questions.

The Responses tab of the Survey Preferences dialog.

* Note: The survey-wide response requirement does not apply to attached text fields. These are always optional by default. You can make attached text fields required on a case-by-case basis. See  "Setting a Question's Response Guides" below.

1. 2. 2. 10. Setting Response Requirements for a Group of Questions << PreviousSetting the Survey-Wide Response Requirement | NextCreating a Collection >>

Beginning in Illume 3.0, all questions inherit a survey-wide "required" setting which describes whether questions are optional or required. Each individual question within a survey can override the survey-wide option. (See the links below for more information on survey-wide and question-specific settings.)

Illume also provides a convenient way to whole sets of questions as "required" or "optional."

  1. Select sevaral items in the right pane of the survey editor. You can do this by holding down the Control key while you click on each of the items. You can also click a single item, then hold down the shift key while you click another item. Holding the shift key causes everything between the first and second items you clicked to be selected.
  2. Right click anywhere within the selected group and choose Set Required... from the context menu.
  3. Choose one of the two "Response Required" options to apply to the selected group.

    The Use preferences setting option causes the questions to inherit the survey-wide default setting, which appears in red text.

    The Always use the following setting option overrides the survey-wide setting.

  1. If you selected a mix of questions and collections, and you want your setting to apply to all of the items within the collections you have selected, check the box labeled Include items in selected collections.
  2. Click OK to apply the settings.

When you check the Always use the following setting option, the setting continues to apply to your selected questions, no matter what you do to the survey-wide "required" setting. The only way to change the setting is to manually change the "required" setting for the specific question or group of questions.

Note: The setting you apply to the selected group does not apply to attached text fields. These are always optional by default.

1. 2. 3. Working with Collections
1. 2. 3. 1. Creating a Collection << PreviousSetting Response Requirements for a Group of Questions | NextEditing a Collection >>

To add a new collection to your survey:

  1. In the left pane of the Survey Designer, select the folder in which you would like to add the new collection. Click once on the name of the folder to select it.
  2. Click the Add a collection... icon in the toolbar or choose Survey > Add Collection... from the menu.
  3. (Optional) Give your collection a unique name. If you don't care about the collection's name, simply use the unique name that Illume has supplied.
  4. (Optional) Choose a default name prefix. See below for more information about these prefixes.
  5. (Optional) Type a description of the collection. The description can be helpful to you and others who maintain the survey.
  6. (Optional) Click on the Show-if tab and set the conditions under which this collection will appear. See Setting Show-if conditions for more information.
  7. Click OK .

Default Name Prefixes

If you define a default name prefix for a collection, then the variable names that Illume assigns to the questions in this collection will all begin with that prefix. This option can be useful when you are analyzing data, since it enables you to quickly identify related variables in your data set by their similar names.

For example, if you create a collection of questions about what type of car a person drives, you may choose to call the collection "Automobile", and set the default name prefix to "CAR."

If the collection has five questions, participant responses will appear in the data set under the variable names CAR1, CAR2, CAR3, CAR4, and CAR5.

Keep in mind that whether or not you set the default name prefix, you can always override Illume's automatic question naming with names of your choice. See Creating a Question for more information.

Randomized Collections

A randomized collection is one whose contents will be displayed in random order. When you randomize a collection, each participant will see the complete set of questions in a random order.

To randomize the items in a collection, check the box next to Randomize display of objects in this collection in the Collection Editor.

Collection editor with randomization turned on

Notes and Restrictions for Randomizing Collections

When you randomize the display of items in a collection, ALL of the items will be randomized, including Text/HTML items. If you want a Text/HTML item to display before a set of randomized questions, put the Text/HTML item outside the collection.

Randomized collections cannot contain conditionally displayed items (items that have show-if conditions). The items must be either always shown or never shown.

Randomized collections cannot contain Jumps, and cannot be the target of a Jump.

Randomized collections cannot contain page breaks.

Shortcuts to the Collection Editor

You can also reach the Collection Editor using any of the methods listed below. In each case, be sure to first select the folder in which you want to add the collection by clicking on that folder in the left pane of the survey editor.

1. 2. 3. 2. Editing a Collection << PreviousCreating a Collection | NextDeleting a Collection >>

To edit a collection, double click on the collection in the right pane of the Survey Editor, or right click on the name of the collection in the left pane of the Survey Designer and choose Edit... from the context menu.

This presents the Collection Editor. See Creating a Collection for more information on how to use the Collection Editor.

The Login Collection

The Login Collection is used to authenticate participants and includes some special rules. See Configuring the Login Collection for details.

1. 2. 3. 3. Deleting a Collection << PreviousEditing a Collection | NextMoving a Collection >>

There are 3 ways to delete a collection:

Undoing a Delete

Immediately after deleting a collection, you can undo the deletion by choosing Edit > Undo Delete from the Survey Designer menu.

1. 2. 3. 4. Moving a Collection << PreviousDeleting a Collection | NextCreating a Question >>

Moving a Collection Into Another Collection

To move a collection into another collection, simply drag it from it's current location and drop it into the desired folder in the left pane of the survey editor. You can drag and drop a collection from the right pane into the left pane, or from the left pane into the left pane.

Changing a Collection's Display Order

To change the order in which a collection is displayed:

  1. In the left pane of the Survey Designer, select the collection that contains the collection you want to move. Click once on the collection to select it.
  2. In the right pane of the Survey Designer, drag the collection from its current location and drop it into to its desired location.

1. 2. 4. Working with Questions
1. 2. 4. 1. Creating a Question << PreviousMoving a Collection | NextSetting a Question's General Options >>

To create a question...

  1. In the left pane of the Survey Designer, select the folder in which you would like to add the new collection. Click once on the name of the folder to select it.
  2. Click the Add Question icon in the toolbar.
  3. Set the desired options for your questions. For details about available options, what they mean, and how to set them, see Setting a Question's General Options, Setting a Question's Response Options, Setting a Question's Display Properties, Setting a Question's Response Guides, Setting Data Dictionary Options and Setting Show-if Conditions.
  4. Click OK .

Note that you can move a question from one collection to another by dragging and dropping it.

Mouse and Keyboard Shortcuts

Once you've selected the collection in which you would like to add a question, you can use any of the following methods to create a new question:

1. 2. 4. 2. Setting a Question's General Options << PreviousCreating a Question | NextSetting a Question's Response Options >>

General options appear on the General tab of the Question Editor and include a question's display type and prompt. The prompt is the text to which you want the participant to respond: e.g., "What is your name?"

Your question's prompt will appear in a participant's browser exactly as you type it in the prompt field. Note, however, that HTML tags within a prompt will be ignored when the question is displayed.

Note that when you select a display type, an example of the display type appears in the yellow box to the right of the Display Type list. Display types include the following:

If you are editing a multilingual survey, and you have the translation tools enabled, you will see a list of languages at the bottom of the Question Editor. Choose the language you want to edit from the list, and the prompt for that language will appear, if the question has been translated. You may edit the prompt, and your edits will apply to that translation of the prompt only.

1. 2. 4. 3. Setting a Question's Response Options << PreviousSetting a Question's General Options | NextSetting a Question's Display Properties >>

Response options appear on the Response Options tab of the Question Editor. This is where you define a question's list of available responses.

The options available on this tab vary, depending on the type of the question. For Text Field and Commentary questions, the only item on the response options tab will be the Data Type list.

This section focuses on configuring response options for "Select One" and "Check all that apply" type questions. For information about configuring response options to Yes/No questions, see "Configuring Yes/No Response Options" at the end of this section.

To set response options...

  1. Choose a data type. (You can choose a data type only if your question uses the "Select One" or "Text Field" display type.)
  2. If you choose a numeric data type, add scale values, as described below. If you choose the Yes/No data type, define the Yes/No values, as described below.
  3. If you want the response options for this question to be ordered randomly for each participant, check "Randomize Display Order."

Choosing a Data Type

The type of data you choose here is the type of data you will end up with in your data set for this particular question.

Generally, you use whole numbers for Select One type questions. Note that for display types Check all that apply and Yes/No , the only available data type is Yes/No. For the Commentary display type, Text is the only available data type. Text questions have the largest range of data types, permitting participants to enter almost any kind of data. See the section on Date and Time Data below for details about the date, time and date/time data types.

Sub-grouping and Response Option Headers

Users are now able to create Group Headers in Select One and Check All that Apply type questions.  Group Headers label subgroups of response options.

To add a header:

  1. On the Response Options tab type appropriate text
  2. Check “Group header” box
  3. Click Add
  4. Drag where appropriate among the list of response options

Participants will see something like this:

Sample Select-one group headings question

NOTE: Group headers are purposely ignored when the question type is likert scale OR semantic differential

Group Headers and Randomization

Randomization may be implemented in questions utilizing Group Headers. Items will only be randomized per group. If a group is anchored then that group’s items will always be displayed in that position among the other groups.

Setting a Default Value

You can set a default value for your question by typing the value into the Default field. Default values are optional. The value you enter in the default field will be pre-selected the first time the participant sees this question on the survey. The participant is free to change accept the default selection. Use one of the following two methods to set the default value:

See Piping Data for general information about piping, or Setting Dynamic Defaults and Bounds for more specific issues to consider when piping data into a question's default value of response guides.

Adding/Editing Scale Values

Scale values are the options from which participants may choose when responding to your question. To add numeric scale values, follow these steps:

  1. Type the value in the small text box to the left of the equal sign.
  2. Press the Tab key to move the cursor into the display text field, then type the text you want participants to see for this option.
  3. Press the Enter key. This adds the value to the list of scale values below, and returns the cursor to the value text box.
  4. Repeat steps 1-3 until you've added all of the options you want this question to have.

Note that for each response option, the value is what will be stored with your data set, while the display text is what participants will see when they are reading through the question's available answers.

If you don't want to type a value for each individual response option, and you know that the values will be in sequential order, check the box labeled "Generate values automatically", and indicate the number at which the values should begin. Then you can add response options simply by typing them into the display text field and pressing Enter.

Note: If you have translation tools enabled, and your survey includes multiple translations, you can set the scale values for each language individually. Simply choose the language you want to work with from the list at the bottom of the question editor, and then edit the scale values for that language.

Response Options for Check All That Apply Questions

For each checkbox in a "Check all that apply question," you must supply a name for the checkbox and the text that should appear next to the checkbox.

Choose a name for each checkbox that will be helpful during data analysis, so the data analyst can see instantly what the participant was saying yes to when they checked the box.

Mutually Exclusive Response Options for Check All That Apply Questions

A Check All That Apply question can include one or more mutually exclusive check box responses.  Mutually exclusive check boxes allow survey designers to specify “Does not apply” or “Refuse to answer” type responses in Check All That Apply questions.  When one of these responses is checked no other responses can be checked. 

To make a response option mutually exclusive, click the Response Options tab in the question editor and then click the checkbox in the Exclusive column for the desired response option.

When JavaScript is enabled, the client web browser prevents having a mutually exclusive check box being checked when other check boxes are checked.  If JavaScript is not enabled both types of check boxes (exclusive and non-exclusive) are able to be checked at the same time and this condition will be caught on the server and an error message will be displayed.  The error message can be edited by clicking Edit > Preferences… and the Error Messages tab.  In the drop-down menu select the error for: A mutually exclusive check box is checked when other check boxes are checked

When a mutually exclusive checkbox is selected, the response guide for minimum # of responses is ignored if set to a value greater than 1.

Setting Show-if Conditions on Scale Values

You may want to display response options only under certain conditions. To set show-if conditions on a response option:

  1. Click on the option in the list at the bottom of the Response Options tab.
  2. Click on the Show-if... button to get to the show-if editor.

Show if button for scale values.

In this image above, the circle to the left of the first option is yellow because this option includes a show-if condition.

Once you click the Show-if button, the process is the same as setting a show-if condition for a question, which is described in detail in Setting Show-if Conditions.

Once you set a show-if condition for a response option, the Survey Designer displays a yellow control-type image next to the question to indicate that some response options have display conditions attached. In the image below, the question FREQ includes response options that display conditionally. For the other questions, all response options always appear.

Control-type images color-coded to indicate the presence or lack of show-if conditions on response options.

Note that in multilingual surveys, show-if conditions apply across all translations. If you edit the show-if conditions within a single translation, the edited conditions will apply to ALL translations!

Group Headers and Show-If Logic

Show if logic can be applied to a Group Header. If the Group Header has show-if logic, the Header and all of the prompts below that header will not be shown unless the logic criteria are met. If all of the prompts under a specific Header are not shown due to show-if logic then the Group Header will not be displayed. At least one prompt must be visible for the Header to display.

Attaching a Text Field to a Scale Value

You may want to attach a text field to a scale value, so that participants can explain their responses. For example, if one of your response options is "Other (please specify)," you should give participants a place to specify what they mean by "other." If you have not yet added the response option to the list, create the option, as described above, then check the "Attach text field" box, and click the Add button to add the option to the list. In the list of response options, you'll notice that when an item has an attached text field, the Text Field box next that item is checked. If you want to add a text field to an item that is already in the list of response options, simply check the "Text Field" box next to the item in the list. You can delete the text field by unchecking the box.

Setting Properties for Attached Text Fields

After attaching a text field to a response option, you may want to set some properties for the text field. To do so, follow these steps:

  1. In the list of available response options, click once on the option whose text field you want to configure.
  2. Click on the Text Field Properties... button.
  3. Set the desired properties (described below).
  4. Click OK .

The General Tab of the Scale Text Question Editor enables you to configure the following properties:

The Response Guides tab of the Scale Text Question Editor enables you to configure the following properties:

Attached Text Field Properties in Multilingual Surveys

If your survey includes multiple translations, you will obviously separate translations for any labels and error messages belonging to attached text fields. Generally, you would do this by creating a Translation Package, but in some cases, you may need to edit these items individually.

To set the label, description, and error message for an attached text in a specific language:

  1. Open the question to which the text field is attached in the Question Editor.
  2. Click the Response Options tab.
  3. Choose the translation you want to work with from the list at the bottom of the Question Editor.
  4. Click on the scale value whose attached text field you want to edit.
  5. Click Text Field Properties....
  6. Edit the label, description, and/or error message in the Scale Text Question Editor.
  7. Click OK to close the Scale Text Question Editor.
  8. Click OK in the Question Editor to save your changes.

The changes you make to attached text field properties affect only the language that was selected when you opened the Scale Text Question Editor.

Randomizing Display Order and Anchoring Options

By default, Illume presents response options to participants in the same order they appear in the Question Editor. If you check the Randomize Display Order box, Illume will present the options in random order. Even when response options are presented in random order, you may want to fix the location of certain options. For example, if your question includes an "Other" or "I choose not to answer" option, you may want this option to always appear last. You can ensure an option appears in a particular place within a randomized list by checking the option's Anchored box. In the screenshot above, the 4th option, "Other," is anchored as the last item on the list. While the other three options are shuffled around, "Other" will always appear as the last option. Checking the Anchored box caused the corresponding option to appear on the survey in the same position in which it appears in the Question Editor. Thus, clicking the Anchored box next to the second option in the list, "I work part time," would cause "I work part time" to always be displayed as the second option. Similarly, dragging "Other" to the top of the list of options, and leaving the Anchored box checked would cause "Other" to always be displayed as the first response option.

Editing an Existing Response Option

To edit an existing response option:

  1. In the list of existing response options, click once on the text of the option you want to edit.
  2. The option's text and value will be loaded into the editable fields above the list. Edit these as you please.
  3. (Optional) Check Attach text field if you wish to attach a text field.
  4. Click the Replace button. The old option details will be replaced by the new option details in the list of existing options.

Deleting a Response Option

To delete a response option:

  1. In the list of existing response options, click once on the text of the option that you want to delete. The option should be highlighted after you've clicked on it.
  2. Click the Remove button.

Configuring Yes/No Response Options

The only available data type for Yes/No questions is Yes/No. Unless you redefine these values, "No" answers are stored as zero (0) and "Yes" answers are stored as one (1) in the survey results.

You can change this if you want by assigning scale values as described below. In some cases, you may want the value 1 to represent No. For example, if you have a calculated variable that adds up all the No answers, you'll need to set No to 1, or the calculated variable will just keep adding up zeros... which doesn't do anyone any good.

The text you type next to the No option (i.e. next to the zero) will not be displayed in the survey . It will appear in the data dictionary to describe what it means when a participant did not check the checkbox for this question.

The text you type next to the Yes option (i.e. next to the one) will appear next to the checkbox in the participant's survey.

Setting the default state for a Yes/No item to "None" or to "0" leaves the checkbox unchecked by default. Setting the default to "1" leaves the box checked by default.

Date and Time Data

Text questions can be of virtually any data type, including Date, Time, and Date/Time. Illume use's Microsoft's .NET DateTime object to store dates and times. The .NET DateTime object can represent dates between 12:00 a.m. January 1, 0001 CE and 11:59:59 p.m. on December 31, 9999. Illume considers dates outside of this range to be invalid. You can narrow the range by setting minimum and/or maximum dates in your question's Response Guides. Non-existent dates are also invalid. For example, February 29, 2005 is invalid because 2005 is not a leap year. Participant must enter dates or times in a format that .NET recognizes. In general, for the United States locale, dates in the following formats are valid:

Other date formats will also work in the US. You should, however, suggest a format that you know will work in either your question prompt or in the question label. For example, a prompt that suggests a valid format would be: Please enter your date of birth (mm/dd/yyyy): Illume and .NET recognize both 12- and 24-hour time format, though Illume may ignore the seconds. The following time formats are valid in the US locale:
.NET uses the same standard set of date and time formats that other Microsoft products use. This means that any Date, Time, or Date/Time format produced by an application like Microsoft Excel, Access, or SQL Server will work in Illume. Use the Date data type only for variables that must include a day, month, and year. If your variable requires only one of these values (day or month or year), choose the whole number or text data type. Choose Date/Time data type only for variables that require a day, month, and year value with an optional time value.

Dates, Times, and Localization

Illume and .NET use the locale settings of the Illume server to determine dates and times. This can cause some confusion if a survey is not designed correctly. For example, if you are administering a survey to participants in both the US and the UK, you should be aware that the two locales use different date formats. A US participant entering 06/12/2006 will mean June 12, 2006, while a British participant entering the same thing will mean December 12, 2006. If the survey is running on a server whose locale is set to EN-US (English, United States), the date will always be interpreted as June 12. If the server's locale is set to EN-GB (English, Great Britain), the date will always be interpreted as December 6. This will be a problem if your question includes a minimum and/or maximum date. The British user or the US user may not be able to get past the date question simply because the participant and the server do not agree on what the date means. One way to avoid date/time problems caused by local differences is to break dates and times into separate questions, each of which is of type whole number. For example, instead of asking for a participant's birth date, ask for his or her year of birth, then month of birth, then day of birth.

1. 2. 4. 4. Setting a Question's Display Properties << PreviousSetting a Question's Response Options | NextSetting a Question's Response Guides >>

The Display Properties tab of the Question Editor enables you to control some aspects of your question's appearance. The available display options are described below.

Note: If you are editing a multilingual survey, and you have the translation tools enabled, you will see a list of languages at the bottom of the Question Editor. Choose the language you want to edit from the list, and the label for that language will appear, if the question has been translated. You may edit the label, and your edits will apply to that translation of the label only. Edits to other items on this tab, such as display width and height, will affect all translations.

Label

This option applies to Text Fields only. If you type in a label here, the text of the label will be displayed to the left of the text box, unless you check "Display label after," in which case the label appears to the right of the text field.

Examples: A "$" label would precede a text box in which participants are expected to enter a dollar amount.
A "%" label would follow a text box in which participants are expected to enter a percentage amount.

Display Width

This property applies to Text Fields and Commentaries. This is the width, measured in characters, of the Text Field or Commentary.

Display Height

This property applies to Commentary questions only. This is the number of lines of text that can be displayed at one time in the commentary field. Note that if participants type in more text than the field can display, a scrollbar will appear.

Hide Text (Password Style)

This option applies to Text Fields only. If you check this, the text field will display only asterisks (*) as the participant types, just as a password field on an HTML form displays only asterisks when you type in your password.

Columns

This applies to Radio Groups and Checkboxes only. By default, Illume displays all of checkbox/radio options in a single column. You can override this by setting the number of columns here.

Column Width

This applies to Question Tables.

You can set the column width for question tables by typing a value in the Column Width box. The width you set here applies to each of the columns in the question table to the right of the prompts. That is, each column that contains a checkbox, radio button, poplist or text box.

To set the width to an absolute value, type in a whole number or a whole number followed by the letters px. For example, a setting of either 100 or 100px sets the width of each column to 100 pixels.

To set the columns to a relative width, use percent values like 15%. This sets the width of each column containing a response option to 15% of the total width of the table. (Keep in mind that the prompt occupies one column of the table, and this is generally the widest column, since it contains text.)

Columns with fixed width values (e.g. 100 or 100px will keep a constant width even as participants re-size their browswer windows. Columns with percentage widths will expand and contract as the participant changes the width of the browser window.

Note that if your question table includes text inputs, all browsers will force columns to be wide enough to accomodate the text boxes, regardless of the column width you assign.

Select-one style

This option applies to Select One type questions only. Select One questions can be displayed in any of the following formats:

<>

Radio

How did you like your lunch?

Hated it
Neutral
Loved it

Poplist

How did you like your lunch?

 

Likert

How did you like your lunch?

Hated itNeutralLoved it

Semantic Differential

How did you like your lunch?

Hated it Loved it

1. 2. 4. 5. Setting a Question's Response Guides << PreviousSetting a Question's Display Properties | NextSetting Data Dictionary Options >>

The Response Guides tab of the Question Editor enables you to define what constitutes a valid response for a given question. This tab includes the following properties:

Note: If you are editing a multilingual survey, and you have the translation tools enabled, you will see a list of languages at the bottom of the Question Editor. Choose the language you want to edit from the list, and the error message for that language will appear, if the question has been translated. You may edit the error message, and your edits will apply to that translation of the error message only. Edits to all other items on this tab, such as whether the question requires a response, will affect all translations.

Response Required

This indicates whether the current question requires a response. By default, all questions inherit the survey-wide Required setting. In the example above, the survey-wide preference is set to Not Required. The question itself is set to Required.

Minimum length (chars)

The minimum number of characters required for a valid response to this item. This applies only to Text Field and Commentary items .

Maximum length (chars)

The maximum number of characters allowed for a valid response to this item. This applies only to Text Field and Commentary items .

Min # of Responses

The minimum number of items that must be checked in a group of checkboxes. For example, if you ask participants to select at least three items from the list of checkboxes, you would set Min # of Responses to 3. This applies only to questions of type "Check all that apply."

Max # of Responses

The maximum number of items that may be checked in a group of checkboxes. For example, if you ask participants to select no more than three items from the list of checkboxes, you would set Max # of Responses to 3. This applies only to questions of type "Check all that apply."

Format (meta-type)

Check this option and select a meta-type from the accompanying list if you want your participants' responses to be of a particular type (such as email address, phone number, etc.)

Custom Expression

If you want the participant's response to match a regular expression, enter the regular expression here. Writing regular expressions generally requires specialized knowledge. However, you can find regular expressions to validate US and international phone numbers, zip codes, and other types of meta-data by searching the Internet.

Illume uses Microsoft's .NET implementation of regular expressions, which is documented here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconregularexpressionexamples.asp

Lower Bound

The minimum allowable value for a numeric response. Note that you may specify whether responses may not be less than (<) or may not be less than or equal to (<=) the minimum value.

Upper Bound

The maximum allowable value for a numeric response. Note that you may specify whether responses may not be greater than (>) or may not be greater than or equal to (>=) the maximum value.

You can set both the Upper and Lower bounds to compare against values that a participant has entered in response to prior questions. That is, you can say that the answer to the current question has to greater than (or less than) the answer to a previous question. See Setting Dynamic Defaults and Bounds for details. If you are setting bounds for a question that uses the Date, Time, or Date/Time data type, see Date and Time Data in Setting a Question's Response Options for some important considerations.

Custom Error Message

This is the message participants will see if 1) they fail to enter a response when the response is required, or 2) the response they enter does not meet the question's validation requirements.

If you leave this blank, Illume will use the appropriate system-wide default error message defined in the Survey Preferences. (See Customizing Survey Error Messages for more information about survey-wide error messages.)

Illume enables you to pipe relevant data from the current question directly into a custom error message. This makes the error messages more useful to participants, and relieves survey designers of the burden of having to update error messages when questions change.

See the section on Piping Data for a detailed description of how to pipe data into custom error messages.

Enforcement of Response Guides

Illume surveys enforce response guides both in the participant's browser and on the server. If the participant's browser does not support JavaScript, response guides will be enforced by the server. When an error occurs, participants will be presented with the page they just submitted, with error messages printed above the question.

Users who have JavaScript enabled (typically more than 95% of users) will see both a JavaScript alert and the red-text error message.

1. 2. 4. 6. Setting Data Dictionary Options << PreviousSetting a Question's Response Guides | NextSetting Show-if Conditions >>

Illume surveys include a data dictionary, which is available when you query and review the data your survey has collected. The data dictionary lists all variable names, question prompts, and response options.

For example, if you have a question called WINE that asks what type of wine a participant prefers to drink, the data dictionary will include an entry like this:

WINE "What type of wine do you prefer?"
0 = I don't drink wine
1 = Red
2 = White

Note: If you are editing a multilingual survey, and you have the translation tools enabled, you will see a list of languages at the bottom of the Question Editor. Choose the language you want to edit from the list, and the variable description for that language will appear, if the question has been translated. You may edit the description, and your edits will apply to that translation of the description only. Edits to other items on this tab, such as the question's unique name and whether it is "runtime only", will affect all translations.

Illume generates the data dictionary automatically. However, you may want to exercise some additional control over what goes into the data dictionary. You can do this through the Data Dictionary tab of the Question Editor, which enables you to set the following attributes:

Unique Name

This is the name of the variable in which responses to the current question will be stored. For example, if you name this question "HOMEPHONE," then the data that participants give in response to this question will be stored in a database field called HOMEPHONE.

The name you supply here will also appear as the name of the current question in the Survey Designer.

A unique name must start with a letter, and can contain any combination of letters, numbers, underscores (_), or hyphens (-). Unique names must be 20 characters or less in length.

Description

If you leave the description blank, Illume automatically uses the question prompt as the description in the data dictionary. At times, however, you may want to provide more information than the prompt can give.

If you type a description here, that description, rather than the question prompt, will appear in the data dictionary. This can help you quite a bit when you are analyzing your data and you're wondering how the variable AGE1 differs from AGE2.

Runtime Only

Check this box if you do not want responses to the current question to be stored with the rest of the data you collect in your survey. Runtime only data are available to Illume when a participant is taking a survey and are discarded when the survey is submitted. This type of data is often used in calculated variables and show-if conditions.

1. 2. 4. 7. Setting Show-if Conditions << PreviousSetting Data Dictionary Options | NextCreating a Question Table >>

You can set conditions on when page breaks, Text/HTML items, questions, and collections will appear. Each of the editors for these items includes a Show-if tab that enables you to define when the item should be displayed, and when it should be hidden.

Warning: If you are editing a multilingual survey, be aware that any changes to an item's show-if conditions affect ALL translations of the survey. Each item in an Illume survey has one set of show-if conditions, and that single set of conditions applies across all translations!

The Show-if tab includes the following options:

Show State

An item set to "Always shown" will be presented to all participants, and will appear in the Survey Editor with a green circle next to its name. By default, all questions, collections, Text/HTML items and page breaks are always shown.

An item set to "Never shown" will not be shown to any participants, and will appear in the Survey Editor with a red circle next to its name.

Adding Show-if Conditions

An item set to "Only show if..." will be displayed only if the conditions you define are met. Follow these steps to set show-if conditions:

  1. Check the "Only show if..." option at the top of the Show-if tab.
  2. In the Collection list, click once on the name of the collection that contains the question you want to test. The questions in the collection will appear in the Item list to the right.
  3. Click once on the question you want to test. The name of the question appears in bold blue type beneath the Collection list. Underneath the question name, you'll see a popup list with the words "was-not-answered".
  4. Select the test type from the popup list. Notice that if you choose any test type other than "was-answered" or "was-not-answered," a list of responses to the selected question appears to the right. (This is true only if the question you are testing has multiple response options.)
  5. Select the value you want to test from the list on the right. If you are testing a text or Yes/No question, you must type in the value you want to test. If you are testing whether the response "is-any-of" or "is-none-of," you can check multiple options in the list on the right.
  6. Click Add to apply this condition.
  7. (Optional) Add more conditions by repeating steps 2-6.
  8. (Optional) If you defined more than one condition, you must decide how to group the conditions. If you select "And" from the list labeled "Group all expressions with," then the current question will be shown only when ALL of the conditions you've defined have been met. If you select "Or," the question will appear when ANY of the conditions have been met. You may also define custom groupings for your conditions.
  9. Click OK to save the conditions.

Editing Existing Show-if Conditions

To edit existing Show-if conditions:

  1. In the Survey Editor, double click on the item you want to edit.
  2. Click on the Show-if tab.
  3. In the list of conditions at the bottom of the Show-if tab, click on the condition you want to edit.
  4. Follow steps 2-5 under "Adding Show-if Conditions" above.
  5. Click Replace (not Add) to replace the condition.
  6. Click OK to save your changes.

Removing Individual Show-if Conditions from an Item

To remove individual show-if conditions:

  1. In the Survey Editor, double click on the item you want to edit.
  2. Click on the Show-if tab.
  3. In the list of conditions at the bottom of the Show-if tab, click on the condition you want to remove.
  4. Click the Remove button.
  5. Click OK to save your changes.

Removing All Show-if Conditions from an Item

To quickly remove all of an item's Show-if conditions:

  1. In the Survey Editor, double click on the item you want to edit.
  2. Click on the Show-if tab.
  3. Check the "Always shown" option.
  4. Click OK to save your changes.

Setting Show-if Conditions for Prompts within a Question Table

To set show-if conditions on the individual prompts within a question table, follow these steps:

  1. In the left pane of the survey designer, click on the Question Table you want to work with. Note in the image below that the RAPI question table is selected in the left pane, and the prompts belonging to the RAPI question table appear in the right pane.


  2. In the right pane, double click on the prompt you want to work with.
  3. Click the Show-If tab in the Prompt Editor.


  4. Follow the instructions under Adding Show-if Conditions above.
  5. Click OK.
If you are creating a question table with many prompts that will share the same show-if conditions, you can save time by creating one prompt with the show-if condition, then copying it repeatedly and changing the prompt text. To copy a prompt, right click on the prompt and choose Copy, then right click again in the right pane of the Survey Editor and choose paste. Change the name and the prompt for the new item when you paste it. The new item will have the same show-if conditions as the original.

Custom Grouping of Show-if Conditions

Early versions of Illume required all show-if conditions to be grouped with AND or with OR. Illume versions 2.1.14 and higher support complex grouping of show-if conditions. Custom grouping enables you to mix AND and OR in your show-if conditions.

To use custom grouping,

  1. Define all of the conditions you will want to test, as described above.
  2. Choose the Custom group expression option under Expression Grouping.
  3. Use labels, parentheses and the words "and" and "or" to group your expressions, as described below.

When you define the conditions you want to test, you'll see that the Question Editor assigns a label to each condition. In the image below, the test "AGE > 18" is labeled as test A. The test "DRINK = [Yes]" is labeled as test B and the test "SMOKE = [Yes]" is labeled as test C.

If we want our question to appear to all participants over the age of 18 who drink or smoke, we would type the following under Custom group expression: A and (B or C) This means, display the question if condition A is true (participant is over 18) and if either B or C is true (participant drinks or smokes). Note that parentheses are important here. Any items in parentheses will be evaluated before items not in parentheses. In this example, Illume will first check to see if either conditions B or C is true. If either one is true, Illume will go on to see if condition A is also true. If either one of B or C is true, and A is also true, Illume will display the question. The following grouping would give a completely different result: (A and B) or C In this grouping, Illume will display the question if both A and B are true (participant is over 18 and drinks) OR if C is true (participant smokes).

Further Notes about Custom Grouping

If your expression uses nested parentheses, the more deeply nested parentheses are evaluated first. For example, in the following expression: A and (B or (C and D)) Illume first checks to see if conditions C and D are both true. Illume then checks to see if B is true (if necessary-- this expression requires only that one item inside the blue parentheses be true). Finally, Illume checks to see if A is true. Each parenthesized expression is always reduced to a single true or false value. In the following example, let's assume that underlined conditions are false and non-underlined conditions are true. (A and (B and (C or D or (E and F)))) Here is how Illume interprets the expression: Starting within the purple parentheses, Illume sees that condition F is false. Because E and F are not BOTH true, the entire expression within the purple parentheses is then false. So now we have this: (A and (B and (C or D or false))) Illume then looks at the items in the red group. Because these are grouped with OR, if any one of the conditions is true, the whole parenthesized expression is true. Illume sees that false is not true. It sees that condition D is not true. It sees that condition C is true. Now the entire group within the red parentheses is true. (A and (B and (true))) Illume then sees that both B and the condition that follows B are true, so the entire green expression becomes true. (A and (true)) Now Illume sees that both A and the condition that follows A are true, so the entire blue expression is true. (true) Illume has reached the outermost condition, and it is true, so Illume will display this item.

1. 2. 4. 8. Creating a Question Table << PreviousSetting Show-if Conditions | NextUnique Name Restrictions >>

A question block is a group of questions that shares a common set of response options. Generally, a question block will have three components: instructions, prompts, and a set of response options.

Instructions tell the participant what type of response is expected. For example, "Please indicate the extent to which you agree or disagree with the following statements."

Prompts are the individual items to which participants respond. A question block that uses the instructions above may include prompts such as:

The final component in a question block is a set of response options shared by all of the prompts. In the example above, each of the prompts would include the following options:

Note: If you are editing a multilingual survey, and you have the translation tools enabled, you will see a list of languages at the bottom of the Question Table Editor. Choose the language you want to work with from the list. You may edit most text properties (prompts, scale values, error messages, etc.) in each language individually (though it's much easier to create a Translation Package and do all of the translation at once). Display and show-if properties apply across all translations.

Choosing a Display Type

The general tab of the Question Table Editor provides a list of display types. When you choose a type from the list, you'll notice that a sample appears to the right of the list showing what the selected display type looks like.

The Select One display type actually shows two samples: one with radio buttons and one with poplists. When you choose the Select One display type, you must use the "Select-one style" list in the Display Properties tab to indicate whether the collection should use radio buttons or poplists.

Creating Instructions

Type the instructions for your question block into the Instructions entry under the General tab. These instructions will appear above the collection's set of prompts.

Creating and Editing Prompts

To add prompts to the collection, click the Prompts tab. For each prompt you want to add, type the prompt into the Prompts box and press Enter (or click the Add button). You'll see that each new prompt appears in the list of prompts at the bottom of the Question Table Editor.

To edit an existing prompt, click on the prompt in the list, make your changes to the prompt's text in the Prompts box, and click Replace . (Note that if you press the Enter key instead of clicking Replace, you will create a new prompt.)

Deleting Prompts

To delete a prompt, click on the prompt you want to delete (it should be highlighted against a blue background once you click on it) and then click the Remove button.

Setting Other Properties

To set other properties of a question block, see the descriptions of how to set question properties: Setting a Question's Response Options, Setting a Question's Display Properties, Setting a Question's Response Guides, Setting Data Dictionary Options, and Setting Show-if Conditions. You can set show-if conditions on the individual prompts within a question table! Follow the link to Setting Show-if Conditions below.

Sub-Grouping and Response/Prompt Headings in Question Tables

Questions Tables may have both Response Headers as well as Prompt Headers.  Response Headers are labels that apply to multiple column headers, e.g. "Gender" might be a response header for the column headers "Male" and "Female".

Adding Response Headers to a Question Table

Response Headers are added to Question Tables in the same way as  standard response options.  They are only available for Select One and Check All That Apply Display Types.

To add a response header:

  1. On the Response Options tab type appropriate text
  2. Check “Group header” box
  3. Click Add
  4. Drag where appropriate among the list of response options

Adding response options to a question table

Adding Prompt Headers to a Question Table

Prompt Headers can be used with all of the Display Types in a Question Table. Prompt Headers are created by selecting the Prompts tab in the Question Table Editor and checking the “Group header” box. Prompts can me moved up and down in the list by clicking and dragging.

Example Question Table with Response and Prompt Headers

Sample Question Table with Response and Prompt Headings

1. 2. 4. 9. Unique Name Restrictions << PreviousCreating a Question Table | NextEditing an Existing Question >>

Every item in an Illume survey must have a unique name. Items include questions, collections, Text/HTML objects, page breaks, and survey resources.

Illume automatically assigns a unique name to each object when it is created, but you may want to assign a more meaningful name.

A unique name must start with a letter, and can contain any combination of letters, numbers, underscores (_), or hyphens (-). Unique names must be 20 characters or less in length.

1. 2. 4. 10. Editing an Existing Question << PreviousUnique Name Restrictions | NextAdding Comments to a Question or Item >>

To edit an existing question:

  1. In the left pane of the Survey Editor, click on the name of the collection that contains the question you want to edit.
  2. In the right pane of the Survey Editor, double click on the question you want to edit.

This brings up the Question Editor. For information about setting specific attributes of the question, see Setting a Question's General Options, Setting a Question's Response Options, Setting a Question's Display Properties, Setting a Question's Response Guides, Setting Data Dictionary Options, and Setting Show-if Conditions.

1. 2. 4. 11. Adding Comments to a Question or Item << PreviousEditing an Existing Question | NextReviewing and Editing Comments >>

You can add comments to any question, Text/HTML item, or page break in a survey. Comments are available only to those editing the survey; participants cannot see them.

Once you check your survey in to the repository, any comments you added in the most recent round of editing become read-only. Others may contribute additional comments, but neither you nor anyone else can alter the comments you checked in.

Adding Comments from within Survey Designer

To add comments from within the Survey Designer:

  1. In the right pane of the Survey Editor, click on the item to which you want to attach a comment. (If the item is not currently showing in the right pane, click on the collection that contains the item in the left pane of the Survey Editor.)
  2. Click the Add/Edit Comments icon in the toolbar.
  3. Type your comments in the Add Comments area at the bottom of the Comment Editor.
  4. Click OK .

Adding Comments from the Survey Previewer

In the Previewer, you can add comments only to questions. To add comments from the Survey Previewer

  1. Click the Comments icon next to the question prompt.
  2. Type your comments in the Add Comments area at the bottom of the Comment Editor.
  3. Click OK .

1. 2. 4. 12. Reviewing and Editing Comments << PreviousAdding Comments to a Question or Item | NextUsing the Spell Checker >>

You can review and edit comments to any question, Text/HTML item, or page break in a survey. Comments are available only to those editing the survey; participants cannot see them.

You may edit any comments that have not yet been checked in to the repository, but you cannot edit comments that have been checked in.

Reviewing All Comments

To review all survey comments at once, select View > Review All Comments... from the Survey Designer menu.

Adding Comments from within Survey Designer

To edit or review comments from within the Survey Designer:

  1. In the right pane of the Survey Editor, click on the item to which you want to attach a comment. (If the item is not currently showing in the right pane, click on the collection that contains the item in the left pane of the Survey Editor.)
  2. Click Comments to the left of the item.
  3. (Optional) You can add your own comments by typing them into the Add Comments area at the bottom of the Comment Editor.
  4. Click OK to close the Comment Editor.

Adding Comments from the Survey Previewer

In the Previewer, you can add comments only to questions. To review or edit comments from the Survey Previewer, simply click the Comments icon next to the question prompt.

1. 2. 4. 13. Using the Spell Checker << PreviousReviewing and Editing Comments | NextUsing Find and Replace >>

Checking the Text You Are Currently Editing

The spell checker checks spelling as you type in any of Illume's HTML editors, underlining misspelled words with a wavy red line. The spell checker checks spelling as you type in question prompts, response options, and Text/HTML items.

Spelling errors are underlined in red.

To correct the spelling of any misspelled word, right-click on the word, and choose one of the suggested spellings from the list.

The spell checker's list of suggested corrections.

If the correct spelling is not in the list, click within the HTML editor to make the context menu disappear, then manually correct the spelling.

If the spelling of the word is correct, but the spell checker identifies it as incorrect, the context menu provides two options:

Spell Check Options

When Include item descriptions is checked, Illume will find and replace text within the data dictionary descriptions of questions and question tables. This is the text that appears on the Description tab of the question editor and in the description field of each item in the data dictionary.

Checking an Entire Survey At Once

Illume can spell check an entire survey at once, including:

The Spell Check option in the Tools menu.

To spell check an entire survey at once click Tools > Spell Check... Illume will read through the survey, stopping at each potential misspelling. Illume loads the text containing the misspelling into the HTML editor, with the misspelled words underlined in red. Right-click on any misspelled word to view the list of suggested spellings.

The survey-wide spell checker includes a Revert to Saved button that will undo any changes made by the spell checker in the text currently displayed.

After correcting a word in the survey-wide spell checker, click Next Error to resume spell checking.

The survey-wide spell checker.

Checking Selected Items

You can limit the spell check operation to a single item or to a group of items by selecting the item(s) in the survey designer before choosing Spell Check... from the Tools menu.

To choose a single item for spell checking, simply click on the name of the item in the Survey Designer. To choose multiple items, hold the Control key and click each item individually. Holding the Shift key while you click selects every item between the the item you are clicking on and the last selected item.

When working within a group of selected items, checking Include items within selected collections will extend the find and replace operation into each of the collections that you have selected.

Known Issues

Because Illume uses Microsoft Word's spell checker, you must have Microsoft Word 2000 or later installed in order to use spell check.

When the spell checker replaces an individually formatted word (for example, an italicized, bolded or underlined word), Illume may not preserve the formatting when it replaces the word.

Multilingual Surveys

The spell checker will work for each language in a multilingual survey, provided:

1. 2. 4. 14. Using Find and Replace << PreviousUsing the Spell Checker | NextRenaming Multiple Questions >>
 

The Survey Designer's Find and Replace feature can find and replace text in any of the following items:

By default, Find and Replace operates on the entire survey. You can limit the find and replace operation to a single item or to a group of items by selecting the item(s) in the survey designer before choosing Find and Replace... from the Edit menu.

To choose a single item for find and replace, simply click on the name of the item in the Survey Designer. To choose multiple items, hold the Control key and click each item individually. Holding the Shift key while you click selects every item between the the item you are clicking on and the last selected item.

Using Find and Replace

To find and/or replace all instances of word throughout your survey, follow these steps:

  1. Choose Edit > Find and Replace...

    The edit menu's Find and Replace option.
  2. Type the word you want to find into the Find field.
  3. If you want to replace the word you are finding, type the replacement word into the Replace with field.
  4. Click Find Next >> to find the next occurrence of the word. Click Replace to replace the next occurrence of the word. Click Replace All to replace all occurrences of the word throughout the survey.

The find and replace dialog.

Find Next and Replace display the next result of the word search in the HTML editor, giving you a chance to review the text before you decide to make a replacement. If you do want to replace the highlighted word, click Replace again to make the replacement.

Clicking Replace All will replace all instances of a word within the survey without asking you to confirm. Illume simply reports the number of occurrences replaced when the operation is complete. You cannot undo the Replace All operation.

The Start Over begins a new search from the beginning of the survey document.

Search Scope

By default, find and replace operates on your entire survey. If you selected one or more survey items before starting Find and Replace, you can check the Selected items only option to limit the operation to the items you have selected.

When working within a group of selected items, checking Include items within selected collections will extend the find and replace operation into each of the collections that you have selected.

Search Options

Replacing Variable References

The Include variable references is useful in surveys that include near-identical collections of questions.

For example, your survey may ask the same 10 questions about a participant's mother and father. The easiest way to build this survey would be to create a collection of the 10 "mother" questions first, and then to copy that entire collection and name the copy "father."

When you copy the collection, Illume asks you to rename each of the questions. In this example, the question names may change from "AGE_MOTHER," "OCCUPATION_MOTHER," etc. to "AGE_FATHER," "OCCUPATION_FATHER," etc. There may be several places in the original collection that pipe data from reponses to previous questions. The piping might look like this:

How many years has you mother been working as a {OCCUPATION_MOTHER:Response}?

In the collection of questions about the father, you would obviously want the reference in the new collection to look like this:

How many years has you father been working as a {OCCUPATION_FATHER:Response}?

Running Find and Replace with the Include variable references option checked will make this replacement for you.

Undoing Find and Replace

To undo a find and replace operation:

  1. Click Done to close the Find and Replace dialog if it is not already closed.
  2. Right click in the right pane of the Survey Editor and choose Undo Find and Replace from the context menu.

Context menu item for undoing a find and replace operation.

The Revert to Saved button at the bottom of the Find and Replace dialog undoes changes to the text currently being displayed in the HTML editor.

1. 2. 4. 15. Renaming Multiple Questions << PreviousUsing Find and Replace | NextSetting Response Requirements on a Group of Questions >>

This article describes how to rename whole groups of questions, collections, and other survey items in a single operation.

A Quick Summary for the Impatient

Because the Rename feature includes so many options, the best way to understand how it works is to experiment. Follow steps 1 and 2 below, try various options, and click Generate Names. The Rename Summary display will show the new names produced by the various options you select. None of the new names will be applied until you click Rename, so you can experiment without affecting your survey.

Details

To rename a several questions at once, follow these steps:

  1. Select the collection or the group of questions you want to rename in the right pane of the Survey Designer.

    To choose a single item for find and replace, simply click on the name of the item in the Survey Designer. To choose multiple items, hold the Control key and click each item individually. Holding the Shift key while you click selects every item between the the item you are clicking on and the last selected item.
  2. Right-click on the selected items and choose Rename... from the context menu.

    Context menu showing the Rename option.
  3. If your selection includes collections, and you want to rename items withing those collections, check Include items within selected collections.
  4. Choose the types of items you want to rename from the list of checkboxes. You'll notice that as you check and uncheck different options, the items subject to renaming appear or disappear from the Rename Summary at the bottom of the Rename dialog.
  5. Make any changes as described in change options below.
  6. Click Generate Names to preview the changes. The Rename Summary list at the bottom of the dialog shows the new names that will be applied to each of the selected items. You may have to scroll down to see the entire list.
  7. If you are satisfied with the changes, click Rename to rename the items.

The multi-item rename dialog.

Renaming Options

  1. Prefix will add whatever prefix you specify to the name of each item that appears in the Rename Summary list.
  2. Suffix will append whatever suffix you specify to the name of each item that appears in the Rename Summary list.
  3. Name enables you to apply prefixes and suffixes to the current variable names that appear in the Rename Summary list when you Use current name. You can also replace text within existing variable names when you choose this option.

    Options available for generating new names based on existing question names.

    The Generate sequence option will replace the current names in the Rename Summary list with a customizable alphabetic or numeric sequence. Prefixes and suffixes will be applied to the letters or numbers of the sequence.

    Options available when generating a seqence of names.
  4. The Adjust Current Name fields appear only when you choose the Use current name option. Illume will replace text you type into Replace with the text you type into With in all of the names listed in the Rename Summary list.
  5. The Sequence options appear only when you choose Generate sequence from the Name list. The Numeric option generates a numeric sequence starting with the number in Start sequence with and using at least the number of digits specified in Minimum digits. (Illume adds leading zeroes until the minimum number of digits is satisfied.) The Alphabetic option starts an alphabetic sequence starting with the letter you specify in Start sequence with. When using sequences, any prefixes and suffixes you specify will be applied to the sequence.

Undoing a Rename Operation

As noted above, Illume does not actually rename any items until you click the Rename button.

If you do rename items and then want to undo the changes, choose Edit > Undo Rename Items from the Survey Designer menu, or press Control-Z.

You may not undo the rename operation after performing another undoable action such as Spell Checking or Find and Replace.

1. 2. 4. 16. Setting Response Requirements on a Group of Questions << PreviousRenaming Multiple Questions | NextFinding Survey Items Quickly >>

Beginning in Illume 3.0, all questions inherit a survey-wide "required" setting which describes whether questions are optional or required. Each individual question within a survey can override the survey-wide option. (See the links below for more information on survey-wide and question-specific settings.)

Illume also provides a convenient way to set whole groups of questions as "required" or "optional."

  1. Select sevaral items in the right pane of the survey editor. You can do this by holding down the Control key while you click on each of the items. You can also click a single item, then hold down the shift key while you click another item. Holding the shift key causes everything between the first and second items you clicked to be selected.
  2. Right click anywhere within the selected group and choose Set Required... from the context menu.
  3. Choose one of the two "Response Required" options to apply to the selected group.

    The Use preferences setting option causes the questions to inherit the survey-wide default setting, which appears in red text.

    The Always use the following setting option overrides the survey-wide setting.
  4. If you selected a mix of questions and collections, and you want your setting to apply to all of the items within the collections you have selected, check the box labeled Include items in selected collections.

  5. Click OK to apply the settings.

When you check the Always use the following setting option, the setting continues to apply to your selected questions, no matter what you do to the survey-wide "required" setting. The only way to change the setting is to manually change the "required" setting for the specific question or group of questions.

Note: The setting you apply to the selected group does not apply to attached text fields. These are always optional by default.

In a multilingual survey, response guides, such as whether or not a question is required, apply across all translations of the survey. You may set error messages individually for each translation, as described in Setting a Question's Response Guides.

1. 2. 4. 17. Finding Survey Items Quickly << PreviousSetting Response Requirements on a Group of Questions | NextQuotas Overview >>

To quickly find a survey item by name, use the Go to item list at the bottom of the survey designer. Start typing the name of the item you want to find, or simply click the arrow to browse the list. The survey designer will find and highlight the item selected in the list.

1. 2. 5. Working with Quotas
1. 2. 5. 1. Quotas Overview << PreviousFinding Survey Items Quickly | NextAdding Quotas to your Survey >>

Quota management is an add-on module that provides survey designers with a mechanism to control the number of survey respondents, meeting a specified set of criteria, who are allowed to participate in a given survey. When purchased, this module can be enabled with a license modification from DatStat Customer Support.

Quota Management Overview

A survey may have one or more quota group objects, each containing multiple quotas, which define the criteria limiting the number of respondents submitting data for that survey.

To add quotas the user must create at least one Quota Group Object. The Quota Group Object will set the criteria for the quotas it contains.

The position of the Quota Group Object in the survey should be carefully considered, as the Quota Group Object and the Quotas it contains will be evaluated wherever it is placed in the survey.

1. 2. 5. 2. Adding Quotas to your Survey << PreviousQuotas Overview | NextQuota Group Options >>

Adding a Quota Group Object

The first step in adding a quota is to create the Quota Group Object.

  1. In the Illume Survey Designer go to Survey/Add Quota…
  2. Give the Quota Group a unique name...
  3. Decide on the quota options that you would like to define

Defining Quotas

One or more quotas can be defined for a quota group object

  1. In the Quota Group Object click on the Quotas tab
  2. Give the Quota a unique name
  3. Describe the Quota

    The Description will be visible in the Quota Description window and in the Web Console.
  4. Set the Quota limit and Test data quota limit for the desired Quota
  5. Click the Add Button
  6. Highlight the newly added quota
  7. Click the Quota Condition… button to set the conditions for the Quota that was just added to the Quota Group Object.  The Quota Condition specifies the characteristic(s) of respondents who meet the Quota.
  8. Click OK when you have finished adding conditions.
  9. Repeat if you wish to have multiple Quotas in this Quota Group Object.

NOTE: The ordering of quotas may be used to determine priority if a maximum number of quotas is specified (see below) and the quota selection rule is determined by the order in the list.  The ordering of the quotas can be changed by simply selecting a quota and dragging it up or down in the list.

Quota Conditions

There are three conditions that can be set on a Quota:

Quota window showing the quotas tab

1. 2. 5. 3. Quota Group Options << PreviousAdding Quotas to your Survey | NextBreaking a Link to the Repository >>

There are a number of options that apply solely to an entire quota group. See the segments below for more information on these options.

Auto-Suspend

The Auto-Suspend Options are used to suspend the survey when one or more of the quotas are filled. Users are limited to one option being selected per Quota Group Object.

The options are:

NOTE: Testing the Auto-Suspend Options is only possible in a published version of the survey.

Quota Minimums

The Quota Minimums ensure that participants meet a minimum set of the created quotas to either continue with the survey or for their data to be counted in any quota limits.

Checking the box under “Quota Minimums” will activate the Quota Minimums limit. Once checked, using the drop-down box users may select the minimum number of quotas to be met before the participant may continue.

Users may then select what should happen if the participant does not meet this minimum limit.  The choices are:

Quota Maximums

The Quota Maximum puts a limit as to the number of quotas that a participant can be included.  If this number is exceeded then only the maximum number of quotas specified will be selected using a quota selection rule.

Checking the box under “Quota Maximums” will activate the Quota Maximums limit. Once checked, using the drop-down the users may select from the Maximum number of quotas the participant may meet, based on the number created in the Quotas tab.

After evaluating the quota conditions, if a participant exceeds this maximum number of quotas, only the maximum number of quotas determined to have a higher priority will be selected.  The following lists these rules and how the priority is determined:

Showing the main quota window

1. 2. 6. Using Repository Items
1. 2. 6. 1. Breaking a Link to the Repository << PreviousQuota Group Options | NextGetting the Latest Repository Version >>

If one of your survey items exists in the repository, you will not be able to edit certain properties of that item. Repository items are marked by one of the following icons:

  • Repository Question
  • Repository Text/HTML Item
  • Repository Collection
  • Repository Collection (Open) If you must edit these properties, you can break the item's link to the repository.
    1. Click on the item in the right pane of the Survey Editor.
    2. Choose Break Repository Link from the Repository menu. (This option is also available from the context menu.)

    Repercussions

    One of the benefits of repository items is that they are guaranteed to be the same in all of the surveys that use them. This makes them ideal for Cross Survey Views, which show responses to similar questions across multiple surveys.

    An Alternative to Breaking the Repository Link

    One alternative to breaking the question's link to the repository is to update the question directly in the repository, and then to get the latest repository version. Updating the question in the repository will not affect any existing surveys that use the repository item. All future surveys, however, will use the newest version of the item. Note that updating repository items may require special privileges. For more information, see Editing Repository Items and Getting the Latest Repository Version.

  • 1. 2. 6. 2. Getting the Latest Repository Version << PreviousBreaking a Link to the Repository | NextPiping Data >>

    If your survey includes an item from the repository, and the item has been updated in the repository after you added it to your survey, you will need to manually retrieve the updated version if you want to include it in your survey. Repository items are marked by one of the following icons:

  • Repository Question
  • Repository Text/HTML Item
  • Repository Collection
  • Repository Collection (Open)
  • This is by design. Illume will not automatically update repository items in your surveys, for reasons described in the Editing Repository Items. To get the latest repository version of an item, simply click on the item in the right pane of the Survey Designer and choose Get Latest Repository Version from the Repository menu. (This option is also available from the context menu.)

    If there is a newer version to get, Illume will display a message confirming that it has retrieved the latest version. Otherwise, Illume will not present any message.

    1. 2. 7. Variables and Piping
    1. 2. 7. 1. Piping Data << PreviousGetting the Latest Repository Version | NextList of Built-in Variables >>

    Piping usually refers to the practice of inserting the response from one question into the prompt of another question. For example, if a participant indicates in question #3 that he drives a Toyota, that information can be piped in to the prompt for question #10, which may ask "How satisfied are you with your Toyota?"

    Illume expands on this idea, enabling you to pipe several types of data into a variety of locations.

    How to Pipe Data

    You can pipe data by including a variable name enclosed in curly braces in the text where you want the data to appear. Illume will replace the variable with its value while the survey is running. See the specific descriptions and examples below for more information.

    Where Can Data Be Piped?

    Illume can pipe data into question prompts, scale values, Text/HTML objects, error messages, question default values, and the upper and lower bounds of a question's response requirements.

    What Data Can Be Piped

    Illume supports piping of:

    Each of type of piping is described in more detail below.

    Participant Responses

    To pipe a participant response into a question prompt, or into a Text/HTML object, use the tag {Response:QuestionId}, where QuestionId is the unique name of the question whose response you want to pipe in.

    For example, you have a question with the unique name "AUTOMOBILE" that asks what type of car a participant drives. The list of responses includes Ford, Chevy, Toyota, etc.

    You want to pipe this question's response into a later question that asks how satisfied a participant is with his or her automobile. You would write the prompt for the satisfaction question like this:

    How satisfied are you with your {Response:AUTOMOBILE}?

    Participants who indicated that they own a Ford will see "How satisfied are you with your Ford?" Those who said they own a Chevy will see "How satisfied are you with your Chevy?"

    Piping tags are not case sensitive. That means {RESPONSE:QUESTIONID} and {response:questionid} will yield the same result.

    If you need to pipe data from text fields attached to checkboxes or radio buttons, see Piping Data from Attached Text Fields below.

    Special Behavior for Checkboxes

    Because checkbox questions permit a participant to select multiple responses, the Response tag produces a comma-separated list of responses. For example, a checkbox question FOODS asks a participant to check each of the foods he or she has eaten in the past week. If the participant checks 10 items, then {Response:FOODS} will produce a comma-separated list of those 10 items. The list includes the labels that the participants saw, not the numeric codes that will be stored in the database. So you {Response:FOODS} would produce a piece of text like Peas, Carrots, Potatoes, Apples, Chocolate, etc.. The {Value} tag also behaves differently when applied to checkboxes, returning the number of items checked. Continuing the example above, the tag {Value:FOODS} would return the number 10 because the participant checked 10 items in the list.

    User Data

    Illume enables you to upload participant lists, which define the login names and/or passwords of participants who will be permitted to take your survey.

    These participant lists may contain additional information about participants, such as first and last names, email addresses, or any other data you choose to include.

    You may want to pipe this user data into your survey; for example, to welcome participants by name, or to display their email address as a pre-selected response option (so they don't have to type it in themselves).

    Let's assume your participant list includes a piece of user data called FIRSTNAME that contains a participant's first name. To greet participants after they log in, you would include a Text/HTML object with the following text:

    Greetings {UserData:FIRSTNAME}! Thank you for taking the time to visit our survey! Note that the following built-in variable exist for all participants on all Illume surveys, whether or not you have assigned them a value:

    Preload/Hidden Data

    Preloaded and hidden data can have several purposes. For example:

    1. Illume can preload data from the participant list into the participant's survey.
    2. Illume can read data appended to the survey URL and store it in a hidden variable.
    3. Custom software developed with the Illume SDK (software development kit) can read and set values stored in hidden variables.

    The article on Hidden Variables and Preloaded Participant Data provides information on how to create these variables.

    When you want the value of a hidden or preloaded variable to appear in a hidden input on a survey page, use the {Hidden} tag.

    For example, adding the tag {Hidden:IQ} to a Text/HTML object causes Illume to output the following hidden HTML element on the survey page:

    Q9$1" value="<current value>" />

    Note that current_value will be the current value of the variable IQ. Q9$1 is the internal variable name. Generally, you cannot anticipate what this name will be.

    Once the hidden variable is on your survey page, you can get the value of the hidden variable through JavaScript using the following:

    var iq = document.DatStatForm.{FormElement:IQ}.value;

    You can set the value like this:

    document.DatStatForm.{FormElement:IQ}.value = 210;

    When you set this value with JavaScript, Illume will save the value when the participant submits the current page (i.e. clicks next, previous, save or submit).

    Parameter Values

    Parameter values are described in detail in the article Working with Survey Parameters. To pipe parameter values into your text, use the tag {ParamValue:PARAMNAME}, where PARAMNAME is the name of the parameter whose value you want to pipe in.

    Attributes of the Current Question

    You can pipe the following information about a question into the question's custom error message:

    For example, if your question requires a numeric answer between 1 and 100, you may write a custom error message like this:

    The value "{Value}" that you entered for question #{QNum} is not valid. Please enter a value between {MinValue} and {MaxValue}.

    Participants will see an error message like this:

    The value "I don't know" that you entered for question #12 is not valid. Please enter a number between 1 and 100.

    This type of custom error message is helpful to both participants and survey designers. The message is specific enough to inform the participant of exactly what is wrong, and where.

    The use of parameters ensures that the designer will not have to rewrite the error message if the question's minimum and maximum values change, or if the question is assigned a new question number.

    Piping Responses into Other Questions

    As noted under Participant Responses above, you can pipe the response from one question into the prompt for another question. You can pipe values into the default value of a question. For details, see Setting a Question's Response Options. In addition, you can pipe values into the upper and lower bound fields of a question's response requirements. This enables you to say that the answer to question C must be a value greater than the answer to question A and less than the answer to question B. For details, see Setting a Question's Response Guides.

    Piping Data from Built-in Objects

    Illume surveys include three built-in objects that can be piped in to question prompts, responses, error messages, and/or Text/HTML objects:

    Piping Data from Attached Text Fields

    You can pipe data from a text box that is attached to a checkbox or radio button. For example, you have the following question whose name is ASSOCIATION:

    Which associations do you belong to?

    NBA
    CBA
    USBA
    Other Professional Association
    Other Amateur Association
    Other Misc. Association

    You can pipe the text a participant entered into the text fields attached to each of the "Other" options by referring to one of the following variables: {Response:Association.Text} Retrieves the response from the text box next to Other Professional Association. {Response:Association.Text2} Retrieves the response from the text box next to Other Amateur Association.

    {Response:Association.Text3} Retrieves the response from the text box next to Other Misc. Association. If your radio button or checkbox question has only one attached text field, the tag to retrieve the text from that field will always be {Response:QuestionID.Text}, where QuestionID is the unique name of your radio button or checkbox question. You can get the text from any subsequent attached text fields by using {Response:QuestionID.Text2}, {Response:QuestionID.Text3}, etc.

    Note that the number of the text field (Text2, Text3, etc.) refers to the order in which the field was created, not the order in which the field appears. This allows you to reorder the responses to your checkbox/radio button question without having to modify any of the piping tags that exist elsewhere in your survey.

    If you ever find yourself in a situation where you cannot figure out which attached text field is Text2, which is Text3, etc., do this: Open Microsoft WordPad. This is a free application that comes with Microsoft Windows. It's available from the Accessories section of the Windows Start menu. Drag the radio button/checkbox question out of the Survey Designer and drop it into WordPad. This will reveal the XML behind the question.

    Each attached text field in the question includes a Description element and an attribute called textQuestionName. Look for the description that matches the textfield you're interested in, and get the field's name from textQuestionName (which usually appears on the line above the description).

    1. 2. 7. 2. List of Built-in Variables << PreviousPiping Data | NextSetting Dynamic Defaults and Bounds >>

    All Illume surveys contain the following built-in variables. Note that variable names are not case sensitive.

    User Data

    User Data comes from participant lists uploaded through the Illume Web Console. These are data that you supply about your participants. Illume surveys always include the following variables for each participant on a participant list. Except for ID, if you do not define these variables, they will simply contain empty values.

    Note that you access each of these variables using {UserData:VariableName}, where VariableName is one of the variables listed above. See Piping Data for examples of how to display User Data variables.

    Participant Response Data

    Participant response data refers to data that an individual participant has submitted in response to a survey question. These data are not available until the survey is running. You can access any participant response using the variable {Response:QuestionName}, where QuestionName is the question's unique name. See Piping Data for practical information on how to pipe participant responses into custom text or into the prompt of a new question.

    Attributes of the Current Question

    These attributes can be very helpful in crafting informative error messages. See Piping Data for examples.

    Attributes of Other Questions

    Miscellaneous Built-ins

    ProgressBar and PercentComplete appear in the header of the default survey template to remind participants of how far they have progressed through the survey.

    Special Built-ins for Email Jobs

    See Composing an Email Message for details about the context in which these tags may appear.

    Special Built-ins for the Save Page and Save Email

    See Setting up Save and Restore for information about the context in which these tags may appear.

    Note: The Save Email that Illume sends to the participant is an HTML formatted email. Illume does not send a plain text version.

    Parameters

    These are not really built-ins. Parameters are variables whose names and values you define for an individual survey. For example, if you want surveyadmin@yourcompany.com to be the email address to which participants write for help, you can define a parameter called "help" and set its value to surveyadmin@yourcompany.com. You can display the variable on any page of the survey, or in the header or footer, or in a question prompt or error message by using the placeholder {ParamValue:help}. Like built-ins, parameter names are not case sensitive, so {ParamValue:help} works the same as {PARAMVALUE:HELP}. If you ever need to change the help contact, simply change the value of help parameter, and Illume will update it everywhere it appears in your survey. See Working with Survey Parameters for details on how to define parameters. See Piping Data for information on how to display parameters in your survey.

    1. 2. 7. 3. Setting Dynamic Defaults and Bounds << PreviousList of Built-in Variables | NextAdding Text, HTML, and Images >>

    Overview of Dynamic Defaults and Bounds

    In versions 2.2 and later, Illume supports dynamic question default and bounds. This means you can set a question's default response, upper bound, or lower bound to a value from one of the following sources:

    Use the following tags to pipe values into defaults and bounds: Case does not matter for these tags: {Value:HEIGHT} and {value:height} produce the same result. The curly braces do matter! Piping tags must be enclosed in curly braces {}!

    Dynamic Bounds

    Questions that use a numeric data type allow you to define the upper and lower bounds of a valid response. You set the bounds in the Response Guides tab of the Question Editor, or in the Response Guides tab of the Attached Text Field editor (if you are working with a text field that is attached to a select-one or check all question).

    For example, assume you have a question called CURRENTWEIGHT that asks a participant's current weight. Earlier questions asked for the participant's minimum weight (MINWEIGHT) and maximum weight (MAXWEIGHT) over the past 12 months. If you want to ensure that the participant enters a current weight that is between his minimum weight and maximum weight, you would set the Lower Bound of CURRENTWEIGHT to {Value:MINWEIGHT} and the Upper Bound to {Value:MAXWEIGHT}.

    When the participant is taking the survey, Illume substitutes the participant's answers to the MINWEIGHT and MAXWEIGHT questions for the {Value:MINWEIGHT} and {Value:MAXWEIGHT} tags. There is some risk in doing this: if the participant did not answer MINWEIGHT or MAXWEIGHT, or if the answers to those questions were not numeric, Illume will not try to validate the answer. If you are going to take advantage of dynamic bounds, you should adhere to the following practices:

    1. The question for which you are setting bounds must have a numeric data type. Any numeric type will work. E.g., An appropriate data type for CURRENTWEIGHT would be "Whole numbers > 0."
    2. The question whose answer you pipe into the bounds should have the same data type as the question itself. E.g. When setting the bounds for CURRENTWEIGHT, whose type is "Whole numbers > 0," you should be sure that MINWEIGHT and MAXWEIGHT also use data type "Whole numbers > 0." The validation may work if the data types do not match, but the chances are significantly better if the data types do match.
    3. The piped questions (MINWEIGHT and MAXWEIGHT) should require a response. If a participant doesn't answer these questions, Illume has no data to pipe into the bounds and cannot perform the validation. In fact, Illume will not even try to perform the validation if it does not have all of the data it needs.
    4. When setting defaults and bounds, you should generally avoid piping from checkbox questions. When applied to checkbox questions, the {Value} tag actually returns the number of items checked. The {Response} tag returns a comma-delimited list of the labels associated with each checked item in a checkbox question. Generally, this is not what you want for defaults, and will certainly not work with bounds.

    Dynamic Default Values

    Dynamic default values work just like dynamic bounds: you can pipe a participant response using the {Value:QuestionId} tag, data from the participant list using the {UserData:FieldName} tag, or a survey parameter using the {ParamValue:FieldName} tag.

    As with dynamic bounds, there are a few things to keep in mind when piping one question's response into the default value of another question:

    1. The question whose answer you pipe into the default value have the same data type as the question itself. E.g. If the current question uses the whole number data type, the value you pipe into the default should be a whole number.
    2. Use the {Value:QuestionId} tag to get the numeric value associated with the item a participant selected in a select-one question. This is usually what you want when you are setting the default of a question whose data type is numeric.
    3. Use the {Response:QuestionId} tag to get the text that appeared next to the option the participant chose. This is usually what you want when you are setting the default of a question whose data type is text.
    4. The question from which you are piping should require a response. If Illume has no data to pipe into the default, then it will leave the default value empty.
    5. When setting defaults and bounds, you should generally avoid using the {Value} tag to get the value of a checkbox question. When applied to checkbox questions, the {Value} tag actually returns the number of items checked. The {Response} tag returns a comma-delimited list of the labels associated with each checked item in a checkbox question. Generally, neither of these values are useful in setting defaults.

    Other Notes About Default Values

    If a question uses response options and no default option is set, the option that will be selected when a participant first sees the question is the "unanswered" option. You can set the text of the "unanswered" option on the Data tab of the Survey Preferences editor. See Customizing Labels for Unanswered Items. The "unanswered" option exists only when the text for the unanswered option is not empty. To remove the default value, simply delete whatever is typed into the default field.

    1. 2. 8. Adding HTML, Images and Page Breaks
    1. 2. 8. 1. Adding Text, HTML, and Images << PreviousSetting Dynamic Defaults and Bounds | NextUsing the HTML Editor >>

    To add text, HTML, or images to your survey, or to embed items like Flash animations, movies, Java applets or sound clips, use the HTML editor.

    To add any of these elements to your survey:

    1. In the right pane of the Survey Editor, click on the item after which you want your text or HTML to appear. (If the item is not currently showing in the right pane, click on the collection that contains the item in the left pane of the Survey Editor.)
    2. Click the Add Text/HTML icon in the toolbar.
    3. Create the HTML in the HTML Editor. You'll find detailed information about how to use the HTML Editor under "Using the HTML Editor."
    4. Click OK to save your work.

    Describing Text/HTML Items for the Data Dictionary

    You'll notice that the Text/HTML editor includes a Data Dictionary tab. While you can give the Text/HTML item a unique name and a description, this information does not actually go into the data dictionary. The information is simply for your own reference.

    Controlling Where and When Text/HTML Items Appear

    Text/HTML items will be shown to all participants, appearing in the same order in which they appear in the Survey Designer. That is, if the Text/HTML item appears after the question called "INCOME" in the Survey Designer, it will appear after the question called "INCOME" in the participant's survey.

    You can move a Text/HTML item to any location in your survey by simply dragging it from its current location and dropping it into the desired location. Moving the item up will cause it to be displayed earlier; moving it down will cause it to be displayed later.

    You can also apply show-if conditions to a Text/HTML item, so that it will be displayed only when the conditions you describe are met. For information on how to create Show-if conditions, see Setting Show-if Conditions.

    1. 2. 8. 2. Using the HTML Editor << PreviousAdding Text, HTML, and Images | NextAdding Page Breaks >>

    Illume's HTML editor enables you to create HTML pages, or parts of pages, without any knowledge of HTML.

    What You See is What You Get

    Except for parameters and built-in survey variables, any content you create in the HTML editor will appear in a participant's browser exactly as it appears in the editor.

    In the HTML editor, survey parameters and built-in variables appear as variable names enclosed in curly braces, such as the built-ins {PercentComplete} and {ProgressBar}. When a survey is running, Illume automatically calculates and displays the values of these parameters, so that survey participants see an actual progress bar and their current completion status. While {PercentComplete} and {ProgressBar} are built in to all Illume surveys, you can define other parameters as you please. See the section on Parameters for more information.

    The HTML editor works like a word processor. For example, to set the font of a section of text, first highlight the text by clicking and dragging the mouse across it. Then choose the font, color, size, justification, or other attributes you wish to apply. Click once anywhere in the editable area to deselect the text, and you will see that the formatting has been applied.

    Note: If you are working on a multilingual survey, and you have translation tools enabled, you will see a list of languages at the bottom of the Text/HTML editor. Choose a language to edit the Text/HTML for that specific translation. Any changes you make the Text/HTML, or to the Description (on the Data Dictionary tab) will apply only to the selected translation. Any changes you make to the unique name of the Text/HTML item, or the the show-if conditions, will apply to ALL translations.

    Adding Tables

    To add an HTML table, move the cursor to where you want the table to be, and click the Insert table button on the toolbar. Currently, the editor supports only tables consisting of a single row and a single column. If you understand HTML, you can create more complex tables by editing the HTML directly, as described below.

    Adding Images

    To add an image to your HTML, follow these steps:

    1. Move the cursor to the position at which you want to insert the image.
    2. Click the Insert image button.
    3. If the image you want to insert has already been added to your survey, it will appear in the Select Resource list. Simply click on the name of the image and skip to step 9 below.
    4. If the image already exists on a web server that will be available to your participants, you may want to simply enter the URL of the image. The image will appear in the participant's survey just like any other image.
    5. If the image you want to insert does not appear in the Select Resource list, click New Resource... to add the image.
    6. In the resource editor, click Upload to upload the image into the survey. This brings up a file selection dialog from which you can choose the file you want to upload. When you find the file, select it and click Open . Illume will upload it into your survey.
    7. The name of the image will appear in the Unique Name field. You can edit this if you please. Note that once an image is uploaded, it will appear in the "Select Resource" list under its unique name, and will be available for reuse anywhere in the survey.
    8. You may provide an optional description for the image. A good description can help you or other survey editors determine whether the image is appropriate for use elsewhere in the survey.
    9. Click OK .
    10. Your image now appears in the list of available resources. It is selected, and the width and height are automatically filled in.
    11. Set the image attributes as you please. These are described below.
    12. Click OK , and the image will be added to the document. You can move the image to another place in the document by simply dragging and dropping.

    Defining Image Attributes

    You can define the following image attributes:

    Deleting an Image

    To delete an image in the HTML editor, simply click on the image and press the delete key.

    Adding Links

    To add a link to your HTML, follow these steps:

    1. Select the text or image to which you want to attach the link. (If you do not select any text or image, the HTML editor will automatically insert the link's URL as the text of the link.)
    2. Click the Insert Link button.
    3. Select the type of link you want to insert. This will generally be one of the following:

      http This is a link to a normal web page.

      https This is a link to a secure web page.

      mailto This is an email link.

    4. Type in the link's URL. For example, if you were linking to Yahoo, you would choose "http" as the links type, and type in "www.yahoo.com" as the URL. Note that the URL already has the prefix you selected from the type list.
    5. Click OK .

    Note that when a participant clicks on a link, the page will load in the participant's current browser window. This means that if the URL is not part of your survey, the participant will leave your survey when he or she clicks on the link!

    For this reason, you may want to add external links only to the Survey End Page.

    You can force the URL to load into a separate browser window by editing the HTML directly (see below). To do this, locate the link in the HTML, and add the attribute target="_blank".

    That is, you would change this markup:

    Yahoo

    to this markup:

    target="_blank" >Yahoo

    Editing Links

    To edit a link:

    1. Select the text or image to which the link is attached.
    2. Click on the Insert Link button.
    3. Change the URL as needed.
    4. Click OK .

    Deleting Links

    To delete a link:

    1. Select the text or image to which the link is attached.
    2. Click on the Insert Link button.
    3. Delete the entire URL.
    4. Click OK .

    Copying and Pasting from Microsoft Word

    You can copy and paste text directly from Microsoft Word into the HTML editor, and your formatting will be preserved. You can also highlight a section of a Word document and drag this highlighted text into the HTML editor. This has the same effect as copying and pasting, bringing both the text and formatting from Word.

    Editing the HTML Directly

    To edit HTML directly, click on the WYSIWYG/HTML button, on the right side of the toolbar. You can switch back to WYSIWYG mode by clicking on the button again.

    1. 2. 8. 3. Adding Page Breaks << PreviousUsing the HTML Editor | NextWorking with Survey Resources >>

    Illume automatically determines where page breaks are required, and creates them while the survey is running. For example, if question number 10 asks a participant's age and question 11 should ask the participant's employment status only if the participant is between 18 and 65 , then Illume will create a page break between questions 10 and 11, because it cannot know whether to present question 11 until after it receives the response to question 10.

    In these situations, you cannot prevent Illume from creating page breaks. You can, however, insert your own page breaks wherever you please. To insert a page break:

    1. In the right pane of the Survey Editor, click on the item after which you want the page break to appear. (If the item is not currently showing in the right pane, click on the collection that contains the item in the left pane of the Survey Editor.)
    2. Click the Add page break... icon in the toolbar.

    The page break appears after the item you selected. You can move it to another location by dragging and dropping it.

    1. 2. 9. Images & Resources
    1. 2. 9. 1. Working with Survey Resources << PreviousAdding Page Breaks | NextPreviewing a Survey >>

    You may add resources such as images, videos, Flash files, and sound files to your survey. The first step is to upload the resource into the survey:

    Adding a Resource to Your Survey

    Follow these steps to add a resource to your survey:

    1. Choose Survey > Survey Resources... from the Survey Designer menu
    2. Click Add.
    3. In the resource editor, click Upload to upload the file into the survey. This brings up a file selection dialog from which you can choose the file you want to upload. When you find the file, select it and click Open. Illume will upload it into your survey.
    4. The name of the file will appear in the Unique Name field. You can edit this if you please. Note that once a resource is uploaded, it will appear in the Select Resource list under its unique name, and will be available for reuse anywhere in the survey.
    5. You may provide an optional description for the resource. A good description can help you or other survey editors determine whether the image is appropriate for use elsewhere in the survey.
    6. Click OK .

    Image resources appear in the preview pane. Simply click on the name of an image in the Survey Resources list to make it appear.

    To preview a text or HTML resource, click the name of the item in the list, then click the Show Text/HTML button. This button appears in the preview pane only when you've selected a text or HTML resource.

    Making a Resource Appear in Your Survey

    Once a resource is included in your survey, use the HTML Editor to make the resource appear where you want it to appear. See Using the HTML Editor for more information.

    Editing a Survey Resource

    If you need to change the name of an existing survey resource, or upload a newer version of the resource, follow these steps:

    1. Choose Survey > Add/Edit Survey Resources... from the Survey Designer menu
    2. Double click on the name of the resource you want to edit.
    3. Type a new unique name, if you wish.
    4. Click Upload if you need to upload a newer version of the resource. This brings up a file selection dialog from which you can choose the file you want to upload. When you find the file, select it and click Open . Illume will upload it into your survey.
    5. Click OK .

    Deleting a Survey Resource

    Follow these steps to delete a resource from your survey:

    1. Choose Survey > Add/Edit Survey Resources... from the Survey Designer menu
    2. Click once on the name of the resource you want to edit.
    3. Click Delete .
    4. Click OK when asked if you really want to delete the resource.
    5. Click OK to close the Survey Resources editor.

    Resources and Translation

    Text from uploaded resources will appear in translation packages only if the uploaded resource is text-based. For example, an HTML page uploaded as a resource will become part of a translation package. Text appearing in binary resources, such as images and Flash files, will not become part of a translation package.

    1. 2. 10. Previewing Surveys
    1. 2. 10. 1. Previewing a Survey << PreviousWorking with Survey Resources | NextPreviewing an Individual Item >>

    You can preview your entire survey at any time. When you preview a survey, you will see the survey almost exactly as a participant will see it. The only differences between what you see and what a participant will see are 1) your preview appears in a special preview window, rather than in a full browser window, and 2) the previewer puts a "Comments" icon next to each question.

    The preview version of the survey also behaves exactly as the participant's will behave. All of the response requirements are enforced, all of the response validation messages work, and all of the show-if conditions apply.

    To preview a survey, simply click on the Preview icon in the toolbar. Your survey will appear in the preview window. If your survey includes more than one language, use the language list in the lower right corner of the previewer to choose which language to display.

    The survey previewer's language selection list

    Adding Comments to a Question

    Click on the Comments icon next to any question, and the comments editor will appear. The comments editor displays a description of the question and any existing comments. It provides a space for you to add new comments.

    Simply type your comments and click OK to add them to the question. The comment icon will appear next to this question in the Survey Designer, and the comments you typed will be available for review to anyone editing the survey.

    Show All Pages (Preview Layout)

    Check this box if you want to see the entire survey at once, complete with page breaks. Checking this box presents the same view you see when you select the Preview Survey Layout option from the Survey Designer's File menu. This mode displays jumps and show-if conditions, along with the logic attached to each.

    Print Preview

    The Print Preview button at the bottom of the Preview window displays the current survey page as it would appear when printed on paper.

    Print

    The Print button at the bottom of the Preview window sends the current survey page directly to your printer.

    Reload

    Click the Reload button to go back to the first page of the survey.

    Done

    Click the Done button to close the Preview window.

    Previewing a Non-local Survey

    To preview a survey that you have not checked out:

    1. Click the Survey Administration tab in the Survey Console.
    2. Right click the name of the survey and choose Preview Selected Survey... from the context menu.

    This preview shows the survey in print mode, rather than in interactive mode. That is, the entire survey appears on a single scrolling page, complete with question ids and comments.

    If the survey includes more than one language, use the list in the lower left corner of the previewer to choose which language to display.

    The survey previewer's language list

    1. 2. 10. 2. Previewing an Individual Item << PreviousPreviewing a Survey | NextPreviewing a Survey's Layout >>

    You can preview any question or Text/HTML item in your survey:

  • Right-click on the item and select "Preview Selected..." from the context menu, or
  • Select the item with a single click and then click the Preview Selected Item icon from the toolbar.

    Note that when you preview an individual item, the previewer does not substitute actual parameter values for parameter value placeholders. It simply displays the placeholders. If you want to preview the item with the actual parameter value instead of the placeholder, you must preview the entire survey. See "Previewing a Survey" for details.

  • 1. 2. 10. 3. Previewing a Survey's Layout << PreviousPreviewing an Individual Item | NextViewing a Published Survey >>

    You can preview all survey pages at once by selecting Preview Survey Layout... from the Survey Editor's File menu. This presents all of the items in your survey, and displays where all page breaks will occur. Note that automatically generated page breaks are labeled "Auto-Pagebreak," while those you added manually are labeled "Pagebreak."

    Unlike the regular Survey Preview, the Layout Preview does not apply show-if conditions or validate response requirements. It does however display jumps and show-if conditions, along with the logic attached to each. The purpose of this preview is to display all questions in order, and to provide a means of printing out all of the questions in a single document.

    As in the normal preview mode, you can add comments to questions.

    Print Preview

    The Print Preview button presents a preview of a printout of all survey questions, in order.

    Print

    The Print button prints the entire survey, as it appears in the print previewer.

    Reload

    The Reload button reloads the survey into the Preview window.

    Done

    The Done button closes the Previewer.

    1. 2. 10. 4. Viewing a Published Survey << PreviousPreviewing a Survey's Layout | NextPrinting an Entire Survey >>

    To view a published survey:

    1. Click the Survey Administration tab in the Survey Console.
    2. Right click the name of the survey and choose View Published Survey... from the context menu.

    1. 2. 11. Printing Surveys
    1. 2. 11. 1. Printing an Entire Survey << PreviousViewing a Published Survey | NextPrinting a Single Survey Item >>

    To print an entire survey to paper:

    1. Click the Save icon in the Survey Designer toolbar to save the latest changes to your survey.
    2. Select File > Preview Survey Layout... .
    3. Click the Print button at the bottom of the Layout Previewer.

    Note that the printed version of the survey will differ from the browser-based version in the following ways:

    1. 2. 11. 2. Printing a Single Survey Item << PreviousPrinting an Entire Survey | NextReusing Questions and Other Survey Objects >>

    You can print any individual question or Text/HTML item in your survey by following these steps:

    1. In the right pane of the Survey Editor, right-click on the item to which you want to attach a comment. (If the item is not currently showing in the right pane, click on the collection that contains the item in the left pane of the Survey Editor.)
    2. Choose Preview Selected Item... from the context menu.
    3. Click the Print button in the Previewer.

    1. 2. 11. 3. Reusing Questions and Other Survey Objects << PreviousPrinting a Single Survey Item | NextInserting Special Characters >>

    Illume is designed so that survey objects can be easily reused. There are three ways to reuse questions, question blocks and Text/HTML objects. Note, however, that the second method has some distinct advantages.

    Copy from Survey to Survey

    One way is to copy items from one survey to another. Simply open both surveys and drag the item you want to reuse from one survey into the other.

    Copy Items from the Repository

    You may also drag items out of the repository into your survey. If the item you want to use exists in the repository, this is the preferred method of reuse.

    The major advantage of reusing items from the repository is that repository items permit cross-survey queries. You'll find more detailed information about this in the Repository Overview.

    Note that if a repository item appears with red text, it has not yet been approved for reuse, and you will not be able to drag it into your survey. Only approved repository items (those appearing in black) may be reused.

    Sharing Items Through Email

    You may drag an item out of an existing survey and drop it into the text of an email. When you do this, Illume inserts an XML description of the object into your message.

    The recipient of the message can highlight the XML, then drag it into his or her own Illume survey. The Survey Designer will read the XML description and create an exact copy of the object inside the new survey.

    1. 2. 12. Advanced Topics
    1. 2. 12. 1. Inserting Special Characters << PreviousReusing Questions and Other Survey Objects | NextManually Editing Survey XML >>

    If your survey requires special symbols, accented letters, or characters that do not belong to the Latin alphabet, use Microsoft's built-in character map to add the characters to your survey.

    1. From the Windows toolbar, choose Start > Accessories > System Tools > Character Map
    2. For each character you want to add, click on the character and click Select to copy it into the Characters to copy field.
    3. Once you've selected all of the characters you want to copy, click the Copy.
    4. Click once in the Question Designer, or HTML editor and move the cursor to the point at which you would like to insert the special characters.
    5. Hold down the control key and press the letter v (Ctrl-V) to paste the special characters into your text.

    Note: You can paste special characters into almost any Windows application using this method.

    1. 2. 12. 2. Manually Editing Survey XML << PreviousInserting Special Characters | NextValidating a Survey >>

    Illume Surveys are stored as XML documents in C:\Documents and Settings\YOUR_USER_NAME\Application Data\DatStat\Survey Cache\localhost. (Substitute your Windows login name for YOUR_USER_NAME.)

    Open the XML file in any text editor to edit the XML by hand. You should not edit the XML file if the Survey Designer is open, because your text editor and the Survey Designer may try to save conflicting changes to the same file.

    If want to edit only a single survey item, you can drag the item from the Survey Designer into a text editor, and the XML will appear in the editor. After editing, select all of the XML and drag it back into the Survey Designer. The Survey Designer may ask you to give a new name to the item you are dragging in.

    If you edit any Survey XML by hand, be sure to validate the survey before you start editing it again the Survey Designer. See Validating a Survey.

    1. 2. 12. 3. Validating a Survey << PreviousManually Editing Survey XML | NextHidden Variables and Preloaded Participant Data >>

    To check whether a survey is valid, choose Tools > Validate Survey... from the Survey Designer menu. If the Survey Validator finds any problems, it will explain them.

    A survey may become invalid when any of the following occur:

    1. 2. 12. 4. Hidden Variables and Preloaded Participant Data << PreviousValidating a Survey | NextPassing Data through the Survey URL >>

    This article describes how to create hidden variables in your Illume survey. Hidden variables store data that can be used for calculations, and can be saved with a participant's submitted survey.

    Participants do not explicitly answer questions to set the value of hidden variables. Instead, data for hidden variables comes from one of three places:

    1. Illume can preload data from the participant list into the participant's survey.
    2. Illume can read data appended to the survey URL and store it in a hidden variable.
    3. Custom software developed with the Illume SDK (software development kit) can read and set values stored in hidden variables.

    Creating Hidden Variables and Preloading Data from Participant Lists

    Participant Lists include a list of all the participants invited to take your survey, along with a unique id for each participant and optional additional information. It may be useful at times to preload data from the participant list into a participant's survey. For example, if you want your survey to greet each participant by name, you can preload the name and display it when the participant logs in. Sometimes you may want to pre-load data that will never be displayed to the participant, but that will end up in the data that is submitted with the participant's survey. To preload data from a participant list into a survey, follow these steps:

    1. From the Survey Designer's Survey menu, choose Preload/Hidden Variables...


    2. Click Add... to add a new variable.


    3. Type in a name for the variable you are loading. This should be a descriptive name, like "USERNAME" for a participant's name. The variable name must be unique: that is, no other questions or objects in your survey can have the same name as this variable. 

      Preload Editor - General
    4. Choose the Value Type that you will be using
      1. Single-value will utilize the data type that you choose from the drop-down menu. This refers to a preload/hidden variable that will have exactly one value. Data type Text will work for any value that you pre-load from a participant list. However, if you are going to use the preloaded data in a numeric calculation later in your survey, you should choose either Whole Numbers or Decimal Numbers. Illume will not attempt to perform numeric calculations on Text data.
      2. Multi-Value (Check All) assumes that data will be passed into your survey in a comma-delimited fashion and, the values correspond to the scale that you define in the Scale tab. If you are using this preloaded/hidden variable in a MultiControl component, your scale is capable of dynamically generating your table. See the section on MultiControl for more information on this topic.
    5. Choose a default value for the variable. The following options are available:

      None - When participants start the survey, the variable will have no value.

      User data - When each participant begins the survey, the variable will be set to a value found in the participant's participant list entry. Participant lists include the columns FIRSTNAME, LASTNAME, EMAIL, CUSTOMID, and any custom columns you define.

      You must enter the name of the participant list column from which to populate the data. In the image above, the value for the variable PL_YOB comes from the participant list column called BIRTH_YEAR. When a participant starts the survey, Illume copies the participant's birth year from the participant into a hidden variable in the survey.

      Custom - Choosing Custom enables you to set the default value of the variable to any value you choose. Simply enter the value in the box next to the word Custom. Illume will set the value of this variable to the value you entered for all participants starting the survey.

      When choosing the Custom option, be sure the value you enter matches the variable's data type. For example, if you've chosen Whole Numbers as the data type, be sure to enter a number as the default value; otherwise, the default value will be "unanswered."
    6. (Optional) Check any of the checkbox options described under Special Options for Preloaded Data below.
    7. (Optional) Type a description for this variable. Unless this is a runtime only variable, the description will appear in the data dictionary along with the descriptions of all other survey questions.

    Steps to Create a Multi-Value Preload/Hidden Variable

    1. To add a Preload/Hidden Variable begin by selecting Survey > Preload/Hidden Variables
    2. Click Add
    3. The Unique name can be anything you like
    4. Select the Value Type as Multi-Value
    5. The Default Value should be User Data, with the field being the same as the column in the participant list
    6. Enter a Prompt Description
    7. Click the Scale Tab
    8. Enter the Name and visible text for each Scale Value and Click Add
    9. You should see the Scale Values in the lower field as they are added.
    10. After you have added all of the Scale Values, Click OK

    Scale Editor for Multi-Value Preload

    NOTE: There is only a need for one column in the Participant list for this variable if you are filling it with data from the Participant List.

    Special Options for Preloaded Data and Hidden Variables

    Disable this preload - This disables the preload without deleting. This may be useful for temporarily turning off a preload.

    Automatically generate a scale as unique values are discovered - This option is useful if you know ahead of time that the number of possible values for this variable will be limited. For example, if you are preloading the US state in which a participant lives, there are only 51 possible values (including DC). The scale that Illume generates appears in the Web Console's Data Dictionary. In the Web Console, items with scales can be included in cross-tab queries and summary statistic results. This is one of the most common reasons for generating scales for preloaded data.

    If the number of possible values is very large, checking this option may cause Web Console queries to run slowly.

    Runtime only (do not store the value of this item) - This option makes the preloaded value available while the survey is running, but does not submit the value to the database when the participant submits the survey. This can be useful for data that are required for calculations, show-if conditions, or run-time display but that should otherwise be kept separate from results.

    Conditions Under which Preloads Will Fail

    Illume will not preload data if either of the following conditions are true:

    1. There is no data to preload for the current participant. E.g. Your survey preloads each participant's phone number from the participant list into the survey, but the participant list has no phone number for participant 9999. The preload for participant 9999 will be empty.
    2. The data that Illume is trying to preload do not match the data type you specified in the preload variable. E.g. Your survey preloads each participant's weight into a variable called WEIGHT, whose data type is "Whole Number." In the participant list, participant 9999's weight appears as "N/A". Because "N/A" is not a whole number, Illume loads no value into the WEIGHT variable for participant 9999.
    The second problem is most likely to occur with variables of type Date, Time and Date/Time. Date and time values must be properly formatted before they can be loaded. See Date and Time Data for more information.

    Preloading Data through the Survey URL

    You can pre-load data by embedding it in the URL a participant uses to access your survey. For details, see Passing Data though the Survey URL. There are two things to keep in mind pre-loading data through the URL:

    1. You must first create the variable in the Preload Editor. Otherwise, Illume has no place to store the value it receives in the URL.
    2. If the variable name exists in both the participant list and in the URL, Illume will use the value in the URL if it is available. If there is no value in the URL, Illume will use the value in the participant list, if available.

    Passing data to a Multi-Value Preload/Hidden Variable from a Query String

    Like all Preload/Hidden Variables, it is possible to pass the information directly from a Query string into the variable. 

    Use the name that you added in the  Multi-Value Preload/Hidden Variable Userdata field and the Scale Values separated by commas.  If the Scale value is not passed it will be assumed to be not selected.

    In the example Query String, the Multi-Value Preload/Hidden Variable CRITERIA will be Yes for OPTION1 and OPTION2 and No for OPTION3

    Example: http://lorien/46Test-collector/Survey.ashx?Name=MVPreloadTest&LoginID=123455&CRITERIA=OPTION1,OPTION2

    Again, see Passing Data though the Survey URL for more details.

    1. 2. 12. 5. Passing Data through the Survey URL << PreviousHidden Variables and Preloaded Participant Data | NextJumping >>

    Passing Data into a Survey through the Survey URL

    An Illume survey can capture any data passed in through the query string of the survey URL. These data are treated as if they came from the participant list. Participant list data and data that come in through the query string of the survey URL have the following characteristics:

    A Practical Example

    Assume you have a survey with 2 different email invitations: one invitation offers participants a free music CD for completing your survey, and the other invitation offers participants a $10 check. You want to know which invitation has the higher response rate. The first invitation includes the following survey URL: https://www.datstat.com/Collector/Collector.ashx?LoginId=abc123&INCENTIVE=FREECD The second invitation includes this URL: https://www.datstat.com/Collector/Collector.ashx?LoginId=abc123&INCENTIVE=CHECK&CRITERIA=OPTION1,OPTION2 Anyone accessing the survey through either of these links causes a UserData variable called INCENTIVE to be created as well as a Multi-Value variable called CRITERIA with OPTION1 and OPTION2 set to Yes. You can get the values of these variables anywhere in your survey by typing {UserData:Incentive} or {UserData:Criteria.OPTION1}. (The case of the letters does not matter. The curly braces do!) You can create a question in your survey that asks which music CD the participant would like to receive, and you can set a show-if condition on that question so that it appears only when {UserData:Incentive} equals "FREECD". While variable names in the URL are case-sensitive in most web-based applications, variable names in the URL of an Illume survey are not case sensitive. The Illume server does not differentiate between INCENTIVE=CHECK and incentive=CHECK.

    Saving Data from the Query String

    Like data from the participant list, data from the query string are not automatically saved with the participant's responses. If you wanted to save the Incentive data from the example above, follow these steps:

    1. Decide ahead of time what the name of the variable will be! For this example, we will use the variable name INCENTIVE.
    2. In the Survey Designer, choose Survey > Preload/Hidden Variables....
    3. Click the Add button.
    4. Enter a unique name for the data. This name will appear in the Data Dictionary and will be the name of the variable in which the data are stored in the Web Console. For this example, we will call the variable PAYMENT_TYPE.
    5. Choose a data type that matches the data you are expecting to passed in the query string. For the INCENTIVE example above, you should choose Text.
    6. Under Default Value, choose the User data option.
    7. In the text box next to User Data type the name of the variable that will appear in the URL. For example, if the variable in the URL is called INCENTIVE, then type INCENTIVE here. This tells Illume to take the data from the INCENTIVE variable in the survey URL and to store them in the variable PAYMENT_TYPE when the participant submits the survey.
    8. (Optional) Click the Scale tab and choose a scale option for this variable. A scale can be useful for creating calculated variables, show-if conditions, and data queries. The scale options include:

      Do not use a scale for this item. This is a good choice when the list of potential values for the variable is large.

      Automatically generate a scale as unique values are discovered. This is useful if the the variable may include an unknown set of responses within a limited range. For example, if you are passing the name of a partner site through the URL, you may not know ahead of time who all the partner sites will be, but you do know that there will not be more than a few dozen of them.

      Predefined. Use this if you know ahead of time all of the possible values that the variable may store.
    9. Click OK.
    Note: The Preload Editor first looks in the participant list for the field you named in User data name, and then it looks at the contents of the survey URL. If your participant list already contains a field called INCENTIVE, and you pass in an INCENTIVE value on the URL, then {UserData:Incentive} will contain the value passed in through the URL rather than the value from the participant list. In short, the value from the URL overrides the value from the participant list.

    General Notes about URLs and Query Strings

    The query string portion of a URL consists of everything after the first question mark in the URL. In the example below, the query string appears in bold italics: https://www.datstat.com/Collector/Collector.ashx?product=gadget&incentive=freecd&source=yahoo+shopping This query string includes 3 variables: product (this might indicate the type of product the participant purchased), incentive (which may indicate the type of payment the participant has been promised) and source (which may indicate the page or web site on which the link to your survey appeared). Each variable is represented by the variable name, followed by an equal sign =, followed by the variable's value. Each name-value pair in the query string is separated by an ampersand &. Variable names should include only letters, numbers and underscores. Spaces in variable values must be represented by a plus sign +. (Notice that the source in the URL above, yahoo shopping, appears as yahoo+shopping.)

    Reserved Words

    The following variable names are reserved for use by the Illume server. You cannot use these variable names in your URL:

    Words with Special Meaning

    The following words have special meaning in the URL. You may use them, but you should understand first what they do.

    Adding a Test Data Flag in the Survey URL

    If the URL used to access a survey includes TESTDATA=1 in the query string, the data from that survey will be marked as test data. For example, in a survey that uses the variable customid to authenticate participants, the following survey URL would give participant 9999 access to the survey: https://www.datstat.com/Collector/Collector.ashx?customid=9999 When the participant submits the survey that he or she accessed through this link, the data will be saved as normal response data. For testing purposes, the participant could access the survey through this URL: https://www.datstat.com/Collector/Collector.ashx?customid=9999&TESTDATA=1 Any data the participant submits after accessing the survey with this URL will be treated as test data. The Web Console separates normal participant data and test data so that test data does not skew actual results.

    Note Each participant can only take an authenticated survey once, unless this participant is a test participant or the survey session is marked as a test session by appending "&TESTDATA=1" to the URL.
    Avoid using real participants to submit test data, because doing so could prevent the participant from being able to take a survey and will possibly skew your non-test data.

    1. 2. 12. 6. Jumping << PreviousPassing Data through the Survey URL | NextSetting up Save and Restore >>

    Overview

    A jump causes a participant to jump from one part of a survey to another, skipping everything in between. Jumps can be conditional, occurring only when a participant meets certain criteria, or unconditional, in which case they always happen for all participants. A jump can move a participant forward or backward through a survey. Each survey can contain multiple jumps.

    Warnings

    While jumps are convenient, they can make a survey excessively complex, difficult to test, and difficult to maintain. In general, you should use show-if conditions rather than jumps, for these reasons:

    When to Use Jumps

    There are two particular cases in which jumps are preferable to show-if conditions:

    1. When you want a participant to go directly to the end of a survey.
    2. When a single jump will prevent you from having to create many identical show-if conditions.

    How to Use Jumps

    To add a jump to your survey, follow these steps:

    Notice that in the Survey Designer, the Jump appears with its name: JMP1, its destination: Jump-to: C1 and its description: Participants who don't drink alcohol jump directly to C1. The yellow circle to the left indicates that this jump is conditional. Hold the mouse pointer over the yellow circle to see the jump-if condition.

    1. 2. 12. 7. Setting up Save and Restore << PreviousJumping | NextUsing Calculated Variables >>

    This article describes how to set up Save and Restore on unauthenticated surveys. Save and Restore enables survey participants to save a survey in progress and resume work on it later.

    Authenticated Surveys

    Authenticated surveys are surveys that are associated with one or more participant lists. Only participants on the lists can take the surveys, and Illume keeps track of which survey belongs to which participant.

    Authenticated surveys always have the restore feature enabled, so there is no need to set it up. When a participant comes to your authenticated survey, Illume always checks first to see if the participant has a survey in progress. If so, Illume gives the participant the option to restore the survey in progress, or to start over.

    You can customize the Restore and Start Over buttons. See Customizing Survey Buttons for details.

    You may want to add the Save button even for authenticated surveys for two reasons: its presence lets participants know that they can save the survey and resume it later, and it enables them to save responses on a page they've only partially completed. Without the save button, Illume saves only the participant's last completed page. (The last page on which they clicked the Next button.) 

    Unauthenticated Surveys

    Unauthenticated surveys are open to the public. They do not need to have an associated participant list. They simply grant access to everyone.

    You must set up Save and Restore for Illume to be able to reconnect an unauthenticated participant with the survey he or she had been working on.

    To set up Save and Restore for your unauthenticated survey, follow these steps:

    1. Choose Edit > Preferences... from the Survey Designer Menu.
    2. Click the Buttons tab of the Preferences Editor.

      Button preferences

    3. Choose Save from the Buttons list on the left side of the Preferences Editor.
    4. Type the text for the Save button in the Button Text entry. Whatever you type here will appear as the text of the Save button.
    5. Check at least one Placement option for the Save button.
    6. Choose Send Email from the Buttons list.
    7. Type the text for the Send Email button in the Button Text entry.
    8. Check at least one Placement option for the Send Email button.
    9. Click the Page Text tab.
    10. Choose Save Page from the Set text for list.
    11. Compose the text you want to appear on the Save Page. This is the page participants see after clicking the save button. Note that the sample below uses two special tags:

      {ResumeRawURL} will be replaced in the live survey by the actual unique URL the participant can use to resume his or her survey.

      {SavePageEmailText} will be replaced in the live survey by a text box in which the participant can enter his or her email address. Illume will validate the email address.

      Save page text

    12. Click the Save Email tab.
    13. Compose the email message you want Illume to send to the participant. Note that the sample below contains two special tags.

      {ResumeUrl:Click Here To Resume} will be replaced in the actual email with a clickable link that says "Click Here To Resume." Clicking the link takes the participant back to his or her survey in progress. Note that whatever text you type after the colon in this tag becomes the text of the clickable link.

      {ResumeRawUrl} will be replaced in the actual email with the full URL the participant needs to resume his or her survey. This full URL will appear as a clickable link in most email clients (such as Microsoft Outlook). The participant may click the link, or cut and paste the URL into a browser to resume their survey.

      Note: The Save Email that Illume sends to the participant is an HTML formatted email. Illume does not send a plain text version.

      Text for the save email
    14. Click OK to save your changes.

    When a participant clicks the Save button, they will see a page like the one below.

    Sample Save Page

    If the participant chooses to have the URL emailed, Illume will attempt to send the email immediately.

    Error Messages for the Save Email

    Illume includes some special customizable messages for the Save Email.

    Click on the Error Messages tab of the Survey Preferences editor to set the text of these messages.

    Error message for entering an invalid email address on the save page

    From the Error message for list, you set text for any of the following items pertaining to the Save page.

    The email address entered on the Save page is invalid. This message appears if the participant enters an invalid email address. Illume will not try to send an email if the address is invalid. Notice that the message above uses the special tag {SavePageEmailAddress}. In the actual error message, this will be replaced with the email address that the participant entered.

    There was a problem sending an email to the participant from the Save page. This message appears after the participant clicks the Send Email button if Illume was not able to send the email.

    An email was sent successfully to the participant from the Save page. Illume displays this message to confirm that the email was sent.

    1. 2. 12. 1. Using Calculated Variables
    1. 2. 12. 1. 1. Using Calculated Variables << PreviousSetting up Save and Restore | NextThe DatStat Object >>

    Illume can perform calculations while a survey is in progress, and can store the result of the calculation with the rest of the survey data it collects. Calculated variables are particularly useful for identifying whether a respondent fits a particular profile.

    For example, in a survey on depression, respondents may receive a certain number of points for each question to which they answer yes. A calculated variable can keep track of the points as the survey progresses, adding them all together to produce a sum that indicates the respondent's overall level of depression.

    To implement this type of logic, you must first create a calculated variable, as described below. Then you would create a question (or collection of questions) with a show-if condition that tests your calculated variable. See Setting Show-if Conditions for more information about how to set the conditions under which questions or collections will appear.

    Participants may be required to answer (or allowed to skip) questions or entire sections of a survey based on calculated variables. Continuing the example above, respondents whose calculated depression scores are beyond a given threshold may be required to answer follow-up questions that those with lower calculated scores may skip.

    Defining a Calculated Variable

    To define a calculated variable, follow these steps:

    1. Choose Survey > Survey Calculations... from the Survey Designer menu
    2. Click the Add button to add a new calculated variable, or double click on the name of an existing calculation to edit it.


    3. In the Calculation Editor, give your calculated variable a unique name if it does not already have one. You can also provide an optional description to help you and others remember what this variable means.
    4. Choose a data type. The data type you choose depends on what result you expect your expression to produce. Mathematical operations and any true/false expression produce numbers, so these require a numeric data type. (True expressions are equal to 1; false expressions are equal to 0.) Expressions that return text data require a Text data type.
    5. Assign an optional default value. This will be the value of the calculation when there are not enough data to perform the actual calculation. For example, if your calculation is the sum of A, B and C, the calculation will contain the default value until the participant has answered questions A, B and C.
    6. Click Insert Expression to select survey variables to include in your calculation.
    7. In the Expression Calculator, choose the variables required to perform the calculation. To select more than one variable, hold down the Control key while you click on each variable you want to include. Note that the selected variables appear in an expression below the variable list. The expression uses only addition. You will be able to change this in a moment.


    8. After choosing all of the variables you want to include in your calculation, click Paste. Your expression will be pasted into the Calculation Editor. Beneath the Insert Expression button, you should see the message "Calculation is valid and evaluated successfully."
    9. You can now edit the calculation by hand. Illume will evaluate any simple and complex JScript.NET expressions. Expressions cannot include user-defined objects or functions, but they can include built-in JScript.NET objects, datatypes, methods and operators. Note JScript.NET is the version of JavaScript used by Microsoft Windows and Internet Explorer. It is essentially a superset of standard JavaScript (a.k.a. ECMAScript). See Microsoft's JScript.NET Language Reference for more information about JScript.NET. If there is a problem with the calculation, a message describing the problem will appear below the Insert Expression button, and the offending part of the calculation will be highlighted in red. If the calculation is valid JScript.NET but the calculation editor does not have enough information to evaluate it, you'll see the message Calculation is valid but failed to evaluate. The calculation will be evaluated while the survey is running, if there is enough information to perform the evaluation. (I.e., if the participant answered the questions to which the expression refers.) Note: Illume uses parentheses to determine precedence when evaluating calculations. This is described under "Using Parentheses in Calculations" below.
    10. Click OK .

    How Calculations Work

    For each calculation, Illume creates a variable with the same name as the calculation. Illume attempts to evaluate all of the calculations in the survey each time a participant moves from one page to the next.

    Illume substitutes the value of the named variable for each of the {Value} tags. For example, if a participant entered "200" in response to the question named WEIGHT that asked "What is your weight (in pounds)?", Illume substitutes 200 for the tag {Value:WEIGHT}.

    Illume will perform value substitutions on any variables for which it has data. It does not matter whether that data came from a participant response, from a variable appended to the survey URL, or from data that was pre-loaded from the participant list. (See the articles on Preloading Participant Data for details on how to get data from your participant list into your survey. See Passing Data Through the Survey URL for information on how to pass in survey data through a link.)

    If Illume cannot perform the calculation, the value of the calculation will be the default value you set for the calculation in the Survey Calculations Editor. There are three conditions under which Illume cannot perform a calculation:

    1. The expression is invalid. The Survey Calculations Editor will tell you if your calculation is invalid before you save it.
    2. The expression includes variables whose values are unanswered or unknown.
    3. The calculation would result in an error. The most common causes of this are attempting divide by zero and supplying a value of the wrong data type. For example, if your calculation is {Value:HEIGHT} / {Value:WEIGHT}, you must design your survey to allow only numeric values for the height and weight questions. Illume can divide by the numeric value "150" but it cannot divide by the text value "one hundred and fifty."

    The calculation itself is a JScript.NET expression, or a series of JScript.NET statements. Illume evaluates the JScript.NET using the eval() function and sets the value of the calculated variable to whatever eval() returns. There are two things to note about eval() in JScript.NET:

    1. eval() returns the value of the last expression in the script.
    2. eval() does not permit a return statement.

    The following calculation determines the total price for a quantity of some material, then applies a discount of 5%:

    var weightInGrams = {Value:KILOGRAMS} * 1000;
    var pricePerGram = 0.13;
    var totalPrice = weightInGrams * pricePerGram;
    var discount = 0.05;
    totalPrice * (1 - discount);

    Notice that the value to be returned is expressed on the last line as totalPrice * (1 - discount), and that there is no return statement. Because JScript's eval() returns the value of the last expression, the result of your calculation will be the value of the last expression in the calculation.

    Calculation Operators

    The following operators are available for calculated variables:

    Arithmetic Operators

    Comparison Operators

    Logical Operators

    Date and Time Calculations

    Though you can use JScript date objects in calculations, date and time calculations can be tricky. Calculations that use the current time must take into account the fact that Illume re-calculates calculated variables every time participants move from one page to the next. This means that if you are not careful, the calculation will change every time the participant goes to a new page.

    For an example of a time calculation that averts this problem, see How can I time a participant's progress through portions of my survey? 

    Date calculations are tricky because programmers often make incorrect assumptions about units of time. For example, because the JScript date object uses milliseconds as its unit of time, you might think it's easy to measure a span of years by converting years to milliseconds and performing simple arithmetic on the milliseconds. This may lead to incorrect calculations, since leap years are longer than standard years.

    Months are notoriously irregular. They can have 30 days, or 31, or 28, or in some cases, 29.

    Days irregular as well. In most parts of the US, the first Sunday in April is a 23-hour day, and the last Sunday in October is a 25-hour day.

    The following JScript calculates a participant's age on the date of the survey. This calculation assumes that the variable BIRTHDATE is a variable of type Date:

    var today = new Date();
    var dob = new Date({Value:BIRTHDATE});
    var yearDiff = today.getFullYear() - dob.getFullYear();
    var monthDiff = today.getMonth() - dob.getMonth();
    var dayDiff = today.getDate() - dob.getDate();
    if(monthDiff < 0 || (monthDiff == 0 && dayDiff < 0))
     yearDiff--;
    yearDiff;

    If BIRTHDATE were a text variable, and had the format mm/dd/yyyy, the calculation would be as follows:

    var today = new Date();
    var dob = {Value:BIRTHDATE} + "";
    var dateParts = dob.split(/\D/);
    var month = parseInt(dateParts[0], 10);
    var day = parseInt(dateParts[1], 10);
    var year = parseInt(dateParts[2], 10);
    if(year < 100)
     year += 1900;
    var yearDiff = today.getFullYear() - year;
    var monthDiff = today.getMonth() - ( month - 1);
    var dayDiff = today.getDate() - day;
    if(monthDiff < 0 || (monthDiff == 0 && dayDiff < 0))
     yearDiff--;
    yearDiff;

    Note that the value of the value of the calculated variable is set to the value of the last expression evaluated in the JScript. In the examples above, that is the variable yeardiff. Keep in mind that because Illume uses eval() to evaluate the JScript in calculated variables, you do not need a return at the end of the script.

    Reverse Scoring

    While the {Value} tag yields a question's selected response value, the {RScore} tag yields the reverse score. 

    To get a question's reverse score, use the {RScore} with the question id. For example, to get the reverse score of the question SATISFACTION, use the tag {RScore:Satisfaction}.

    Reverse scoring is generally used on questions that have both negative and positive items in the scale, though Illume permits reverse scoring of any items.

    For questions with numeric scales, the reverse score is the score in the same position at the opposite end of the scale. The following tables illustrate reverse scores for items with numeric scales.

    ScoreReverse Score
    -11
    00
    1-1

    ScoreReverse Score
    14
    23
    32
    41

    For Check all that apply questions, the {Score} tag gives the number of items checked. The {RScore} tag gives the number of items NOT checked.

    For individual checkboxes, the {Score} tag yields a value of 1 if the item is checked and 0 if the item is not checked. The {RScore} yields the opposite values.

    For non-question items (such as calculations and pre-loaded variables), the {Score} tag yields the item's value. The {RScore} tag always yeilds one of the "not set" values described below.

    Reverse Scoring Values for Unanswered/Unset Items

    If a question has not been answered, or has no value, the {RScore} will return one of the following values, depending on the item's data type:

    Using Parentheses in Calculations

    Illume calculations use parentheses to determine which parts of a calculation should be evaluated first. If your calculation uses only addition and subtraction, parentheses do not matter. If your calculation uses multiplication or division, parentheses matter very much.

    Illume will scan a calculation from right to left (that's the opposite of the direction in which most Western languages are read), evaluating all expressions in parentheses, followed by all multiplication operations, then all division operations, then all addition operations, and finally all subtraction operations.

    Note the following examples:

    1. ({Value:SALARY} + {Value:BONUS} + {Value:OTHERINCOME})

      This calculation simply adds together a participant's salary, bonus, and other income.
    2. ({Value:SALARY} + {Value:BONUS} * {Value:TAXRATE})

      This would be an incorrect calculation for the amount of income tax a person pays. If salary is 40000 and bonus is 2000 and tax rate is 0.28, this calculation will produce the following result:

      40000 + (2000 * 0.28) = 40000 + 560 = 40560

      The correct calculation uses parentheses to add salary and bonus before applying the tax rate.

      (({Value:SALARY} + {Value:BONUS}) * {Value:TAXRATE})

      Which works out as follows:

      (40000 + 2000) * 0.28 = 42000 * 0.28 = 11760

    When using multiplication or division, use parentheses to explicitly define the order in which your calculation should be evaluated!

    Text Calculations

    You can use calculations to test and assemble text values. The following expression tests whether someone typed "California" in response to question Q2: {Value:Q2} == "California" This expression returns a whole number: 1 if the value does equal "California" and 0 if the value does not equal California. Beginning in Illume 3.0, text calculations are not case sensitive!

    This means the calculation above will be true whether the participant typed California, california, or CALIFORNIA

    The expression below creates an email address by adding @company.com to whatever the user typed in response to the LASTNAME question: {Value:LASTNAME} + "@company.com" This expression returns a Text value that ends with @company.com

    Complex Expressions

    Illume supports complex expressions that use the ?: operator. This operator tests an expression and returns one of two values, based on whether the expression is true or false. If the expression before the question mark is true, the expression returns the value before the colon. If it is false, it returns the value after the colon. For example, the following expression returns the value "yes" because the expression before the question mark is true: (10 > 5) ? "yes" : "no"; This expression returns "no" because the expression before the question mark is false: (5 > 10) ? "yes" : "no";

    A simple way to remember this syntax is: Is this true ? "Yes Value" : "No Value";

    You may include multiple complex expressions within a single calculation, as in this example, which calculates the cost of an order as the number of items times the cost per item, plus a fixed rate of either $20 or $12 or $8, based on the type of shipping: {Value:NumberOfItems} * {Value:CostPerItem} + ({Value:Shipping} == "Overnight" ? 20 : 0) + ({Value:Shipping} == "3-day" ? 12 : 0) + ({Value:Shipping} == "USPS" ? 8 : 0) Assuming that the Shipping question is required and that participants can choose only one shipping option, one of the three complex expressions will be true, and the other two will be false. The true expression will add either 20 or 12 or 8 to the value of the calculation. The two false expressions will both add 0 to the calculation. Complex expressions are especially useful in calculations that must be applied differently to different participants. For example, calculations of lean body weight and blood alcohol content use different constants for men and women.

    See Microsoft's JScript Language Reference for more information about JScript.

    Disabled Calculations

    If you check "Disable this calculation," the calculation will not be performed. This option is provided in case you want to disable a calculation that you may need to re-enable later.

    Runtime Only Option

    If you do not want the result of the calculation to be stored with the results of the survey, check the "Runtime only" option. The results of the calculation will be available while the survey runs, and will be discarded when the participant submits the survey.

    1. 2. 12. 1. 2. The DatStat Object << PreviousUsing Calculated Variables | NextOverview of Ranking/Sum Check validation >>

    DatStat Object Overview

    The survey calculation DatStat object is new in version 4.7 and it consists of many very useful methods that can be called from survey calculations that were formally only exposed using the SDK.  These methods allow for more capability and flexibility within a survey calculation, and in some cases, problems can be solved by just using a survey calculation where previously it would have required use of the runtime SDK.

    Limitations
    The survey calculation editor does not currently color code any of the DatStat object methods.  Variable name references used in the DatStat object methods will not be updated when using the survey rename capability unlike the tags (e.g. {Value:GENDER}).

    How to Use

    Almost all of the DatStat object methods exposed share the same signatures as those used by our runtime SDK.  To make a call just prefix the method or property with “DatStat.” (case sensitive).  The methods are also type aware so make sure you pass variables of the proper type to them (eg if the method is expecting an integer, do not pass a string to it).

    Reference Guide

    Method NameReturnsDescription
    GetHttpFormElement(name : String)StringThis method retrieves the name of an Http form element.
    var val = DatStat.GetHttpFormElement(‘MYHIDDEN’);
    GetParameter(parameterName : String)StringThis method signature is equivalent to the HookContext.GetParameter() method. It retrieves a survey parameter string value.
    var parameter_text = DatStat.GetParameter(‘MYPARAM’);
    GetRandomizationMap(variableName : String)StringThis method retrieves the randomization map for a specific variable that is randomized. The value returned is a comma delimited list of ordinals (e.g. 3,1,0,2).
    var order = DatStat.GetRandomizationMap(‘CUSTOMER_EVAL’);
    GetResponse(variableName : String)ObjectThis method signature is equivalent to the HookContext.GetResponse() method. This method retrieves the response code and is equivalent to using a {Value} tag.
    var val = DatStat.GetResponse(‘Q55’);
    GetResponseLabel(variableName : String)StringThis method signature is equivalent to the HookContext.GetResponseLabel() method. This method retrieves the response label.
    var theResponse = DatStat.GetResponseLabel('Q55');
    GetUserData(dataName : String)StringThis method signature is equivalent to the HookContext.GetUserData() method. It will return the value for the specified piece of User Data from a participant list.
    var userData= DatStat.GetUserData(‘LOCATION’);
    IsOnPage(variableName : String)BooleanThis method will return true if the item identified by the variableName parameter appears on the page of the set of responses that are being currently processed.
    if(DatStat.IsOnPage('Q55')) { // do something }
    PageItemNames()String[]This method returns an array of variable names that appear on the page of the set of responses that are currently being processed.
    var items : String[] = DatStat.PageItemNames();
    QuotaCountGet(quotaName : String)intThis method returns the current count for the specified quota.
    var count = DatStat.QuotaCountGet('MALE');
    QuotaLimitGet(quotaName : String)intThis method returns the quota limit defined for the specified quota. If the current survey session happens to be a test participant then the test data quota limit is returned.
    var limit = DatStat.QuotaLimitGet('MALE');
    QuotaStatusGet(quotaName : String)intThis method returns a ‘0’ or ‘1’ that designates the quota status for the sepecified quota. A value of ‘0’ means that the specified quota hasn’t yet met the limit. A value of ‘1’ means that the specified quota has met or exceeded the quota limit.
    var status = DatStat.QuotaStatusGet('MALE');
    ResponseReplacement(input : String)StringThis method signature is equivalent to the HookContext.ResponseReplacement() method. This method replaces all tags to their proper values.
    var surveyName = DatStat.ResponseReplacement(‘{SurveyName}’);
    SetResponseData(variableName : String, responseValue : Object)BooleanThis method signature is equivalent to the HookContext.SetResponseData() method. This method sets a specific variable to a particular value. A value of true is returned if the variable was set properly, otherwise a value of false is returned. Setting a value to ‘null’ is equivalent to clearing the value.
    DatStat.SetResponseData(‘Q1’, myvar);
    SetUserData(dataName : String, dataValue : String)voidThis method signature is equivalent to the HookContext.SetUserData() method. This method sets a user data field to a particular string value.
    if ( DatStat.GetResponse(‘GENDER’) == 1 )
       DatStat.SetUserData(‘PRONOUN’, ‘his’);
    else
       DatStat.SetUserData(‘PRONOUN’, ‘her’);

    1. 2. 12. 2. Ranking/Sum Check validation
    1. 2. 12. 2. 1. Overview of Ranking/Sum Check validation << PreviousThe DatStat Object | NextSurvey requirements for using Ranking/SumCheck validation >>

    Overview of Ranking and Sum Check validation

    Ranking validation requires survey participants to enter sequential numeric responses for a minimum and/or maximum number of question items. Here is an example of a ranking question:

    Sum check validation requires survey participants to enter numeric values for a group of questions whose sum equals some value or is between some specified minimum and maximum values. JavaScript code can also be supplied to update a running total that is displayed in the survey. Here is an example of a sum check question:

    Ranking and sum check validation is normally performed using a group of questions which are normally part of a question table. Ranking and sum check validation requires that the data type of the questions be “Whole Numbers” or “Whole Numbers >= 0” and the display type of the questions be “Text Field”, “Select One – Poplist”, or “Select One – Radio Button”.

    1. 2. 12. 2. 2. Survey requirements for using Ranking/SumCheck validation << PreviousOverview of Ranking/Sum Check validation | NextAdding Ranking validation >>

    In order to use Ranking/Sum Check validation, Multi-Control component validation, or other custom client validation,
    a survey must have originated from a version 4.7 survey template or the following conditions must be true:

    1. 2. 12. 2. 3. Adding Ranking validation << PreviousSurvey requirements for using Ranking/SumCheck validation | NextAdding Sum Check validation >>

    The following example demonstrates how to add ranking validation:

    RankingValidation parameters

    The RankingValidation parameters are separated by commas and must appear in the order as listed below.

    Question list array

    This value should be a comma-delimited list of single-quoted text values that are the form element names of the questions to be ranked all enclosed between beginning and end brackets ('[' and ']'). The {FormElement:} tag is normally used to specify the form element names for each of the questions.

    Example: ['{FormElement:Q1}', '{FormElement:Q2}', '{FormElement:Q3}' ]

    Error message

    This is a text message enclosed in single-quotes. It is displayed if the user fails to uniquely rank the minimum and maximum number of items.

    Required minimum rank items

    This is the minimum number of items that are required to be ranked. This number is adjusted to the number of question items displayed on the page if that number is less than the minimum. An error message will be displayed it the survey participant fails to uniquely rank this minimum number of items.

    Maximum rank items

    This is the maximum number of items that can be ranked. An error message will be displayed if the survey participant ranks more than this specified maximum.

    Sequential ranking

    This is a true/false option. Set this option to true if you require ranking values to be sequential numbers starting with 1. This option is especially important if the ranking questions are of display type text field.

    1. 2. 12. 2. 4. Adding Sum Check validation << PreviousAdding Ranking validation | NextMultiControl Overview >>

    The following example demonstrates how to add sum check validation.  In this example, let's assume we want the sum of these questions to add up to 100.

    SumCheckValidation parameters

    The SumCheckValidation parameters are separated by commas and must appear in the order as listed below.

    Question list array

    This value should be a comma-delimited list of single-quoted text values that are the form element names of the questions to be ranked all enclosed between beginning and end brackets ('[' and ']'). The {FormElement:} tag is normally used to specify the form element names for each of the questions.

    Example: ['{FormElement:Q1}', '{FormElement:Q2}', '{FormElement:Q3}' ]

    Minimum allowed sum

    This is a numeric value that is the minimum allowed by the sum check validation code.  This value should be less than or equal to the maximum allowed sum (i.e. the next parameter).

    Maximum allowed sum

    This is a numeric value that is the maximum allowed by the sum check validation code.  This value should be greater than or equal to the minimum allowed sum (i.e. the previous parameter).

    Callback function

    This is an optional argument. If not set to null, this argument should be a JavaScript function object that accepts 2 arguments:  1) the current running ‘total’; and 2) whether or not this value is ‘ok’ and fulfills the sum check minimum/maximum requirements.  This function is called whenever the sum of the questions changes.

    Error message

    This is a text message enclosed in single-quotes.  It is displayed if the sum of the responses isn’t between the required minimum/maximum values.  This error message can contain the following tag: {0} which will be replaced with the current total.

    1. 2. 12. 3. MultiControl
    1. 2. 12. 3. 1. MultiControl Overview << PreviousAdding Sum Check validation | NextSingle Question Syntax >>

    Introduction to Multi-Control Components

    The Multi-Control Component allows for complex questions and question tables containing multiple UI controls to be easily created.  For single questions this component allows for a more flexible layout of the controls and allows them to be placed either on the same line or different lines.  For question tables this component allows for multiple controls to be displayed in columns of the same table as well as row header elements and text fields within the prompt column.

    NOTE: You do not need to have purchased the Software Development Kit (SDK) in order to utilize the Multi-Control tool. Even though you may not have the SDK, you will see an SDK Menu item (Add Runtime Content...) in the Survey Designer which will allow you to create Multi-Control questions and question tables.

    Creating the Preload/Hidden Variables for the Multi-Control Fields

    1. To add a Preload/Hidden Variable, begin by selecting Survey --> Preload/Hidden Variables
    2. Click Add
    3. The Unique name should match the variable names used in the Hook Data XML Code
      1. If creating a single question, your hook data will define a variable name and the variable name defined needs to match exactly the name of the variable in the Preload/Hidden UNIQUE name field.
      2. If creating a question table, your hook data will define a variable prefix and a number of rows (eg prefix="Q_" and you have 3 rows with Q_ corresponding to a text field). You will define your preload/hidden variables as "Single-Select" of type Text. You will have 3 of them (Q_1, Q_2, Q_3) which correspond to the number of rows that that item is present in
    4. Select the Value Type as either Single-Value or Multi-Value(Check All). If of type Single-Value, select the Data Type as well for the field.
    5. Keep the Default Value as None
    6. Enter a Prompt Description of the field.
    7. Click OK
    8. Repeat Steps 1-7 for each field in the Multi-Control Question/QuestionTable

    Inserting a Multi-Control Question into Your Survey

    1. Add a Runtime Content Hook object in a particular location of a survey. This is done by selecting the Survey --> Add Runtime Content... menu option.
      NOTE: A Runtime Content object needs to be created for each Multi-Control Question
    2. Edit the Runtime Content object for this question
    3. Begin by assigning this object a Unique Name
    4. Select the location of the Components.dll file (in \DatStat\DatStat Illume 4.7\Previewer\Bin\Components.dll)
    5. In the "Class" drop-down menu, select either the MultiControlQuestion class to design a single-question or the MultiControlQuestionTable class to design a question table.
    6. Check the box "Display as a question" option
    7. Set the Progress bar weighting to a value that is equal to the number of question in your Multi-Control question.
      NOTE: The Progress bar weighting determines how the progress bar recognizes the fields in the Multi-Control question. Does it count the question as one question or does it count each field or (if using a question table) does it count each row?
    8. Specify hook data to display the desired question or question table elements. The hook data is specified as a specific XML grammar that is described in more detail later in this document.
    9. Create a hidden/preload variable for each field in the Multi-Control object. These will be used in storing the responses of the questions asked by the Multi-Control component.
    10. Click OK in the Runtime Content editor to save your changes.
    11. Preview the survey and make sure that you visually inspect the questions created using this component. During preview mode, additional validation is performed that checks for XML language syntax errors. Error messages are presented in the same space where the question would normally be displayed in the survey.

    Here is the Runtime Content Editor window:

    Runtime Content Editor

    NOTE: If you plan on localizing your survey into multiple languages (through the use of a Translation Package), you should not enter text directly into the various elements of MultiControl questions. Rather, replace the text with {ParamValue:param1} and set the associated parameters in Edit-->Preferences-->Parameters. The parameters are included in a translation package whereas Runtime Content Hooks are not.

    Using Show-If Logic with a Single Multi-Control Question or QuestionTable

    The Runtime Content Object uses a Run-if statement instead of Show-if, but the logic functions the same.

    If you want to use the response for a Multi-Control Question in Show-If Logic, you will have to link it to the Preloaded variable that you created for the specific field.

    Using XML

    NOTE: XML is case sensitive so be very careful in how you are entering your elements and information.

    When using the Multi-Control component, you must specify XML data using a specific XML grammar in the Hook Data field of the Runtime Content editor.  It is a good idea to preview your surveys in the Survey Designer for testing purposes, because details of any syntax errors are displayed when in preview mode.

    If you haven’t used XML before you need to adhere to a few simple rules:

    1. 2. 12. 3. 2. Single Question Syntax << PreviousMultiControl Overview | NextQuestion Table Syntax >>

    This section details the XML grammar required for a single question multi-control component.

    The Question Element

    The Question element consists of 1 or more Row elements.  The Question element MUST appear on the first line of the Hook Data.

    Attribute NameRequiredValues
    xmlnsYesThis value must be: http://www.datstat.com/2008/MultiControl.xsd

    The Row Element

    The "Row" element consists of 0 or more "Data" elements. Use of this element will create a "tr" (or row) tag within an HTML table.

    Attribute NameRequiredValues
    styleNoContains CSS Styles

    The Data Element

    The "Data" element consists of 0 or more "Prompt", "TextField", "Checkbox", or "Poplist" elements. Use of this element will create a "td" (or data cell) tag within an HTML table and facilitates different layout options and control.

    Attribute NameRequiredValues
    colspanNoA numeric value that corresponds to the colspan attribute of the "td" tags in HTML tables.
    styleNoContains CSS Styles

    The Prompt Element

    The "Prompt" element is most often used in the first row of the question.

    Attribute NameRequiredValues
    valueYesA text value to be displayed as the prompt.
    styleNoContains CSS Styles

    The TextField Element

    The "TextField" element displays a text field control and can contain 0 or more "RequiredValidation", "NumericValidation", or "TextValidation" elements.

    Attribute NameRequiredValues
    variableNameYesRefers to a variable defined in the Survey as a preload hidden.
    sizeNoThe size of the text field.
    maxLengthNoThe maximum number of characters that can be entered in this text field.
    styleNoContains CSS Styles.
    labelBeforeNoText value that precedes the text field control.
    labelAfterNoText value that follows the text field control.

    The Checkbox Element

    The "Checkbox" element consists of zero or more "RequiredValidation" elements. Use of this element will create a single checkbox control.

    Attribute NameRequiredValues
    variableNameYesRefers to a variable defined in the Survey as a preload hidden.
    styleNoContains CSS Styles.
    labelBeforeNoText value that precedes the text field control.
    labelAfterNoText value that follows the text field control.

    The Poplist Element

    The "Poplist" element consists of zero or more "PoplistOption" elements followed by zero or more "RequiredValidation" elements. If the "Poplist" element does not contain any "PoplistOption" elements, then the options are created by reading the scale values of the hidden variable.

    Attribute NameRequiredValues
    variableNameYesRefers to a variable defined in the Survey as a preload hidden.
    unansweredResponseNoThe name or label given to an unanswered response in the poplist control.
    styleNoContains CSS Styles.
    labelBeforeNoText value that precedes the text field control.
    labelAfterNoText value that follows the text field control.

    The PoplistOption Element

    Optional elements contained within "Poplist" elements.

    Attribute NameRequiredValues
    codeYesThis value should be the same response code as defined in the hidden question used in this "Poplist" control.
    responseYesThis is the poplist option value viewed by the survey respondent.

    The RequiredValidation Element

    Use of the "RequiredValidation" tag will enforce input validation rules using javascript on the control in which this tag is contained within. In this case a response to a particular parent control will be required.

    Attribute NameRequiredValues
    errorMessageYesError message displayed to the user if the input constraints are violated.

    The NumericValidation Element

    Use of the "NumericValidation" tag will enforce numeric input validation rules using javascript on the control in which this tag is contained within.

    Attribute NameRequiredValues
    errorMessageYesError message displayed to the user if the input constraints are violated.
    requiredNoThis value can be either “true” or “false”.
    minValueNoThis is a numeric value that is the minimum value allowed in the parent control.
    maxValueNoThis is a numeric value that is the maximum value allowed in the parent control.

    The TextValidation Element

    Use of the "TextValidation" tag will enforce text input validation rules using javascript on the control in which this tag is contained within.

    Attribute NameRequiredValues
    errorMessageYesError message displayed to the user if the input constraints are violated.
    requiredNoThis value can be either “true” or “false”.
    minLengthNoThis is a numeric value that is the minimum length of the input entered.
    maxLengthNoThis is a numeric value that is the maximum length of the input entered.
    regExNoA regular expression value that the input value must match.

    1. 2. 12. 3. 3. Question Table Syntax << PreviousSingle Question Syntax | NextQuestion - Text Fields >>
    This section details the XML grammar required for a question table multi-control object. If you haven’t used XML before please refer to the topic called Using XML in the Multi-Control Overview section.

    The QuestionTable Element

    The "QuestionTable" element consists of an "Instruction" element, followed by 1 or more control elements ("TextField", "RadioGroup", "CheckAll", "Checkbox", "Poplist", or "Empty"), followed by 1 or more row elements ("Row", "RowHeader", or "RowTextField"). The "QuestionTable" element MUST appear on the first line of the Hook Data.

    Attribute Name Required Values
    xmlns Yes This value must be: "http://www.datstat.com/2008/MultiControl.xsd"
    width No Set the width of this QuestionTable.
    numbering No A text phrase can be entered. “{0}” will be replaced with the alpha row number (e.g. “a.”, “b.”, etc…) and “{1}” will be replaced with the numeric row number (e.g. “1.”, “2.”, etc…)
    promptHeader No Contains an optional text phrase that is used in the prompt header position of the question table.
    randMethod No Accepts one of the following arguments: ‘all’, ‘reverse’, ‘previous’
    Note: ‘all’ randomizes ALL items, ‘reverse’ randomly displays the items either in the same order OR in reverse order, and ‘previous’ displays the items in the same order as a previous survey object whose items have been randomized.
    randArgs No Only valid if ‘randMethod’ is set to ‘previous’. When the ‘randMethod’ is set to ‘previous’, set the randArgs attribute to the name of a previous Question or Collection object that is randomized.

    The Instructions Element

    This element contains text instructions that are displayed before the question table.

    The TextField Element

    The "TextField" element displays a text field control and can contain 0 or more "RequiredValidation", "NumericValidation", or "TextValidation" elements.

    Attribute Name Required Values
    variablePrefix Yes The prefix used along with the row number ordinal to form the name of the variable used to store the response for this particular row/column.
    heading No Text displayed in the heading of this control
    columnWidth No Width of this control column
    size No The size or width of this text field control.
    maxLength No The maximum number of characters that can be typed in this text field.
    labelBefore No Text to be displayed before the control. E.g. “$”
    labelAfter No Text to be displayed before the control. E.g. “$”

    The RadioGroup Element

    The "RadioGroup" element displays a group of radio buttons and contains zero or more "RadioOption" elements followed by zero or more "RequiredValidation" elements. If the "RadioGroup" element does not contain any "RadioOption" elements, then the options are created by reading the scale values of the hidden variable.

    Attribute Name Required Values
    variablePrefix Yes The prefix used along with the row number ordinal to form the name of the variable used to store the response for this particular row/column.
    heading No Text displayed in the heading of this control
    columnWidth No Width of this control column
    randMethod No Accepts one of the following arguments: ‘all’, ‘reverse’, ‘previous’
    Note: ‘all’ randomizes ALL items, ‘reverse’ randomly displays the items either in the same order OR in reverse order, and ‘previous’ displays the items in the same order as a previous survey object whose items have been randomized.
    randArgs No Only valid if ‘randMethod’ is set to ‘previous’. When the ‘randMethod’ is set to ‘previous’, set the randArgs attribute to the name of a previous Question or Collection object that is randomized.

    The RadioOption Element

    Optional elements contained within "RadioGroup" elements.

    Attribute Name Required Values
    code Yes The response code defined in the hidden question used with this Radio button control.
    heading Yes Text displayed in the heading of this specific radio button control.

    The Checkbox Element

    This element is used to display a single checkbox. It can contain zero or more "RequiredValidation" elements.

    Attribute Name Required Values
    variablePrefix Yes The prefix used along with the row number ordinal to form the name of the variable used to store the response for this particular row/column.
    heading No Text displayed in the heading of this control
    columnWidth No Width of this control column

    The CheckAll Element

    This element is used to display a grouping of checkboxes so that multiple selections can be made. It contains zero or more "CheckAllOption" elements followed by zero or more "CheckAllValidation" elements (order is important if both types of elements are specified). If the "CheckAll" element does not contain any "CheckAllOption" elements, then the check box options are created by reading the scale values of the hidden variable.

    Attribute Name Required Values
    variablePrefix Yes The prefix used along with the row number ordinal to form the name of the variable used to store the response for this particular row/column.
    heading No Text displayed in the heading of this control
    columnWidth No Width of this control column
    style No CSS style
    randMethod No Accepts one of the following arguments: ‘all’, ‘reverse’, ‘previous’
    Note: ‘all’ randomizes ALL items, ‘reverse’ randomly displays the items either in the same order OR in reverse order, and ‘previous’ displays the items in the same order as a previous survey object whose items have been randomized.
    randArgs No Only valid if ‘randMethod’ is set to ‘previous’. When the ‘randMethod’ is set to ‘previous’, set the randArgs attribute to the name of a previous Question or Collection object that is randomized.

    The CheckAllOption Element

    Optional elements contained within "CheckAll" elements.

    Attribute Name Required Values
    heading Yes Text displayed in the heading of this specific checkbox control.
    name Yes This value is the response name of the checkbox as defined in the hidden questions used by this CheckAll or “Select all that apply” question.

    The Poplist Element

    This element is used to display a poplist control. It contains 1 or more "PoplistOption" elements followed by zero or more "RequiredValidation" elements. If the "Poplist" element does not contain any "PoplistOption" elements, then the options are created by reading the scale values of the hidden variable.

    Attribute Name Required Values
    variablePrefix Yes The prefix used along with the row number ordinal to form the name of the variable used to store the response for this particular row/column.
    heading No Text displayed in the heading of this control
    columnWidth No Width of this control column
    unansweredResponse No Text that is displayed in the poplist control when no value is selected.
    randMethod No Accepts one of the following arguments: ‘all’, ‘reverse’, ‘previous’
    Note: ‘all’ randomizes ALL items, ‘reverse’ randomly displays the items either in the same order OR in reverse order, and ‘previous’ displays the items in the same order as a previous survey object whose items have been randomized.
    randArgs No Only valid if ‘randMethod’ is set to ‘previous’. When the ‘randMethod’ is set to ‘previous’, set the randArgs attribute to the name of a previous Question or Collection object that is randomized.

    The PoplistOption Element

    Optional elements contained within "Poplist" elements.

    Attribute Name Required Values
    code Yes The response code defined in the hidden question used with this poplist control.
    response Yes Text displayed in the poplist control for this response.

    The Empty Element

    This element is used to add an empty column in the question table.

    Attribute Name Required Values
    heading No Text displayed in the heading of this control
    columnWidth No Width of this control column
    headingStyle No CSS style applied to the header of the "Empty" element.
    cellStyle No CSS style applied to each of the TD cells of an "Empty" element.

    The RequiredValidation Element

    Use of the "RequiredValidation" tag will enforce input validation rules using javascript on the control in which this tag is contained within. In this case a response to a particular parent control will be required.

    Attribute Name Required Values
    errorMessage Yes Error message displayed to the user if the input constraints are violated.

    The NumericValidation Element

    Use of the "NumericValidation" tag will enforce numeric input validation rules using javascript on the control in which this tag is contained within.

    Attribute Name Required Values
    errorMessage Yes Error message displayed to the user if the input constraints are violated.
    required No This value can be either “true” or “false”.
    minValue No This is a numeric value that is the minimum value allowed in the parent control.
    maxValue No This is a numeric value that is the maximum value allowed in the parent control.

    The TextValidation Element

    Use of the "TextValidation" tag will enforce text input validation rules using javascript on the control in which this tag is contained within.

    Attribute Name Required Values
    errorMessage Yes Error message displayed to the user if the input constraints are violated.
    required No This value can be either “true” or “false”.
    minLength No This is a numeric value that is the minimum number of characters allowed in the parent control.
    maxLength No This is a numeric value that is the maximum number of characters allowed in the parent control.
    regEx No A regular expression value that the input value must match.

    The CheckAllValidation Element

    This element will enforce “check all that apply” input validation rules using javascript.

    Attribute Name Required Values
    errorMessage Yes Error message displayed to the user if the input constraints are violated.
    minRequired No The minimum number of checkbox selections allowed.
    maxRequired No The maximum number of checkbox selections allowed.

    The Row Element

    This element will add a “normal” row to the question table. This row contains a prompt followed by controls.

    Attribute Name Required Values
    prompt No Value displayed in the prompt column.
    showIf No This is a simple ShowIf expression of the form:
    "variable" "op" "value"
    Where:
    "variable" is the name of a survey variable
    "op" is any of the following operators:
    ‘_eq_’ is equals
    ‘_ne_’ is not equals
    ‘_lt_’ is less than
    ‘_gt_’ is greater than
    ‘_lteq_’ is less than or equals
    ‘_gteq_’ is greater than or equals
    ‘_ans_’ is answered
    ‘_nans_’ is not answered
    "value" is a required value except if the _ans_ or _nans_ operators are used.

    Example: GENDER _eq_ 1
    maxRequired No The maximum number of checkbox selections allowed.

    The RowHeader Element

    This element will add a content row to the question table. This row will not contain any controls.

    Attribute Name Required Values
    value No Value displayed in the row.
    style No CSS style applied to the row header.
    showIf No This is a simple ShowIf expression of the form:
    "variable" "op" "value"
    Where:
    "variable" is the name of a survey variable
    "op" is any of the following operators:
    ‘_eq_’ is equals
    ‘_ne_’ is not equals
    ‘_lt_’ is less than
    ‘_gt_’ is greater than
    ‘_lteq_’ is less than or equals
    ‘_gteq_’ is greater than or equals
    ‘_ans_’ is answered
    ‘_nans_’ is not answered
    "value" is a required value except if the _ans_ or _nans_ operators are used.

    Example: GENDER _eq_ 1
    maxRequired No The maximum number of checkbox selections allowed.

    The RowTextField Element

    This element will add a text field control in the prompt column.

    Attribute Name Required Values
    prompt No Value displayed in the prompt column.
    variableName Yes Variable name used by this text field control.
    size No Size of the text field control.
    maxLength No Maximum number of characters that can be entered in the text field control.
    labelBefore No Text value displayed before the text field control.
    labelAfter No Text value displayed after the text field control.
    showIf No This is a simple ShowIf expression of the form:
    "variable" "op" "value"
    Where:
    "variable" is the name of a survey variable
    "op" is any of the following operators:
    ‘_eq_’ is equals
    ‘_ne_’ is not equals
    ‘_lt_’ is less than
    ‘_gt_’ is greater than
    ‘_lteq_’ is less than or equals
    ‘_gteq_’ is greater than or equals
    ‘_ans_’ is answered
    ‘_nans_’ is not answered
    "value" is a required value except if the _ans_ or _nans_ operators are used.

    Example: GENDER _eq_ 1

    1. 2. 12. 3. 1. Samples
    1. 2. 12. 3. 1. 1. Question - Text Fields << PreviousQuestion Table Syntax | NextQuestion - Poplists >>

    The following example creates a simple question that asks for a survey respondent's height in feet and inches.

    MultiControl with 2 Text Fields in One Question

    Hook Data

    <Question xmlns="http://www.datstat.com/2008/MultiControl.xsd">
      <Row>
        <Data>
          <Prompt value="Enter your height:" />
        </Data>
      </Row>
      <Row>
        <Data>
         <TextField variableName="HEIGHT_FEET" labelAfter="feet" size="4" >
           <NumericValidation errorMessage="A numeric value between 3 and 8 for the height in feet is required." required="true" minValue="3" maxValue="8"/>
         </TextField>
         <TextField variableName="HEIGHT_INCHES" labelAfter="inches" size="4"  >
           <NumericValidation errorMessage="A numeric value between 0 and 11 for the height in inches is required." required="true" minValue="0" maxValue="11"/>
         </TextField>
        </Data>
       </Row>
    </Question>

    Notes about this Example

    1. 2. 12. 3. 1. 2. Question - Poplists << PreviousQuestion - Text Fields | NextQuestion - All Types >>

    The following example is a different variation of the previous example that asks for the respondent’s height in feet and inches.  Instead of text field controls, this question uses poplist controls:

    Multi-Control Poplist in Single Question Example

    Hook Data

    <Question xmlns="http://www.datstat.com/2008/MultiControl.xsd" >
      <Row>
          <Data>
            <Prompt value="Enter your height:" />
          </Data>
          <Data>
            <Poplist variableName="HEIGHT_FEET" style="text-align:left;width:180px"  unansweredResponse="--Select Height in Feet--" >
              <RequiredValidation errorMessage="Please select a response for your height in feet."/>
           </Poplist>
          </Data>
        </Row>
        <Row>
          <Data>
            <Poplist variableName="HEIGHT_INCHES" style="text-align:left;width:180px" unansweredResponse="--Select Height in Inches--" >
              <RequiredValidation errorMessage="Please select a response for your height in inches."/>
           </Poplist>
          </Data>
       </Row>
    </Question>

    Notes about this Example

    1. 2. 12. 3. 1. 3. Question - All Types << PreviousQuestion - Poplists | NextQuestionTable >>

    The following example is a different variation of the previous example that asks for the respondent’s height in feet and inches.  It uses a mix of text field control, poplist and a checkbox:

    Multiple Control Multi-Control

    Hook Data

    <question xmlns="http://www.datstat.com/2008/MultiControl.xsd">
     <row>
      <data>
        <prompt value="Enter (and choose) your height:" />
      </data>
     </row>
     <row >
      <data>
        <textfield size="4" variablename="HEIGHT_FEET_ALLFIELDS" labelafter="feet">
          <numericvalidation required="true" errormessage="A numeric value between 1 and 7 for the height in feet is required." minvalue="1" maxvalue="7" />
        </textfield>
        <poplist style="FONT-WEIGHT: bold; WIDTH: 150px; TEXT-ALIGN: left" variablename="HEIGHT_INCHES_ALLFIELDS" labelafter="inches" unansweredresponse="--Inches--">
          <requiredvalidation errormessage="Please select a certain amount of inches for your height" />
        </poplist>
        <checkbox variablename="HEIGHT_CHECK_OPTOUT" labelafter="I like my height">
      </data>
     </row>
    </question>

    1. 2. 12. 3. 1. 4. QuestionTable << PreviousQuestion - All Types | NextCreating a Survey Template >>

    The following example attempts to demonstrate all of the possible controls within a question table:

    Multi-Control Question Table

    Hook Data

    <QuestionTable xmlns="http://www.datstat.com/2008/MultiControl.xsd" width="1000px" numbering="({1})" promptHeader="Prompt Header">
      <Instructions>Instructions</Instructions>
      <TextField variablePrefix="TFCOM_" heading="TextField Heading" size="5" maxLength="5" columnWidth="80px" >
        <TextValidation required="true" minLength="1" maxLength="2" errorMessage="Text field response must be 1 or 2 characters in length."/>
      </TextField>
      <RadioGroup variablePrefix="RGCOM_" heading="Radio Column Heading" columnWidth="80px" >
        <RadioOption code="0" heading="Radio 1 Heading" />
        <RadioOption code="1" heading="Radio 2 Heading" />
        <RadioOption code="2" heading="Radio 3 Heading" />
        <RequiredValidation errorMessage="A radio button response is required." />
      </RadioGroup>
      <Empty columnWidth="50" heading="This is a Space" headingStyle="border-bottom:none;border-top:none;" cellStyle="border-bottom:none;"/> 
      <CheckAll variablePrefix="CBGCOM_" heading="Checkbox Group Heading" columnWidth="80px" >
        <CheckAllOption heading="Check 1" name="0" />
        <CheckAllOption heading="Check 2" name="1" />
        <CheckAllOption heading="Check 3" name="2" />
        <CheckAllValidation errorMessage="You must select between 1 and 3 items in the checkbox group." minRequired="1" maxRequired="3" />
      </CheckAll>
      <Checkbox variablePrefix="CBCOM_" heading="Checkbox Heading" columnWidth="80px">
        <RequiredValidation errorMessage="You must select the single checkbox."/>
      </Checkbox>
      <Poplist variablePrefix="POPLCOM_" heading="Poplist Group Heading - Pick a Number" columnWidth="175px" unansweredResponse="Please Select a Number">
        <RequiredValidation errorMessage="Please select a response for your height in feet."/>
      </Poplist>
      <Row prompt="Prompt 1"/>
      <Row prompt="Prompt 2"/>
      <RowHeader value="Row header value" style="background-color:#CCCCCC;border-bottom:none;" />
      <Row prompt="Prompt 3"/>
    </QuestionTable>

    Hook Data Explained

    Must be in each XML.  The Numbering= determines if you will number or letter your rows
    Hook Data Explained

    Allows you to write instructions for your Question Table
    Hook Data Explained

    Each Type of Control will need a Prefix to be defined and then used in the Preload/Hidden Variables that get created. This is the Text Field prefix.  There are three Preload/Hidden variables that have been created with this prefix. TF_1, TF_2, TF_3
    Hook Data Explained

    The RadioGroup needs a Heading for each option and a Preload/Hidden Variable for each.
    Hook Data Explained

    This will add a space between sections.  The Heading was added to explain the gap.
    Hook Data Explained

    The CheckAll requires that you check the Multi-Value in the Preload/Hidden Variable creation. Scale Values will also need to be added. See The example Multi-Control Example Survey
    Hook Data Explained

    The Checkbox requires Preload/Hidden Variables that have the Data Type as Yes/No
    Hook Data Explained

    The Poplist code information can be coded in the XML or can be part of the Scale Values in the Preload/Hidden Variables.  In this case it is part of the Preload/Hidden Variable.
    Hook Data Explained

    This represents 3 Question Prompts with a row header between the 2nd and 3rd Prompt.
    Hook Data Explained

    Notes about this Example

    1. 2. 13. Working with Survey Templates
    1. 2. 13. 1. Creating a Survey Template << PreviousQuestionTable | NextConfiguring the Login Collection >>

    Survey templates are reusable models upon which surveys can be built. A template may include headers, footers, images, questions, and blocks of HTML.

    To create a new template, create a new survey and then designate that survey as a template the first time you check it in. See Checking in a Survey for details on templates and the check in process.

    If you have already checked in an item as a survey and want to change the item to a template, clone the existing survey and check in the clone as a template.

    Any new surveys you build from the template will include the template's header, footer, stylesheet, and other survey-wide preferences, as well as its questions.

    1. 2. 14. Configuring Participant Authentication
    1. 2. 14. 1. Configuring the Login Collection << PreviousCreating a Survey Template | NextTranslation Overview >>

    Every Illume survey contains a Login Collection which cannot be deleted. Items in the Login Collection will be presented to participants before they have logged in to the survey. In fact, the purpose of the login collection is to ask participants for credentials to log in. Generally, a Login Collection might include a welcome message, and one or more questions. These will be the first things a participant sees when he or she comes to your survey.

    Participant Authentication

    If your survey requires participants to log in, there are two things you need to do to set up participant authentication: First, use the Illume Web Console to upload a list of eligible participants. Then create questions in the Login Collection that Illume can use to authenticate participants. When you upload a list of participants, your list can include any fields you choose. For example, you may upload a participant list containing the first and last names of all participants, along with their email addresses and employee ID numbers. Let's assume these fields in your participant list are named FIRSTNAME, LASTNAME, EMAIL, and EMPID. Let's also assume you want participants to log in using their email address and employee id number. To do this, you would create two questions in the Login Collection: one name EMAIL that asks for the participant's email address, and another named EMPID that asks for employee id. The unique ids of these two questions must match the name of the columns in your participant list. When a participant types in his or her email address and employee id, Illume looks for an entry in the participant list with the given email address and employee id. If it finds a matching entry in the list, the participant starts the survey. If there is no matching entry in the list, the participant cannot start the survey.

    Which Fields Should You Use to Authenticate?

    You may use any field or combination of fields in your participant list to authenticate participants. For each field you want to use, add a question to the Login Collection and make sure the question's unique id matches the desired field name in the participant list.

    Unauthenticated/Anonymous Surveys

    If you want participants to be able to take your survey without having to log in, do not put any questions in the Login Collection. You may still include Text/HTML items in the Login Collection to display a welcome message.

    Cookie Support for Tracking Unauthenticated Surveys

    This option applies only to unauthenticated surveys and prevents multiple submissions (or “stuffing the ballot box”) by the same computer and allows users to resume survey sessions for unauthenticated surveys.  Multiple submissions are prevented unless cookies are deleted from the survey participant’s computer.

    This option is not recommended in situations where a fairly high percentage of survey participants are expected to use computers in the same shared computing environments.  This is often the case in academic environments.

    To enable this option, select Edit > Preferences and then the Advanced tab.  Check the box entitled: Use browser cookies to track unauthenticated survey sessions.  Note that this check box will appear grey and be disabled if the survey is authenticated, i.e. there are one or more questions in the LOGIN collection.

    Using System-Generated IDs

    If you do not want to create unique ids for all of your participants, but you do want to ensure that only people on your participant list can take your survey, follow these steps to use Illume's internal system-generated IDs:

    1. Create a single question in the login collection. The question must have the display type "Text", and the question's unique name must be "ID". (You will have to create a prompt for this question, even though most participants will never see the question or the prompt.)
    2. In the Surveys section of the Web Console, be sure to assign the proper participant list(s) to your survey.
    3. In the Email Jobs section of the Web Console, create an Email Job that uses your survey and participant list. Include the {SurveyURL} tag in the body of the email.
    Illume will send out email invitations to your survey with an embedded URL that looks like this: https://www.datstat.com/SB-Collector/Survey.ashx?Name=MySurvey&LoginId=d6715527-d4b6-44a7-a827-e151310e4318 Note that the URL ends with "LoginId=" followed by a long GUID (globally unique identifier). The GUID is the participant's unique login id. If you ever need to look up a participant's GUID, you can do so through the Participant List area of the Web Console. Go to the participant list and click on the participant's name or email address (or any other piece of the participant's data). This will display the "Edit Participant" page, which always displays the participant's GUID.

    Things Not to Do

    Do not include duplicate entries in your participant list. For example, if you are requiring participants to provide an email address and employee id to access your survey, do not include in your participant list more than one participant with the same combination of email address and employee id, even if other data for these two participants differs. When a participant logs in, Illume looks for a unique participant in the list who matches the supplied credentials. If Illume cannot find a unique entry matching the credentials, the participant will not be allowed in. Do not include questions in the Login Collection whose unique ids are not column names in the participant list. The example above used EMAIL and EMPID as the unique names of questions in the Login Collection. These matched the EMAIL and EMPID fields in the participant list. If the EMPID question had been named EMPLOYEEID, no participants would be able to log in, because the participant list contains no EMPLOYEEID column.