You are on page 1of 302

NIPO Software Grote Bickersstraat 74 1013 KS Amsterdam PO Box 247 1000 AE Amsterdam The Netherlands Phone Fax E-mail

Internet +31 20 522 59 80 +31 20 522 53 33 Helpdesk@niposoftware.com www.niposoftware.com

Manual

NIPO ODIN Script Language 5.11 Command Reference

Rev.: 20070119

All rights reserved. No part of this document may be reproduced in any form, by any means (electronic, photocopying, recording or otherwise) without the prior written consent of NIPO Software. NIPO Software Amsterdam

Contents
1 1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 1.4 2 2.1 2.1.1 2.1.2 1) 2) 3) 4) 2.2 2.2.1 1) 2.2.2 1) 2.3 2.3.1 1) 2) 3) 4) 5) 6) 7) 2.3.2 1) 2) 2.3.3 1) 2) 3) 4) 5) 6) Introduction About this manual Other manuals Terminology General Questions and answers Files and tables Typographical conventions Features and Known issues Features and Known issues in NIPO ODIN Script language 5.11 Most important (new) features of NIPO ODIN Script language 5.11 New commands in the NIPO ODIN Script Language 5.11 New command *SCALERANGE New command *INTRO New command *HEADING System variables do not need to be defined Features and Known issues in NIPO ODIN Script language 5.09/5.10 Most important (new) features of NIPO ODIN Script language 5.09 Channel aware scripting with As_Was Known issues in NIPO ODIN Script Language 5.09 Use system names in Sample table instead of table fieldnames Features and Known issues in NIPO ODIN Script language 5.08 Most important (new) features of NIPO ODIN Script language 5.08 Channel aware scripting Tab-positions with *TAB based on percentages Map *ADDRESS positions to database fields Start external application with *RUN and STDRUN32.DLL: Runtype -1 Jump to question after non-response code *PAGE may be directly behind *IF, but *QUESTION not System variable STOPWATCH[3] after appointment Most important new features in NIPO Web Client Using templates and stylesheets Using HTML (incl. JavaScript) in NIPO ODIN questionnaire New commands in the NIPO ODIN Script Language 5.08 New command: *SAMPLEDATA New command: *SQLGET New command: *SQLPUT New command: *ORDER Changed command: *PUT in combination with Sample table Changed command: *LANGUAGE name,RTL 1 1 1 2 2 3 4 5 7 7 7 7 7 7 7 7 8 8 8 9 9 10 10 10 10 10 11 11 12 12 12 12 12 13 13 13 13 13 14 14

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | i

2.4 2.4.1 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 2.4.2 1) 3 3.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 1) 2) 3) 3.3

Known Issues Known issues in NIPO ODIN Script Language 5.08 Channel aware script uses current channel No more support for Dutch commands No more support for replaced commands No more support for improper use of ODIN syntax (illegal constructions) No more support for slashes to separate categories Copy positions from T-file limited to field length No more support for changing font of code numbers *AUTO only supported for NIPO CATI Client Using *AUTO with too many categories Using *RANDOM on a *FORM question without category numbers *INIT block is executed before Suspend Image Selecting another CHARSET in the *FONT command *NCLS repaints the question Using duplicate interview numbers in T-file Re-using interviewnumbers that were already completed Known issues in Web Client Display of *NUMBER *LIST question in box How to use the NIPO ODIN Script Language Naming conventions Questions Data fields Answer categories Slashes Backslashes Using variables System variables: 0-9 System variables: timers System variables: miscellaneous System variables for Channel Aware scripting Operators: repeat numbers Expressions Examples of expressions Often made mistakes in (filter) expressions: Stratification (Quota) Changed syntax for S-file in the NIPO Fieldwork System 1.03 Stratification file (S-file) when using Sample table Stratification files (S-files) for omnibus surveys (using T-files) Omnibus survey, using Sample tables and Omnibus tables Stratification file (S-file) for Web Clients Non-anonymous surveys Anonymous surveys Surveys started from a URL Lay-out of *GRID and *SCALE questions using [tab] and *TAB

15 15 15 16 16 17 20 21 21 22 22 23 24 24 25 25 26 29 29 31 31 31 32 33 34 34 35 39 40 41 42 44 46 49 50 52 54 56 57 59 60 60 60 60 61

ii | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Command Index

67

** *? *ABORT *ADDRESS *ALPHA (question type) *ALPHA (in *FORM question) *APPOINT *AUTO *BACK *BMP *BUT *CENTRE *CODES *CONJ ... *ENDCONJ *CONTROL *COPY *COUNT *CUT *DATE *DELAY *DESC *DTIME *DUMMY *END *ENDNGB *ENDST *EXCLUDE *FIELD *FONT (definition) *FONT (switching) *FORM *FORMAT *GOSUB *GOTO *GRID (in *FORM question) *GROUP *HEADING *HELP (definition) *HELP (question option) *IF (condition) *IF (question option) *INCLUDE *INFO *INIT *INSTRUC *INTRO *INV *LABEL

69 70 73 74 75 76 77 78 80 81 83 85 86 88 89 91 93 94 95 96 97 98 99 100 102 103 104 106 108 109 111 114 115 117 118 121 123 125 126 128 129 130 132 133 135 136 137 139

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | iii

*LANGUAGE *LEFT *LINE *LIST (definition) *LIST (question option) *MAX *MERGE *MIN *MOVA *MOVU *MULTI *NCLS *NEW *NEWCOLUMN *NEXT *NMUL *NOCON *NOENTER *NOHIDE *NON *NONRESP *NOTBACK *NUMBER (question type) *NUMBER (in *FORM question) *OPEN (question type) *OPEN (codes option) *ORDER *PAGE *PICT (question option) *PICT (codes option) *PLAY *PNW *PUT *QUESTION *RANDOM *RANGE *READ *REC *REPEAT (question option) *REPEAT ... *ENDREP *REPNUM *RETURN *RIGHT *ROT *RUN (16-bit) *RUN (32-bit) *SAMPLEDATA *SAVE (question option) *SAVE (codes option) *SCALE (question type)
iv | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

140 144 145 147 149 152 154 156 158 159 160 161 162 163 166 167 168 169 170 171 172 173 174 175 177 179 180 183 184 186 187 188 189 192 194 196 197 198 200 201 204 205 206 207 208 210 212 213 214 215

*SCALE (in *FORM question) *SCALERANGE *SHOWDOCUMENT *SIZE *SKIP *SQLGET *SQLPUT *STOPAUTO *STOPRANDOM *STRAT *SUBROUTINE ... *ENDSUB *SWILANG *TAB *TEXTVARS *TIME *USELIST *VAR *VARS *VCONTROL *WAITCR *WAITPLAY *WRITE <<<! !>>>
4.2 Listing of commands per system

217 220 225 226 228 229 232 235 237 238 239 241 243 245 246 247 248 249 250 252 253 254 255
257

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | v

5 5.1 5.1.1 1) 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.2 5.2.1 1) 2) 3) 4) 5.2.2 1) 2) 3) 4) 6 6.1.1 6.1.2 6.1.3 6.1.4 1) 2) 7

File structures Data files Closed answers file (U-file) Data files (U- and O-file) in unicode Open answers file (O-file) Telephone file (T-file) Sample table (separate table for each survey) Contact file (C-file) Stratification file (S-file) Database tables Sample table (separate table for each survey) Create new fields in Sample table via NIPO FMS Use *SAMPLEDATA to retrieve and update data from the Sample table Stratification of fields in Sample table Use system names in Sample table instead of table fieldnames Omnibus or SubSample table (separate table for each survey) Create new fields in Omnibus table via NIPO FMS Use *SAMPLEDATA to retrieve and update data from the Omnibus table Stratification of fields in Omnibus table Use system names instead of table fieldnames Status, ResponseCode, TerminateCode, Logging Status field in Survey table Status field in Sample table Channel and Initial Channel field in Sample table Overview of response codes Specification of ResponseCodes TerminateCodes Index

263 265 265 266 267 268 270 274 275 276 276 280 280 280 281 283 284 284 284 284 285 285 285 286 287 289 290 291

vi | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Introduction

1.1

About this manual

This manual describes the NIPO ODIN Script Language (Odrunu.DLL 5.11.000) as is being used by the NIPO CATI Client 5.04 (Odqes.EXE), NIPO Web Client (OdinServlet 1.02) in the NIPO Fieldwork System 1.07 for CATI/Web Interviewing and the NIPO CAPI Client 12.01 (CapiClient.EXE) in the NIPO CAPI System 5.00. It is meant for the NIPO ODIN Script writers and explains the syntax of the NIPO ODIN questionnaires. This manual is not meant for the CATI/CAPI interviewers, nor for supervisors and/or technicians who set-up and run the workstations (Interviewer PC's) in a CATI Studio. See the NIPO CATI Client 5.xx Technical Reference and/or the NIPO Fieldwork System 1.xx Technical Reference for more information on how to set-up a CATI studio.

1.2

Other manuals

Please check the following other related NIPO Software manuals: NIPO Fieldwork System 1.07 Technical Reference NIPO Fieldwork System 1.07 User's Guide NIPO CATI Manager 3.07 Users Guide NIPO FMS 1.07 User's Guide NIPO Panel FMS 1.07 User's Guide NIPO HTML Generator 1.02 Scripter's Guide NIPO CATI Client 5.04 Technical Reference NIPO ODIN Script Language 5.11 Command Reference NIPO ODIN Developer 5.06 Users Guide NIPO ODIN Script Language Basic Training NIPO Conjoint Measurement in NIPO ODIN Script Language NIPO CAPI System 5.00 Technical Reference NIPO CAPI Client 12.01 Users Guide

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 1

1.3

Terminology

This chapter describes how to use this Command Reference.

1.3.1

General

Question type Defines the type of answer which is expected for a question. Question types are for example closed, open, numerical, etc. Question option Defines what special properties an answer must have or how answer categories will be displayed. There are question options to allow multiple answers, set a maximum value to be entered, show answer categories in random order, etc. Answer option Defines the behaviour of the program when an answer category is chosen. There are answer options to prevent that an answer is combined with other answer categories, to prompt for an open answer, etc.

2 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

1.3.2

Questions and answers

Closed question A question where the answer is expected to be a choice from a fixed number of answer categories. Answer category One of the possible answers defined for a (semi-)closed question. Open question A question where the answer is expected to be entered literally as text. Semi-closed question A question where the answer is expected to be a choice from a fixed number of answer categories and where choosing certain answer categories will show a box to enter the answer literally as text. Open answer The literal text of an answer entered for an open or semi-closed or open question. Numerical question A question where an answer is expected to be a numerical value. Text question A question where an answer is expected to be text of limited length. Answer code A numeric value which is stored in the U-file when an answer category is chosen. Answer field A (series of) positions in the U-file where answer codes, values or texts are stored.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 3

1.3.3

Files and tables

Q-file (questionnaire) ASCII file containing the question text and all the NIPO ODIN commands for routing, etc. S-file (stratification) ASCII file containing the stratification (quota) criteria. Sample file (T-file) ASCII file containing the gross sample. Each record in the Sample file (telephone file or T-file) contains data about one Sample element, e.g., a telephone number, address, name, company size, etc. Sample table Table in the database containing the gross sample. Each record in the Sample table contains data about one Sample element, e.g., a telephone number, address, name, company size, etc. Omnibus table Table in the database containing the omnibus information (i.e. the names and order of subquestionnaires). If a T-file is used instead of a Sample table, the omnibus information is stored in the Sample record. U-file ASCII file containing answer codes that refer to chosen answer categories of closed questions, values entered for numerical questions and texts entered for text questions. O-file ASCII file containing all open answers entered by keyboard. C-file ASCII file containing information for each contact. B-file Binary file containing open answers entered by Pen PC and/or recorded answers with *REC. D-file Binary file containing the Suspend Image (in case of a T-file). When a Sample table is used, the Suspend Image is written SuspendImage field in the Sample record.

4 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

1.4

Typographical conventions

In the NIPO ODIN Command Reference the following typographic conventions are used:
Example Convention

*QUESTION 1 *CODES 61L2 Qn, Qm

var, numvar, txtvar

expression

<Argument> [Argument] Argument|Argument2 Argument[,Argument2,]

<[Argument]> or [[Argument]] <Argument> or [Argument] size

The Courier font indicates syntax descriptions, argument descriptions or script examples. In syntax, if an argument refers to a question, n indicates the number of the question. If a second argument also refers to a question then m indicates the second question number. If an argument refers to a variable or array, var indicates both numeric and text vars. Numvar indicates a numeric variable and txtvar indicates a text variable. If an argument refers to an expression, the expression will first be interpreted and calculated and then the result is used. Angle brackets enclose obligatory arguments. Square brackets enclose optional arguments. A vertical bar separates two mutually exclusive choices. Three dots indicate that an argument can be repeated in a list any number of times. A comma separates the listed arguments. Square brackets enclosed by angle or square brackets are part of the argument. Double quotes enclosed by angle or square brackets are part of the argument. In descriptions, italic words refer to a part of the syntax.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 5

Features and Known issues

2.1
2.1.1

Features and Known issues in NIPO ODIN Script language 5.11


Most important (new) features of NIPO ODIN Script language 5.11

2.1.2

New commands in the NIPO ODIN Script Language 5.11

In the NIPO ODIN Script Language 5.11 (32-bit) the following new commands are implemented as compared to the NIPO ODIN Script Language 5.09/5.10.

1) New command *SCALERANGE With this command, the values of scale boxes can be changed. See page 220 for more details.

2) New command *INTRO With this command, separate introductions for each channel can be defined. See page 136 for more details.

3) New command *HEADING With this command, a heading above categories can be defined. See page 123 for more details.

4) System variables do not need to be defined In NIPO ODIN 5.09 and higher, there is no need to define system variables (like STOPWATCH[3], _ISCATI, etc.). When a system variable is defined in your NIPO ODIN questionnaire, you will receive a warning message during the syntax check:

Warning: Declaring system variable is not required: _ISCATI

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 7

2.2

Features and Known issues in NIPO ODIN Script language 5.09/5.10

Note: NIPO ODIN Script Language version 5.09 and version 5.10 are in fact the same version, only running different Microsoft shared DLLs.

2.2.1

Most important (new) features of NIPO ODIN Script language 5.09

No new commands have been implemented in NIPO ODIN 5.09, as compared to NIPO ODIN 5.08.

1) Channel aware scripting with As_Was When switching halfway a questionnaire from CATI to Web Client, the system will resume the questionnaire on the last question. All filters and routing with channel aware filters until that question (except in the -block) will be handled with the channel as it was before switching (As_Was situation). When the last question was under channel aware filter (e.g., the interviewer asking if the respondent is willing to switch to CAWI now), the questionnaire will resume with the next question. Note: The ASWAS functionality is a feature that is build in the NIPO Fieldwork System 1.05. There is no setting or variable that needs to be set; it is just a way of handling switched interviews by the NIPO ODIN Engine. In the previous version NIPO Fieldwork System 1.03 (Engine 5.08), the Engine would work ASIS. This means that when an interview is resumed, it runs through the SuspendImage and for each channel aware filter ( *IF[_ISCATI] or *IF[Channel=1] ) decides if it is true or not. In NIPO Fieldwork System 1.05 (Engine 5.09) the engine will not look at the current channel, but at the channel that was true when the question was originally asked (ASWAS). Only when returning to the end of the SuspendImage (i.e. at the question where the interview was interrupted or where it was switched), it will look at the current channel. The only exception is questions in the *INIT-block, because these are asked each time an interview is resumed. So in the OLD version all questions that were asked in CATI, before switching to CAWI, would have been empty when a channel-filter *IF [_ISCATI] was used. The workaround was simple when using a forced switch. After some initial CATI questions, you ask the respondent if he/she wants to switch and you use an *ENDST 41 with the SWITCH option. As you know exactly where the channel changes, you do not need any channel aware filters.

8 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

2.2.2

Known issues in NIPO ODIN Script Language 5.09

1) Use system names in Sample table instead of table fieldnames All system fields in the Sample tables may only be referred to by their system names, not by the fieldnames. The NIPO CATI Master will produce an error message 'Duplicate field name'. Table 2-1 | Setting names and Field names in Sample table Setting name in NIPO CATI/Web Master Field name in Sample table AppointmentName AppointmentTime AvailabilityCode CallIntervalBegin CallIntervalEnd Channel ContactTime DisplayField1 DisplayField2 DisplayField3 DisplayField4 ExtraData GroupID ID Indicator2ndNumber InterviewerNumber InterviewNumber Language NumberOfContacts 1 Email SecondPhoneNumber ShowDisplayFields ShowSecondPhoneNumber 1 Status SystemData TargetInterviewer TelephoneNumber TimeDifference

TTAppointmentName TTAppointmentTime TTAvailabilityCode TTCallIntervalBegin TTCallIntervalEnd TTChannel TTContactTime TTDisplayField1 TTDisplayField2 TTDisplayField3 TTDisplayField4 TTExtraData TTGroupID TTID TTIndicator2ndNumber TTInterviewerNumber TTInterviewNumber TTLanguage TTNumberOfContacts TTRespEmail TTSecondPhoneNumber TTShowDisplayFields TTShowSecondPhoneNumber TTStatusCode TTSystemData TTTargetInterviewer TTTelephoneNumber TTTimeDifference

Fieldnames in bold are names that differ from the settingname.


NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 9

2.3
2.3.1

Features and Known issues in NIPO ODIN Script language 5.08


Most important (new) features of NIPO ODIN Script language 5.08

The following items have been changed as compared to the NIPO ODIN 4.08 Script Language, as described in the NIPO ODIN 4.08 Script Language Command Reference rev 20010711. 1) Channel aware scripting In NIPO ODIN Questionnaire you can use the system variables to make routing or question texts depending on the channel. See paragraph 3.1.10 for more details.

2) Tab-positions with *TAB based on percentages In the Web Client, the *TAB is interpreted as percentages of the screen, not character. E.g., *TAB 50,75 will create 2 tabs, i.e. 3 columns, the first column half the screen width, the last 2 each 25% of the screen width. See page 243 for more details.

3) Map *ADDRESS positions to database fields When using a Sample table, the NIPO ODIN questionnaire can refer to all Sample table field names, by using the *SAMPLEDATA command. However you can also refer to positions in the original T-file format. The positions are mapped to the default positions of the fields in T-files. Example:

*QUESTION 11 *ALPHA 61L17 *MOVU Q11 1L17


will transfer the field TelephoneNumber from the Sample table into Question 11. This could also be written as:

*QUESTION 11 *ALPHA 61L17 *SAMPLEDATA TelephoneNumber

*COPY Q11 "*?TelephoneNumber"


(The telephone number is an alpha-field, because it may contain spaces and a leading zero.) Example 2:

*QUESTION 12 *NUMBER 81L8 *MOVU Q12 36L8


will transfer the field InterviewerNumber from the Sample table into Question 12. This could also be written as:

*QUESTION 12 *ALPHA 81L8 *SAMPLEDATA InterviewerNumber

*COPY Q12 [ InterviewerNumber ]

10 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

4) Start external application with *RUN and STDRUN32.DLL: Runtype -1 In the NIPO ODIN questionnaire the command *RUN is used to start an external application. Use the STDRUN32.DLL to start a 32-bit application. See page 208 for more details.

5) Jump to question after non-response code In the response-code description in the survey configuration file (survey.INI), a *GOTO can be specified. After using the response code, the system will immediately jump to the specified question. This option can be used to add some general question. Note that the questionnaire can not be closed anymore by the interviewer in this final block, so it should be ended with the same *ENDST <nr>. Example 2-1 | Using *GOTO in a response code In the survey.INI file:

RESPC31T=Stop interview, jump to final questions *GOTO 9001 RESPC31=STOP,WRITE


In the questionnaire:

*QUESTION 9001 *CODES L1 Can I first ask one final question? 1: OK *ENDST 31

This feature was in fact already implemented in the NIPO Interview System 16-bit, but never documented.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 11

6) *PAGE may be directly behind *IF, but *QUESTION not After an *IF statement, you may directly specify an *PAGE with text. You may however NOT specify a *QUESTION. Example 2-2 | Using *PAGE directly behind an *IF Correct syntax:

*IF [ TMP = 1 ] *PAGE This text will appear on a separate page


Incorrect:

*IF [ TMP = 2 ] *QUESTION 1 The syntax of the previous line is not correct. Therefore this text will also lead to an error.
Correct:

*QUESTION 1 *IF [ TMP = 2 ] This text will appear on a separate page

This feature was in fact already implemented in the NIPO Interview System 16-bit, but never documented.

7) System variable STOPWATCH[3] after appointment When an interview is interrupted and resumed, the system variable STOPWATCH[3] will contain the actual interview time difference between 2 points in the questionnaire, excluding the time the interview was not active until the appointment was resumed.

2.3.2

Most important new features in NIPO Web Client

1) Using templates and stylesheets In the NIPO Web Client you can configure templates and stylesheets. See the NIPO ODIN HTML Generator Scripter's Guide for details.

2) Using HTML (incl. JavaScript) in NIPO ODIN questionnaire In the NIPO Web Client you can use HTML (including JavaScript) in the NIPO ODIN questionnaire. HTML commands start with <<<! and are closed with !>>>. See page 255 for more details.

12 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

2.3.3

New commands in the NIPO ODIN Script Language 5.08

In the NIPO ODIN Script Language 5.08 (32-bit) the following options are implemented as compared to the NIPO Interview System 4.08 (ODINS.EXE 16-bit). 1) New command: *SAMPLEDATA With this command, variables in the NIPO ODIN questionnaire can be linked automatically with fieldnames in the Sample table. The variables in the NIPO ODIN questionnaire will be filled automatically with the contents of the corresponding database field, when starting or resuming an interview. The database fields will be updated with the contents of the variable, when closing or interrupting an interview. See page 212 for more details.

2) New command: *SQLGET


With this command data can be retrieved from a database table. See page 229 for more details.

3) New command: *SQLPUT With this command data can be written in a database table. See page 232 for more details.

4) New command: *ORDER With this command the order of categories in a *CODES *FORM question or of a *REPEAT-loop can be set. See page 180 for more details.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 13

5) Changed command: *PUT in combination with Sample table With the NIPO ODIN command *PUT, you can retrieve data directly from the T-file by referring to a position instead of a question number or variable name. See page 189 for more details.

6) Changed command: *LANGUAGE name,RTL It is now possible to created a multi-language questionnaire, combining languages with 'normal' direction and 'bi-directional languages (Hebrew, Arabic), with the ,RTL (right-to-left) setting. See page 140 for more details.

14 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

2.4
2.4.1

Known Issues
Known issues in NIPO ODIN Script Language 5.08

See also the NIPO CATI Client 5.03 Technical Reference for differences between 16-bit and 32-bit CATI Clients. 1) Channel aware script uses current channel When a survey runs in switch mode, note that data is only written after the questionnaire is completely finished. This means you can not start analysis of the data collected in the CATI (screener) part of the questionnaire. Also questions that are posed under condition of the CHANNEL variable, will be written only for the last-used channel (AS_IS, not AS_WAS). Example 2-3 | Example of using Channel aware script, that will result in loss of data

** Spontaneous awareness is only asked when the channel is ** CATI, but some questions later a switch is forced. *QUESTION 1 *CODES 61L5 *MULTI *IF [ _CHANNEL = _CATI_ ] What brands do you know? Int. do not help! 1: 2: 3: 4: 5: Brand Brand Brand Brand None A B C D *NMUL

*NOTBACK *IF [ _ISCATI ] *PUT SwitchText "Do you want to complete this interview via Internet?" *IF [ _ISCATI ] *PUT SwitchText "Press enter to continue" *LIST 1 1: switch to web *ENDST 41 2: switch after this question 3: continue in CATI *LIST 2 4: continue in Web *QUESTION 2 *CODES 66L1 *LIST [ _CHANNEL ] *?SwitchText *IF [ _ISCATI ] *PUT IntText "Int. read out!" *QUESTION 3 *CODES 67L5 *MULTI *CONTROL Q1 N What brands do you know? *?IntText 1: 2: 3: 4: 5: Brand Brand Brand Brand None A B C D *NMUL *NOCON
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 15

2) No more support for Dutch commands In the Dutch version of the NIPO Interview System 4.08 it was possible to use commands in Dutch. This is no longer supported.

3) No more support for replaced commands In version 4.06 of the NIPO ODIN, some commands have been replaced. The old commands are no longer supported. Table 2-2 | Replaced commands that are no longer supported
Old command New command

*OR *XOR *MOVE *PLAYWAIT *REPETE

*INCLUDE *EXCLUDE *COPY *WAITPLAY *REPEAT

16 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

4) No more support for improper use of ODIN syntax (illegal constructions) In the NIPO ODIN 4.08 it was possible to trick the system, because the ODIN script was only interpreted when executed. As the NIPO ODIN script is now first loaded and interpreted by the Parser, this improper use of the NIPO ODIN syntax is not possible anymore.

Example 2-4 | Example 1 of improper ODIN syntax

*TEXTVARS FIGURE *PUT FIGURE "*PICT [NR]" *QUESTION 1 *CODES L1 "*?FIG"


Commands are not allowed in a variable. Solution:

*QUESTION 1 *CODES L1 *PICT [ NR ]

Example 2-5 | Example 2 of improper ODIN syntax

*TEXTVARS Condition *PUT Condition "*IF [Q1,1]" *QUESTION 1 *CODES L1 "*?Condition"


Commands are not allowed in a variable. This was a feature that was advised against strongly, as it in fact made syntax checking impossible. Solution:

*QUESTION 1 *CODES L1 *IF [ Q1,1 ]

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 17

Example 2-6 | Example 3 of improper ODIN syntax

*TEXTVARS DONTKNOW *IF [ Q2,1 ] *PUT DONTKNOW "9: Dont know" *QUESTION 3 *CODES L1 Do you own a VCR? 1: Yes 2: No *?DONTKNOW
Code numbers are not allowed in a variable. Solution: Use *CONTROL on a *DUMMY question:

*QUESTION 4 *CODES L1 *DUMMY *IF [ Q2,1 ] *EXCLUDE Q4 Q4 *ELSE *INCLUDE Q4 [ 9 ] *QUESTION 3 *CODES L1 *CONTROL Q4 N Do you own a VCR? 1: Yes 2: No 9: *?DONTKNOW
If two non-response codes are required, a *MULTI question should be used for Q4. If the code numbers are for instance code 98 and 99, you will spoil 97 positions, but you can use Q4 as many times as required (because the command *EXCLUDE Q4 Q4 will clear the contents of Q4).

Example 2-7 | Example 4 of improper ODIN syntax

*QUESTION 7 *CODES L1 *PLAY "movie.mpeg" Do you recognise this advertisement? 1: Yes 2: No *PLAY is not allowed as a question option. *PLAY is a command that should be specified on a separate line (or after a filter if required).
Solution:

*PLAY "movie.mpeg" *QUESTION 7 *CODES L1 Do you recognise this advertisement? 1: Yes 2: No


18 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2-8 | Example 5 of improper ODIN syntax

*QUESTION 2 *NUMBER L1 *SAVE ScaleLen how long do you like the scale? *QUESTION 1 *FORM 1: *SCALE 61 [ScaleLen] 28
Solution: Technically this was possible, but it was on a methodological point of view not recommended, as you can not do a proper analysis on scales if the maximum is not fixed. For instance if a survey is running both in Holland, where on school you get marks from 1 to 10 (10 being the highest) and in the USA, where marks are from A to F (A being the highest), its better to use two different blocks of questions and recalculate them afterwards to be able to compare the results.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 19

5) No more support for slashes to separate categories

Example 2-9 | Example of categories separated by slashes

*QUESTION 5 *CODES L20 *MULTI Which brand do you know? 1: Brand A 2: Brand B 3: Brand C /11: Brand K /12: Brand L /13: Brand M

19: None of these


Solution: Use *AUTO and *NEWCOLUMN to create columns automatically:

*QUESTION 5 *CODES L20 *MULTI *AUTO Which brand do you know? 1: 2: 3: 11: 12: 13: Brand Brand Brand Brand Brand Brand A B C K *NEWCOLUMN L M

19: None of these *STOPAUTO

Note: The columns will only be created when the page gets too long and a vertical scrollbar would appear.

20 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

6) Copy positions from T-file limited to field length When copying positions from the T-file, the system will internally use the fields in the underlying database. This means that you can not copy positions that exceed the length of the database fields.

Example 2-10 | Copying positions from T-file that overlap database fields.

*PUT NAME 251L50 *MOVA 101L50 201L50

only 35 positions (251-285) will be copied, as the field DisplayField4 is 251L35. only 15 positions (201-215) will be copied, as the field DisplayField2 is 181L35.

7) No more support for changing font of code numbers

Example 2-11 | improper use of *FONT statement before a code number

*FONT 2 1: Brand A

Work-around: Use the *FONT directly after the colon Example 2-12 | *FONT statement should be used after the code number and colon

1: *FONT 2 Brand A

Note: Each new category will automatically reset the font to the default font of the questionnaire.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 21

8) *AUTO only supported for NIPO CATI Client The *AUTO command is not supported for the NIPO Web Client. Use the *NEWCOLUMN command to split the categories into columns.

9) Using *AUTO with too many categories When using the *AUTO command in combination with more categories that will fit on the screen, even after creating columns, the system will sometimes create both a horizontal AND a vertical scroll bar, which will be even more confusing for the interviewer. Note: How many categories will fit on the screen by using columns, is depending on the length of the category texts. Each column will be as wide as the largest category text. Note 2: Using many categories in a question in combination with *AUTO might slow down showing the question on screen, especially when the question does not fit on the screen (a horizontal or vertical scroll bar will appear). Work-around: Reduce the number of categories if possible, create several questions instead of one question or use a *LIST in combination with *NUMBER.

22 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

10) Using *RANDOM on a *FORM question without category numbers

Example 2-13 | Example of using *RANDOM on a *FORM question, without category numbers

*QUESTION 6 *FORM *RANDOM Please fill in the form. A *NUMBER L2 C *NUMBER L2 B *NUMBER L2 D *NUMBER L2

In a *FORM question it was possible in the 16-bit ODIN (but not recommended!) to leave out the category numbers. In 32-bit ODIN, you always have to specify them. When *RANDOM is used, the fields may NOT be specified on the same line. Solution:

*QUESTION 6 *FORM *RANDOM Please fill in the form. 1: 2: 3: 4: A B C D *NUMBER *NUMBER *NUMBER *NUMBER L2 L2 L2 L2

Note: The syntax check in the NIPO ODIN Developer will give a warning message for fields in a *FORM question without a category number.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 23

11) *INIT block is executed before Suspend Image In the *INIT block it is possible to set some actions, that should be executed before resuming an interrupted interview. The A-file in the NIPO Interview System 16-bit contains only the contents of variables and the question number where to resume. The *INIT block is executed directly before the question where the interview is resumed. This made it possible to make checks on variables or questions that were filled in a previous session. The NIPO Interview System 32-bit uses a Suspend Image, containing the complete routing, instead of the A-file. When an interview is resumed, the engine will go through the whole questionnaire very quickly, filling in all previous answers. This way the system will see all changes in the questionnaire, like changed routing or new questions. The *INIT block is executed before running the Suspend Image. Sometimes this means the execution of the *INIT block in the NIPO Interview System 32-bit would lead to different results as compared to the 16-bit version, as variables that are created halfway the questionnaire are not filled yet. Showing some introduction questions or retrieving data from the telephone file or Sample table in the

*INIT block, are different between NIPO Interview System 16-bit and 32-bit.
Note: The feature of a Suspend Image is that you can go back in questions that were asked in a previous session and that you can start in the middle of a subroutine or *REPEAT loop. So in a lot of cases, no *INIT block is required in 32-bit. Tip: If the *INIT block is used to display some variables from a previous session (like a counter), you can of course store this counter in the telephone file or Sample table and use the *MOVU command to retrieve this data.

12) Selecting another CHARSET in the *FONT command It is not (yet) possible to change the codepage within your questionnaire. Use unicode instead when the default character set of Windows does not support the (special) characters in your language.

24 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

13) *NCLS repaints the question When using *NCLS (no clear screen) in a questionnaire, the question will appear directly under the previous question. However the screen is repainted, removing the previous answer-box, so interviewers will not see it as the same question and will start reading at the top of the previous question. Work-around: Use *FORM questions with *SCALE to put several questions on the same screen. This also enabled the interviewer to change the previous answers if required.

14) Using duplicate interview numbers in T-file When using a T-file in CATI, it is possible to set the interview numbers in pos. 52L8 before starting a survey. These numbers should be 8 digits (i.e. contain leading zeros, no spaces allowed) and should (obviously) be unique. The system will reject records with duplicate interviewnumbers and write them back with response-code 26. (This was already implemented in NIPO CATI System 2.00.) When a T-file is replaced by another T-file, the system is not able to check if interview numbers are duplicate. In previous versions of the NIPO CATI System the result would be that: If the T-file contains the same telephone numbers: the respondents are called a second time. Only when respondents start complaining, the supervisor notices that the T-file is not correct and can stop fieldwork. If the T-file contains other telephone numbers: the U-file and O-file will contain duplicate interviewnumbers. Thus only after the fieldwork is completed, the researcher will notice something went wrong. In the NIPO CATI Client 5.03 with a T-file the SuspendImage (D-file record) is used to enable resuming an interview after an appointment. When the new T-file contains records with an interview number that was already completed (successful, refusal, etc), no new interview can be started with this interview number (as the SuspendImage of the interview would go through the routing of the previous session and immediately close the questionnaire the same way it closed before). When starting a survey the NIPO CATI/Web Master will check the T-file for available interviewnumbers with a matching D-record that is already completed. These numbers will create a warning message in the EventLog and the NIPO CATI Manager (See below for more details).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 25

15) Re-using interviewnumbers that were already completed In the NIPO CATI Client 5.03 with a Sample file (T-file) the SuspendImage (D-file record) is used to enable resuming an interview after an appointment. In some surveys it is required that interviews that were already completed (e.g., the respondent refused after starting the interview) should be called back. When initializing the Sample records (i.e. change the ResponseCode back to 00), there is already a SuspendImage with the same interviewnumber present and executed before the interview is resumed. As this SuspendImage was already completed, no new interview can be started with this interview number. When the interviewer typed a refusal in the introduction screen, no D-record is created, so there will be no problem and T-records can be re-used. When starting a survey the NIPO CATI/Web Master will check the T-file for available interviewnumbers with a matching D-record that is already completed. These numbers will create a warning message in the EventLog and the NIPO CATI Manager. Note: When using a Sample table instead of a T-file, the SuspendImage may be initialized, so this known issue does not apply. Solution 1: When refusals have to be dialed again, initialize the ResponseCode, but also change the interviewnumber (for instance by putting a 9 in position 1L1). This way the numbers will be seen as new interviewnumbers. Solution 2: When stratification cells have changed and telephonenumbers with ResponseCode 21 have to be reused, there are two options: If the stratification was on input (data already available in the T-file before starting the interview), the previous response code may be used. No D-record was created, so no problem with duplicates. If the stratification is on output (data that was collected in the questionnaire and *STRAT was used), respondents have already been contacted and told that they were not in your target group (and a D-record was created with that routing). If you initialize these numbers, also the interviewnumber has to be changed. Solution 3: When T-records have a ResponseCode 20 (system error) they should only be initialized when you found the cause of the system error. If the system error was caused by communication problems between the NIPO CATI Master and the NIPO CATI Client, use the RECINT32.EXE tool to recover the interviews from the interviewer workstation or the Recover directory on the NIPOI CATI Master PC. Solution 4: Releasing numbers with more than 5 contacts. This can much easier be done by changing the maximum number of contacts (for this survey) in the NIPO CATI Manager. In the survey.INI file add a line: MAXCON=10 (minimum: 3)

26 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Solution 5: When a T-file should be used for recall-survey or a monthly panel survey, you should not use the same surveyname, but create a new survey (B1234B instead of B1234A).. Or make a backup of the complete directory and then remove all files, except for the Questionnaire and the T-file. Solution 6: In the survey.INI you can add the following setting:

AlreadyCompletedCode=nn
When this setting is not specified (default) the T-records with a matching completed D-record will be set to code 20 (system error). The T-record will be rejected (not used). When a response-code is specified that is not available (default responsecodes 04, 05, 08 to 17 and 20), the T-records with completed D-record will be written with the specified response-code. The T-record will not be used. When code 0 is specified, the D-record of all T-records with completed D-record will not be used. The interview will start at the beginning of the questionnaire. When a responsecode is specified that is available (default responsecodes 01, 02, 03, 06 and 07), the D-records of will be set to 'not completed'. The interview will resume at the same question as it was interrupted.

Example 1: AlreadyCompletedCode=35 RESPC35T=Already completed interview in D-file RESPC35=STOP T-records with completed D-record will be reported, rejected and set to code 35. Interview 1234 (Demo32) already completed in D-record. D-record 1234 (Demo32) not used. Example 2: AlreadyCompletedCode=36 RESPC36T=Already completed interview in D-file may be used again RESPC36=AVAIL T-records with completed D-record will be reported, but are used. Interviews will resume at the question where they were interrupted. Interview 9038 (Demo32) already completed in D-record. D-record 9038 (Demo32) made available. Example 3: AlreadyCompletedCode=0 T-records with completed D-record will be reported, but are used. Interview will start at the beginning of the questionnaire Interview 9038 (Demo32) already completed in D-record. D-record 9038 (Demo32) made available. The check will be executed when loading a survey. Fieldwork supervisor can check the messages and decide if fieldwork for the survey should be started or not.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 27

Solution 7: In all cases where you already started fieldwork, without realizing that the interviewnumbers were duplicates, a more drastic measure can be used: Delete the D-file. All interviews will start at the beginning of the questionnaire, also all appointments halfway the interview. Note: The system checks for duplicate interview numbers. It does not check duplicate telephone numbers! In the NIPO FMS it is possible to check and remove duplicate telephone numbers, when using a Sample table instead of a T-file. Note 2: When using Sample table instead of T-file, you can initialize the SuspendImage for the records that should be re-used. But if the SuspendImage is not cleared, the same rules apply. Note 3: Re-using a T-file/Sample table record with the AlreadyCompletedCode setting, will not remove the data record from the U- and the O-file, so the same interview number might be used twice. Make sure that you have to remove duplicates before starting the analysis.

28 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

2.4.2

Known issues in Web Client

1) Display of *NUMBER *LIST question in box A large list in a *NUMBER *LIST question will not be displayed correctly in some older Browser version. This is not a NIPO Software bug, but due to a bug in the Browser version. Avoid using long lists.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 29

How to use the NIPO ODIN Script Language

3.1

Naming conventions

Names of variables, subroutines, etc. have to be unique and may consist of a maximum of 12 characters. Only letters, underscores and numbers are allowed. The first character has to be a letter. 3.1.1 Questions

Question numbers are made up of positive numbers (>= 1). No alphabetic (except X, see below) or other characters are allowed. Each question number has to be unique within one (sub-) questionnaire. Question numbers can be used indifferently. Afterwards it is possible - but not necessary - to renumber the questionnaire (see NIPO ODIN Developer Manual). Instead of numbers you can also use the character X on each question. In this case the question numbers are not defined and routing has to be done afterwards. When you renumber the questions, question numbers will be inserted. The highest question number is 2147483647 (long integer, 2 The *QUESTION command may be abbreviated to *Q.
Correct question numbers: Wrong question numbers:
31

-1).

*QUESTION *QUESTION *Q 3 *QUESTION *QUESTION *QUESTION *QUESTION *QUESTION *QUESTION

1 2 2501 109 11001 102 2147473647 1234567890

*QUESTION *QUESTION *QUEST 3 *QUESTION *QUESTION *QUESTION *QUESTION *QUESTION *QUESTION

0 2 25a 10.9 11.001 1-2 2234567890 1 234 567 890

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 31

3.1.2

Data fields

In the NIPO ODIN Scripting Language it is not necessary to define the starting position of a data field when you define a question. Only the length of the data field is required. ODIN keeps track of all the positions used in the questionnaire. In the NIPO ODIN Developer, you can automatically insert the starting positions by choosing Fix Positions from the Action menu (See NIPO ODIN Developer Manual). Omitting starting positions is not allowed for questions that refer to data fields in the Tfile/Sample table. These starting positions always have to be defined. In a closed, but not multiple question the number of digits of the highest category number defines the minimum length of the data field. In a closed, multiple question the highest category number (i.e. not the number of categories) defines the minimum length of the data field. In numeric questions the minimum and maximum length are depending on the answer that you expect. The maximum size is app. 16 positions (including decimals, floating point). The highest position for a data field in NIPO ODIN 4.08 is 32.000 and in NIPO ODIN 5.08 is 99.999. Note: Make sure your analysis program can handle files of 99.999 positions. In the NIPO ODIN Developer 5.04, you can configure the maximum record length. Note 2: NIPO CATI/Web Master 5.01 and higher do no longer support unfixed NIPO ODIN questionnaires. Make sure to 'fix data positions' (in the NIPO ODIN Developer) before start of fieldwork.

32 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

3.1.3

Answer categories

Answer categories are recognised by a number followed by a colon. This number has to be the first non-blank character at the beginning of a line. Category numbers can be used indifferently. Category numbers have to be unique within a question. If the category text does not fit on a line, it is allowed to continue on the next line. All the following lines will be considered as part of the category until the first blank line. The highest category number is 2147483647 (long integer, 2 Example:
31

-1).

*QUESTION 1 *CODES L2 This is the question text Question text may be written in long lines, that will automatically be truncated at complete words, when the line exceeds the screen width. Question text may contain empty lines, that will appear on screen, except when the *AUTO command is used AND the text is too long to fit on the screen. 1: This is category one 2: This is category two 5: This is category five 7: This is category seven running over three lines This line will be considered as text 11: This is category eleven *END
Note: Code number 0 (zero) is only supported for *CODES questions without *MULTI. Also *OPEN is not allowed after code 0. When exporting a NIPO ODIN Questionnaire to Triple-S using code 0 is not allowed, but codes may be 'shifted' during export (1 is added to each code number).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 33

3.1.4

Slashes

In NIPO ODIN 5.08 the forward slash (/) can not be used to separate categories.

3.1.5

Backslashes

Use the back-slash (\) as the very last character on a line to continue a command line on the next physical line. The next line will be interpreted as if written on the same line. Categories or texts can be written on the next line without this backslash, the category options however should be written on the same line as the category number (or use the backslash on this line).

34 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

3.1.6

Using variables

You can store a text or a value in a variable, to display in a question or to use for routing. Variables have to be defined (with *VARS and *TEXTVARS, see below) before they may be used. A variable can be filled with the *PUT or the *SAVE command. It can be displayed with the *? command. Note that the contents of the variable is depending on the type of variable. A numeric variable (*VARS) may contain any value (integer). Use the *FORMAT command to change the appearance, when displaying a numeric variable. When text or a text variable is saved in a numeric variable, the NIPO ODIN syntax check will give a warning message. A text variables *TEXTVARS may contain a text of unlimited length. The text may contain CR/LF, that will be used when displaying the variable. Variables may not contain NIPO ODIN commands, except for *FONT. Important note: The contents of variables is not stored in the data file automatically. So make sure that if you base questions or routing on a variable, you store this information. Note 2:

*SAVE as a question option may not be combined with *SAVE as a category option.
Note 3: Do not use the *SAVE command on a *CODES *MULTI question. A text variable may contain only one text at a time (although this text may be of unlimited length).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 35

Example 1:

*TEXTVARS Gender *QUESTION 1 *CODES L1 *SAVE Gender Int. type gender of respondent 1: Male 2: Female
If code 1 is selected, the (text) variable Gender will contain the text 'Male'. If code 2 is selected, the variable Gender will contain the text 'Female'. Example 2:

*VARS Gender *QUESTION 1 *CODES L1 *SAVE Gender Int. type gender of respondent 1: Male 2: Female
If code 1 is selected, the (numeric) variable Gender will contain the value '1'. If code 2 is selected, the variable Gender will contain the value '2'. Example 3:

*TEXTVARS Gender *IF [ Q1,1 ] *PUT Gender "man" *ELSE *PUT Gender "woman"
If question 1 contains code 1, the (text) variable Gender will contain the text 'man'. If not, the variable Gender will contain the text 'woman'. Example 4:

*VARS Gender *IF [ Q1,1 ] *PUT Gender "man" *ELSE *PUT Gender "woman"
The syntax check will give a warning message, because a text is written in a numeric variable. After the filter is checked, the contents of the variable will be 1 (regardless of the outcome of the filter).

36 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 5:

*VARS Age *QUESTION 2 *NUMBER L2 *SAVE Age What is your age?


After question 2 is answered, the (numeric) variable Age will contain the value that was entered. Example 6:

*TEXTVARS Age *QUESTION 2 *CODES L1 *SAVE Age What is your age? 1: 2: 3: 4: 5: 6: 9: 18 - 24 years 25 - 34 years 35 - 44 years 45 - 54 years 55 - 64 years 65 years or older won't tell

After question 2 is answered, the (text) variable Age will contain the category text of the code that was selected. Example 7:

*VARS Age *QUESTION 2 *CODES L1 *SAVE Age What is your age? 1: 2: 3: 4: 5: 6: 9: 18-24 years 25-34 years 35-44 years 45-54 years 55-64 years 65 years or older won't tell

After question 2 is answered, the (numeric) variable Age will contain the code number of the code that was selected.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 37

Example 8:

*VARS Age,CurrentYear *QUESTION 21 *NUMBER L4 *DUMMY *DATE Q21 *PUT CurrentYear [ Q21 ] *QUESTION 22 *NUMBER L4 *MIN 1900 *MAX [CurrentYear] \ *BUT 99 "Won't tell" In what year are you born? *IF [ Q3<>99 ] *PUT Age [ CurrentYear Q22 ] *ELSE *PUT Age [99] *FORMAT 2.0 *QUESTION 23 *IF [ Age <> 99 ] So your age is *?Age years
(This example obviously is only true when the respondent already had his/her birthday) Example 9:

*VARS SelectBrand *TEXTVARS Brand *QUESTION 31 *CODES L1 *DUMMY Here 3 brands are specified. The system will select 1 brand randomly. 1: Brand A 2: Brand B 3: Brand C ** Select a number below 3 and then add 1 to the result ** (this will randomly select 1 through 3) *PUT SelectBrand [ (RAN 3) + 1 ] ** Now put the category text of the dummy question in ** the text variable Brand *IF [ SelectBrand = 1 ] *PUT Brand Q31,1 *IF [ SelectBrand = 2 ] *PUT Brand Q31,2 *IF [ SelectBrand = 3 ] *PUT Brand Q31,3 ** Now save the contents of SelectBrand in the datafile. ** If you forget to do this, you will not be able to know, ** which brand was selected in the analysis. *COPY Q31 [ SelectBrand ]

38 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

3.1.7

System variables: 0-9

Ten system variables can be used in ODIN next to (and in the same way as) user-defines variables. These system variables are numbered (0-9) and do not have to be defined before they are used. Example:

*PUT 7 chicken *QUESTION 1 Do you often eat *? 7


In this example, the word chicken is stored in system variable 7 and is displayed in question 1.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 39

3.1.8

System variables: timers

Timers can be used by means of the system (array) variable STOPWATCH[3]. This is an array that consists of three elements. You do not have to define system variables. STOPWATCH[1] receives the time in seconds till you press a code in a closed question, a value in a numeric question or an alphanumerical character in a text question. This timer will be reset with every new question. STOPWATCH[2] receives the time in seconds till you press the [OK] button. This timer will also be reset with every new question. STOPWATCH[3] can be used as a timer that you have to reset yourself by putting it to 0. This timer starts as soon as the interview is started or each time you reset it. If you dont reset the timer it will run till the end of the questionnaire. Example:

*VARS STOPWATCH[3] *PUT STOPWATCH[3] [0] *QUESTION 1 *CODES L1 The time till you select a category will be stored in STOPWATCH[1] The time till you press [OK] will be stored in STOPWATCH[2] 1: Yes 2: No *PAGE The time till you selected a category was: *? STOPWATCH[1] seconds The time till you pressed [OK] was : *? STOPWATCH[2] seconds

*QUESTION 2 *CODES L1 Int.: this was the last question. Please, type a '1' to finish the interview. 1: 1 *PAGE The total time to conduct this interview was: *? STOPWATCH[3] *END
Result after question 1 has been answered:

40 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

3.1.9

System variables: miscellaneous

Contrary to earlier versions, all system variables do not have to be defined first. Other system variables include: CMDLINE When you use the *RUN command with STDRUN.DLL or STDRUN32.DLL, the name of the external application has to be stored in this variable. INPUTDATA When you use the *RUN command with STDRUN.DLL or STDRUN32.DLL, data that has to be transferred to the external application has to be stored in this variable. RUNTYPE When you use the *RUN command, ODIN will wait for the external application to finish before you can continue your interview. If you want ODIN to return to the interview without waiting, you have to set this variable to 1 (default = 0). If the external application you call is a 32-bit application, RUNTYPE has to be set to 10 (wait) or 11 (continue). LANGUAGE When you use *LANGUAGE, this variable contains the name of the language section that is operative. PRETEL When you use the autodial facility, this variable can be used to send a string together with the telephone number. This is useful when, for example, a telephone exchange logs the calls for administrative reasons. AGENTNAME The variable AGENTNAME will automatically contain the interviewer name, as specified in the interviewer file resp. the interviewer database. Contrary to all other variables, this variable can also be displayed in the introduction screen. For more information about using variables, see the commands *TEXTVARS, *VARS and *?.

CONJTXT[n] (in *CONJ)


See the NIPO Conjoint Measurement in NIPO ODIN Script Language 5.09 Manual.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 41

3.1.10 System variables for Channel Aware scripting Only supported in NIPO ODIN 5.08 and higher. The system variables _ISCATI and _ISCAWI can be used for filtering questions that should appear only for CATI or CAWI. Example 3-1 | Channel aware scripting

*QUESTION 1 *CODES 61L1 *IF [ _ISCATI ] This question will appear only on a NIPO CATI Client 1: OK *QUESTION 2 *CODES 62L1 *IF [ _ISCAWI ] This question will appear only on a Web Client 1: OK

Note: System variables, such as _ISCATI and _ISCAWI, do not need to be defined in the NIPO ODIN Questionnaire. The following system variables are available: Table 3-1 | Channel aware system variables
Variable Value in case of CATI Value in case of CAWI (Web) Value in case of CAPI Value in case of CASI (Panel) Value when running stand-alone

_ISCATI _ISCAWI _ISCAPI _ISCASI _CHANNEL

1 0 0 0 1

0 1 0 0 2

0 0 1 0 3

0 0 0 1 4

0 0 0 0 0

42 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

The following constants are available: Table 3-2 | Channel aware constants
Constant Value

_CATI_ _CAWI_ _CAPI_ _CASI_

1 2 3 4

Note: You may not change the contents of read-only system variables and constants in the NIPO ODIN questionnaire. Note 2: The channel aware system variables are written in capitals and start with an underscore. The channel aware constants are written in capitals and start and end with an underscore.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 43

3.1.11 Operators: repeat numbers Another special variable is ?R that you dont have to define either. This is a variable that keeps track of the repetition number inside a repeat block. This variable can only be used inside a repeat block and can not be altered. Example:

*TEXTVARS paper *QUESTION 2 *CODES 61L7 *MULTI Which of the following newspapers do you know? 1: 2: 3: 4: 5: 6: 7: La Repubblica La Stanza The Mirror The New York Times Le Figaro La Libration None *NMUL

*REPEAT 6 *FIELD 68L12 *PUT paper Q2,?R *QUESTION 3 *CODES 1 *IF [ Q2 , ?R ] How often do you read *? Paper? 1: 2: 3: 4: Daily Once a week Once a month Dont know

*QUESTION 4 *CODES 2 *IF [ ?R = 4 ] Did you read the special x-mas edition of the New York Times? 1: Yes 2: No *ENDREP

44 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

In nested repeat blocks you have to transfer the repeat number (?R) of the outer block to a numeric variable first to be able to use it in the inner block. Example:

*VARS X,Y,Z *REPEAT 3 *PUT X [?R] *REPEAT 2 *PUT Y [?R] ** this line is only necessary to display the value of ?R *PUT Z [X+?R] ** or *PUT Z [X+Y] *QUESTION 1 *?X + *?Y = *?Z *ENDREP *ENDREP

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 45

3.1.12 Expressions ODIN supports the use of expressions in questionnaires. An expression may indicate all sorts of data but will always result in a value. Expressions are used in two different ways: First as a Boolean; the result of the expression is false (the expression has as result value 0) or true (the expression has as result the value 1). The second use of expressions is to make calculations or manipulations with a number as result. Some commands will require or allow for an expression as argument. Expressions have to be enclosed in square brackets. The expressions will be evaluated from left to right. Operators apply to the operands immediately left and right. You can however group by means of brackets. Following is a list of possible operators: Table 3-3 | Expression operators
Operator Q L F Description question reference length of field cell-test Usage Qn nLm QxFn Result contents of question n position n, length m contents of cell number n within formquestion x , # # code-test code-string minus sign not negation Qx,n Qx,n-m -n #Qx #n 1 if present, otherwise 0 code-string negation of n 1 if no answer in question x, otherwise 0 1 if value n not true, otherwise 0 + add subtract multiply divide not equal to equal to less than greater than less or equal greater or equal logical AND logical OR n+m n-m n*m n/m n<>m n=m n<m n>m n<=m n>=m n&m n\m 1 if both not 0, otherwise 0 0 if both 0, otherwise 1 1 if true, otherwise 0 sum of n and m difference of n and m product of n and m division of n and m

*
/ <> = < > <= >= & \

46 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Operator RAN ?R ?A ?B ?Y

Description random value repetition number list reference in conjoint measurement list reference in conjoint measurement Height of a picture or movie

Usage RAN n ?R ?A ?B ?Y

Result random value from 0 up unto and including n-1 current (logical) repetition number. feature of A-list feature of B-list height in pixels

TO ; QxM QxR

Range separate ranges order of mentions in a

n1 TO n2 n1 TO n2 ; n3 TO n4 QxM QxR

Range n1 through n2 Range n1 through n2 or n3 through n4 only possible in combination with

*MULTI question
display order of a question, when using

*ORDER
only possible in combination with

*ORDER
QxMy QxRy

*RAN, *INV or *ROT


QxMy QxRy order of mention number y in a *MULTI question display order number y of a question, when using

*RAN, *INV or *ROT


In this overview the following applies: 1. question reference The reference to a question by means of Qn where n represents the question number. If it concerns a code test then more code values may occur; these will be treated as a logical or. Example:

Q1,1
2. code-string Any given number of codes separated by a comma or a code range indicated by a dash. Valid codes consist of the numbers 0 up to and including 9 and the character B that represents a blank (space). Examples

Q2,B Q3,1-5 Q4,2,4,8,12

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 47

3.

number calculated number direct text enclosed in double quotes with possibly the embedded contents of a variable variable name; the contents of the variable will be used RAN n; a random number with as limit n. I.e. a number from 0 up to and including n-1 ?R; a system variable only available inside a repetition block. It will contain the current repetition number. See also system variables. Examples:

Q5=3 Q6=Q7-3 Q8=Amsterdam


4. Position reference The reference to a position in the data file. Define starting position and field length to distinguish position references from numbers. It is recommended to use question references instead of position references. Example:

61L2=99
Note: ?A and ?B are only available within the NIPO Conjoint Measurement (NIPO ODIN command *CONJ ... *ENDCONJ) Note: 'TO' and ';' are only available in expression with *RANGE.

48 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

3.1.13 Examples of expressions

[ 100 ] The result is equal to the value 100. [ RAN 100 ] The result is a value from 0 up to and including 99. [ TOTAL[3] ] The result is equal to the value stored in the third element of the number array TOTAL. [ TOTAL2 * 3 + 10 ] The result is equal to the value stored in the variable TOTAL2, multiplied by 3 and then increased by 10. [ Q11,1 ] The result is 1 when code 1 in question 11 was stated. [ Q12,1,2,3 ] The result is 1 when code 1, 2 or 3 in question 12 were stated. [ Q13 >= 18 ] The result is 1 when question 13 is 18 or higher. [ Q11,1 \ Q12,1,2,3 ] The result is 1 when code 1 in question 11 was stated or code 1, 2 or 3 in question 12 were stated. [ Q12,1,2,3 & Q13 >= 18 ] The result is 1 when code 1, 2 or 3 in question 12 were stated and question 13 is 18 or higher. [ Q12 ] The result is equal to the value of the (highest) answer code given at question 12; if unanswered the result will be 0. [ Q13 = Q14 ] The result is 1 when the value of question 13 is equal to the value of question 14. [ #(Q5 \ Q6) & Q7 = 1 ] The result is 1 if question 5 and 6 both are unanswered and question 7 contains value 1. The brackets are necessary to have the # operator work on the grouped expression instead of on question 5 alone. [ Q5 , 1 TO 3 ] The result is 1 if question 5 contains code 1 through 3 (codes 1, 2 or 3). [ Q5 , 1 TO 3 ; 6 TO 8] The result is 1 if question 5 contains code 1 through 3 or 6 through 8 (codes 1, 2, 3, 6, 7 or 8). Note the semi-colon separating the ranges.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 49

3.1.14 Often made mistakes in (filter) expressions:

*IF [20 < Q2 < 40] This would first check if 20 is smaller than Q2, result will be true 1 or false 0 then it checks if 0 or 1 is smaller than 40, which is always true. proper syntax: *IF [ Q2 > 20 & Q2 < 40 ] *IF [Q20,3\4\5] This checks if Q20 has code 3. then it checks if 4 is true (yes, because its not 0) then if 5 is true (yes, because its not 0) either of these 3 expressions should be true which is always the case. proper syntax: *IF [ Q20,3,4,5 ] This compares Q21 with 1,2,3 (column 1 has code 2 or 3), which is either true 1 or false 0, so it checks if Q21 has a 1 or a 0. proper syntax: *IF [ Q21,1,2,3 ] In general: use comma to check *CODES questions. Use equal sign or larger, smaller to check *NUMBER questions. This compares Q21 with 1 minus 3, so it checks if Q21 is -2. proper syntax: *IF [ Q21,1-3 ] This first checks if Q21 is empty (#Q21) which is either true 1 or false 0, and then compare this with 1. proper syntax: *IF [ #(Q21 = 1) ] Note that *IF [ #Q21,1,2 ] is no problem, because of the special handling of the comma in expressions

*IF [ Q21=1,2,3 ]

*IF [ Q21 = 1-3 ]

*IF [ #Q21 = 1 ]

50 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*INCLUDE Q1 [ 1 TO 5 ; 9 ] The TO and semicolon ; are only available within the *RANGE command. proper syntax: *INCLUDE Q1 [ 1 ] *INCLUDE Q1 [ 2 ] *INCLUDE Q1 [ 3 ] *INCLUDE Q1 [ 4 ] *INCLUDE Q1 [ 5 ] *INCLUDE Q1 [ 9 ]

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 51

3.2

Stratification (Quota)

A stratification file (S-file) is used to divide the Sample into several strata or sub-Samples, in which a limited number of interviews must be realised. Stratification is only possible if a T-file/Sample table exists. Each stratum must be defined in one separate record with the following format: stratum field offset: characteristic (limit) description... Stratification amounts to storing a property, which is characteristic for a group of respondents, in the stratum field of their telephone records. Each stratum must have a unique characteristic. The characteristics may be stored in the Sample records before the interview program is called (stratification on input) or may be stored by the system during an interview (stratification on output). The characteristic may be formed by a certain value or text. Characteristics containing blanks must be enclosed in quotation marks. A characteristic may occupy 79 positions. The description of a stratum may consist of up to 80 characters. Once a stratification limit is exceeded, the telephone records in that stratification cell are blocked (ResponseCode 21), so new interviews cannot take place in that particular stratification cell. When using a T-file blocked Sample records will no longer be drawn, not even after the stratification limit has been changed afterwards. When using a Sample table blocked Sample records will no longer be drawn, but will be released when the stratification limit has been changed afterwards via the NIPO CATI/Web Manager. When stratification criteria are not known in advance (for instance: age and gender) only after starting the interview you can check the stratum. See the NIPO ODIN commands *ADDRESS, *MOVA and *STRAT.

52 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 3-2 | Example of a Survey stratification file

1 : 1 : 1 : 286 286 287 287 287 286 286 286 286 286 286

" " " : : : : : : : : : : :

020" (100) Amsterdam 010" (100) Rotterdam 070" (100) The Hague 1 (150) Males 2 (150) Females 1 (100) 18 - 34 years 2 (100) 35 - 54 years 3 (100) 55 years or older 11 (50) Males - 18 - 34 years 12 (50) Males - 35 - 54 years 13 (50) Males - 55 years or older 21 (50) Females - 18 - 34 years 22 (50) Females - 35 - 54 years 23 (50) Females - 55 years or older

The first three strata are characterised by the presence of the text " 020" in field 1-6 of the Sample record (where the area code is stored). It is limited to 100 successful interviews. Then 010 for Rotterdam (maximum 100 successful interviews) and 070 for The Hague (maximum 100). The second stratum criterion is gender. It is characterised by the value 1 in field 286 of the Sample records for males and value 2 for females. Its limit is 150 successful interviews each. The third criterion is age-groups. It is characterised by value 1 in field 287 for people up to 34, value 2 for people of 35 to 54 and value 3 for people of 55 and older. Finally there is the combined stratum criterion for gender and age. Each of the six combinations has a target of 50 successful interviews. Note: In a stratification file for the NIPO Fieldwork System 1.03 no empty lines or trailing returns are allowed. The NIPO CATI Client will give an error message if empty lines exist and can not be executed. In the NIPO CAPI System empty lines, lines containing text only and trailing returns are allowed. Tip: Make sure the T-file is long enough to contain the stratification data. In the NIPO Fieldwork System 1.03 Telephone file position 286 and on are free for own use, in the NIPO CAPI System Address file position 776 and on are free. Other positions may also be used, apart from all system positions (for instance you can not overwrite the interview number or the response code).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 53

3.2.1

Changed syntax for S-file in the NIPO Fieldwork System 1.03

The NIPO Fieldwork System 1.03 will change the syntax of stratification files automatically. Instead of positions in the T-file, the stratification criteria are described as database fields. Also when a T-file is used, the system will interpret the T-file internally as if it were a Sample table. All positions in the T-file have a database field name. Note: You may still specify the stratification as data positions, because the NIPO Fieldwork System 1.03 will transform the S-file automatically.

Example 3-3 | Example of stratification file in the NIPO Fieldwork System 1.03 Stratification criteria in CATI 2.04 format:

286: 1 (6) Males 286: 2 (6) Females


will be transformed into:

TTExtraData:1 ( TTExtraData:2 (

6) Males 6) Females

Note: Stratification criteria may not overlap database fields, i.e. the positions must be converted into the same field in the Sample table. Example 3-4 | Example of stratification that overlaps Sample fields

285: 11 (6) region 1 - Males 285: 12 (6) region 1 - Females


This would try to check position 285-286, but position 285 is the last position of DisplayField4 and position 286 is the first position in the field ExtraData.

54 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 3-5 | Example 2 of stratification file in the NIPO Fieldwork System 1.03 Stratification criteria in CATI 2.04 format:

246: 1 (6) Males 246: 2 (6) Females 247 : 1 (2) 16 - 24 247 : 2 (2) 25 - 34 247 : 3 (2) 35 - 44 247 : 4 (2) 45 - 54 247 : 5 (2) 55 - 64 247 : 6 (2) 65+ 246 : 11 (1) Male 246 : 12 (1) Male 246 : 13 (1) Male 246 : 14 (1) Male 246 : 15 (1) Male 246 : 16 (1) Male 246 : 21 (1) Female 246 : 22 (1) Female 246 : 23 (1) Female 246 : 24 (1) Female 246 : 25 (1) Female 246 : 26 (1) Female 250 : 1 (12) Total
will be transformed into:

16 - 24 25 - 34 35 - 44 45 - 54 55 - 64 65+ - 16 - 24 - 25 - 34 - 35 - 44 - 45 - 54 - 55 - 64 - 65+

TTDisplayField3+30:1 ( 6) Males TTDisplayField3+30:2 ( 6) Females TTDisplayField3+31:1 ( 2) 16 - 24 TTDisplayField3+31:2 ( 2) 25 34 TTDisplayField3+31:3 ( 2) 35 - 44 TTDisplayField3+31:4 ( 2) 45 - 54 TTDisplayField3+31:5 ( 2) 55 - 64 TTDisplayField3+31:6 ( 2) 65+ TTDisplayField3+30:11 ( 1) Male TTDisplayField3+30:12 ( 1) Male TTDisplayField3+30:13 ( 1) Male TTDisplayField3+30:14 ( 1) Male TTDisplayField3+30:15 ( 1) Male TTDisplayField3+30:16 ( 1) Male TTDisplayField3+30:21 ( 1) Female TTDisplayField3+30:22 ( 1) Female TTDisplayField3+30:23 ( 1) Female TTDisplayField3+30:24 ( 1) Female TTDisplayField3+30:25 ( 1) Female TTDisplayField3+30:26 ( 1) Female TTDisplayField3+34:1 ( 12) Total

16 - 24 25 - 34 35 - 44 45 - 54 55 - 64 65+ - 16 - 24 - 25 - 34 - 35 - 44 - 45 - 54 - 55 - 64 - 65+

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 55

3.2.2

Stratification file (S-file) when using Sample table

In case a Sample table is used instead of a T-file, the stratification can refer to the table fieldnames. Example 3-6 | Example of a Survey stratification file when using Sample table

Region : 1 (100) North Region : 2 (100) East Region : 3 (100) South Region : 4 (100) West Gender : 1 (200) Males Gender : 2 (200) Females Age : 1 (100) 18 - 34 years Age : 2 (200) 35 - 54 years Age : 3 (100) 55 years or older GenderPlusAge : 11 (055) Males GenderPlusAge : 12 (055) Males GenderPlusAge : 13 (110) Males GenderPlusAge : 21 (110) Females GenderPlusAge : 22 (055) Females GenderPlusAge : 23 (055) Females

18 - 34 years 35 - 54 years 55 years or older - 18 - 34 years - 35 - 54 years - 55 years or older

Note: Combinations of fields have to be created by combining the strings in a new field. It is not (yet) possible to create expressions.

56 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

3.2.3

Stratification files (S-files) for omnibus surveys (using T-files)

In case an Omnibus survey, you can make a separate stratification for each sub-survey. The main survey (the first NIPO ODIN questionnaire in the survey) has a normal stratification. Different from ordinary surveys is the way stratification is used and where the output data is stored. Stratification information (the codes) is stored in the telephone file. Because only one telephone file is used, Omnibus survey uses stratification in a different way. For each sub survey 12 positions are reserved in the telephone file to store stratification data. The T-file field reserved for the stratification of a particular respondent may look like the example printed below. Each field for the stratification is preceded by the survey name. The NIPO CATI/Web Master uses this name to determine the quota fillings per sub survey. This example was taken from a record in the telephone file, starting at position 251.

A1001

11

A1002

112

A1003

12

The first seven positions contain the name of the sub survey. The 1 in the next position means that the respondent answered the sub survey successfully. If stratification is defined on this position, the moment the stratification is full, the sub survey is no longer presented to the interviewer. The other positions contain stratification information. Stratification files for all subsurvey can refer to (relative) position 1, that will contain a value 1 when successful or to (relative) position 2-12, that can be filled in the NIPO ODIN questionnaire

Example 3-7 | Example of a Stratification file for Omnibus surveys

1: 1: 2: 2: 2: 2: 2:

1 (100) Total subsurvey about PC 2 ( 0) Does not own a PC 01 ( 20) Philips 02 ( 20) Sony 03 ( 20) Compaq 19 ( 20) Other 20 ( 20) Don't know

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 57

After starting the survey, the NIPO CATI/Web Master, will rewrite the stratification file: Example 3-8 | Example of a Stratification file for Omnibus surveys (with changed syntax)

STSuccess: STSuccess: STData: 01 STData: 02 STData: 03 STData: 19 STData: 20

1 2 ( ( ( ( (

(100) Subsurvey about PC ( 0) Does not own a PC 20) Philips 20) Sony 20) Compaq 20) Other 20) Don't know

Example 3-9 | Example of a NIPO ODIN questionnaire for Omnibus surveys

*QUESTION 201 *CODES 71L1 Do you have a PC at home? 1: Yes 2: No *** If no PC: set relative position 1 to value 2 *** (this way the non-owners will NOT be counted as successful) *IF [Q201,2] *MOVA 1L1 Q201 *ABORT *QUESTION 202 *CODES 72L2 *IF [Q201,1] What is the brand of your PC? 1: Philips 2: Sony 3: Compaq 19: Other *OPEN 20: Don't know *** Copy Q202 into relative position 2L2 *MOVA 2L1 Q202 *** Check if stratification is already filled for this PC-brand *STRAT 98

For an example omnibus survey, see the questionnaire files on the CD-ROM delivered by NIPO, in the folder:

[Drive]\Survey files\Omnibus

58 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

3.2.4

Omnibus survey, using Sample tables and Omnibus tables

When using a Sample table instead of a telephone file for an omnibus survey, you have to create an Omnibus (or SubSample) table as well. The set-up is basically the same as when working with T-files, with some differences. The NIPO CATI/Web Master will write a new record in the Omnibus table for each subquestionnaire with a stratification file. This will contain the following information: InterviewNumber Questionnairename Success A field STData (varchar 12) will be available, when the following setting is written in the registry of the NIPO CATI/Web Master:

STData:STData
This field STData can be filled in the sub-questionnaires, by using the *COPY command with position 2-12.

*SAMPLEDATA in the first questionnaire of an Omnibus, refers to database fields in the


Sample table.

*SAMPLEDATA in sub-questionnaires (all but the first) of the Omnibus, refers to database
fields in the Omnibus table.

Stratification in sub-questionnaires can be based on fields in the Omnibus table or on fields in the Sample table. Use *SAMPLEDATA in the NIPO ODIN questionnaire or use the survey.INI settings RespondentFields and/or RespondentSubFields.

Note:

*SAVE varname will save the text of the category in your database field. Use *PUT varname [Q1] to store the code number.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 59

3.2.5

Stratification file (S-file) for Web Clients

1) Non-anonymous surveys Stratification for Web Clients works the same way as stratification for the NIPO CATI Client with a Sample table. Note that if you use stratification on input (data already known before starting an interview), the address will be blocked if a stratification cell is filled, i.e. the respondent will be send to a relocation page. Make sure that this is what you want: a respondent gets invited to co-operate on a survey, when he finally clicks on the link to start the questionnaire, it might not be very nice to tell the respondent, that he/she is not required anymore. Stratification on output may also be used: Each contact will update the existing record for that respondent in the Sample table. Use the *SAMPLEDATA or *ADDRESS command in the NIPO ODIN questionnaire to fill database fields and the *STRAT command to check your stratification cells and then jump to a specific question. Note: Do not use the *SQLPUT command to update your Sample table, as the system will not 'recognize' the Sample record is changed and thus can not check the stratification cell.

2) Anonymous surveys When a survey is send out anonymously (i.e. with a SurveyID instead of an ID), you can (obviously) only use stratification on output, as no reference can be made to the original Sample record of the specific respondent. For each contact a new (empty) record is created in the Sample table. Use the *SAMPLEDATA or *ADDRESS command in the NIPO ODIN questionnaire to fill database fields and the *STRAT command to check your stratification cells and then jump to a specific question.

3) Surveys started from a URL When a survey is started from a URL (an address published on a website), stratification can only be used when an (empty) Sample table is created first. For each contact a new (empty) record is created in the Sample table. Use the *SAMPLEDATA or *ADDRESS command in the NIPO ODIN questionnaire to fill database fields and the *STRAT command to check your stratification cells and then jump to a specific question. When no Sample table is created, no stratification is possible.

60 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

3.3

Lay-out of *GRID and *SCALE questions using [tab] and *TAB

This item is not actually an erratum, but an extra explanation on how to optimize using *SCALE and *GRID questions. When using *GRID or *SCALE in a *FORM question, the layout can be set by using [tab] characters and the *TAB command. The system will divide the screen into columns for each value specified after *TAB. When the system encounters a [tab] character, the text before that will be displayed in the previous column. Use [tab][tab] to fill the previous text over two columns. Use [tab][space][tab] to leave a column empty. Do not use any superfluous [tab] characters. Specify the *SCALE or *GRID (without options) behind the field cell texts in the *LANGUAGE sections, in order to define the location of the boxes in the other languages. Example:

*QUESTION 1 *FORM 1: Statement 1 in English[tab]*SCALE L1 5 10[tab][space] *LANGUAGE "German" *QUESTION 1 1: Aussage 1 auf Deutsch[tab]*SCALE[tab][space] Make sure that the *LANGUAGE sections use the same amount of [tab] and [space]
characters. The system will use a column for each scale-box (or radio-button) that is created by the *SCALE or *GRID command. For each box a column should be defined with *TAB. When there should be text (or empty space) before or after the boxes, add extra columns as required. Texts above boxes should be specified separated by [tab] characters. Texts above boxes will be wrapped (placed on the next line) when they do not fit in the column. Box values that will be written in the data file can be set with the *SCALERANGE command. The texts above the boxes have no significance for the values in the data file, but will be used when creating Diana-variables (see below). Scale boxes will be distributed evenly between the first and the last column, i.e. it is not possible to vary the distance between boxes. You may however vary the distance of the texts above the boxes. The distance between boxes is determined by the *TAB settings, i.e. the argument ys for horizontal spacing in the NIPO ODIN questionnaire is ignored (*GRID posLlength x.xs y.ys). However, the argument may not be omitted. When you specified the last column less than 100%, make sure to add a [tab][space] after the *SCALE or *GRID, to let the system create an empty column at the end. Put a [tab] character before each *SCALE or *GRID, to position the first box in the second column. Only the first line of a *GRID should have a form cell number (1:). Each *SCALE should have a form cell number (1: 2: etc). No space is allowed before the form cell numbers when *CONTROL is used. When no *TAB is specified, the system will use the default of 8 columns, each 12.5% of the screen width.
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 61

In the NIPO Web Client you can use stylesheets to improve the lay-out. E.g., to centre the boxes and texts above boxes, use the following CSS-lines:

.odinscalecell { text-align: center; } .odinformelement-above { text-align: center; } When exporting a *SCALE question to Diana-variables, etc. the texts immediately above the *SCALE will be used as category texts, so do not add extra empty lines above the *SCALE. When exporting a *GRID question to Diana-variables, etc. the texts immediately above the *GRID will be used as variable text in the appropriate variable, so do not add extra empty lines above the *GRID.

62 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 1:

*TAB 20,30,40,50 *QUESTION 44 *FORM FORM GRID question[CR/LF] [tab]box 1[tab]box 2[tab]box 3[tab][space][CR/LF] 1:line 1[tab] *GRID 61L12 4.1 3.10 *MULTI[tab][space][CR/LF] line 2[CR/LF] line 3[CR/LF] line 4[CR/LF]
Note:

[CR/LF] stands for pressing Enter at the end of a line. [tab] stands for a tab-character. [space] stands for a (compulsory) space.
Result:

Resulting Diana-variables:

*V44_1 *MV 61L4: Question 44[LF]FORM GRID question[LF]\ box 1 1:line 1 2:line 2 3:line 3 4:line 4 *V44_2 *MV 65L4: Question 44[LF]FORM GRID question[LF]\ box 2 1:line 1 2:line 2 3:line 3 4:line 4 *V44_3 *MV 69L4: Question 44[LF]FORM GRID question[LF]\ box 3 1:line 1 2:line 2 3:line 3 4:line 4

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 63

Example 2: *TAB 40,50,60,70,80,90,100 *QUESTION 42 *FORM This is an example FORM SCALE question[CR/LF] [tab]Totally disagrees[tab]Disagrees[tab]Neither disagrees, nor agrees[tab]Agrees[tab]Totally agrees[tab]Don't know / no answer[CR/LF] 1:Statement A[tab]*SCALE L1 6 10[CR/LF] 2:Statement B[tab]*SCALE L1 6 10[CR/LF] 3:Statement C[tab]*SCALE L1 6 10[CR/LF] 4:Long statement will be wrapped automatically within the first column, defined by the TAB statement[tab]*SCALE L1 6 10[CR/LF] Result:

Resulting Diana-variables:

*V42_1 *SNG 67L1: Question 42[LF]FORM SCALE question[LF]\ Statement A 1:Totally disagrees 2:Disagrees 3:Neither disagrees, nor agrees 4:Agrees 5:Totally agrees 6:Don"'"t know '/' no answer *V42_2 *SNG 68L1: Question 42[LF]FORM SCALE question[LF]\ Statement B =V42_1 *V42_3 *SNG 69L1: Question 42[LF]FORM SCALE question[LF]\ Statement C =V42_1 *V42_4 *SNG 70L1: Question 42[LF]FORM SCALE question[LF]\ Long statement will be wrapped automatically within the first column, defined by the TAB statement =V42_1
Note: The categories for the second variable, etc. are changed manually into =V42_1 to reduce the size of the var-file as each variable has the same categories.

64 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 3: *TAB 10,20,30,40,50,60,70,80,90,100 *QUESTION 62 *FORM For each of the following statements, what is the best brand and what is the second best? [tab]Quality of the brand [tab][tab]Brand is easy to use [tab][tab]Brand offers value for money (i.e. cheap brand for its quality) [tab][tab]Packaging appeals to me [tab][tab][space] [tab]Best brand [tab]Second best brand [tab]Easiest brand [tab]Second easiest brand [tab]Cheapest brand [tab]Second cheapest brand [tab]Brand that appeals best [tab]Brand that appeals second best [tab][space][CR/LF] 1:Brand A[tab] *GRID 125L8 6.1 8.10[tab][space][CR/LF] Brand B[CR/LF] Brand C[CR/LF] Brand D[CR/LF] Brand E[CR/LF] Other brand[CR/LF] Result:

Note: The example uses extra styling that was created in CSS. See Example 7 in the NIPO HTML Generator 1.02 User's Guide for details on how to apply styles.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 65

Command Index

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 67

**
Purpose Syntax Description Example Defines a comment or remark line.

**
All text behind this command will be considered remarks and will be skipped during the interview.

** This is remark

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 69

*?
Purpose Syntax See also Retrieves the contents of a variable or array as text.

*? <var | n | expression | var[n|expression] > *FORMAT *PUT *SAVE (question option) *SAVE (codes option) *TEXTVARS *VARS
The contents of a variable or array are retrieved and put on the spot of the command and will be processed as text. This command may occur at any spot where text may occur.

Description

Arguments

var
This is the name of the variable from which the contents are retrieved.

n|expression
This is a positive integer from 0 up to and including 9 or an expression that has a result 0 up to and including 9, which indicates a system variable.

var[n|expression]
When an array-variable is used, this the name of a variable followed by (between square brackets) a positive integer or expression that indicates the element-number of this array. Remarks You can use uppercase and lowercase names indifferently; variable names are case insensitive. There are 10 system variables available numbered 0 up to and including 9. These variables do not have to be defined. Contrary to other variables, in ODIN 16-bit variable 9 will not be cleared at the start of a new interview (within the same run of the NIPO CATI Client 16-bit).

Example 1

*TEXTVARS Gender,Age *QUESTION 1 *CODES L1 *SAVE Gender Int. type gender of respondent 1: Male 2: Female *QUESTION 2 *NUMBER L2 *SAVE Age How old are you? *PAGE So you are a *?Gender
Result:

of *?Age years old.

70 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*TEXTVARS txt[4] *TEXTVARS txt[4] *PUT txt[1] "This is a text." *PUT txt[2] "Another text." *PUT txt[3] "Third text." *PUT txt[4] "The fourth line contains: '*?txt[1] *?txt[2] *?txt[3]'" *PAGE *? txt[1] *? txt[2] *? txt[1] *? txt[2] *? txt[3] *? txt[4]
Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 71

Example 3

*TAB 30 *TEXTVARS Number, Price, Piece *FONT 0 "10 Arial" *QUESTION 1 *FORM 1:Number of fax machines bought: *NUMBER 61L3 *SAVE Number 2:Total price paid: *NUMBER 64L4.2 *SAVE Price

*FORMAT 3.2 *PUT Piece [Q1F2 / Q1F1] *QUESTION 2 *CODES 70L1 You bought *? Number fax machines for *? Price? So the average price per fax machine was *? Piece ? 1: Yes 2: No
Result:

72 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*ABORT
Purpose Syntax See also Description Ends the questionnaire, interview not successful.

*ABORT *END *ENDNGB *ENDST


Terminates the questionnaire and marks the interview as not successful. There will be no data written. This will be irrevocable. In the T-file/Sample table record, if present, the response code for *ABORT (22: not successful) will be written.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 73

*ADDRESS
Purpose Syntax See also Description Refers to a data field in the T-file/Sample table record.

*ADDRESS *MOVA *MOVU


This command is always used in combination with *QUESTION and a question type definition and has to be behind these commands on the same line. With this command you can refer to a data field in the T-file/Sample table record. This data field specification has to have a fixed format.

Example

*QUESTION 1 *NUMBER 290L2 *ADDRESS *QUESTION 2 *NUMBER 61L2 How old are you? *MOVA Q1 Q2
This example stores the contents of question 2 (position 61-62) into position 290-291 of the Tfile/Sample table record.

74 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*ALPHA (question type)


Purpose Syntax See also Description Defines a text question.

*ALPHA [pos]L<length>|<pos> *CODES *LIST *NUMBER *OPEN (question type) *ALPHA (in *FORM question)
This command is always used in combination with *QUESTION and has to be behind this command on the same line. Defines a question that expects an alphanumerical answer of limited length. Contrary to an open question the answer to a text question is written to the U-file.

!
Arguments

pos
This is the start of the data field where the data is written in the U-file.

length
This is the length of the data field. Example

*QUESTION 1 *ALPHA 61L20 What is your first name?


Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 75

*ALPHA (in *FORM question)


Purpose Syntax See also Description Defines a text-field in a *FORM question.

*ALPHA [pos]L<length>|<pos> *FORM *NUMBER (in *FORM question) *SCALE (in *FORM question) *GRID
This command is always used in a *FORM question. Defines a field that expects an alphanumerical answer of limited length. Several fields may be specified in the same *FORM question.

Arguments

pos
This is the start of the data field where the data is written in the U-file.

length
This is the length of the data field. Example

*QUESTION 1 *FORM *BUT 99 "Refusal" Please, fill in your name and address: 1:Name : *ALPHA 73L30

2:Street: *ALPHA 103L40 3:Place : *ALPHA 143L20


Result:

76 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*APPOINT
System Purpose Syntax Description CAPI only Makes an appointment for next questionnaire.

*APPOINT
An appointment is made for the next questionnaire in line. In the Compass Interview System for CAPI, you can gather a number of questionnaires to a so-called survey cluster. The separate questionnaires will be dealt with at the respondents home consecutively. If in one of the questionnaires the command *APPOINT is executed the next questionnaire will not be started. The interviewer is asked to make an appointment for the questionnaire that is next in line.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 77

*AUTO
System Purpose Syntax See also Description CATI/CAPI only Automatically arranges categories into columns.

*AUTO *GROUP *NEWCOLUMN *NOCON


You use the question option *AUTO to automatically arrange categories into columns on the screen when more categories are to be displayed than there are screen lines. When the command *NOCON is used behind a category then from that category on the categories will not be divided into columns. *AUTO can also be used as a single command on a command line. All questions (before and after the command) will be automatically arranged if they dont fit on the screen. The *AUTO command automatically tries to set the columns to an equal length. In NIPOSYS.INI the following setting applies: AutoColumns = n specifies whether the categories have to be automatically arranged or not, where n = 0 (auto-arrange off) or 1 (auto-arrange on). Default = 0. Setting AutoColumns to 1 has the same result as putting a *AUTO command at the beginning of the questionnaire. *AUTO is not supported in the NIPO Web Client. Use *NEWCOLUMN to split categories in columns for the Web Client.

Remarks

Example

*QUESTION 2 *CODES L2 *AUTO Question text 1:code 2:code 3:code 4:code 5:code 6:code 7:code 8:code 9:code 10:code 11:code 12:code 13:code 14:code 15:code 16:code 17:code 18:code 19:code 20:code 21:code 22:code 23:code 24:code 25:code 26:code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

78 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

27:code 28:code 29:code 30:code 31:code 32:code 33:code 34:code 35:code 36:code 37:code 38:code 39:code 40:code 41:code 42:code 43:code 44:code 45:code 46:code 47:code 48:code 49:code 50:code

27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

98: don't know *NOCON 99: no answer


Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 79

*BACK
Purpose Syntax See also Description Jumps back to a previous question.

*BACK <n|[expression]> *GOTO


The interview will return to the question specified in the argument. It does in fact the same as pressing [F1] (DOS) or the [BACK] button (Windows) so many times in succession until you reach that question. At *BACK, all commands and answers between the current question and the question you are returning to are being undone, as if you actually stepped back through the questionnaire and therefore there is a major difference with the command *GOTO.

Arguments

n|expression
This is a positive integer or expression that indicates an existing question.

Remarks Example

With *BACK you can only jump back to a question that is really posed.

*VARS tot *VARS answer[3] *QUESTION 1 *FORM What proportion of travels are done by .... (Int. dont know = 999) Bus *NUMBER L3 *RANGE [ 0 TO 100;999 ] *SAVE ANSWER[1]

Train *NUMBER L3 *RANGE [ 0 TO 100;999 ] *SAVE ANSWER[2] Car *NUMBER L3 *RANGE [ 0 TO 100;999 ] *SAVE ANSWER[3]

*IF [ Q1F1 = 999 \ Q1F2 = 999 \ Q1F3 = 999 ] *GOTO 3 *PUT tot [ Q1F1 + Q1F2 + Q1F3 ] *IF [ tot > 95 \ tot < 105] *GOTO 3 *QUESTION 2 *CODES L1 Your percentages must add up to 100% *? answer[1] *? answer[2] *? answer[3] ----*? Tot 1: PLEASE GO BACK AND TRY AGAIN *BACK 1 *QUESTION 3
In this example, we jump back to the first question to correct the percentages if they are not in the range 95 to 105.

80 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*BMP
System Purpose See also Syntax Description Windows Saves open-ended answers as a bitmap.

*OPEN (question type) *BMP


Open ended answers are saved to a so-called bitmap file (B-file) instead of the O-file. In this way both text and drawings are accepted as an answer, using for instance a pen to write on the screen (PenWindows). These answers can be coded in the same way as the regular O-file. The bitmap file is in binary format.

Remarks Example

*QUESTION 1 *OPEN 61 *BMP Would you be so kind to draw a house? *END


In this example, all the drawings are stored as a bitmap in the B-file. Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 81

Example 2

*QUESTION 1 *CODES 61L5 *MULTI *BMP What brands of beer do you know? 1: 2: 3: 4: 5: Heineken Amstel Grolsch Other *OPEN None *NMUL

In this example, after choosing code 4 an open answer can be written on screen and will be stored as a bitmap in the B-file.

82 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*BUT
System Purpose Syntax See also Description Windows Defines a button.

*BUT <code> <"text"> *WAITCR


With this command you create user-defined buttons which are displayed during the interview. These buttons can be used instead of or next to answer categories. If you click on the button the relating code is written.

Arguments

code
This is the code that will be written when pressing the button.

text
This is the button text. Remarks A maximum of five buttons per question is allowed. When using buttons on a *FORM question the value of the buttons will be written in the first field of the form question.

Example

*QUESTION 1 *CODES 61 *BUT 5 "Don't know" How often do you read a newspaper? 1: 2: 3: 4: Daily Once a week Once a month Never

In this example, the category for Dont know is left out of the category list. Instead a button is used to enter this answer: Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 83

Example 2

*QUESTION 1 *FORM *BUT 99 "Refusal" Please, fill in your name and address: 1:Name : *ALPHA 73L30

2:Street: *ALPHA 103L40 3:Place : *ALPHA 143L20


Result:

84 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*CENTRE
Purpose Syntax See also Description Centres answer categories automatically.

*CENTRE [n|expression] *AUTO


This command is always used in combination with *QUESTION and has to be behind this command on the same line. It centres the answer categories automatically.

Arguments

n
This argument can be value 0 or 1. Value 1 indicates that the answer categories are automatically centred. The default value is 0 (not centred).

Remarks

In NIPOSYS.INI the following setting applies: CentreCodes = n specifies whether the answer categories have to be centred or not, where n = 0 (not centred) or 1 (centred). Default = 0. When *AUTO is applicable (i.e. the answer categories are divided on the screen) the *CENTRE command or the centre setting will be ignored. When centering the answer categories, you can suppress the display of the category codes with the setting HideCodes=1 in the file NIPOSYS.INI.

Example

*QUESTION 1 *CODES 61 *CENTRE Do you own a car? 1: Yes 2: No


In this example, the answer categories are displayed in the middle of the screen (note that the category numbers are suppressed with the HideCodes setting):

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 85

*CODES
Purpose Syntax See also Description Defines a question type.

*CODES [pos]L<length>|<pos> *ALPHA *NUMBER *OPEN (question type) *MULTI


This command is always used in combination with *QUESTION and has to be behind this command on the same line. It defines a closed question with a set of pre-coded answer categories, where each category has a unique value.

Arguments

pos
This is the start of the data field where the data is written in the U-file.

length
This is the length of the data field. In a closed, but not multiple question the number of digits of the highest category number defines the minimum length of the data field. In a closed, multiple question the highest category number (i.e. not the number of categories) defines the minimum length of the data field. Remarks It is also possible to define a dummy question by omitting the categories in order to store data from other questions or variables or to use it as a label. The argument L1 may be omitted when data positions are fixed. The NIPO ODIN Developer will give a warning message when the length is more than the highest code number requires. The NIPO ODIN Developer will give an error message when a *CODES 32 question without *MULTI exceeds the maximum size of L10 (max. code number is 2147483647 = 2 1). Use *ALPHA to copy large dummy questions from and to the T-file. Example 1

*QUESTION 1 *CODES 61 Do you own a car? 1: Yes 2: No


In this example, a closed question is defined with two pre-coded answer categories.

86 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*QUESTION 2 *CODES 62L25 *MULTI What brands of cars do you know? 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: Citron Fiat Ford Hyundai Mazda Mitsubishi Nissan Opel Peugeot Renault Suzuki Toyota Volkswagen Volvo

24: Other *NOCON *OPEN 25: Dont know *NOCON


In this example a closed question with multiple answers is defined. Because the highest code-number is 25, the field has to be at least 25 positions. When the interviewer or respondent is using the keyboard to type the code-numbers, the various codes should be separated by a space, that is generated automatically when a code number is complete. So it is best to skip code 1 when using code 10 and higher, skip code 2 when using code 20 and higher.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 87

*CONJ ... *ENDCONJ


Purpose Syntax Executes module conjoint measurement.

*CONJ [pos]L<length> [*LEFT text] [*RIGHT text] <commands> *ENDCONJ


*LIST A full description of conjoint measurement can be found in the manual NIPO Conjoint Measurement in ODIN 5.09.

See also Description

88 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*CONTROL
Purpose Syntax See also Description Makes the display of answer codes and texts dependent on answers to a previous question.

*CONTROL <Qn> <W|N|W*|N*> *NOCON *VCONTROL


This command is always used in combination with *QUESTION, *FORM or *REPEAT ... *ENDREP and has to be behind these commands on the same line. This command controls the display of answer codes and texts depending on answers to a previous question. This so-called controlling question is referred to by means of Qn. When used in combination with *REPEAT ... *ENDREP, execution of repetition numbers only takes place (or not) if the numbers correspond with the mentioned answer codes of the controlling question.

Arguments

Qn
The reference to the control question where n is the number of the question.

W
Only answer categories that were mentioned at the control question are being displayed.

N
Only answer categories that were not mentioned at the control question are being displayed.

W*
Answer categories that were not mentioned at the control question are marked with an asterisk.

N*
Answer categories that were mentioned at the control question are marked with an asterisk. Remarks Make sure that the control question and the current question have the same set of answer categories. Categories that are suppressed, as a result of this command, can't be part of the answer. When all categories are suppressed the question will be skipped. Empty lines for categories that are suppressed by *CONTROL will be skipped if the categories are divided into columns on screen automatically. In a form question, *CONTROL automatically suppresses empty lines that are the result of the control. When controlling a repeat block, W* and N* do not work.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 89

Example 1

*QUESTION 1 *CODES 61L5 *MULTI What PC makes do you know? 1: 2: 3: 4: 5: Acer IBM Tulip Other *OPEN Dont know *NMUL

*QUESTION 2 *CODES 66L5 *MULTI *CONTROL Q1 N Which of the following PC makes do you know? 1: Acer 2: IBM 3: Tulip 5: None of these *NMUL *NOCON
In this example, the answers mentioned in question 1 are not displayed in question 2. However, if dont know is mentioned in question 1, this category will be displayed in question 2, since it is excluded from the control option by *NOCON. Example 2

*TEXTVARS brand *QUESTION 1 *CODES L5 *MULTI What PC makes do you know? 1: 2: 3: 4: Acer IBM Tulip Other *OPEN

5: Dont know *NMUL *REPEAT 3 *CONTROL Q1 *REPNUM 1: *PUT brand *REPNUM 2: *PUT brand *REPNUM 3: *PUT brand *QUESTION 2 *CODES L1 W Acer IBM Tulip

What do you think is the quality of *?brand ? 1: 2: 3: 4: Very good Good Poor Very poor

5: Dont know \ no answer *ENDREP


In this example, question 2 will only be asked for makes that were mentioned in question 1.
90 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*COPY
Purpose Syntax See also Description Transfers data within a questionnaire.

*COPY <Qn> <Qm|[expression]|text"> *INCLUDE *EXCLUDE


This command is also allowed under condition. Data specified in the second argument will be transferred to the data field specified in the first argument. *COPY is interpreting the contents of data fields to be moved. The original contents of the receiving data field will be overwritten.

!
Arguments

Qn
The question reference of the data field where the data will be transferred to.

Qm
If as second argument again a question reference is given all answers given to that question will be transferred to the specified data field.

expression
If an expression is given as second argument the result of the expression will be a value. This value will then be put as data in the receiving data field.

text
This text will be transferred literally to the receiving data field. It is allowed to refer to a variable in the text. In that case, the contents of this variable will be embedded in the text and next will be transferred to the receiving data field. Remarks If the data that has to be transferred consists only of digits, ODIN regards this as a number. Therefore, to transfer data from a multiple question you have to use *INCLUDE. When using the *INCLUDE command in a single-coded question, the contents will only be changed when the code is higher. Use the *COPY command to overwrite original contents. Contrary to the *INCLUDE command the *COPY command will give warning messages when data positions are used more than once. Use the *INCLUDE command to suppress these warnings. When a question already contains the category that was copied, nothing changes.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 91

Example 1

Suppose we have the following question:

*QUESTION 1 *CODES 71L2 *COPY Q1 [3]

containing code 08. If we execute the following command: the contents of the question will be: 03 Example 2 Suppose we have the following questions:

*QUESTION 1 *CODES 71L2


containing code 08, and

*QUESTION 2 *CODES 81
containing code 6. If we execute the following command:

*COPY Q1 Q2

the contents of question 1 will be: 06

92 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*COUNT
Purpose Syntax See also Description Counts the number of answers.

*COUNT <Qn|numvar> <Qm> *VARS


This command is also allowed under condition. The number of answers to the question specified in the second argument is counted and will be put as a number in the data field or variable specified in the first argument.

Arguments

Qn
The question reference of the data field where the number is stored.

numvar
The name of the numeric variable where the number is stored. This variable has to be defined earlier in the questionnaire.

Qm
The question reference from which the number of answers have to be counted. Remarks Example This command only makes sense if the question referred to is a multiple codes question.

*QUESTION 1 *CODES 178L7 *MULTI What brands of beer do you know? 1: 2: 3: 4: 5: 6: 7: Heineken Amstel Grolsch Carlsberg Tuborg Other *OPEN Dont know *NMUL

*VARS numb *COUNT numb Q1 *QUESTION 2 *CODES 185 *IF [Q1,1-6] So you know *? numb brands of beer? 1: Yes 2: No
In this example, the number of answers on question 1 is counted in the variable numb and used in the question text of question 2.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 93

*CUT
Purpose Syntax See also Description Interrupts an interview and makes an appointment.

*CUT <n|[expression]> *NONRESP


With this command the interview can be interrupted for a (definitive) appointment. This command is also allowed under condition. The context of the interview will be saved and the interviewer has to make an appointment to finish the interview at a later time. When picking up the interview again, it will start with the question with question number indicated by n.

Arguments

n|expression
This is a positive integer that specifies an existing question number.

Example

*QUESTION 1 *CODES L1 Are you the managing director of this company? 1: Yes 2: No *QUESTION 2 *CODES L1 Can you connect me with the managing director of the company 1: Yes 2: No, he is not in the office currently 3: No, refusal *ABORT *CUT 1

94 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*DATE
Purpose Syntax See also Description Gets current date and time.

*DATE <Qn> *TIME


This command is also allowed under condition. Gets the current date and time as set in the computer and puts this over 18 positions in the data field in the format YYYY/MM/DD hhmm:ss. If the data field isn't long enough the data will be truncated.

Arguments

Qn
The question reference of the data field where the date is stored.

Example

*TEXTVARS year,month,day *QUESTION 1 *ALPHA 101L10 *QUESTION 2 *NUMBER 101L4 *QUESTION 3 *NUMBER 106L2 *QUESTION 4 *NUMBER 109L2 *DATE Q1 *PUT year Q2 *PUT month Q3 *PUT day Q4 *QUESTION 5 Todays date is: *?month-*?day-*?year *END
In this example, the complete date will be stored in question 1. Question 2, 3 and 4 refer to parts of the data field from question 1, to store the year, month and date.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 95

*DELAY
Purpose Syntax See also Description Delays the interview.

*DELAY <n> *WAITPLAY


This command delays the interview for n seconds. *DELAY can be used to display a video or play a sound fragment for a certain number of seconds before the interviewer can move on to the next question. To play sound fragments, a sound card or a dialer is required.

!
Arguments

n
The number of seconds that Odin has to wait before executing the next command.

Example

*PLAY mymovie.avi *DELAY 10 Q 1 *CODES 61L1

Do you recognise this commercial? 1: Yes 2: No


In this example, the video plays for 10 seconds before the question comes up. Note: the empty lines above the question text are intended to make room for the video.

96 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*DESC
System Purpose Syntax Description Remark NIPO ODIN Developer 4.08 Library Separates the entries in an ODIN Library.

*DESC <description text>


In an ODIN Library the various entries are separated by the command *DESC. The command *DESC is not an ODIN command, but only available in Library of the NIPO ODIN Developer.

Arguments

description text
The text to be displayed in the library as an identification of the entry. The description text is free and does not need to be unique. The entries will be displayed in alphabetical order of the description text.

Example

*DESC Introduction Good morning, this is ... from ... I would like to ask you some questions about a variety of subjects. It will take about ... minutes. *DESC Yes/No *QUESTION X *CODES L1 This is a precoded single-answer question. 1: Yes 2: No

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 97

*DTIME
Purpose Syntax Description Displays the current time.

*DTIME
During the interview the time will be displayed in the upper left corner of the screen. The time will be displayed in the format hh:mm:ss. This command applies to entire questionnaire and can not be turned off.

98 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*DUMMY
Purpose Syntax Description Specifies a dummy question.

*DUMMY
This command specifies a dummy question. Dummy questions are, for example, closed questions that will be used to extract category texts from. If you wouldnt mark these questions as dummy questions they would appear on the screen during the interview. *DUMMY prevents the question from being displayed. In earlier versions of Odin it was necessary to specify dummy questions by using nullevaluating filters like *IF [ 1 = 2 ].

Example

*VARS num *TEXTVARS txt *QUESTION 1 *CODES L1 Gender 1: Male 2: Female *QUESTION 2 *CODES L1 *DUMMY 1: wife 2: husband *PUT num [Q1] *PUT txt Q2,num *QUESTION 3 *CODES L1 Do you have a *?txt? 1: Yes 2: No
In this example, question 2 will not be displayed during the interview. However, the text from this dummy question is used to display in the third question text.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 99

*END
Purpose Syntax See also Description Ends the questionnaire or subparts of it.

*END *ABORT *ENDNGB *ENDST *REPEAT ... *ENDREP


In general this command defines the end of the questionnaire or subparts of it. This command is also allowed under condition. With subparts there is always a physical unconditional end required. The action of this command depends on the context. We distinguish the following: Termination of the questionnaire. The interview is marked as a successful interview. All data will be written to the appropriate files. In the T-file/Sample table record, if present, the response code for 'successful' will be written. Termination of the initial part. An unconditional physical end is required. Termination of a repetition block. If within a repetition block *END is used the repetition block will be ended. The current repetition and all not yet executed repetitions, if any, will not be finished.

Example 1

*QUESTION 1 *CODES 96 Do you own a VCR? 1: Yes 2: No *GOTO 99 *QUESTION 2 *CODES 97 Did you use your VCR yesterday? 1: Yes 2: No *QUESTION 3 *CODES 98 *IF [ Q2,1 ] Did you use it for playback or recording? 1: Playback 2: Recording 3: Both *QUESTION 98 This was my final question. Thank you for your co-operation. *END *QUESTION 99 Then I dont have any questions for you. Thank you. *ENDNGB

100 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*REPEAT 3 *RANDOM *REPNUM 1 *PUT statement "Philips VCRs are good quality" *REPNUM 2 *PUT statement "Philips VCRs are value for money" *REPNUM 3 *PUT statement "Philips VCRs are user friendly" *QUESTION 1 *CODES 1L1 *?statement 1: applies 2: does not apply 9: does not know Philips VCRs at all *END *ENDREP
In this example three statements about Philips VCRs are asked. When the respondent does not know Philips VCRs at all, there is no need to ask any further statements and the repeat loop will be terminated.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 101

*ENDNGB
Purpose Syntax See also Description Ends a questionnaire.

*ENDNGB *ABORT *END *ENDST


Terminates the questionnaire and marks the interview as not successful, useful interview. The data will be written to the appropriate files. In the T-file/Sample table record, if present, the response code '19: No success, answers written' will be written. Interviews with this code are (by default) not counted in the stratification.

Example

*QUESTION 1 *CODES 96 Do you own a VCR? 1: Yes 2: No *GOTO 99 *QUESTION 2 *CODES 97 Did you use your VCR yesterday? 1: Yes 2: No *QUESTION 3 *CODES 98 *IF [ Q2,1 ] Did you use it for playback or recording? 1: Playback 2: Recording 3: Both *QUESTION 98 This was my final question. Thank you for your co-operation. *END *QUESTION 99 Then I dont have any questions for you. Thank you. *ENDNGB

102 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*ENDST
Purpose Syntax See also Description Ends a questionnaire and writes a response code.

*ENDST <code> *ABORT *END *ENDNGB


Terminates the questionnaire. In the T-file/Sample table record, if present, the response code as indicated will be written. The writing of the data depends on the meaning of the indicated response code.

Arguments

code
The non-response code that has to be written in the T-file/Sample table.

Remarks

In ODIN for DOS (old file format) the non-response code can only be one character (1-9, A-H). In ODIN for DOS (new file format) or ODIN for Windows the non-response code must be a two-digit number from 00-89.

Example

*QUESTION 1 *CODES L1 Do you own a car ? 1: Yes 2: No *ENDST 16

In this example, where only people owning a car should be interviewed, the code for outside target group is placed in the T-file/Sample table record.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 103

*EXCLUDE
Purpose Syntax See also Description Data manipulation.

*EXLUDE <Qn> <Qm|[expression]> *COPY *INCLUDE


This command is also allowed under condition. With this command it is possible to remove one or more answer codes from the receiving data field.

Arguments

Qn
The question reference of the data field where the process takes place.

Qm
All answers of this question will be removed from the specified data field.

expression
The result of the expression will represent a code value. Next this code will be removed from the data field. Remarks Contrary to *COPY and *INCLUDE, the *EXCLUDE command is used for both single-coded and multiple questions. When a question did not contain the category that was excluded, nothing changes. Example 1 Suppose we have the following question:

*QUESTION 1 *CODES 71L10 *MULTI


containing the codes 2, 3, 4 and 7. If we execute the following commands:

*EXCLUDE Q1 [3] *EXCLUDE Q1 [7]


the contents of the question will be: 2 and 4. Example 2 Suppose we have the following questions:

*QUESTION 1 *CODES 71L10 *MULTI


containing the codes 2, 3, 4 and 7.

*QUESTION 2 *CODES 81L10 *MULTI


containing the codes 2, 7 and 9. If we execute the following command:

*EXCLUDE Q1 Q2
the contents of question 1 will be: 3 and 4. Question 2 will stay unchanged.

104 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 3

Suppose we have the following question:

*QUESTION 1 *CODES 136L7 *MULTI


containing the codes 2, 3 and 7. If we execute the following command:

*EXCLUDE Q1 Q1
the contents of the question will be empty.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 105

*FIELD
Purpose Syntax See also Description Defines positions of a subroutine or repeat block.

*FIELD [pos]L<length>|<pos> *GOSUB *REPEAT ... *ENDREP


This command is used with *GOSUB (jump to subroutine) or *REPEAT ... *ENDREP (repetition block) and has to be behind that command on the same line. This command defines data field in the U-file, where the entered answers of the subroutine or repetition block have to be written.

Arguments

pos
This is the start of the data field where the data is written in the U-file.

length
This is the length of the data field. Remarks If you're working with so-called 'floating' data fields you don't have to specify this command. At fixing the answer fields of the questionnaire it will be put there automatically.

Example 1

*TEXTVARS BRAND *REPEAT 3 *FIELD 61L3 *REPNUM 1: *PUT BRAND Acer *REPNUM 2: *PUT BRAND IBM *REPNUM 3: *PUT BRAND Tulip *QUESTION 2 *CODES 1L1 What do you think is the quality of *?BRAND ? 1: 2: 3: 4: Very good Good Poor Very poor

5: Dont know \ no answer *ENDREP

106 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*TEXTVARS BRAND *SUBROUTINE BRANDSUB *QUESTION 2 *CODES 1 What do you think is the quality of *?BRAND ? 1: 2: 3: 4: Very good Good Poor Very poor

5: Dont know \ no answer *QUESTION 3 *CODES 2 What do you think of the price of *?BRAND ? 1: 2: 3: 4: Very expensive Expensive Cheap Very cheap

5: Dont know \ no answer *ENDSUB *QUESTION 1 *CODES 61L3 *MULTI *SAVE BRAND Have you ever heard of the following brands of PCs 1: Acer 2: IBM 3: Tulip *GOSUB BRANDSUB *FIELD 64L2 *GOSUB BRANDSUB *FIELD 66L2 *GOSUB BRANDSUB *FIELD 68L2

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 107

*FONT (definition)
System Purpose See also Syntax Description Windows Defines a font.

*FONT (switching) *FONT <n> <size facename [style] [(r g b, r g b)]>


Specifies the size, typeface name, style, fore- and background colours of a font. Argument n is used to identify the font when the font is selected. The font description arguments must be enclosed by and can be specified in any order. Font 0 does not have to be specified since it is the default font. The default font is the font that is used for every question where no font is selected. If font 0 is re-defined than this font will be used as the default font.

Arguments

n
Positive integer used to identify the font.

size
Point size of the font.

facename
Name of the font. This font must be installed under Windows.

style
The following styles are available: bold, italic, underline, strikeout. Styles can be combined, they must be separated by at least one space.

(r g b, r g b)
This argument specifies the foreground and background colours in RGB values. r, g, b are numbers greater or equal to 0. r is the amount of red, g is the amount of green and b is the amount of blue. If only a foreground colour has to be specified this can be done by: (r g b); If only a background colour has to be specified this can be done by: (,r g b). Example: black = 0 0 0, white = 255 255 255, red = 255 0 0 Remarks Example If a requested font is not installed Windows will choose a font that resembles the requested font.

*FONT *FONT *FONT *FONT *FONT *FONT *FONT *FONT *FONT *FONT *FONT

0 "10 Courier" 1 "8 ARIAL" 2 "8 ARIAL bold" 3 "12 Times New Roman" 4 "16 Courier (255 0 0)" 5 "18 Roman (,255 0 0)" 6 "25 Script (255 0 0, 0 128 255)" 7 "10 WingDings " 8 "10 ARIAL ITALIC" 9 "10 ARIAL BOLD UNDERLINE" 10 "10 ARIAL strikeout"

108 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*FONT (switching)
System Purpose Syntax See also Description Windows Switches to an earlier defined font.

*FONT <n|[expression]> *FONT (definition)


Selects an earlier defined font. Can be used as a question option or in question or code texts. The selected font will remain active until a new font is selected. Every time the screen is cleared, the current font is set to the default font (*FONT 0) or to the font specified in the question option.

Arguments

n|expression
This is a positive integer or expression that refers to an earlier defined font.

Example 1

*FONT 0 8 ARIAL *FONT 1 8 ARIAL BOLD *FONT 2 8 ARIAL ITALIC *QUESTION 1 *CODES 61 *FONT 1 Do you use a personal computer? 1: Yes 2: No *QUESTION 2 *CODES 62 *NCLS *IF [Q1,1] Do you use it for *FONT 2business*FONT 0 or *FONT 2personal*FONT 0 purposes? 1: Business 2: Personal 3: Both
Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 109

Example 2

*FONT 1 8 COURIER BOLD *INFO *FONT 1 This is an info page


In this example, the info page is displayed in the Courier font, style bold.

Example 3

*FONT 0 "10 ARIAL (255 0 0) BOLD" *FONT 1 "10 ARIAL BOLD" *FONT 2 "10 ARIAL (0 0 255) BOLD" *VARS x *REPEAT 201 *RANDOM *PUT x [?R-101] *IF [x<>0] *END *ENDREP *PAGE *FONT 1 This randomiser draws a number between -100 and 100 Negative numbers will be printed in *FONT 0red*FONT 1 Positive numbers will be printed in *FONT 2blue*FONT 1 *FONT [2*(x>0)]*? x*FONT 1 *END

110 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*FORM
Purpose Syntax See also Defines a form question.

*FORM *ALPHA (in *FORM question) *NUMBER (in *FORM question) *SCALE (in *FORM question) *GRID
This command is always used in combination with *QUESTION and has to be behind this command on the same line. Defines a form question, that contains one or more separate input fields, that will be dealt with separately on one and the same screen. These fields will either expect numbers or alphanumerical texts of limited length as input. The commands *NUMBER and *ALPHA determine of which type and how long an input cell is. In the form question there may be descriptive texts that generally precede a cell definition. It is also possible to create so-called grids, by using *FORM in combination with *SCALE or *GRID.

Description

*FORM questions can be controlled by another question by using the *CONTROL command.
Remarks If there is a code in front of the descriptive texts, this code controls in which order the cells are dealt with during the interview. The cell which turn it is will be highlighted. This code is also used to determine which lines are displayed or suppressed by *CONTROL. In form questions, *CONTROL automatically suppresses empty lines that are the result of the control. In DOS there is a maximum of 50 cells in a form question. You can refer to a field in a form question with the expression QnFm. E.g., Q3F2 refers to the second field in form question 3. See also the example under *FORMAT. In NIPOSYS.INI the following setting applies: BackInForm = n. If this setting is turned on (n=1) it is possible to go back in a form question by using the [BACK] button. Default this setting is off (n=0).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 111

Example 1

*QUESTION 1 *FORM *BUT 99 "Refusal" Please, fill in your name and address: 1:Name : *ALPHA 73L30

2:Street: *ALPHA 103L40 3:Place : *ALPHA 143L20


Result:

112 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*FONT 0 "Arial 10" *QUESTION 1 *CODES 61L6 *MULTI Which of the following brands of beer do you ever drink? 1: 2: 3: 4: 5: Heineken Amstel Grolsch Carlsberg Tuborg

6: None of these *NMUL *TAB 35, 45, 55, 65, 75, 85 *QUESTION 2 *FORM *CONTROL Q1 W How do you rare the taste of the following beers: <Tab>Very poor<Tab><Tab><Tab><Tab>Very good<Tab> 1:Heineken 2:Amstel 3:Grolsch 4:Carlsberg 5:Tuborg
Result:

*SCALE 67L1 5 6<Tab><Space> *SCALE 68L1 5 6<Tab><Space> *SCALE 69L1 5 6<Tab><Space> *SCALE 70L1 5 6<Tab><Space> *SCALE 71L1 5 6<Tab><Space>

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 113

*FORMAT
Purpose Syntax See also Description Specifies the format of number transfer.

*FORMAT <i[.f]> *? *PUT *NUMBER *VARS


Specifies the format of numbers from numeric variables when they are retrieved by the command *? or when converting a numeric variable into a text variable by *PUT.

Arguments

i
This is the minimum space to be used for the representation of the integer part of the number. If necessary, more space will be used.

f
This is the maximum space that has to be used for the fractional part of the number; this will be filled with trailing zeros. If f is too small to display all decimals, these will be rounded off. The maximum number of decimals is 4. The default is 0. Example

*TAB 30 *TEXTVARS Number, Price, Piece *FONT 0 "10 Arial" *QUESTION 1 *FORM 1:Number of fax machines bought: *NUMBER 61L3 *SAVE Number 2:Total price paid: *NUMBER 64L4.2 *SAVE Price

*FORMAT 3.2 *PUT Piece [Q1F2 / Q1F1] *QUESTION 2 *CODES 70L1 You bought *? Number fax machines for *? Price? So the average price per fax machine was *? Piece ? 1: Yes 2: No
Result:

114 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*GOSUB
Purpose Syntax See also Description Jumps to a subroutine.

*GOSUB <name> *FIELD *SUBROUTINE ... *ENDSUB


This command is also allowed under condition. Takes care of a jump to a subroutine specified by name. After return from the subroutine there will be continued with the next command following *GOSUB.

Arguments

name
This is the name of the subroutine that is called. This subroutine has to be defined earlier in the questionnaire.

Remark

If you're working with so-called 'floating' data fields you don't have to specify the *FIELD command. At fixing the answer fields of the questionnaire it will be put there automatically.

Example 1

*TEXTVARS BRAND *SUBROUTINE OPINION *QUESTION 901 *CODES 1 What do you think of the service of *? BRAND? 1: 2: 3: 4: Very good Good Poor Very poor

5: Dont know \ no answer *ENDSUB *QUESTION 1 *CODES 61L5 *MULTI *SAVE BRAND Which of the following gas stations have you ever visited? 1: 2: 3: 4: 5: Esso Shell Texaco BP Mobil *GOSUB *GOSUB *GOSUB *GOSUB *GOSUB OPINION OPINION OPINION OPINION OPINION *FIELD *FIELD *FIELD *FIELD *FIELD 66L1 67L1 68L1 69L1 70L1

In this example, for each answer mentioned, the subroutine is called (in reverse order that they were entered in Question 1). Data positions are fixed, each subroutine call requires only 1 position, specified in the *FIELD command. Question 901 shows position 1 (relative position within the subroutine).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 115

Example 2

*TEXTVARS BRAND *SUBROUTINE OPINION *QUESTION 1 *CODES L1 What do you think of the service of *? BRAND? 1: 2: 3: 4: Very good Good Poor Very poor

5: Dont know \ no answer *ENDSUB *QUESTION 2 *CODES L5 *MULTI Which of the following gas stations have you ever visited? 1: 2: 3: 4: 5: Esso Shell Texaco BP Mobil

*IF [ Q2, 2 ] *PUT BRAND Shell *GOSUB OPINION *IF [ Q2, 3 ] *PUT BRAND Texaco *GOSUB OPINION
In this example, first if answer 2 is mentioned, the text of the answer is stored in a variable and the subroutine is called, then for answer 3. Data positions are not fixed, so the *FIELD command is not specified yet.

116 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*GOTO
Purpose Syntax See also Description Jumps to a question.

*GOTO <n|[expression]> *BACK *IF


This command can be used on separate line, behind a filter expression or behind a category of a *CODES question If used behind a category it has to be on the same line as the code number definition. If the code is selected, the interview continues with the question specified. This command can also be used unconditionally. It is not allowed to jump into or out of a subroutine or repetition block.

!
Arguments

n|expression
This is a positive integer or expression that indicates an existing question.

Example 1

*QUESTION 10 *CODES 268 Do you have a drivers licence? 1: Yes 2: No *GOTO 26

Example 2

*QUESTION 10 *CODES 268 Do you have a drivers licence? 1: Yes 2: No *IF [Q10,2] *GOTO 26
In both examples, those with a drivers licence get the question following question 10, the others go to question 26.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 117

*GRID (in *FORM question)


Purpose Syntax See also Description Defines a grid.

*GRID [pos]L<length> x[.xs] y[.ys] *FORM *SCALE (in *FORM question) *VCONTROL
In form questions it is possible to create so-called grids. These kinds of questions use checkboxes to mark the answers on screen instead of using categories. With the *GRID command you can create vertical grids. These grids are filled in top to bottom. Contrary to horizontal grids (*SCALE) which are filled in left to right. To allow multiple answers in vertical grids you use the option *MULTI. The data field has to be large enough to store all data.

Arguments

pos
This is the start of the data field where the data is written in the U-file. Only one position per grid-box is required.

length
This is the length of the data field.

x
Number of boxes vertically.

xs
Vertical spacing (lines). Default: 2

y
Number of boxes horizontally. Default: 1

ys
Horizontal spacing (characters). Default: 4 Remarks In NIPOSYS.INI the following settings apply: Boxsize = n defines the box size in a grid question, where n = 1/10 point. AutoDeselect = -1 switches automatic deselecting of boxes off.

118 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 1

*QUESTION 101 *FORM Vertical grid, using GRID Heineken 1:1 2 3 4 5


This results in a grid consisting of 5 lines with 6 boxes per line:

Grolsch

Amstel

Carlsberg

Tuborg

Other

*GRID L6 5.2 6.10 *NON

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 119

Example 2

*QUESTION 101 *FORM Vertical Grid, MULTIPLE answers allowed Heineken 1:1 2 3 4 5
This has the same result as above but with multiple answers allowed. Note the length of the data field (30): 6x5 positions are necessary to store all data.

Grolsch

Amstel

Carlsberg

Tuborg

Other

*GRID L30 5.2 6.10 *MULTI

Remarks

Using *TAB and [Tab] to line out grids. To align column texts (headers) above the grid, tab positions must be defined with the *TAB command before a *GRID question. For each column in the grid a tab must be defined. The GRID will always be distributed evenly between the first and the last tab (i.e. it is not possible to vary the gaps between columns). If the last tab is not at 100%, the last column text and the *GRID must be followed by [Tab][Space], to fill the last invisible column. Use stylesheets (CSS) to centre texts in CAWI.

*TAB 30, 40, 50, 60, 70 *QUESTION 1 *FORM Question text [Tab]Column 1[Tab]Column 2[Tab]Column 3[Tab]Column 4[Tab][Space] 1:Row 1[Tab]*GRID 61L4 3.2 4.1[Tab][Space] Row 2[Tab][Space] Row 3[Tab][Space]

120 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*GROUP
Purpose Syntax See also Description Keeps categories together.

*GROUP *AUTO *INV *RANDOM *ROT


When displaying categories in a question randomly, inverted or rotated, you can keep categories together with the command *GROUP behind the first category of a group. All categories up to the next *GROUP will be sorted only mutually. This can also be combined with the question option *AUTO.

Example

*QUESTION 202 *CODES 61L2 *RANDOM *AUTO Question text 0:code 1:code 2:code 3:code 4:code 5:code 6:code 7:code 8:code 9:code 10:code 11:code 12:code 13:code 14:code 15:code 16:code 17:code 18:code 19:code 20:code 21:code 22:code 23:code 24:code 25:code 26:code 27:code 28:code 29:code 0 1 2 3 4 5 6 7 8 9 10 *GROUP 11 12 13 14 15 16 17 18 19 20 *GROUP 21 22 23 24 25 26 27 28 29

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 121

30:code 31:code 32:code 33:code 34:code 35:code 36:code 37:code 38:code 39:code 40:code 41:code 42:code 43:code 44:code 45:code 46:code 47:code 48:code 49:code

30 *GROUP 31 32 33 34 35 36 37 38 39 40 *GROUP 41 42 43 44 45 46 47 48 49

98:don't know *NOCON *GROUP 99:no answer


Result:

122 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*HEADING
Purpose Syntax See also Description Defines a header text above categories.

*HEADING *AUTO *GROUP *INV *NEWCOLUMN *RANDOM *ROT


When displaying categories in a question you can define a heading above categories, to be used when categories are displayed randomly, inverted or rotated. This can also be combined with the question option *AUTO. The command *HEADING will be interpreted as an implicit *GROUP on the next category line.

Example

*QUESTION 201 *CODES 61L2 *RANDOM Question text *HEADING*FONT 1Header for code 1 to 5*FONT 0 1:code 1 2:code 2 3:code 3 4:code 4 5:code 5 *HEADING*FONT 1Header for code 6 to 10*FONT 0 6:code 6 7:code 7 8:code 8 9:code 9 10:code 10 *HEADING*FONT 1Header for code 11 to 15*FONT 0 11:code 11 12:code 12 13:code 13 14:code 14 15:code 15 98:don't know *NOCON *GROUP 99:no answer

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 123

Result:

124 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*HELP (definition)
System Purpose Syntax See also Description Windows Defines a page of text.

*HELP [n] *INFO *INSTRUC *PAGE *QUESTION *HELP (question option)


Defines a page of text. This command has to be at the beginning of a line. The text consists of all following lines up to the first new command at the beginning of a line (except **, *? and *FONT (switching)). If a numbered help screen is followed by a *PAGE command this page will act as the next help screen. In this way it is possible two divide your help screen into multiple pages. When the help page is called two new buttons will appear on the question screen to go to the previous or next screen.

Arguments

n This is the number of the text page.


Argument n is not available in ODIN for DOS. Only one help screen at a time can be defined. The text stays on call and unchanged until a new page is defined with *HELP. If the interview has preceded thus far that this command has been dealt with, the interviewer can display this page of text by pressing [F3]. If an empty page of text is defined (*HELP with on the next line immediately a new command) [F3] will have no effect. Therefore, a help screen, where often further descriptions and definitions are put in, has to be placed prior to the section of the questionnaire that it concerns.

Remarks

Example 1

*HELP 1 This is the first help screen defined. *HELP 2 And this is the second help screen defined.

Example 2

*HELP 1 This is the first page of the help screen. *PAGE And this is the second page of the help screen.
In this example, a help screen with 2 pages is defined.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 125

*HELP (question option)


System Purpose Syntax See also Description Windows Switches to an earlier defined text page.

*HELP [n] *HELP


This command has to be used in combination with *QUESTION. By pressing the help button, the related text page is displayed.

Arguments

n This is the number of the page that has to be displayed.


Argument n is not available in ODIN for DOS. Only the last defined help screen can be displayed. A numbered help-screen may consist of more than 1 page. After the *HELP n definition add a *PAGE with more text. See example 2.

Remarks

Example

*HELP 1 This is the first page of the help screen. *PAGE And this is the second page of the help screen. *QUESTION 1 *CODES 433 *HELP 1 Did you know that if you press the help button a help screen appears? 1: Yes 2: No

126 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Result: In this example, pressing the Help button displays a help screen with text, pressing Next will show the second page of the help-screen.:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 127

*IF (condition)
Purpose Syntax See also Description Creates a condition.

*IF <[expression]> <action> [*ELSE <action>] *GOTO, *IF (question option)


The expression will be interpreted and tested on true or false. If the expression is true the commands immediately following the expression will be executed. You may use the command *ELSE followed by commands that will be executed if the expression is false.

Arguments

expression
A Boolean expression with as result true or false.

action
One or more commands that cause an action. Definition commands are not allowed. All these commands will be executed one after the other till *ELSE is encountered or the end of the command line has been reached. Example 1

*IF [ Q6 , 1-5 ] *GOSUB "BRAND"


If question 6 is answered with an answer value between 1 and 5 the subroutine BRAND is called.

Example 2

*IF [ RAN 3 ] *GOTO 100


In 67% of the cases the interview jumps to question 100. (the generated values are 0, 1 and 2. Value 0 will make the expression false and thus prevent the jump.)

Example 3

*IF [ Q11 = "PC" ] *GOTO 100 *ELSE *GOTO 200


The condition is true if the answer to question 11 is equal to the text PC.

128 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*IF (question option)


Purpose Syntax See also Description Display a question under condition.

*IF <[n|expression]> ["text"] *IF (condition)


This command is always used in combination with *QUESTION and a question type definition and has to be behind these commands on the same line. This command puts a condition on a question. The question will only be displayed if the expression is true. For a detailed explanation of expressions refer to the part with expressions.

Arguments

expression
A Boolean expression with as result true or false.

text
Any text. If, when creating variables for NIPO Diana, the question filters are copied, this text will be copied in the variable file. This text will be printed above the table with straight runs and cross tabulations. Example

*QUESTION 15 *CODES 96 Do you own a VCR? 1: Yes 2: No *QUESTION 16 *CODES 97 *IF [ Q15 , 1 ] Did you use your VCR yesterday? 1: Yes 2: No
In this example, question 16 will only be asked if the answer to question 15 is 1 (yes).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 129

*INCLUDE
Purpose Syntax See also Description Transfers data within a questionnaire.

*INCLUDE <Qn> <Qm|[expression]> *COPY *EXCLUDE


This command is also allowed under condition. One or more answer codes are subjoined in the receiving data field.

Arguments

Qn
The question reference of the data field where the process takes place. This command only makes sense if the question referred to, is a multiple question.

Qm
All answers of this question will be subjoined in the specified data field.

expression
The result of the expression will represent a code value. Next this code will be subjoined in the data field. Remarks When using the *INCLUDE command in a single-coded question, the contents will only be changed when the code is higher. Use the *COPY command to overwrite original contents Contrary to the *COPY command the *INCLUDE command will NOT give warning messages when data positions are used more than once, except when the *INCLUDE command is used before the actual question definition. When copying text or an *ALPHA question into an *ALPHA question, you can not use the *INCLUDE command, but have to use the *COPY command. When a question already contains the category that was included, nothing changes. Example 1 Suppose we have the following question:

*QUESTION 1 *CODES 71L10 *MULTI


containing codes 2 and 3. If we execute the following commands:

*INCLUDE Q1 [3] *INCLUDE Q1 [4] *INCLUDE Q1 [7]

the contents of the question will be: 2, 3, 4 and 7. Note that the command

*INCLUDE Q1 [ 3,4,7 ]
is NOT valid, as the expression 3,4,7 will be interpreted first.

130 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

Suppose we have the following questions:

*QUESTION 1 *CODES 71L10 *MULTI


containing codes 1 and 4, and

*QUESTION 2 *CODES 121L8 *MULTI


containing codes 3, 4 and 7. If we execute the following command:

*INCLUDE Q1 Q2
the contents of question 1 will be: 1, 3, 4 and 7. Example 3

*QUESTION 11 *CODES L1 *QUESTION 12 *NUMBER L2 What is your age ? *IF *IF *IF *IF *IF *IF [ [ [ [ [ [ Q12 Q12 Q12 Q12 Q12 Q12 <= >= >= >= >= >= 24 25 35 45 55 65 ] & & & & ] *INCLUDE Q12 < 35 Q12 < 45 Q12 < 55 Q12 < 65 *INCLUDE Q11 [ 1 ] ] *INCLUDE ] *INCLUDE ] *INCLUDE ] *INCLUDE Q11 [ 6 ] Q11 Q11 Q11 Q11 [ [ [ [ 2 3 4 5 ] ] ] ]

In this example Question 11 is a dummy question, that is filled with the *INCLUDE command to store the age in 6 categories.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 131

*INFO
Purpose Syntax See also Description Defines a page of text with information for the interviewer (before the introduction).

*INFO [n] *HELP *INSTRUC *PAGE *QUESTION


Defines a page of text. This command has to be at the beginning of a line. The text consists of all following lines up to the first new command that is at the beginning of a line (except **, *? and *FONT (switching)). This page of text may only occur once in the questionnaire. The text will be displayed before the actual interview, even before the introduction text. During the interview it can be displayed at any time by means of [F8] (DOS) or by choosing the Info item in the View menu (Windows). The info page is often used to inform or instruct the interviewer or respondent about the subject of the questionnaire.

Arguments

n
This argument can be value 0, 1, 2 or 3.

*INFO 0
Value 0 indicates that the info page is suppressed (i.e. not displayed) before the start of the interview. The interviewer can see the info-page only by selecting the View menu-item Info.

*INFO 1
The default value is 1. Value 1 indicates that the info page is shown before the introduction screen in the start of each interview. The interviewer can also see the info-page by selecting the View menuitem Info.

*INFO 2
Show Info-screen before waiting for dialer.

*INFO 3
Show info screen only once, when starting the NIPO Interview System. The info screen will not appear for each new interview.

Remarks

Argument n is not available in ODIN for DOS. I.e. the page can not be suppressed at the beginning of the interview.

Example

*INFO 1
Before starting a new interview please check the following .....

132 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*INIT
Purpose Syntax See also Description Starts an initial part of a questionnaire.

*INIT *INFO *INSTRUC and Paragraph 2.4.1 item 11)


Defines the start of an initial part of the questionnaire. This command has to be at the beginning of a line. The command may only occur once in the questionnaire. In an initial part all commands may occur. The initial part will always be dealt with first after the introduction; even when it concerns an interrupted interview. The initial part is concluded by *END. The use of this command makes only sense at interrupted interviews that are continued at a later date. Without this command the interview will exactly be restarted at the question where it left of. By means of *INIT you can bring about that first again some help screens are displayed, variables are being calculated, etc. In ODIN 32-bit the *INIT block is executed slightly different from ODIN 16-bit: The NIPO Interview System 32-bit uses a Suspend Image, containing the complete routing, instead of the A-file. When an interview is resumed, the engine will go through the whole questionnaire very quickly, filling in all previous answers. This way the system will see all changes in the questionnaire, like changed routing or new questions. The *INIT block is executed before running the Suspend Image. Sometimes this means the execution of the *INIT block in the NIPO Interview System 32-bit would lead to different results as compared to the 16-bit version, as variables that are created halfway the questionnaire are not filled yet. Showing some introduction questions or retrieving data from the telephone file or Sample table in the

Remarks

*INIT block, does not make any difference between NIPO Interview System 16-bit and 32-bit.
Note: The feature of a Suspend Image is that you can go back in questions that were asked in a previous session and that you can start in the middle of a subroutine or *REPEAT loop. So in a lot of cases, no *INIT block is required in 32-bit. Tip: If the *INIT block is used to display some variables from a previous session (like a counter), you can of course store this counter in the telephone file or Sample table and use the *MOVU command to retrieve this data. Note 2: When using Channel Aware scripting ( *IF [_ISCATI] or *IF [_ISCAWI] ), questions in the *INIT block will always be executed 'as is' (i.e. with the current channel). Questions will be shown as new (i.e. previous answers are not preselected).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 133

Example 1

*INIT *QUESTION 9001 *ALPHA L18 *DATE Q9001 *END


In this example the current date and time is saved each time the interview is started.

Example 2

*INIT *QUESTION 9002 *ALPHA L20 Int. first type the name of the respondent *END *QUESTION 1 *CODES L1 Are you the managing director of this company? 1: Yes 2: No *QUESTION 2 *CODES L1 Can you connect me with the managing director of the company 1: Yes 2: No, he is not in the office currently 3: No, refusal *ABORT *CUT 1

In this example the name of the respondent is asked before each interview. Note that only the name of the last contact will be saved in question 9002.

134 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*INSTRUC
System Purpose Syntax See also Description CAPI only Defines a page of text.

*INSTRUC *HELP *INFO *PAGE *QUESTION


Defines a page of text. This command has to be at the beginning of a line. The text consists of all following lines up to the first new command that is at the beginning of a line (except **, *? and *FONT (switching)). During the interview these pages will not be displayed. The text is meant for the interviewer and will only be displayed if the questionnaire is viewed (ODIN for DOS, Compass). Viewing the questionnaire means that you can go through the questionnaire as if you are really interviewing. However no data will be written and no address records will be used. This possibility especially is used with CAPI where a face-to-face instruction for the interviewer is sometimes problematic.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 135

*INTRO
System Purpose Syntax NIPO CATI Client 5.03 and higher / Web Client 1.02 and higher Defines the introduction page.

*INTRO [n] <introduction text>


Defines the introduction page text. For each channel a separate introduction text may be defined.

Description

Arguments

[n]
This is the channel number or one of the predefined channel constants: _CATI_, _CAPI_, _CAWI_, _CASI_. (Expressions are not allowed).

<introduction text> is the text that has to be displayed, this text can contain *FONT and can display system variables with the *? command (i.e. only the variables: AGENTNAME, LANGUAGE, etc. and Sample table fields that were defined with *SAMPLEDATA).
Remarks

*INTRO without an argument or *INTRO 0 is the introduction used for all channels that don't define their own introduction.
Old style introduction will still be supported but cannot be mixed with new style *INTRO introduction, when the styles are mixed within the same questionnaire an error message will be given. If n is the number of an unknown channel a warning message will be given (warning because maybe in the future it will be a valid channel). More than one *INTRO command with the same argument in a questionnaire is not allowed: in that case a fatal error message will be given. The *INTRO command may also be used in a *LANGUAGE section, i.e. you may translate the introduction in other languages.

Example

*SAMPLEDATA TTAppointmentName *INTRO _CATI_ This is the introduction for NIPO CATI Clients only *?AGENTNAME, please call the telephone number that is displayed on top of this screen. *INTRO _CAWI_ Introduction for CAWI (Web) Clients only *?TTAppointmentName, please press the <Start> button, to start the interview.

136 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*INV
Purpose Syntax See also Description Displays codes in random inverted order.

*INV [[pos]L<length>] *GROUP *NOCON *RANDOM *ROT *REPEAT ... *ENDREP *ORDER
This command can be used in two ways: In combination with a closed question and has to be on the same line as the question definition. The answer codes and the descriptions of the question will be shown in random inverted order on the screen. I.e. the codes and descriptions will once be displayed as defined in the questionnaire, then the codes and descriptions will be shown upside-down. On a single command line without arguments. In that case you use the command to make inversion of categories respondent consistent. The first respondent will get all questions with the question option *INV displayed top-to-bottom, the next respondent will get them all bottom-to-top.

Arguments

pos
This is the data field specification where the order of the displayed categories is written in the data file with the closed answers.

length
This is the length of the data field. Remarks The position specified behind *INV is only filled when the list is displayed inverted. It is not useful to store more than one code, since the order of the codes is obvious. With *NOCON answer categories can be excluded from the inversion.

Example 1

*QUESTION 1 *CODES 61 *INV 71L1 To what extent do you agree? 1: 2: 3: 4: 5: 6: Totally agree Agree Dont agree\dont disagree Disagree Totally disagree Dont know *NOCON

In this example, the answer is stored in position 61. In the answer field behind *INV, code 5 is written when the list is inverted. The *NOCON means the last category should always be displayed last.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 137

Example 2

*INV *REPEAT 3 *REPNUM 1: *PUT brand Acer *REPNUM 2: *PUT brand IBM *REPNUM 3: *PUT brand Tulip *QUESTION 2 *CODES L1 *INV What do you think is the quality of *?brand ? 1: 2: 3: 4: Very good Good Poor Very poor

*ENDREP
In this example the code-order of Q2 is inverted, but for each respondent, the order is fixed.

138 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*LABEL
Purpose Syntax See also Description Defines a label for export to Diana variables, SPSS, etc.

*LABEL <text> *VAR


This command is always used in combination with *QUESTION and a question type definition and has to be behind these commands on the same line. This command gives the possibility to attach a name to a question. The label doesn't have to be unique. At the overview of the questions and the retrieving of a question from the questionnaire library this label will be visible. When creating variables for the NIPO DIANA program this label text will be used instead of the question text.

Arguments

text
This is the text that will be used for the label. The maximum length of a label name is 65 characters. Label names containing spaces have to be enclosed by double quotes ().

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 139

*LANGUAGE
Purpose Syntax See also Description Defines a language section.

*LANGUAGE "<name>[,LTR|RTL]" *SWILANG


With this command, you can create one or more sections at the end of the questionnaire that contain text in another language than the default language. The only command allowed in such a section is *QUESTION. All other commands (for routing, etc.) must be placed in the main section. If a question number is not available in a another language, the text from the main section will be displayed. If a question is only written in another language, it will not be displayed. The categories will be displayed as they are written in the language, so make sure the categories are corresponding. During the interview the interviewer can switch to another language from the Language Menu (see NIPO ODIN Developer Manual) or a language switch can be forced by the *SWILANG command.

Arguments

name
This is the name of the language section that ODIN refers to when a language is selected from the menu. Language names have to be placed between double quotes (e.g., "English"). LTR Indicates language direction Left-to-Right (Default). RTL Indicates language direction Right-to-Left (e.g., for Hebrew and Arabic).

Remarks

The default language should always be English, as this is the default name of the first item in the language menu, this can not be changed. So create the original questionnaire in English and then make language-versions for all other languages. If your original questionnaire is written in another language than English and you made an English translation later, refer to the original language with "English" and to this translation with another name, e.g., "Engels". If you are using the *SWILANG command in your NIPO ODIN questionnaire, you can disable the language menu (with the setting SwilangDisablesLanguageSwitch=1). The name of the language section that is operative will be hold in the system variable LANGUAGE. In the language section in *FORM questions field position, tabs and spaces should be included in the proper places.

140 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Allowed commands

The following commands may be used in a *LANGUAGE section: *QUESTION (With question number, but without type, position or options)

*? ** *FONT (definition) *FONT (switching) *LIST (definition) *USELIST *INTRO *INFO *NEW *PICT (question option) *PICT (codes option) *HELP (definition) *PAGE *NUMBER (in *FORM question) *ALPHA (in *FORM question) *SCALE (in *FORM question) *GRID (in *FORM question) *HEADING *MERGE
Example 1

(Only numbered *HELP screens) (As part of a numbered *HELP screen) (Without position or options) (Without position or options) (Without position or options) (Without position or options)

Test questionnaire in three languages *QUESTION 100 *CODES L1 Please type in the language code. You can change the language code via the Language menu. 1: English *QUESTION 1 *CODES L1 question in English 1: Yes 2: No *QUESTION 2 *CODES L1 second question in English 1: Yes 2: No *QUESTION 3 *CODES L1 *IF [ Q100,2 ] third question only in Dutch 1: Yes 2: No *END

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 141

*LANGUAGE Nederlands Test vragenlijst in drie talen *QUESTION 100 Wilt u de taalcode intikken. U kunt de taalcode wijzigen via het Language menu. 2: Nederlands *QUESTION 1 vraag in het Nederlands 1: Ja 2: Nee *QUESTION 2 tweede vraag in het Nederlands 1: Ja 2: Nee *QUESTION 3 de derde vraag is alleen in het Nederlands 1: Klopt 2: niet waar *LANGUAGE Deutsch Test Fragenbogen in drei Sprachen *QUESTION 100 Bitte geben Sie die Sprache ein. Sie knnen die Sprache ndern via das Language menu. 3: Deutsch *QUESTION 1 Frage auf Deutsch 1: Ja 2: Nein *QUESTION 2 Zweite Frage auf Deutsch 1: Ja 2: Nein

142 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*INTRO Introduction text for English respondents. ** In FORM questions the location of the fields should also be ** specified in the translation, without position or options; ** but including [tab] and [space] characters where required. *QUESTION 4 *FORM FORM question 1:Numeric field 2:Alpha field *NUMBER L2 *MIN 18 *MAX 65 *ALPHA L20 *NON

*TAB 40,50,60,70 *QUESTION 5 *FORM FORM SCALE question 1:Statement 1 2:Statement 2 3:Statement 3 [tab]value1 [tab]value2 [tab]value3 [tab][space] [tab]*SCALE L1 3 10[tab][space] [tab]*SCALE L1 3 10[tab][space] [tab]*SCALE L1 3 10[tab][space]

*QUESTION 6 *FORM FORM GRID question 1:Line 1 Line 2 Line 3 Line 4 [tab]Brand 1 [tab]Brand 2 [tab]Brand 3 [tab][space] [tab]*GRID L12 4.1 3.10[tab][space]

*LANGUAGE "Nederlands" *INTRO Introduktietekst voor Nederlandse respondenten. *QUESTION 4 FORM vraag 1:Numeriek veld 2:Alfa veld *QUESTION 5 FORM SCALE vraag 1:Uitspraak 1 2:Uitspraak 2 3:Uitspraak 3 *QUESTION 6 FORM GRID vraag 1:Regel 1 Regel 2 Regel 3 Regel 4 [tab]Merk 1 [tab]Merk 2 [tab]*GRID[tab][space] [tab]Merk 3 [tab][space] [tab]waarde1 [tab]waarde2 [tab]*SCALE[tab][space] [tab]*SCALE[tab][space] [tab]*SCALE[tab][space] [tab]waarde3 [tab][space] *NUMBER *ALPHA

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 143

*LEFT
Purpose Syntax See also Description Question type option and option within conjoint analysis.

*LEFT <text> *SCALE *RIGHT


This command is always used in combination with *QUESTION and *SCALE or in combination with *CONJ ... *ENDCONJ (start module conjoint analysis) and has to be behind these commands on the same line. With this command a text can be given which will during the interview be placed at the left-hand pole of the scale.

Arguments

text
This is the text that will be displayed on the left-hand pole of the scale.

Remarks

If the text contains spaces it has to be between double quotes. Note: In NIPO ODIN 4.08 or higher the text may contain more than one line. The system will break lines as required.

Example

*QUESTION 1 *SCALE 61 *LEFT "Left scale text" *RIGHT "Right scale text" This is an example of a scale question. Result:

144 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*LINE
Purpose Syntax See also Description Defines a continuous scale question.

*LINE [pos]L<length>|<pos> *MIN *MAX *REPEAT *SCALE


This command is always used in combination with *QUESTION and has to be behind this command on the same line. Specifies a scale question. Input is done by means of drawing a line, using the left and right cursor keys or by clicking with the mouse on the scroll arrows. The numerical answer consists of the length of the line (i.e. the number of horizontal screen positions the line occupies) and will be put right aligned and with leading zeros in the answer record.

Arguments

pos
This is the data field specification where the given answers will be written in the data file with the closed answers.

length
This is the length of the data field. Remarks Example 1 If you specify a negative maximum will result in a vertical line.

*QUESTION 1 *LINE 192L2 This is an example of a line question.


Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 145

Example 2

*QUESTION 1 *LINE 192L2 *MAX -99 This is an example of a vertical line question.
Result:

146 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*LIST (definition)
Purpose Syntax See also Description Defines an answer list.

*LIST <n|name> *LIST (question option), *USELIST


Defines a category list. This command has to be at the beginning of a line. The code list consists of all following lines up to the first new command at the beginning of a line. If the list is going to be used with a closed question (*CODES) there may be more codes on one line separated by a slash (/). If the list is going to be used with a text question (*ALPHA) there may be behind the category text a text between square brackets which will be used as data to be written during the interview. If the list is going to be used with a numerical question (*NUMBER) or a text question (*ALPHA) the list may contain the same category more than once. Use this option for instance to specify common spelling mistakes or company names that have been changed or that are often abbreviated. You will however (obviously) afterwards not be able to differentiate between categories with the same code-number.

Arguments

n
This is a positive integer and is unique within one sub-questionnaire.

name
This is the name of the list and has to be unique within one sub-questionnaire. Remarks In the list definition a category may be followed by the answer option *NOCON. The use of this answer option specifies that the specific code always will be displayed when the list is used. With this option it is possible to always display for example the answer category 'Dont know'. Behind the categories in the list, when the list is used in combination with *CODES, the following category options are allowed:

*OPEN (codes option) *NOCON *NMUL *SAVE (codes option) *FONT (switching) *GROUP *NEWCOLUMN *SWILANG
When the list is used in combination with *NUMBER or *ALPHA, only the category option *NOCON is allowed. The meaning of the option is that this category will not disappear from the list when typing an answer. All other category options will give an error. A blank line at the bottom of the list will be considered as part of the list and will be displayed in the category list of the question that uses the list.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 147

Example

*LIST 1 1: Citron 2: Fiat 3: Ford 4: Hyundai 5: Mazda 6: Mitsubishi 7: Nissan 8: Opel 9: Peugeot 10: Renault 11: Suzuki 12: Toyota 13: Volkswagen 14: Volvo 15: Other *NOCON *OPEN 16: Dont know *NOCON

148 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*LIST (question option)


Purpose Syntax See also Description Uses answer categories from a list.

*LIST <n|[expression]|name> *USELIST *LIST


This command is always used in combination with *QUESTION and a question type definition and has to be behind these commands on the same line. An earlier defined list of categories will be used as answer categories at the question. This command may be used at the following three question types: In combination with *CODES the codes and the texts will be retrieved from the list. In this case the list may contain more categories next to each other separated by a slash (/). The answer has to be entered as a code and will be written as such in the U-file. The question can be multiple. In combination with *NUMBER the texts will be retrieved from the list. The answer has to be typed in as text. At each entered character the number of shown categories will be smaller. The code belonging to the answer will be written as a number in the U-file. In combination with *ALPHA the texts will be retrieved from the list. The answer has to be typed in as text. At each entered character the number of shown categories will be smaller. The text of the answer will be written in the U-file. If in the list definition a text between square brackets is present behind the category text, then this text will be written in the U-file.

Arguments

n|expression
This is a positive integer or expression that indicates an existing list. If the expression is a numeric variable the expression has to be placed between square brackets. If the expression is a text variable, the expression has to be placed between double quotes ().

name
This is the name of an existing list. Remarks If a list is used in combination with the question type *NUMBER or *ALPHA, the typed answer will not only be compared with the first word of the answering category text, but also with all other words in the answer category text. Note: A large list in a *NUMBER *LIST question in the Web Client will not be displayed correctly in some older Browser version. This is not a NIPO Software bug, but due to a bug in the Browser version. Avoid using long lists, when (some) respondents have older browsers.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 149

Example 1

*LIST 1 1: Citron 2: Fiat 3: Ford 4: Hyundai 5: Mazda 6: Mitsubishi 7: Nissan 8: Opel 9: Peugeot 10: Renault 11: Suzuki 12: Toyota 13: Volkswagen 14: Volvo 15: Other *NOCON *OPEN 16: Dont know *NOCON *QUESTION 1 *CODES 61L2 *LIST 1 What is the make of your car?
In this example the earlier defined list is used for answer categories, that will appear on screen as a normal *CODES question.

Example 2

*LIST Cars 1: Citron 2: Fiat 3: Ford 4: Hyundai 5: Mazda 6: Mitsubishi 7: Nissan 8: Opel 9: Peugeot 10: Renault 11: Suzuki 12: Toyota 13: Volkswagen 14: Volvo *QUESTION 2 *CODES 63L17 *MULTI What brands of cars do you know? *USELIST Cars 16: Other #1 *OPEN 17: Other #2 *OPEN 18: Dont know any brand

*GOTO 9999

150 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 3

*LIST Cars2 01: Alfa Romeo 02: B.M.W. 02: BMW 03: Citron 04: Fiat 05: Ford 06: Hyundai 07: Mazda 08: Mitsubishi 09: Nissan 10: Opel 11: Peugeot 12: Renault 13: Rolls Royce 14: Suzuki 15: Toyota 16: Volkswagen 16: VW 17: Volvo 18: Other *NOCON 19: Dont know *TEXTVARS lname *PUT lname "Cars2" *QUESTION 3 *NUMBER 81L2 *LIST "*? lname" What is the make of your car?
In this example, the list that will be displayed is determined by a text variable and therefore the name has to be placed between double quotes () when you refer to it in the question. When selecting the brand, for instance Ford start typing the name. After typing the F only the brands Ford and Fiat will be displayed, plus the Other category (because of the *NOCON). Either type the O to select Ford or use the arrow-down-key, then press <Enter>. The category number 05 will be written in the data file. When selecting the brand Volkswagen after typing VOL still both Volkwagen and Volvo will be displayed. Only after typing the fourth character K it will display only Volkswagen. Note that you can define also the abbreviation VW with the same category number. When selecting the brand Rolls Royce, after typing RO the brands Alfa Romeo and Rolls Royce are displayed, as the second word of Alfa Romeo still fits the typing. Note the Citron also contains ro, but this is not at the beginning of a word.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 151

*MAX
Purpose Syntax See also Description Sets a maximum.

*MAX <n|[expression]> *LINE *MIN *MULTI *NUMBER *RANGE *SCALE


This command is always used in combination with *QUESTION and has to be on the same line behind the question type definition. In combination with *NUMBER it defines the maximum allowed answer value. If furthermore *LIST (question option) is used as question option it denotes the end of the list; categories that have a higher code value will not be displayed. In combination with *CODES *MULTI it defines the maximum number of answers allowed. In combination with *LINE it defines the number of steps the line will increase. In other words, if the maximum is 10 then the line will be on its maximum in 10 steps. In combination with *SCALE it defines the number of points in the scale.

Arguments

n|expression
This is a positive integer or expression that gives the maximum answer value.

Remarks

If *MAX is used in combination with *SCALE, the maximum value is 26 (i.e. the scale size is maximum 26 points).

Example 1

*QUESTION 91 *NUMBER L2 *MAX 65 What is your age (Maximum is 65) *QUESTION 92 *CODES L1 Do you smoke? 1: Yes 2: No *QUESTION 93 *NUMBER L2 *MAX [ Q91 ] At what age did you start smoking (Maximum is current age)

152 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*QUESTION 1 *NUMBER L1 How many cars do you have? *QUESTION 2 *CODES L16 *MULTI *MAX [ Q1 ] *IF [ Q1>=1 ] What brand(s) of car(s) do you have (Maximum as many brands as you have cars) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: Citron Fiat Ford Hyundai Mazda Mitsubishi Nissan Opel Peugeot Renault Suzuki Toyota Volkswagen Volvo Other *NOCON *OPEN Dont know *NOCON *NMUL

In this example, no more answers can be given than the number of cars mentioned in Question 1. Example 3

*QUESTION 71 *SCALE L1 *MAX 5 This is an example of a scale question with 5 boxes. *QUESTION 72 *LINE L2 *MAX 50 This is an example of a line question, divided in 50 steps.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 153

*MERGE
System Purpose Syntax Description CAPI only Inserts a questionnaire.

*MERGE [startpos] <filename> [:C]


The specified questionnaire file is inserted on the spot of this command. *MERGE can not be used in a questionnaire that is already to be merged.

Arguments

startpos
The start position wherewith all fixed data fields in the merged questionnaire will be raised. All data fields that are not fixed will be reserved as usual in consecutive positions.

filename
Name of the questionnaire that has to be merged. The name must comply with the questionnaire naming conventions. Note that the Q has to be included.

:C
The questionnaire that should be merged is coded (encrypted), so it can not be viewed, opened or changed by the interviewer or respondent. The questionnaire can be encrypted with the NIPO program DECODE.EXE. By default merged questionnaires are uncoded (plain ASCII text), so could be viewed or changed by the interviewer or respondent Remarks The questionnaire to merge has to have fixed data fields. The *MERGE command is intended for the NIPO CAPI System or NIPO Interview System standalone. When using *MERGE in the NIPO CATI System, the questionnaire that has to be merged should be placed on the local drive of the interviewer PC. The start position can not be defined if the questionnaire has to be merged in a language section. The *MERGE command can not be used conditionally, as it is executed when loading the questionnaire into memory.

Example 1

*MERGE BCKGRNDQ
The questionnaire with the name BCKGRNDQ will be merged into the main questionnaire.

154 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*QUESTION 100 *CODES L1 Please type in the language code. You can change the language code via the Language menu. 1: English *QUESTION 1 *CODES L1 question in English 1: Yes 2: No *QUESTION 2 *CODES L1 second question in English 1: Yes 2: No *QUESTION 3 *CODES L1 *IF [ Q100,2 ] third question only in Dutch 1: Yes 2: No *END *LANGUAGE Nederlands *MERGE DUTCHQ *LANGUAGE Deutsch *MERGE GERMANQ
In this example, a questionnaire with the name DUTCHQ will be merged into the Dutch section of the main questionnaire and a questionnaire with the name GERMANQ will be merged into the German section of the main questionnaire.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 155

*MIN
Purpose Syntax See also Description Sets a minimum.

*MIN <n|[expression]|Qn> *LINE *MAX *MULTI *NUMBER *RANGE *SCALE


This command is always used in combination with *QUESTION and has to be on the same line behind the question type definition. In combination with *NUMBER it defines the minimum required answer value. If furthermore *LIST (question option) is used as question option it sets the start of the list; categories that have a lower code value will not be displayed. In combination with *CODES *MULTI it defines the minimum number of answers that have to be given In combination with *LINE it defines the starting length of the line. I.e. the number of screen positions the line initially occupies. However, the line still can be made shorter. In combination with *SCALE it defines the starting position of the block in the scale.

Arguments

n|expression
This is a positive integer or expression that gives the minimum answer value or the initial length/position.

Qn
This is a question reference of a data field. The answer to this question is used as the minimum value. Remarks If used with a scale question, the value 0 indicates that no starting position is displayed.

Example 1

*QUESTION 91 *NUMBER L2 *MIN 18 *MAX 65 What is your age (Minimum is 18, maximum is 65) *QUESTION 101 *NUMBER L4 *MIN [ -999 ] What was the gross profit for your company last year? (Type the profit in Millions, if the company made a loss, use negative numbers)

156 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*QUESTION 1 *CODES L18 *MULTI *MIN 3 What are your three favourite car brand(s) (Minimum 3 brands) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: Citron Fiat Ford Hyundai Mazda Mitsubishi Nissan Opel Peugeot Renault Suzuki Toyota Volkswagen Volvo Other #1 *OPEN Other #2 *OPEN Other #3 *OPEN Dont know *NOCON *NMUL

Example 3

*QUESTION 71 *SCALE L1 *MAX 5 *MIN 3 This is an example of a scale question with 5 boxes. The initial value is 3 (the box in the middle) *QUESTION 72 *SCALE L1 *MAX 5 *MIN 0 This is an example of a scale question with 5 boxes. The initial value is 0 (no box preselected) *QUESTION 81 *LINE L2 *MAX 50 *MIN 25 This is an example of a line question, divided in 50 steps. The initial value is 25 (line is halfway the screen) *QUESTION 82 *LINE L2 *MAX 50 *MIN 0 This is an example of a line question, divided in 50 steps. The initial value is 0 (no line)

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 157

*MOVA
Purpose Syntax See also Description Transfers data to the T-file/Sample table record.

*MOVA <Qn> <Qm> *MOVU *COPY *ADDRESS


This command is also allowed under condition. Data specified in the second argument will be transferred to the data field in the T-file/Sample table record specified in the first argument. The original contents of the receiving data field will be overwritten.

!
Arguments

Qn
This is a (dummy) question that refers to a data field in the T-file/Sample table record.

Qm
The question reference of the data field that contains the data to be transferred. Example

*QUESTION 1 *NUMBER 290L2 *ADDRESS *QUESTION 2 *NUMBER 61L2 How old are you? *MOVA Q1 Q2
This example stores the contents of question 2 (position 61-62) in position 290-291 of the T-file/Sample table record.

158 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*MOVU
Purpose Syntax See also Description Transfers data to a data field in the closed answers record (U-file).

*MOVU <Qn> <Qm> *MOVA *COPY


This command is also allowed under condition. Data specified in the second argument will be transferred to the data field specified in the first argument. This command is especially used to transfer data from the T-file/Sample table record to a data field in the record with closed answers. The original contents of the receiving data field will be overwritten.

!
Arguments

Qn
The question reference of the data field where the data have to be transferred to.

Qm
Refers to a (dummy) question indicating a data field in the T-file/Sample table record that contains the data to be transferred. Example 1

*QUESTION 1 *NUMBER 290L2 *ADDRESS *QUESTION 2 *NUMBER 61L2 *MOVU Q2 Q1


This example stores the contents of position 290-291 of the T-file/Sample table record into question 2 (position 61-62).

Example 2

*QUESTION 701 *ALPHA 1L17 *ADDRESS *QUESTION 702 *ALPHA 101L17 *MOVU Q702 Q701
This example stores the telephone number (position 1-17 of the T-file/Sample table record) into question 702 (position 101-117).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 159

*MULTI
Purpose Syntax See also Description Specifies a question as a multiple coded question.

*MULTI [[pos]L<length>|<pos>] *CODES *NMUL *OPEN (question type) *GRID


This command is always used in combination with a closed question or an open question and has to be behind these commands on the same line. Specifies a question as a multiple coded question. The length of the data field specification for *CODES has to be at least as long as the highest code value in the set of presented codes. The answers will be written as a string of 0 and 1 values in the data file th with the closed answers. Here answer code n corresponds with the n position in the string. A 1 on that position means that the answer is given. If *MULTI is used in combination with *OPEN (question type), the question will be regarded as a multiple answer question when coding open answers. See also the NIPO ODIN Developer Manual. If *MULTI is used in combination with *GRID, the grid-question will be regarded as multiple and more than one box may be selected in. both horizontal and vertical direction.

Arguments

pos
This is the data field specification where the order of the choice of the mentioned categories is written in the data file with the closed answers.

length
The number of codes of which the order will be saved is dependent of the length in the data field specification. This has to be just as long as the number of codes to be saved multiplied by the length for the highest code. If the data field is shorter it will be truncated. Remarks Example To specify a maximum number of answers to be mentioned, use *MAX.

*QUESTION 1 *CODES 61L10 *MULTI 71L6 What PC makes do you know? 1: 2: 3: 4: 5: 6: 9: 10: Acer Compaq Dell Hewlett Packard IBM Philips Other *OPEN Dont know *NMUL

In this example, all mentions are written in position 61L10. The order of the first three answers mentioned is written in position 71L6. For instance, if the categories 5, 1, 6 and 4 are mentioned, position 71L2 will hold the value 05, position 73L2 will hold the value 01 and position 75L2 will hold the value 06.
160 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*NCLS
Purpose Syntax See also Description Does not clear the screen at new question.

*NCLS *PNW
This command is always used in combination with *QUESTION or *PAGE and has to be behind these commands on the same line. During the interview, the screen will not be cleared when this question is dealt with. The question is placed under the previous question on the screen. If the screen gets full text will scroll off the top of the screen. In Windows the screen does not scroll automatically, but you can use the scroll bar to scroll the screen.

Remarks

Example

*QUESTION 1 *CODES 61 Do you own a VCR? 1: Yes 2: No *QUESTION 2 *OPEN 62L10 *MULTI *IF [Q1,1] *NCLS What is the brand of your VCR?
In this example, the screen is not cleared when question 2 comes up:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 161

*NEW
Purpose Syntax Description Starts a new sub-questionnaire.

*NEW [n|Qn]
Defines the start of a new sub-questionnaire. This command has to be at the beginning of a line. A sub-questionnaire forms a closed set of questions. Question numbers and answer fields may double with question numbers and answer fields of another sub-questionnaire. For each sub-questionnaire a separate answer record will be written. Variables are always known throughout the entire questionnaire. The function of this command is to deal with several subjects, for instance from different researchers, in one interview or to write separate records for each member of a household or to store data over 32.000 positions per record.

Arguments

n
The position of the record from where the answers of the previous questionnaire will be cleared.

Qn
The question reference of the data field from where the answers of the previous questionnaire will be cleared.

Remarks

If this argument is given you can still refer to data fields that are lower than the specified data field. If the argument is omitted the default position is 61. After a *NEW you can always refer to questions in previous sub-questionnaire(s). However if you use a question number again in a new sub-questionnaire, it will refer to the question in the current sub-questionnaire. Obviously you are not allowed to store any thing in a previous subquestionnaire.

162 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*NEWCOLUMN
Purpose Syntax See also Description Sets a breakpoint for category lists.

*NEWCOLUMN *AUTO *GROUP


This command is used to set a breakpoint for category lists if used in combination with *AUTO. When a category list is too long to fit on the screen the system will try to arrange the categories into columns of equal length on the screen. With *NEWCOLUMN you can determine where to start the next column. In the NIPO CATI Client you can not force the system to split a column list at a specific point. Only if the system decides to split a column list it will take into account where you have put the breakpoints. In the NIPO Web Client *AUTO is not supported. The *NEWCOLUMN command will split categories in columns for the Web Client (i.e. the columns are forced). Normally the system will try to create columns of equal length. Using *NEWCOLUMN will prevent this.

Remarks

Example

*QUESTION 2 *CODES L2 *AUTO Question text 1:code 2:code 3:code 4:code 5:code 6:code 7:code 8:code 9:code 10:code 11:code 12:code 13:code 14:code 15:code 16:code 17:code 18:code 19:code 20:code 21:code 22:code 23:code 24:code 25:code 26:code 27:code 28:code 29:code 30:code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 *NEWCOLUMN 22 23 24 25 26 27 28 29 30
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 163

31:code 32:code 33:code 34:code 35:code 36:code 37:code 38:code 39:code 40:code 41:code 42:code 43:code 44:code 45:code 46:code 47:code 48:code 49:code 50:code 51:code 52:code 53:code 54:code 55:code 56:code 57:code 58:code 59:code 60:code

31 32 33 34 35 36 37 38 39 40 41 *NEWCOLUMN 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

61: don't know *NOCON 62: no answer


In this example the second column will start at the twentieth category regardless the length of the columns.

164 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 165

*NEXT
Purpose Syntax See also Description Skips fields in form questions.

*NEXT <n> *FORM


With this command it is possible to jump to a specific field in a form question. n refers to the field number. If the fields are not numbered ODIN will not skip any fields.

Arguments

n
Field number to which the jump will be made.

Example

*QUESTION 1 *FORM Income and spending per month 1: Gross income per month *NUMBER L5 2: House *NUMBER L1 *MIN 1 *MAX 2 *IF [Q1F2=2] *NEXT 4 (1=Property, 2=Rental) 3: Mortgage per month 4: Rent per month 5: Other fixed overheads *NUMBER L5 *NON *NEXT 5 *NUMBER L5 *NON *NUMBER L5 *NON

In this example, the mortgage per month will be asked if the respondent owns a house, otherwise the rent per month will be asked.

166 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*NMUL
Purpose Syntax See also Description Specifies that the code in question can not be given as answer in combination with other codes.

*NMUL *MULTI
This command is always used behind a code definition and has to be behind this code on the same line. Specifies that the code can not be given as answer in combination with other codes. This command is only effective for questions that allow multiple answers.

Remarks Example

*QUESTION 1 *CODES 61L10 *MULTI What PC makes do you know? 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Acer AST Compaq Dell Hewlett Packard IBM Philips Tulip Other *OPEN Dont know *NMUL

In this example, selecting category 10 will automatically deselect other categories and vice versa.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 167

*NOCON
Purpose Syntax See also Description Specifies that the code in a question doesn't come under control.

*NOCON *CONTROL *INV *LIST *RANDOM *ROT


This command is always used behind a code definition and has to be behind this code on the same line. If the codes of the current question are displayed under control by means of *CONTROL then this code will not be part of it. The code will always be displayed normally. This command is also used for the question options *RANDOM, *INV and *ROT. All codes starting from the code that has *NOCON as option will be displayed normally on the screen. If used in combination with *LIST (question option) and *NUMBER or *ALPHA the category will be displayed even after typing text and thus pre-selecting categories.

Example

*QUESTION 1 *CODES 61L10 *MULTI What PC makes do you know? (Unaided awareness) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Acer AST Compaq Dell Hewlett Packard IBM Philips Tulip Other *OPEN Dont know any makes*NMUL

*QUESTION 2 *CODES 71L10 *MULTI *CONTROL Q1 N Which of the following PC makes do you know? (Aided awareness) 1: 2: 3: 4: 5: 6: 7: 8: Acer AST Compaq Dell Hewlett Packard IBM Philips Tulip

10: None of the above *NMUL *NOCON


In this example, code 10 in question 2 is always displayed, even when it is mentioned in question 1.

168 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*NOENTER
Purpose Syntax Description Allows bypassing the [ENTER] key.

*NOENTER
With this command it is possible to enter data without confirmation. I.e. you dont have to press the [ENTER] key or the [OK] button after you have entered a (category) number. This speeds up data entry but may be error sensitive. This option has no effect on *MULTI questions and *ALPHA questions

Remarks Example

*NOENTER *QUESTION 1 *CODES L1 Gender 1: Male 2: Female *QUESTION 2 *NUMBER L2 Age

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 169

*NOHIDE
System Purpose Syntax See also Description ODIN 4.08 (16-bit) only Ignores the *CONTROL command for a specific category.

*NOHIDE *CONTROL *NOCON *STOPAUTO *STOPRANDOM


This command is always used behind a code definition and has to be behind this code on the same line. If the answer categories are displayed under control of another question by means of *CONTROL then this code will always be displayed regardless of the answers given to the controlling question.

Example

*QUESTION 1 *CODES 61L10 *MULTI What PC makes do you know? (Unaided awareness) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Acer AST Compaq Dell Hewlett Packard IBM Philips Tulip Other *OPEN Dont know any makes *NMUL

*QUESTION 2 *CODES 71L10 *MULTI *CONTROL Q1 N Which of the following PC makes do you know? (Aided awareness) 1: 2: 3: 4: 5: 6: 7: 8: Acer AST Compaq Dell Hewlett Packard IBM Philips Tulip

10: None of the above *NMUL *NOHIDE


In this example, code 10 in question 2 is always displayed, even when it is mentioned in question 1.

170 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*NON
Purpose Syntax Description Permits non-response.

*NON
This command is always used in combination with *QUESTION and a question type definition and has to be behind these commands on the same line. Non-response is permitted at this question. It is permitted to press [Enter] or [OK] without giving an answer. In DOS, if the command is used in combination with a scale question (*SCALE), a separate box below the scale will code for no answer. In Windows, if the command is used in combination with a scale question (*SCALE) or a line question (*LINE), a Dont know button will appear to enter non-response.

Remarks

Example

*QUESTION 1 *NUMBER 61L4 *NON What is your postcode?


In this example, it is possible to press [Enter] or [OK] without filling in the postcode.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 171

*NONRESP
Purpose Syntax See also Description End questionnaire, to response list.

*NONRESP ["I"|"E"|"A"] *CUT


With this command the interview is terminated and the (non-)response list is put on the screen. The argument determines which list will be shown. If the argument is omitted the default (non-)response list from "I" will be displayed. See also the description of the survey configuration file nameN in chapter 6 of the NIPO ODIN Developer Manual.

Arguments

"I"
The (non-) response list that is displayed initially appears on the screen. This is the list that appears after answering No to the question Start interview (Y/N)? (DOS) or pressing the Nonresp key in the introduction screen (Windows)

"E"
The (non-) response list that is displayed when the interviewer wants to enter a non-response after the interview has started, by typing -END (DOS) or choosing the File menu item Nonresp(Windows).

"A"
The (non-)response list that is displayed when the interviewer enters -CUT (DOS) or chooses the Appoint item in the File menu (Windows).

172 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*NOTBACK
Purpose Syntax Description Blocks going back in questionnaire.

*NOTBACK
You can not go back in the questionnaire any further than up to this command. Using [F1] (DOS) or the [Back] button (Windows) at this spot will result in an error message. It is possible to go back by using the command *BACK.

Remarks

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 173

*NUMBER (question type)


Purpose Syntax See also Description Defines a numerical question.

*NUMBER [pos]L<length>[.fraction]|<pos> *ALPHA *CODES *OPEN (question type) *LIST *MIN *MAX *RANGE
This command is always used in combination with *QUESTION and has to be behind this command on the same line. Defines a question as a numerical question and expects a number as answer. The answer will be right aligned and with leading zeros put in the answer field. The answer can consist of an integer or a floating-point value, as defined in the data field specification.

Arguments

pos
This is the data field specification where the given answers will be written in the data file with the closed answers.

length
This is the length of the data field. The length of the data field defines the number of digits of the maximum value of the question. In case of a floating point value, the length of the data field is length+fraction.

fraction
This is the number of decimals that is allowed to enter in a floating-point value. The fraction will be written in the data field without the decimal separator. Which separator (point or comma) is to be used by the interviewer/respondent depends on the Window settings. Remarks The decimal point in the syntax will not be written to the answer record. Negative values will be written with a preceding minus sign in the data file. Positive values will be written without sign.

Example

*QUESTION 1 *NUMBER 61L3.2 *MAX 100 What percentage of your income do you spend on clothing?
In this example, you can enter a value with two decimals, for instance 60.75. In the data field 06075 will be written over 5 positions.

174 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*NUMBER (in *FORM question)


Purpose Syntax See also Defines a numerical field in a *FORM question.

*NUMBER [pos]L<length>[.fraction]|<pos> *FORM *ALPHA (in *FORM question) *SCALE (in *FORM question) *GRID

Description

This command is always used in a *FORM question. Defines a field that expects a number as answer. Several fields may be specified in the same *FORM question. The answer will be right aligned and with leading zeros put in the answer field. The answer can consist of an integer or a floating-point value, as defined in the data field specification. In this case the decimal character will be virtual (i.e. not actually stored in the data).

Arguments

pos
This is the data field specification where the given answers will be written in the data file with the closed answers.

length
This is the length of the data field. The length of the data field defines the number of digits of the maximum value of the question. In case of a floating point value, the length of the data field is length+fraction.

fraction
This is the number of decimals that is allowed to enter in a floating-point value. The fraction will be written in the data field without the decimal separator. Which separator (point or comma) is to be used by the interviewer/respondent depends on the Window settings. Remarks The decimal point in the syntax will not be written to the answer record. Negative values will be written with a preceding minus sign in the data file. Positive values will be written without sign.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 175

Example

*TAB 50, 60 *QUESTION 1 *FORM *BUT 99 "Don't know" What percentage of your income do you spend on ... 1:Regular expenses (rent, heating, etc) 2:Clothing 3:Food 4:Going out *NUMBER *NUMBER *NUMBER *NUMBER 61L3.1 65L3.1 69L3.1 73L3.1 *MAX *MAX *MAX *MAX 100 100 100 100 % % % %

*QUESTION 2 *CODES 77L1 *IF [Q1F1 + Q1F2 + Q1F3 + Q1F4 <> 100] The sum of all 4 fields may not add up over 100% 1: go back and correct *BACK 1
In this example, you can enter four values with one decimal each. The OK button will be enabled after all fields are filled and match the criterium *MAX 100. To check the sum of the values question 2 is added. The Don't know button is disabled, when one or more fields are filled. When the Don't know button is pressed, the first field will contain the value 99, i.e. in position 61-64 0990 is stored. Result:

176 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*OPEN (question type)


Purpose Syntax See also Description Defines an open question.

*OPEN [pos]L<length>|<pos> *BMP *REC *ALPHA *CODES *NUMBER *OPEN (codes option)
This command is always used in combination with *QUESTION and has to be behind this command on the same line. It defines a question as an open question that expects an alphanumerical answer. This open answer can be of virtually unlimited length. The typed in answer will be written to a separate data file for the open answers. Although the answer will not be written to the data file with the closed answers there will still be room reserved. This data field specification is used when inserting the coded open answers. If you wish to code the open answers later on and finally want to insert the codes in the data file, it is wise to make the length in the data field specification so long that the number of different codes you expect to create at the coding, fit in the data file. See also the NIPO ODIN Developer Manual.

Arguments

pos
This is the start of the data field reserved in the U-file. This will also be used as identification in the Ofile, to enable coding open answers in the coding module (See NIPO ODIN Developer Manual).

length
This is the length of the data field. Remarks In DOS, pressing [Enter] during the interview will give a new input line. Pressing [Enter] on a blank line will end the answer and there will be continued with the next question. All input lines will be concatenated to one record. In Windows a text box appears in which you can type the complete answer. Typing is finished when the [OK] or [Cancel] button is pressed. Optionally the command *MULTI can be added. This has no influence on the interviewing process. When coding open answers the question will be treated as a multiple answer question. Coding of open answers is a separate module of the ODIN system. In NIPOSYS.INI the following setting applies: DoubleEnter=n. By default (n=0), an open-ended answer box will be closed when the interviewer presses the [Enter] button. By turning this setting on (n=1), the interviewer has to press the [Enter] button twice to close the open-ended answer box. In the NIPO ODIN questionnaire you can specify any field length. However the NIPO Coding Module is not able to recognize fields of more than 3 digits (max. 999), as there are only 3 digits reserved in the O-file for the length.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 177

Example 1

*QUESTION 1 *OPEN 61 *NON Do you have comment or remarks regarding this questionnaire?
In this example, you can enter all the text you like. This text is written in the O-file. No code is written in the U-file, so the data field (61) remains empty. It is however used to reserve some space because of (re-) coding afterwards (maximum 9 categories, single). Because of the *NON command, it is also possible not to enter anything, no open ended answer will be written then.

Example 2

*QUESTION 2 *OPEN 62L100 *MULTI *BUT 1 No suggestions Do you have any suggestions on how to improve this product?
In this example, you can enter all the text you like. This text is written in the O-file. No code is written in the U-file, so the data field (62L100) remains empty. It is however used to reserve some space because of (re-) coding afterwards (maximum 100 categories, multiple). If the button No suggestions is selected, no open answer is written, but code 1 is entered in the data file.

178 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*OPEN (codes option)


Purpose Syntax See also Description Specifies a code as an open code.

*OPEN *CODES *OPEN (question type)


This command is always used behind a code definition and has to be behind this code on the same line. Specifies a code as open code and expects, when the code is part of the answer, a literal answer that can be of virtually unlimited length. The entered answer will be written in a separate data file for the open answers. In DOS, pressing [Enter] during the interview will give a new input line. Pressing [Enter] on a blank line will end the answer and there will be continued with the next question. All input lines will be concatenated to one record. In Windows a text box appears in which you can type the complete answer. Typing is finished when the [OK] or [Cancel] button is pressed.

Remarks

Example

*QUESTION 1 *CODES 61 Do you live in Amsterdam or somewhere else? 1: Yes, in Amsterdam 2: No, somewhere else *OPEN
In this example, if answer 2 is chosen, it is possible to enter the exact place. This text is written in the O-file, while the code (2) is written in the U-file.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 179

*ORDER
Purpose Syntax See also Arguments Set the order of categories or a repeat-loop.

*ORDER <var | QnM | QnR> *CODES *FORM *REPEAT ... *ENDREP *RANDOM *INV *ROT var
This is a variable name of an indexed variable (*VARS name[n]). The values in this variable set the order in which the categories will be displayed or the order in which the loop will be processed

QnM
This is order of mentions of a previous *MULTI question.

QnR
This is the order in which a previous question with *RANDOM, *INV or *ROT was displayed. Description You can define the order of categories in a *CODES or *FORM question and the order of a *REPEAT-loop according to a contents of an indexed variable or the order of mentions of a previous question. Both variable names and questions with order specifier (QnM or QnR) may be used after the *ORDER command. *ORDER may be used after *REPEAT or after a *CODES or *FORM question. Invalid orders in the argument with *ORDER will be ignored. This means if an order number is used twice or if an index in the variable is empty, all other categories will be displayed in the normal order. *ORDER cannot be used together with *RANDOM, *INV or *ROT The order will contain the number that will be executed. E.g., 10,9,7 will execute first the physical 10th, then the 9th and then the 7th, etc. The typing order of a multi-question will be available in QnMi (n is question number and i the index of the order you want) The display order of a random-question will be available in QnRi (n is question number and i the index of the order you want). You can store the order of mentions and or the random order by specifying a position behind the *MULTI Ln resp. *RANDOM Ln command. The operators QnM and QnR are available, independent on whether the order is saved or not. The syntax checker will give a warning message when the variables M or R are defined. If these variable names are used, the operator QnMi and QnRi will not be available. The items which are not in the *ORDER command, will be displayed in the order as if there was no *ORDER command. This means that if you only want to show the items mentioned in a previous *CODES question in the order they were mentioned, you have to use both a *ORDER and a *CONTROL command.

180 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 1

*QUESTION 1 *CODES 61L5 *MULTI 66L4 Which brands do you know? (Int. do NOT help! Type the answers in the same order as given by the respondent) 1: 2: 3: 4: brand brand brand brand A B C D

5: None of these *NMUL *NOCON *QUESTION 2 *CODES 71L5 *MULTI 76L4 *CONTROL Q1 W *ORDER Q1M Which brand do you use most often (Brands are presented in the order that was entered in Q1) 1: 2: 3: 4: brand brand brand brand A B C D

5: None of these *NMUL *NOCON


Example 2

*QUESTION 3 *CODES 81L5 *MULTI *RANDOM Which of the following brands do you know? 1: 2: 3: 4: brand brand brand brand A B C D

5: None of these *NMUL *NOCON *TEXTVARS STATEMENT *REPEAT 5 *ORDER Q3R ** The repeat loop will be executed in the same order ** as how Q3 was (randomly) displayed *REPNUM 1 *PUT STATEMENT "Brand A" *REPNUM 2 *PUT STATEMENT "Brand B" *REPNUM 3 *PUT STATEMENT "Brand C" *REPNUM 4 *PUT STATEMENT "Brand D" *REPNUM 5 *PUT STATEMENT "All brands" *QUESTION 4 *CODES L1 *?STATEMENT 5: 4: 3: 2: 1: 5 (good) 4 3 2 1 (poor)

*ENDREP
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 181

Example 3

*** 'Brand A' should always be presented first *** 'Brand B', 'Brand C' and 'Brand D' should be in random order *** 'All brands' should always be last *VARS MyOwnOrder[4],NR *PUT MyOwnOrder[1] [1] *** Create an extra repeat-loop to get 3 unique numbers *** 2 through 4 *REPEAT 3 *RANDOM *PUT NR [ NR + 1 ] *PUT MyOwnOrder[?R + 1] [NR + 1] *ENDREP *TEXTVARS STATEMENT *REPEAT 5 *ORDER MyOwnOrder ** The repeat loop will be executed in the order ** that I defined in the variable MyOwnOrder ** As the variable MyOwnOrder has only 4 indices, ** the fifth repetition will be executed in the normal order ** (i.e. last) *REPNUM 1 *PUT STATEMENT "Brand A" *REPNUM 2 *PUT STATEMENT "Brand B" *REPNUM 3 *PUT STATEMENT "Brand C" *REPNUM 4 *PUT STATEMENT "Brand D" *REPNUM 5 *PUT STATEMENT "All brands" *QUESTION 3 *CODES L1 *?STATEMENT 5: 4: 3: 2: 1: 5 (good) 4 3 2 1 (poor)

*ENDREP
Note When you create random order numbers for brand A, B, C and D, you could also use the RAN operator. But then you are not sure that it will pick four different numbers. If this happens, brand A, B, C and D will be in random order until a duplicate is met.

*PUT MyOwnOrder[1] [ (RAN 4) *PUT MyOwnOrder[2] [ (RAN 4) *PUT MyOwnOrder[3] [ (RAN 4) *PUT MyOwnOrder[4] [ (RAN 4) *REPEAT 4 *ORDER MyOwnOrder
For instance when:

+ + + +

1 1 1 1

] ] ] ]

MyOwnOrder[1] contains 3 MyOwnOrder[2] contains 1 MyOwnOrder[3] contains 3 MyOwnOrder[4] contains 2


The repetition will be executed in the order: 3, 1, 2, 4.

182 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*PAGE
Purpose Syntax See also Description Defines a page of text.

*PAGE *HELP *INFO *INSTRUC *QUESTION *PNW


Defines a page of text. This command has to be at the beginning of a line. The text consists of all following lines up to the first new command that is at the beginning of a line (except ** *? and *FONT (switching)). During the interview this text will be displayed. To proceed only [Enter] or [OK] has to be pressed. The text usually contains an explanation for the next question or questions.

Example 1

*PAGE And now some questions about snacks. *QUESTION 1 *CODES 61 Did you have a snack today?
In this example, a short introduction to the next question(s) is displayed.

Example 2

After an *IF statement, you may directly specify an *PAGE with text.

*IF [ TMP = 1 ] *PAGE This text will appear on a separate page

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 183

*PICT (question option)


Purpose Syntax Displays a picture.

*PICT <filename|n|[expression]>
or

*PICT <n|[expression]> <library name>


See also Description

*PICT (codes option)


With this command it is possible to display a picture on the screen. This picture has to be a valid bitmap file. The starting position of the picture is in the upper right corner. This bitmap file can also be part of a picture library. In this case the starting position is defined in the picture library. From this version, *PICT can also be used in combination with *PAGE, *INFO and *HELP. Only pictures in the following formats can be used in NIPO ODIN 4.08: BMP JPG (normal encoding)

Remarks

Arguments

filename
This is the name of the bitmap file that has to be shown. If this file is not in the working directory a full path name can be used. Note that screen resolution for respondents or interviewer workstations might vary. Always create a picture in the lowest resolution that is used for optimum results.

n|expression
This is a positive integer or expression that indicates the number of the picture in a picture library (Pfile).

library name
This is the name of a picture library other than the default picture library. A default picture library is a library with the same name as the questionnaire: nameP.

184 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 1

*QUESTION 1 *CODES 61 *PICT NipoSoftwareLogo.jpg Do you recognise this logo? 1: Yes 2: No This example displays a question with the picture NipoSoftwareLogo.jpg, the place of the picture can not be changed:

Example 2

QUESTION 1 *CODES 61 *PICT 1 Do you recognise this logo? 1: Yes 2: No This example displays a question with picture 1 from the picture library. the place of the picture can be changed in the Multimedia Library:

Example 3

*QUESTION 1 *CODES 61 *PICT 1 mylib *PICT 3 otherlib This example displays a question with picture 1 from the picture library MYLIB and a picture 3 from the picture library OTHERLIB.
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 185

*PICT (codes option)


Purpose Syntax See also Description Displays a picture.

*PICT <n|[expression1]> [m|[expression2]] *PICT


This command is always used behind a code definition and has to be behind this code on the same line. A picture will be displayed identified by the picture number. The picture comes from the picture library (P-file).

Arguments

n|expression1
n is a positive integer or expression which indicates the picture number in the picture file.

m|expression2
This is a positive integer or expression that indicates the vertical shift of the picture in pixels. The direction of the shift is downwards.

186 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*PLAY
System Purpose Syntax See also Description Windows Plays multimedia files.

*PLAY [n1] [n2] <filename> *RUN


With this command it is possible to play multimedia files, such as sound fragments or movies. During playback the interview does not stop; playback occurs simultaneous. Playback stops when an answer is entered. This command is also allowed under condition. To hear sound fragments, a sound card is required.

!
Arguments

n1
This is a number that refers to a picture in the picture library. When defined, a video clip will be positioned on the same position as the picture in the library.

n2
This is a number that indicates the size of the video clip. The clip will appear n2 times the original size of the video clip. If n1 is defined, n2 is mandatory.

filename
This is the name of the multimedia file. Remarks Example 1 All multimedia files recognised by the multimedia interface can be played.

*PLAY letitbe.wav *QUESTION 1 *CODES 102 Do you recognise this sound? 1: yes 2: no

Example 2

*PLAY video.avi *QUESTION 1 *CODES 102 Do you recognise this video fragment? 1: yes 2: no

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 187

*PNW
Purpose Syntax See also Description Defines a page of text, don't wait for an entry

*PNW *PAGE *HELP *INFO *INSTRUC *QUESTION


Creates a page text. This command has to be at the beginning of a line. The text consists of all following lines up to the first new command that is at the beginning of a line (except **, *? and *FONT (switching)). During the interview this text will be displayed. The text usually contains an explanation for the next question or questions. The system will not wait for an entry or [Enter] from the interviewer / respondent before carrying out the next command. Use this command if for instance a heavy calculation will take some time and a warning message is needed.

Example

*PNW The system is now calculating if the year is a leap year (where February has 29 instead of 28 days). Please wait a moment. *QUESTION 1 *ALPHA 61L4 *VARS YEAR,HELPYEAR *TEXTVARS LEAPYEAR *DATE Q1 *PUT YEAR Q1 *PUT HELPYEAR Q1 *REPEAT 3 *IF [HELPYEAR < 1001 ] *END *PUT HELPYEAR [ HELPYEAR - 1000 ] *ENDREP *IF [ HELPYEAR = 1000 ] *PUT LEAPYEAR "a leapyear" *GOTO 2 *REPEAT 10 *IF [HELPYEAR < 101 ] *END *PUT HELPYEAR [ HELPYEAR - 100 ] *ENDREP *IF [ HELPYEAR = 100 ] *PUT LEAPYEAR "not a leapyear" \ *GOTO 2 *REPEAT 25 *IF [HELPYEAR < 5 ] *END *PUT HELPYEAR [ HELPYEAR - 4 ] *ENDREP *IF [ HELPYEAR = 4 ] *PUT LEAPYEAR "a leapyear" \ *ELSE *PUT LEAPYEAR "not a leapyear" *QUESTION 2 *NCLS At the moment it is *?YEAR. This is *?LEAPYEAR

188 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*PUT
Purpose Syntax See also Description Puts data in variable.

*PUT <var> <text | [value] | Qn | Qn,code | [expression] > *? *TEXTVARS *VARS *FORMAT *SAMPLEDATA

Replaces the contents of a variable by data indicated in the second argument. This command is also allowed under condition. You can transfer the contents of a numeric variable to a text variable and vice versa. Here the following applies. When transferring the contents of a text variable to a numeric variable the text variable must contain a value. Any fractions will be transferred as well. The transfer stops at the first non-numerical character. If the first character is not numeral the value zero will be transferred. When transferring the contents of a numeric variable to a text variable default it will be rounded to integer values unless with *FORMAT (specify format of number transfer) another format is specified.

Arguments

var
This is an earlier defined variable, which receives the data.

text
Direct text enclosed in quotes (single or double) with eventually embedded contents of a variable. If quotes are to be displayed in the text use the other quotes to embed the text.

value
A value enclosed in square brackets.

Qn
The answer to the question will be used as data. In a text variable the descriptive text of the code will be used.

Qn,code
The category of a question will be used as data. In a text variable the descriptive text of the code will be used.

Qn,var
A category of question n will be used as data. This category is defined in the variable var. In a text variable the descriptive text of the category will be used.

Qn,?R
A category of question n will be used as data. This category is defined by the repetition number. In a text variable the descriptive text of the code will be used.

expression
The expression will be interpreted and/or calculated and the result will be used as data.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 189

Remarks

The text may be written over several lines. All lines until closing of the quotes will be interpreted as part of the text. The linefeed will also be transmitted in the text. When the text is not closed, during syntax check the system can not recognise the missing quotes and will display an error on a different line. A text may contain ODIN commands. The NIPO Interview System will execute these commands. However the syntax checker will not be able to interpret these commands. Previously when getting text by means of Qn, code, the code text had to be real text and not the contents of a variable (e.g., 19: *? MYVAR). The texts of questions and codes were interpreted only once at the first interview. This problem is solved in NIPO ODIN 4.06 and higher.

Odin32

When a Sample table in a database is used, the variable will be filled with the database field that was based on that specific position (as is used the other way around for T-file, that internally are seen as databases).

*PUT intnr 52L8


will copy the interview number (position 52L8 in the T-file) in the variable intnr However in this example a simple solution is also available:

*SAMPLEDATA intnr
will automatically fill the variable intnr with the interview number from the Sample table.

190 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 1

*VARS age *QUESTION 1 *NUMBER 61L2 How old are you? *PUT age Q1
In this example, the answer of question 1 is stored in the variable age.

Example 2

*TEXTVARS paper *QUESTION 2 *CODES 61L7 *MULTI Which of the following newspapers do you know? 1. 2. 3. 4. 5. 6. 7: La Repubblica La Stanza The Mirror The New York Times Le Figaro La Libration None *NMUL

*REPEAT 6 *IF [Q2,?R] *ELSE *GOTO 4 *PUT paper Q2,?R *QUESTION 3 *CODES 1 How often do you read *?paper? 1: 2: 3: 4: Daily Once a week Once a month Dont know

*QUESTION 4 *ENDREP
Example 3

*TEXTVARS sex *QUESTION 7 *CODES 91 Gender? 1: Man 2: Woman *PUT sex Men *PUT sex Women

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 191

*QUESTION
Purpose Syntax Defines a question.

*QUESTION <n>|X
or

*Q <n>|X
See also Description

*ALPHA *CODES *NUMBER *OPEN (question type) *PAGE


Defines a question with question number n. This command has to be at the beginning of a line. The question is known within the questionnaire and can be referred to at own discretion. The question consists of all lines up to the first command that is at the beginning of a line (except for **, *? and *FONT (switching)). Behind the command *QUESTION (or *Q) there are often more commands on the same line. These commands on the question line define the specific conditions and options when answering this question.

Arguments

n
This is a positive number that indicates the question number. Question numbers are made up of positive numbers (>= 1). No alphabetic or other characters are allowed (except for X, see below). Each question number has to be unique within one (sub-) questionnaire. Question numbers can be used indifferently. Afterwards it is possible - but not necessary - to renumber the questionnaire (see NIPO ODIN Developer Manual). The highest question number is 2 147 483 647 (long integer, 2 -1).
Correct question numbers: Wrong question numbers:
31

*QUESTION *QUESTION *Q 3 *QUESTION *QUESTION *QUESTION *QUESTION *QUESTION *QUESTION X

1 2 2501 109 11001 102 2147473647 1234567890

*QUESTION *QUESTION *QUEST 3 *QUESTION *QUESTION *QUESTION *QUESTION *QUESTION *QUESTION

0 2 25a 10.9 11.001 1-2 2234567890 1 234 567 890

During the design of a questionnaire it is possible to use *QUESTION X for (some of) the questions. Obviously you can not write routing or refer to these questions. Use the Renumber option in the NIPO ODIN Developer to create unique question numbers. Remarks The *QUESTION command may be abbreviated to *Q. However you are advised not to do so, as it makes questionnaires much less easy to read for non-technical persons. If immediately following the question definition on a new line a new command follows, the question will be regarded as a dummy question (to transfer data) or a label (to jump to).

192 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 1

*QUESTION 1 *CODES L1 Int. type Gender of respondent. 1: Male 2: Female *QUESTION 2 *NUMBER L2 What is your age? *QUESTION 9999 These were all the questions. Thank you very much for your cooperation. *END
In this example Question 1 is a precoded question, Question 2 is a numeric question and Question 9999 is a question without type, where only <Enter> is required.

Example 2

*QUESTION 11 *CODES L1 *QUESTION 12 *NUMBER L2 What is your age ? *IF *IF *IF *IF *IF *IF [ [ [ [ [ [ Q12 Q12 Q12 Q12 Q12 Q12 <= >= >= >= >= >= 24 25 35 45 55 65 ] & & & & ] *INCLUDE Q12 < 35 Q12 < 45 Q12 < 55 Q12 < 65 *INCLUDE Q11 [ 1 ] ] *INCLUDE ] *INCLUDE ] *INCLUDE ] *INCLUDE Q11 [ 6 ] Q11 Q11 Q11 Q11 [ [ [ [ 2 3 4 5 ] ] ] ]

In this example Question 11 is a dummy question, but is created to be able to store the age in 6 categories.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 193

*RANDOM
Purpose Syntax See also Description Randomises answer categories or repetitions.

*RANDOM [[pos]L<length>|<pos>] *GROUP *INV *NOCON *ROT *REPEAT ... *ENDREP *ORDER
This command can be used in combination with *QUESTION or *REPEAT ... *ENDREP and has to be behind these commands on the same line. The codes and the descriptions of a question will be shown in random order on the screen. Repetitions will be executed in random order.

Arguments

pos
This is the data field specification where the order of the displayed categories is written in the data file with the closed answers.

length
This is the length of the data field. Remarks If you use *RANDOM on a question the following applies: the number of codes of which the order will be saved depends on the length of the data field specification. This has to be just as long as the number of codes to be saved multiplied by the length of the highest code. The code order of appearance on the screen is written in the closed answer file. With *NOCON answer categories can be excluded from the randomisation.

Example

*QUESTION 1 *CODES 61L10 *MULTI *RANDOM 71L6 What PC makes do you know? 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Acer AST Compaq Dell Hewlett Packard IBM Philips Tulip Other *OPEN *NOCON Dont know *NMUL *NOCON

In this example, all mentions are written in position 61L10. In the answer field 71L6 behind *RANDOM the code numbers of the first three categories on the screen are written. The last two categories will not be randomised along and will be displayed always on the bottom.

194 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*TEXTVARS who *REPEAT 5 *FIELD 86L15 *RANDOM 1L1 *REPNUM 1: *PUT who Johnny *REPNUM 2: *PUT who Mary *REPNUM 3: *PUT who Bill *REPNUM 4: *PUT who Anne *REPNUM 5: *PUT who Joey *QUESTION 1 *NUMBER 2L2 How old is *? who? *ENDREP
In this example, question 1 is repeated 5 times, randomly. The answer of the questions is stored in the data field 86L15 (for each question 1 position (1L1) for the order in which the question was displayed and 2 positions (2L2) for the answer). I.e. the questions for Johnny are stored in pos. 86L3 (86L1 the order, 87L2 the answer), for Mary in 89L3 (89L1 the order, 90L2 the answer), etc.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 195

*RANGE
Purpose Syntax See also Description Specifies a value range for numerical questions.

*RANGE <[n1|expression [TO n2|expression]]>[;n3 [TO n4];...] *MIN *MAX *NUMBER


This command specifies a range for numerical questions and numerical fields in a *FORM question. You can specify a start value and an end value for the range by separating the two values with the keyword TO. Two ranges are separated by a semicolon (;). Instead of a value it is also allowed to use expressions. The result of the expression will be used as the start or end value. Note a semicolon should be used to separate two ranges. When using a comma, the system will interpret this as a column-code reference. Note the argument TO should be used to separate the extremes within a range. When the dash () is used, it will be interpreted as a minus-sign

Remarks

Arguments

n1
The start value of the range.

n2
The end value of the range.

expression
An expression of which the result will be used as the start or end value. Example 1

*QUESTION 1 *NUMBER L2 *RANGE [ 18 TO 70 ; 99 ] How old are you? Int.: enter 99 for no answer
In this example, the answer can be in the range of 18 to 70 and 99.

Example 2

*QUESTION 1 *NUMBER L2 *RANGE [ -10 TO -1 ; 1 TO 10 ]


In this example, the answer can be in the range of -10 to -1 and 1 to 10.

Example 3

*QUESTION 1 *NUMBER L2 *RANGE [ 1-11 TO 1+9 ]


In this example, the answer can be in the range of -10 to 10.

Example 4

*VARS x,y *PUT x [-1] *PUT y [1] *QUESTION 1 *NUMBER L2 *RANGE [x TO y]


In this example, the answer can be in the range of -1 to 1.

196 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*READ
Purpose Syntax See also Description Reads data from a file.

*READ <Qn|var> [filename] *WRITE


With this command data can be read from a file and placed in the data field or variable indicated by the first argument. If the filename is omitted data will be read from the last file used for reading. The file consists of one record. The data is separated by headers, which contain the letter D and the size of the data strings. The format of the file is illustrated below: header 1 D 1 position size 4 positions data string size specified in header D 1 position header 2 size 4 positions data string size specified in header

Arguments

Qn
The question reference of the data field where the data being read will be stored

var
The name of the variable where the data being read will be stored.

filename
A self chosen filename that complies with the MS-DOS conventions. Remarks During an interview you can not go back over a *READ with filename, you can go back over a *READ without filename. You can not use *READ indifferently with *WRITE (write data); after a *WRITE, a filename has to be specified with the next *READ. If no more data can be read a text variable will be cleared and a numeric variable will be 0. If no more data can be read the data field will be cleared. If data is being read and end of file is encountered the rest of the data field will be cleared.

Example

*VARS numb[2] *READ numb[1] myfile *READ numb[2]


In this example, two numbers are read from the file myfile and stored in the array numb.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 197

*REC
System Purpose Syntax See also Description CAPI, CATI for Windows NT Records (parts of) interviews.

*REC [[pos]L<length>|<pos>] *BMP


With this command it is possible to records parts of an interview or even the whole interview. This command can be used as a command line or as a question option. When used as a command line a data field has to be specified when recording is turned on. This data field will be used for storing the answers after coding. Omitting the data field on the command line turns recording off. Recorded answers are saved to a so-called bitmap file (B-file). These answers can be coded in the same way as the regular O-file. To record (parts of) interviews, a sound card is required.

!
Arguments

pos
This is the start of the data field where the data is written in the U-file.

length
This is the length of the data field. Remarks Example 1 The bitmap file is in binary format and takes up MB of disc space per minute of recording.

*QUESTION 1 *CODES 648 We would like to record your answers. Do you agree? 1: Yes 2: No *GOTO 2 *REC 649L20 *QUESTION 2 *CODES 669L1

198 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*REC 648L20 *QUESTION 1 *CODES 668 Do you own a dog? 1: Yes 2: No *QUESTION 2 *OPEN 669 *IF [ Q1 , 1 ] What is the name of your dog? *QUESTION 3 *CODES 670 Do you own a cat? 1: Yes 2: No *REC *QUESTION 4
In this example, the answers on questions 1, 2 and 3 will be recorded and saved in the B-file.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 199

*REPEAT (question option)


System Purpose Syntax See also Description CAPI, CATI only. (Will be implemented in Web Client later) Stores the current position in a scale or line question.

*REPEAT <n> *LINE *SCALE *REPEAT ... *ENDREP


This command is always used in combination with *QUESTION and the question type definitions *SCALE or *LINE and has to be behind these commands on the same line. On specified intervals the current position of the block or the length of the line will be stored. How many times this happens is dependent on the number of reserved positions in the data field specification and the given maximum. Is for instance, the maximum of the scale 10 and the length of the data field 80, then the registration will be repeated 40 times.

Arguments

n
Positive integer that represents the number of seconds to wait between every registration.

Example

*QUESTION 1 *LINE 61L60 *MAX 40 *REPEAT 5 This is an example of a line question.


In this example, the length of the line is stored every 5 seconds up to 30 times (size of data field (60) divided by 2 positions for the highest code (40)).

200 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*REPEAT ... *ENDREP


Purpose Syntax Start repetition block.

*REPEAT n <commands> *ENDREP *END *FIELD *REPNUM ?R *RANDOM *ROT *INV *ORDER
Defines the start of a repetition block. This command has to be on the beginning of a line. This command is always used in combination with *ENDREP (end repetition block). A repetition block consists of a set of commands and questions that are considered a special component. When a repetition block is dealt with in the questionnaire the system will execute all commands within the repetition block as many times as is indicated by n. The answer fields within the repetition block will be considered relative. When a repetition block is dealt with the system will use the starting position, belonging to *REPEAT, as the starting point to determine where the answers have to be put. For every repetition the answer fields belonging to the commands in the repetition block will be put in fixed fields behind each other. It is possible to refer to the repetition number.

See also Description

Arguments

n
This is a positive integer that gives the number of repetitions.

Remarks

It is not allowed to jump out of a repetition block. To terminate a repetition block, the command

*END is available.
The repeat numbers in repeat blocks can be controlled by *CONTROL, randomised by *RANDOM, inverted by *INV and rotated by *ROT.

Example 1

*TEXTVARS who *REPEAT 5 *FIELD 86L10 *REPNUM 1: *PUT who Johnny *REPNUM 2: *PUT who Mary *REPNUM 3: *PUT who Bill *REPNUM 4: *PUT who Anne *REPNUM 5: *PUT who Joey *QUESTION 1 *NUMBER 1L2 How old is *? who? *ENDREP
In this example, question 1 is repeated 5 times. The answer of the questions is stored in the data field 86L10 (for each answer 2 positions (1L2) x 5 questions). I.e. the answers for Johnny are stored in pos. 86L2, for Mary in 88L2, etc.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 201

Example 2

*TEXTVARS who *REPEAT 5 *FIELD 86L15 *RANDOM 1L1 *REPNUM 1: *PUT who Johnny *REPNUM 2: *PUT who Mary *REPNUM 3: *PUT who Bill *REPNUM 4: *PUT who Anne *REPNUM 5: *PUT who Joey *QUESTION 1 *NUMBER 2L2 How old is *? who? *ENDREP
In this example, question 1 is repeated 5 times, randomly. The answer of the questions is stored in the data field 86L15 (for each question 1 position (1L1) for the order in which the question was displayed and 2 positions (2L2) for the answer). I.e. the questions for Johnny are stored in pos. 86L3 (86L1 the order, 87L2 the answer), for Mary in 89L3 (89L1 the order, 90L2 the answer), etc.

Example 3

*TEXTVARS paper *QUESTION 2 *CODES 61L7 *MULTI Which of the following newspapers do you know? 1: 2: 3: 4: 5: 6: 7: La Repubblica La Stanza The Mirror The New York Times Le Figaro La Libration None *NMUL

*REPEAT 6 *FIELD 68L6 *PUT paper Q2,?R *QUESTION 3 *CODES 1 *IF [Q2,?R] How often do you read *?paper? 1: 2: 3: 4: Daily Once a week Once a month Dont know

*ENDREP
In this example, question 3 is repeated 6 times. Only for those newspapers that are known the question will be displayed.

202 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 4

*TEXTVARS paper *QUESTION 2 *CODES 61L7 *MULTI Which of the following newspapers do you know? 1: 2: 3: 4: 5: 6: 7: La Repubblica La Stanza The Mirror The New York Times Le Figaro La Libration None *NMUL

*REPEAT 6 *FIELD 68L6 *CONTROL Q2 W *PUT paper Q2,?R *QUESTION 3 *CODES 1 How often do you read *?paper? 1: 2: 3: 4: Daily Once a week Once a month Dont know

*ENDREP
This example is the same as example 3 but instead of the filter on question 3, the repetitions are controlled by question 2.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 203

*REPNUM
Purpose Syntax See also Description Condition on repetition number.

*REPNUM <n|[expression]>: <action> [*ELSE <action>] *REPEAT ... *ENDREP, ?R (Operators: repeat numbers)
This command can only be used inside a repetition block. It compares the current repetition with the number indicated by n. If these are equal the commands behind the colon will be executed. Optionally you can use the command *ELSE behind which you place commands that will be executed if the current repetition is not equal to n.

Arguments

n|expression
This is a positive integer that indicates the repetition number to compare.

Remarks

A repetition number is stored in the system variable ?R. The colon in the syntax may be used as a separator between the condition and the action. It may also be left out. The commands *RANDOM *ROT *INV and *ORDER will not change the repetition number.

Example

*TEXTVARS who *REPEAT 5 *FIELD 86L10 *REPNUM 1: *PUT who Johnny *REPNUM 2: *PUT who Mary *REPNUM 3: *PUT who Bill *REPNUM 4: *PUT who Anne *REPNUM 5: *PUT who Joey *QUESTION 1 *NUMBER 1L2 How old is *? who? *ENDREP
In this example, question 1 is repeated 5 times. The answer of each question is stored in the data field 86L10 (for each answer 2 positions (1L2) x 5 questions).

204 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*RETURN
Purpose Syntax See also Description Returns from subroutine.

*RETURN *GOSUB *SUBROUTINE ... *ENDSUB


This command is also allowed under condition. Returns from a subroutine before the physical end of the subroutine is reached.

Example

*TEXTVARS PAPER, OTHERPAPER *SUBROUTINE "NEWSPAPER" *QUESTION 101 *NUMBER L1 *MAX 6 How many of the last 6 issues of *?PAPER did you read? *IF [Q101 = 0] *RETURN *QUESTION 102 *CODES L1 Did you read *?PAPER yesterday? 1: Yes 2: No *ENDSUB *QUESTION 1 *CODES L8 *MULTI *SAVE PAPER Which newspapers do you read? 1: 2: 3: 4: 5: 6: 7: 8: La Repubblica La Stanza The Mirror The New York Times Le Figaro La Libration El Pais Other *OPEN *GOSUB *GOSUB *GOSUB *GOSUB *GOSUB *GOSUB *GOSUB *GOSUB NEWSPAPER NEWSPAPER NEWSPAPER NEWSPAPER NEWSPAPER NEWSPAPER NEWSPAPER NEWSPAPER

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 205

*RIGHT
Purpose Syntax See also Description Question type option and option within conjoint analysis.

*RIGHT text *SCALE *LEFT


This command is always used in combination with *QUESTION and *SCALE or in combination with *CONJ ... *ENDCONJ and has to be behind these commands on the same line. With this command a text can be given which, during the interview, will be placed at the right-hand pole of the scale.

Arguments

text
This is the text that will be displayed on the right-hand pole of the scale.

Remarks

If the text contains spaces it has to be between double quotes. Note: In NIPO ODIN 4.08 or higher the text may contain more than one line. The system will break lines as required.

Example

*QUESTION 1 *SCALE 61 *LEFT "Left scale text" *RIGHT "Right scale text" This is an example of a scale question. Result:

206 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*ROT
Purpose Syntax See also Description Displays answer categories rotated.

*ROT [[pos]L<length>|<pos>] *GROUP *INV *NOCON *RANDOM *REPEAT ... *ENDREP *ORDER
This command is always used in combination with a *CODES question and has to be on the same line as the question definition. The codes and the descriptions of the question will be shown in rotated order on the screen. There will be selected randomly a start code n and this will be displayed first on the screen. Then the next codes will follow in sequence, up to and including the highest code. Next the lowest codes follow up to code n. At the next interview within the same session the selected code will be n+1, etc.

Arguments

pos
This is the data field specification where the order of the displayed categories is written in the closed answer file.

length
This is the length of the data field. Remarks The number of codes, of which the order will be saved, is dependent of the length in the data field specification. This has to be just as long as the number of codes to be saved multiplied by the length of the highest code. The code order of appearance on the screen is written in the data file with the closed answers. With *NOCON answer categories can be excluded from the rotation.

Example

*QUESTION 1 *CODES 61L10 *MULTI *ROT 71L8 What PC makes do you know? 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Acer AST Compaq Dell Hewlett Packard IBM Philips Tulip Other *OPEN *NOCON Dont know *NMUL *NOCON

In this example, all mentions are written in position 61L10. In the answer field behind *ROT the codes for the first four categories on the screen are written. The last two categories will not be rotated along and will be displayed always on the bottom.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 207

*RUN (16-bit)
Purpose Syntax Description Runs an external Windows module (.DLL).

*RUN Qn STDRUN.DLL,STDRUNENTRY
With this command it is possible to run an external Windows application during the interview (e.g., Notepad). Using the NIPO module STDRUN.DLL enables you to run an external Windows application exchanging data between the ODIN program and your application via the Windows Clipboard. The name of the application has to be stored in the text variable CMDLINE and if data has to be transferred to this application, this data has to be stored in the text variable INPUTDATA. This data is copied into the clipboard and can be pasted in the external application. By using copy in the external application you can return data to the interview module. This data is stored in the target question specified by Qn.

Note

In order to use this command, the file STDRUN.DLL is required and has to be in the same directory as ODINS.EXE or COMPASS.EXE. If you want to run an external 32-bit application, the file ODRUN32.EXE is required as well.

Arguments

Qn
This is the target question where the data, that is retrieved from the external application, is stored. This question has to be defined earlier in the questionnaire.

System Variables

CMDLINE The name of the external application has to be stored in the variable CMDLINE. This variable has to be defined as a text variable in advance. INPUTDATA Data that has to be transferred to the external application has to be stored in the variable INPUTDATA. This variable has to be defined as a text variable in advance. RUNTYPE ODIN will wait for the external application to finish before you can continue your interview. If you want ODIN to return to the interview without waiting, you have to set the variable RUNTYPE to 1 (default = 0). If the external application you call is a 32-bit application, RUNTYPE has to be set to 10 (wait) or 11 (continue). This variable has to be defined as a numeric variable in advance.

Remarks

If the data field of the target question is not long enough, the incoming data is truncated. Both numerical and alphanumerical data can be retrieved from the external application, no matter how the target question is defined. I.e. this command makes no difference between *CODES, *ALPHA or *NUMBER. When you use the *RUN command, ODIN will wait for the external application to finish before you can continue your interview. If you want ODIN to return to the interview without waiting, you have to set the variable RUNTYPE to 1 (default = 0). If the external application you call is a 32-bit application, RUNTYPE has to be set to 10 (wait) or 11 (continue). This variable has to be defined as a numeric variable.
208 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 1

*TEXTVARS INPUTDATA,CMDLINE *VARS RUNTYPE *PUT CMDLINE C:\WINDOWS\NOTEPAD.EXE *QUESTION 1 *ALPHA 61L20 *PUT INPUTDATA 12345 *PUT RUNTYPE [ 1 ] *PAGE Notepad will be started. The contents INPUTDATA (12345) can be copied from the clipboard. *RUN Q1 STDRUN.DLL,STDRUNENTRY *TEXTVARS RESULT *PUT RESULT Q1 *PAGE After Notepad.EXE was closed, Question 1 contains what was in the clipboard (maximum 20 characters): *?RESULT
In this example, the Windows application Notepad.exe is called and the value 12345 is transferred to it via the Clipboard. If in Notepad.exe data is copied to the Clipboard, this data is stored in question 1 on return (maximum 20 characters).

Example 2

*TEXTVARS INPUTDATA,CMDLINE *VARS RUNTYPE *PUT CMDLINE C:\Program Files\Windows Media Player\ \Mplayer2.EXE c:\temp\movie.mpg *PUT RUNTYPE [ 10 ] *QUESTION 1 *ALPHA 61L1 *RUN Q1 STDRUN.DLL,STDRUNENTRY
In this example, the Windows Media Player is started the MPG-file called movie.mpg. After the movie is closed, the next question will appear. Note that no data transfer is required, but a question should be specified anyhow. Remark: this is just an example, its much better to use the *PLAY command when playing MPGmovies.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 209

*RUN (32-bit)
Purpose Syntax Description Runs an external 32-bit Windows module (.DLL) within the 32-bit version of NIPO ODIN.

*RUN Qn STDRUN32.DLL,STDRUNENTRY
With this command it is possible to run an external Windows application during the interview (e.g., Notepad). Using the NIPO module STDRUN32.DLL enables you to run an external Windows application exchanging data between the ODIN program and your application via the Windows Clipboard. The name of the application has to be stored in the text variable CMDLINE and if data has to be transferred to this application, this data has to be stored in the text variable INPUTDATA. This data is copied into the clipboard and can be pasted in the external application. By using copy in the external application you can return data to the interview module. This data is stored in the target question specified by Qn.

!
Arguments

In order to use this command, the file STDRUN.DLL is required and has to be in the same directory as ODINS.EXE or COMPASS.EXE. If you want to run an external 32-bit application, the file ODRUN32.EXE is required as well.

Qn
This is the target question where the data, that is retrieved from the external application, is stored. This question has to be defined earlier in the questionnaire.

System Variables

CMDLINE The name of the external application has to be stored in the variable CMDLINE. This variable has to be defined as a text variable in advance. INPUTDATA Data that has to be transferred to the external application has to be stored in the variable INPUTDATA. This variable has to be defined as a text variable in advance. RUNTYPE ODIN will wait for the external application to finish before you can continue your interview. This variable has to be defined as a numeric variable in advance. where:

0 / 10 1 / 11 -1

Wait for application that was opened by *RUN to close before showing the next screen. Do not wait for application. Wait for application and all other applications that were opened after the *RUN was executed.

210 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Remarks

If the data field of the target question is not long enough, the incoming data is truncated. Both numerical and alphanumerical data can be retrieved from the external application, no matter how the target question is defined. I.e. this command makes no difference between *CODES, *ALPHA or *NUMBER. When you use the *RUN command, ODIN will wait for the external application to finish before you can continue your interview. If you want ODIN to return to the interview without waiting, you have to set the variable RUNTYPE to 1 (default = 0). If the external application you call is a 32-bit application, RUNTYPE has to be set to 10 (wait) or 11 (continue). This variable has to be defined as a numeric variable. Example of using STDRUN32.DLL

Example

*TEXTVARS INPUTDATA,CMDLINE *VARS RUNTYPE *PUT CMDLINE MYOWN.EXE *PUT RUNTYPE [ -1 ] *QUESTION 1 *CODES L1 *RUN Q1 STDRUN32.DLL,STDRUNENTRY
Note It is of course also possible to create your own DLL instead of the STDRUN32.DLL.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 211

*SAMPLEDATA
System Purpose ODIN32 With this command variables in the NIPO ODIN questionnaire can be linked automatically with fieldnames in the Sample table.

Syntax See also Description

*SAMPLEDATA var1,var2, *SQLGET *SQLPUT *MOVA *MOVU *PUT


The variables in the NIPO ODIN questionnaire will be filled automatically with the contents of the database field when starting the interview. The fields in the database table will be updated with the contents of the variable, when closing the interview or when a command *STRAT is used. In the latter case, this will be done only in memory of the NIPO CATI/Web Master (so changes can not be viewed yet in the NIPO FMS or directly in the database, but they will affect the stratification criteria on the NIPO CATI/Web Master).

Example

In the Sample table for survey A1234, called SampleA1234, the Region is stored in the field Region. survey configuration file A1234.INI:

[Config] RespondentDatabase=CATIFMSDATABASE RespondentTable=SampleA1234 RespondentKey=InterviewNumber

Questionnaire:

*SAMPLEDATA Region *PAGE According to our database the region is *?Region.

212 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*SAVE (question option)


Purpose Syntax See also Description Saves the answer of a question in a variable.

*SAVE <var> *SAVE (codes option)


This command is always used in combination with *QUESTION and has to be behind this command on the same line. The answer on a question will be saved in a variable. If it is a numeric variable the code value or the number will be saved. If it is a text variable with a closed question with pre-coded answers the descriptive text of the answer category will be saved. Saving an answer text is particularly of use if you want to insert this text in a subsequent question (dynamic text modification).

Arguments

var
This is a self-defined variable or one of the ten system variables. When the argument is omitted system variable 0 will be used by default.

Example

*TEXTVARS PARTY *QUESTION 5 *CODES 81 *SAVE PARTY Which party will you vote for in the next election? 1: 2: 3: 4: 5: 6: 7: Conservative union Social democrats Liberals Greens Communists Other party *OPEN None *GOTO 7

*QUESTION 6 *CODES 82 Did you also vote for the *? PARTY in the previous election? 1: Yes 2: No *QUESTION 7 ...

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 213

*SAVE (codes option)


Purpose Syntax See also Description Saves a category code or text in a variable.

*SAVE <var> *SAVE (question option)


This command is always used behind a code definition and has to be behind this code on the same line. If it is a numeric variable the code value will be saved as answer. If it is a text variable the descriptive text of the answer category will be saved. If it is an open code the literally typed in answer will be saved.

Arguments

var
This is a self-defined variable or one of the ten system variables. When the argument is omitted system variable 0 will be used by default.

Example

*TEXTVARS localpaper *QUESTION 1 *CODES 396L6 *MULTI To what newspapers do you subscribe? 1: 2: 3: 4: 5: 6: 7: New York Times The Guardian Sunday Times Washington Post Herald Tribune A local paper *OPEN *SAVE localpaper Dont know *NMUL

*QUESTION 2 *CODES 402 *IF [Q1,6] Do you read *? localpaper frequently? 1: Yes 2: No

214 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*SCALE (question type)


Purpose Syntax See also Description Defines a discrete scale question.

*SCALE <pos>L<length> *MAX *MIN *LINE *LEFT *REPEAT *RIGHT *SCALERANGE


This command can be used in two ways: Behind *QUESTION on the same line. Specifies a scale question. Input is done by means of positioning a block in an n-points (default 7-points) scale. The answer consists of the position of the block in the scale starting at one and increasing from left to right. The scale can be modified to a maximum size of 26 points with the *MAX command. In combination with a *FORM question to create so-called grids. See *SCALE (in *FORM question).

Arguments

pos
This is the start of the data field where the data is written in the U-file.

length
This is the length of the data field. Remarks Use *MAX n to set the number of boxes in a *SCALE question (default: 7). Use *MIN m to set the initial value in a *SCALE question (default: position cursor in the middle). *MIN 0 will display no cursor (no initial value). Use *RIGHT to set a text on the right-hand side of a scale question. Use *LEFT to set a text on the left-hand side of a scale question. In NIPOSYS.INI the following setting applies: ScaleInitValue=n positions the cursor in a scale question at the box indicated by n. Without this setting the default position is the box in the middle. If n = 0 no cursor will be displayed.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 215

Example

*QUESTION 71 *SCALE 101L1 *LEFT "Poor taste" *RIGHT "Good taste" What do you think of the taste of Heineken beer?
Result:

216 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*SCALE (in *FORM question)


Purpose Syntax See also Defines a horizontal grid question.

*SCALE <pos>L<length> n1 n2 *FORM *GRID *ALPHA (in *FORM question) *NUMBER (in *FORM question) *TAB *SCALERANGE
This command can be used in two ways: Behind *QUESTION on the same line. See *SCALE (question type). In combination with a *FORM question to create so-called grids. These kinds of questions use checkboxes to mark the answers on screen instead of using categories. With the *SCALE command you can create horizontal grids. These grids are filled in from left to right. Contrary to vertical grids (*GRID) which are filled in from top to bottom.

Description

Arguments

pos
This is the start of the data field where the data is written in the U-file.

length
This is the length of the data field.

n1
This is a number or expression that indicates the number of check boxes.

n2
This is the spacing between each checkbox. Only available in a grid. Negative values result in a socalled vertical grid. Note: In the NIPO Web Client, the value n2 is overruled by the column width as defined by the *TAB command, but must be specified anyhow. Note 2: Contrary to what was suggested in previous manuals, expressions are not allowed for *SCALE in *FORM questions. Remarks In NIPOSYS.INI the following setting applies: ScaleInitValue = n positions the cursor in a scale question at the box indicated by n. Without this setting the default position is the box in the middle. If n is 0 then no cursor will be displayed.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 217

Example 1

*TAB 35, 45, 55, 65, 75, 85 *QUESTION 2 *FORM How do you rare the taste of the following beers: Very poor 1:Heineken 2:Amstel 3:Grolsch 4:Carlsberg 5:Tuborg
Result:

Very good

*SCALE 67L1 5 6 *SCALE 68L1 5 6 *SCALE 69L1 5 6 *SCALE 70L1 5 6 *SCALE 71L1 5 6

218 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*QUESTION 882 *FORM What did you think of the service at the following gas stations? <Tab>Esso<Tab>Mobil Oil<Tab>Shell<Tab> 1:Very good<Tab>*SCALE L1 6 -1<Tab>*SCALE L1 6 -1 *SCALE L1 6 -1 Good Average Poor Very poor No opinion
Result:

Remarks

Using *TAB and [Tab] to line out scales. To align column texts (headers) above the scale, tab positions must be defined with the *TAB command before a *FORM *SCALE question. For each column in the scale a tab must be defined. The scales will always be distributed evenly between the first and the last tab (i.e. it is not possible to vary the gaps between columns). If the last tab is not at 100%, the last column text and the *SCALE must be followed by [Tab][Space], to fill the last invisible column. Use stylesheets (CSS) to centre texts in CAWI.

*TAB 30, 40, 50, 60, 70 *QUESTION 1 *FORM Question text [Tab]Column 1[Tab]Column 2[Tab]Column 3[Tab]Column 4[Tab][Space] 1:Scale 1[Tab]*SCALE 61L1 4 1[Tab][Space] 2:Scale 2[Tab]*SCALE 62L1 4 1[Tab][Space] 3:Scale 3[Tab]*SCALE 63L1 4 1[Tab][Space]
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 219

*SCALERANGE
Purpose Syntax Defines the values for a *SCALE question.

*SCALERANGE [n]
or

*SCALERANGE [n1;n2;n3;...]
or

*SCALERANGE [n1 TO n2;...]


or

*SCALERANGE
See also Description

*SCALE (question type) *SCALE (in *FORM question)


This command defines the values that will be used for a *SCALE question. By default clicking the first box from the left will save value 1, clicking the second box from the left value 2, etc. When no argument is specified, the default box-values will be used. Use *SCALERANGE without argument to reset box values.

No argument Arguments

[n]
Specify the off-set for the box-values. The first box will get value n, the second will get value n+1, third n+2, etc.

[n1;n2;n3]
Specify the box-values separated by semi-colons. Values must be integers and may be negative as well. The NIPO ODIN Developer syntax check will check that no values are used more than once. When more boxes are used than values specified, the system will use the default value of those boxes.

[n1 TO n2]
Specify the first and the last value. All values in between will be used. When n2 has a smaller value than n1, the values will be used in descending order. Note: When a value is not an integer (i.e. a decimal is used), the value is truncated (i.e. the figure behind the decimal is ignored, e.g., 5.8 is interpreted as 5).

220 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Note 2: Only constant expressions are allowed. Do not use variables within the *SCALERANGE command with values that are not defined in advance. E.g., you can use

*PUT X [ 5 ] *SCALERANGE [ X ],
but you may not use

*QUESTION 1 *NUMBER L2 *SAVE Y *SCALERANGE [ Y ],


as the Engine will not be able to check whether this value fits. An error message will appear:

Error: 'SCALERANGE' , illegal argument


Note 3: It is possible to use more than one *SCALERANGE in the same NIPO ODIN questionnaire. However, from a methodological point of view, this is not recommended. Make sure you check the routing (*GOTO, *IF, *BACK, *CUT, etc.) in your questionnaire, to prevent you unexpectedly jump over a *SCALERANGE, as this would make analysis of the data impossible (as you do not know what the box values stand for). Remarks

If a box value is used more than once, the NIPO ODIN Developer syntax check will give a warning message:

Warning: Duplicate Code: n


If the *SCALERANGE specifies fewer values than boxes are used, the default box value will be used. This may be a value that was already used in your *SCALERANGE specification. It is not possible to differentiate between these 2 boxes anymore. The syntax check will give a warning message:

Warning: number of boxes in SCALE (n) exceeds number of values specified in SCALERANGE (m)
In *SCALERANGE you may specify negative box values. When exporting the questionnaire to Diana, make sure that you do not export the scale questions with the option 'Create codes for scale questions' switched on, as Diana does not support negative code-values. Tip: Export the scale questions as values only. In SPSS-PC and Triple-S using negative code-values are supported (check your SPSS documentation on how to use them).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 221

Example 1

*SCALERANGE [ 0 ; 1 ; 2 ; 3 ; 4 ] *QUESTION 1 *FORM How do you rate the taste of the following beers: 0 1 2 3 4 1:Heineken *SCALE 61L1 5 10 2:Amstel 3:Grolsch 4:Carlsberg 5:Tuborg *SCALE 62L1 5 10 *SCALE 63L1 5 10 *SCALE 64L1 5 10 *SCALE 65L1 5 10

The box on the left will save value 0, the second box will save value 1, the third value 2, the fourth 3 and the most-right box will save 4. Result:

Note: The values above the boxes in this example are part of the question text. They have no significance for the box value.

222 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*SCALERANGE [-2 TO 2 ; 9] *QUESTION 2 *FORM How do you rate the taste of the following beers: Very Poor Neutral Good poor taste taste taste -2 -1 0 1 *SCALE 66L2 6 10 *SCALE 68L2 6 10 *SCALE 70L2 6 10 *SCALE 72L2 6 10 *SCALE 74L2 6 10 Very good taste 2 Don't know 9

1:Heineken 2:Amstel 3:Grolsch 4:Carlsberg 5:Tuborg

The first box on the left will save value -2, the second box will save value -1, the third value 0, the fourth 1, the fifth 2 and the last box on the right will save 9. Result:

Note: The values above the boxes in this example are part of the question text. They have no significance for the box value.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 223

Example 3

*SCALERANGE [0] *QUESTION 3 *SCALE L1 *MAX 5


In a scale of 5 boxes, the following box values will be used: first box from the left: 0; second box: 1; third box: 2; the fourth 3 and the fifth (last box on the right) 4. Note: This is in fact the same as:

*SCALERANGE [0;1;2;3;4]
or:

*SCALERANGE [0 TO 4]
Example 4

*SCALERANGE [5 TO 3] *QUESTION 4 *SCALE L1 *MAX 3


In a scale of 3 boxes, the following box values will be used: first box from the left: 5, second box: 4; third box: 3 (descending, because 5 is higher than 3).

Example 5

*SCALERANGE [5 TO 3] *QUESTION 5 *SCALE L1 *MAX 4


In a scale of 4 boxes, the following box values will be used: first box from the left: 5, second box: 4; third box: 3; the fourth box value is not specified, so will get the default value 4. When running the syntax check in the NIPO ODIN Developer a warning will appear:

Warning: Duplicate Code: 4


Example 6

*SCALERANGE [1;3;5] *QUESTION 6 *SCALE L1 *MAX 4


In a scale of 4 boxes, the following box values will be used: first box from the left: 1, second box: 3; third box: 5; the fourth box value is not specified, so will get the default value 4 (no duplicate here).

224 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*SHOWDOCUMENT
System Purpose Syntax NIPO Web Interview System only. Show a document during an on-line interview.

*SHOWDOCUMENT "URL [,frame]"

Description Arguments

This command is used to show a web-site during an on-line interview.

URL
This is the URL (address) of a web-site to be shown.

frame
This is the name of the frame in which to load the document. If no frame is specified, a new Window will be opened. Remark Example The *SHOWDOCUMENT command will be ignored when used in CATI, CAPI or ODIN stand-alone.

*QUESTION 1 *CODES L1 Please first have a look at this web-site 1: Start *SHOWDOCUMENT http://www.niposoftware.com

*QUESTION 2 *CODES L1 How did you like the new NIPO Software Website? 1: 2: 3: 4: Very good Good Poor Very poor

5: Dont know \ no opinion

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 225

Command System Purpose

*SIZE
ODIN 4.08 (16-bit) / CATI Client 5.03 only Determines the size of the textbox in an *OPEN question and the size of checkboxes in a *SCALE or *GRID question.

Syntax

*SIZE x y *SIZE expression1 expression2 *OPEN *SCALE *GRID *FORM


This command is always used in combination with *QUESTION and has to be behind this command on the same line. In case of a *OPEN question it defines the size of the textbox, in case of a *SCALE, *GRID or *FORM question it defines the size of the checkboxes.

See also Description

Arguments

x
The horizontal size of the appropriate object. The size is specified in tenths of points (1 point is approximately 1/72 of an inch).

y
The vertical size of the appropriate object. The size is specified in tenths of points (1 point is approximately 1/72 of an inch). Both x and y may be specified as an expression. Example 1

*Q 1 *OPEN L11 *MULTI *SIZE 3000 4000 What reasons did you have to sell your car?
Result:

226 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

*Q 1 *FORM *SIZE 200 200 Please indicate how much you agree or disagree with the following statements: agree Coca Cola is tasteful Coca Cola is expensive Coca Cola is modern
Result:

disagree

*SCALE L1 5 10 *SCALE L1 5 10 *SCALE L1 5 10

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 227

*SKIP
System Purpose Syntax See also Description CAPI only Skips a questionnaire in a cluster.

*SKIP "name" *ABORT *END *ENDNGB


This command is used to skip a questionnaire in a cluster in CAPI. No data will be written for that specific questionnaire. Use this command for instance to skip a regional questionnaire or a questionnaire for a specific target group. This command will most times be written in the preceding screening questionnaire. If you only can decide in the questionnaire itself whether it should be executed or not, use the command *ABORT.

Arguments

name
This is the name of a questionnaire (the Q not included). If the file is missing or not defined in the cluster the command will be ignored.

Example

*QUESTION 1 *CODES L1 Interviewer: type sex of respondent 1: Male 2: Female ** The questionnaire RAZORQ is only for males. *IF [ Q1,2 ] *SKIP "razor" ** The questionnaire PERFUMEQ is only for females. *IF [ Q1,1 ] *SKIP "perfume"

228 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*SQLGET
System Purpose ODIN32 Retrieves a value or text from a database.

Syntax

*SQLGET count var[,var...] "SQL statement"


where: count is a variable that will contain the number of records retrieved by the SQL statement. is a variable that will contain the result of the SQL statement. is a SQL statement (written between double quotes). Only SELECT statements are allowed in the format:

var "SQL statement"

SELECT .. FROM .. WHERE ..


See also Description

*SQLPUT *SAMPLEDATA *MOVA *MOVU


This will retrieve a variable from a database. If more than 1 variable is used the first variable will get the value of the first field in the database record, the second variable gets the second field etc. The variable can also be an array. In that case, if the SQL statement returns more than 1 record, the first record will be copied from the first element of var, the second record from the second element of var etc.

Error handling

ODIN will not check the SQL statement. As far as ODIN is concerned it is just a string following the ODIN rules, which means for example that you can substitute variables with the *? command. If there is an error while executing the SQL statement this will be reported as a warning error in the event log on the master and the interview will continue with count set to 0. If no record is found matching the WHERE statement or one or more database fields in the SQL statement are missing the count variable will be set to zero. If more than one record is found matching the WHERE statement and the var is defined as an array, the fields will be stored in the subsequent cells of the array variable and the number of matching records will be stored in the count. If more than one matching record is found, but var was not defined as an array variable, the system will only retrieve the first matching record and the count will be set to 1. If more than one matching record is found, but the array variable was defined with too few cells, the system will only retrieve the records that fit. After the WHERE also the OR and the AND statements are allowed. Use brackets to set priority rules.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 229

Limitations

SQL statements may only refer to tables within the same database. When referring to other databases, this will not give an error message, but will be ignored by the system (count = 0). SQL statements may refer to only one table at the time, i.e. no joined queries are allowed. When referring to several tables (in the same *SQLGET statement), this will not give an error message, but will be ignored by the system (count = 0). In a NIPO ODIN Questionnaire you may have several *SQLGET statements, referring to several tables. Field names within the table may not contain spaces or other special characters. The WHERE statement will search case sensitive. In your database you might disable case sensitive search (not possible for all database types). Variable names in the NIPO ODIN questionnaire do not need to be equal to the fieldnames in the database table.

Note: In the survey configuration file, a reference to the database name should be made (DSN name on the NIPO CATI Master). The table you want to access with *SQLGET and *SQLPUT does not have to be in the same database as the Sample table, but the database username and password should be the same. Note 2: When data from a Sample table should be retrieved, do not forget the tablename is the surveyname preceded by the word Sample, e.g., the Sample table for survey A1234 is called SampleA1234. But much better (and simpler) is to use the command *SAMPLEDATA instead. Example 1 In the database table Names the ID is stored in the field ID and the name is stored in the field Name. Survey configuration file A1234.INI:

[Config] RespondentDatabase=CATIFMSDATABASE
Questionnaire:

*VARS CNT,NAME,ID *QUESTION 1 *NUMBER L8 *SAVE ID What is your ID-number? *SQLGET CNT NAME "SELECT Name FROM Names WHERE ID=*?ID" *PAGE According to our database your name is *?NAME.

230 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 2

Retrieve field Make and Type from database with *SQLGET. In the database table ProductTable the make is stored in the field Make and the type and price are stored in the fields Type and Price. Each make can have several types (maximum 5).

*TEXTVARS CNT,MAKE,TYPE[5] *VARS PRICE[5] *QUESTION 1 *ALPHA L50 *SAVE MAKE What is the make / brand of your computer? *FORMAT 3.2 *SQLGET CNT TYPE,PRICE "SELECT Type,Price FROM ProductTable \ WHERE Make=*?MAKE" *QUESTION 1001 *CODES L5 *MULTI *DUMMY *REPEAT 5 *IF [ CNT >= ?R ] *INCLUDE Q1001 [ ?R ] *ENDREP *QUESTION 2 *CODES L1 *IF [ CNT >= 1 ] *CONTROL Q1001 W Please select the type of your *?MAKE computer: Type: Price 1: *?TYPE[1] *?PRICE[1] 2: *?TYPE[2] *?PRICE[2] 3: *?TYPE[3] *?PRICE[3] 4: *?TYPE[4] *?PRICE[4] 5: *?TYPE[5] *?PRICE[5] 9: Dont know *NOCON *QUESTION 1002 *ALPHA L50 *DUMMY Dummy question to store the type *QUESTION 1003 *NUMBER L3.2 *DUMMY Dummy question to store the price *** Store the type and price in the dummy questions *IF [ Q2,1-5 ] *INCLUDE Q1002 *?TYPE[Q2] *IF [ Q2,1-5 ] *INCLUDE Q1003 [ PRICE[Q2] ] *QUESTION 3 *CODES L1 *IF [ CNT = 0 ] The make you entered is not found. Please go back to correct. Note that the make might be case sensitive, so check if you the <Caps Lock> is switched off. 1: Go back and correct *BACK 1

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 231

*SQLPUT
System Purpose Syntax ODIN32 writes a value or a text to a database.

*SQLPUT count var[,var...] "SQL statement"


where: count var "SQL statement"

is a variable that will contain the record count after the SQL statement. is the variable that has to be written to the database. is a SQL statement (written in between double quotes). Only SELECT statements are allowed in the format:

"SELECT ... FROM ... WHERE ..."


See also Description

*SQLGET *SAMPLEDATA *MOVA *MOVU


This will write variables to a database. If more than 1 variable is used the first variable will be written to the first field in the database record, the second variable to the second field etc. The variable can also be an array. In that case, if the SQL statement returns more than 1 record, the first element of var will be copied to the first record, the second element of var to the second record etc. The number of matching records will be stored in count. Error handling and limitations: See *SQLGET. Note: The *SQLPUT statement can only be used in combination with SELECT .. FROM .. WHERE and will update the specified fields in all matching records of your table. It is not possible to use an UPDATE query, neither is it possible to create a new record in the table. Note 2: When data in a Sample table should be updated, do not forget the tablename is the surveyname preceded by the word Sample, e.g., the Sample table for survey A1234 is called SampleA1234. But much better (and simpler) is to use the command *SAMPLEDATA instead. However: In this case the database field is only updated when the client is closed (either with a successful interview or suspended or even a crashed client), so you will not see the changes immediately in NIPO FMS. Note 3: In the survey configuration file, a reference to the database name should be made (DSN name on the NIPO CATI Master). The table you want to access with *SQLGET and *SQLPUT does not have to be in the same database as the Sample table, but the database username and password should be the same.

232 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Error handling

ODIN will not check the SQL statement. As far as ODIN is concerned it is just a string following the ODIN rules, which means for example that you can substitute variables with the *? command. If there is an error while executing the SQL statement this will be reported as a warning error in the event log on the master and the interview will continue with count set to 0. If no record is found matching the WHERE statement or one or more database fields in the SQL statement are missing the count variable will be set to zero. If more than one record is found matching the WHERE statement and the var is defined as an array, the cells of the array variable will be stored in the subsequent fields and the number of matching records will be stored in the count. If more than one matching record is found, but var was not defined as an array variable, the system will only update the first matching record and the count will be set to 1. If more than one matching record is found, but the array variable was defined with too few cells, the system will only update the records that fit. After the WHERE also the OR and the AND statements are allowed. Use brackets to set priority rules.

Limitations

SQL statements may only refer to tables within the same database. When referring to other databases, this will not give an error message, but will be ignored by the system (count = 0). SQL statements may refer to only one table at the time, i.e. no joined queries are allowed. When referring to several tables (in the same *SQLGET statement), this will not give an error message, but will be ignored by the system (count = 0). In a NIPO ODIN Questionnaire you may have several *SQLGET statements, referring to several tables. Field names within the table may not contain spaces or other special characters. The WHERE statement will search case sensitive. In your database you might disable case sensitive search (not possible for all database types). Variable names in the NIPO ODIN questionnaire do not need to be equal to the fieldnames in the database table.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 233

Example

Update fields in database with *SQLPUT


In the database table Names the ID is stored in the field ID and the respondents name should be stored in the field Name.

*VARS CNT *TEXTVARS Name *QUESTION 1 *ALPHA L45 *SAVE Name What is your name? *SQLPUT CNT Name "SELECT Name FROM Names WHERE ID=*?ID" *PAGE Your name (*?Name) will be updated in our database.

Note: The table Names should already contain a record for all respondents, containing the field ID.

234 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Command System Purpose Syntax See also Description

*STOPAUTO
ODIN 4.08 (16-bit) only Specifies to stop automatical arranging of answer categories into columns.

*STOPAUTO *AUTO *NOCON *STOPAUTO *NOHIDE


This command is always used behind a code definition and has to be behind this code on the same line. If the answer categories are automatically arranged into columns by means of *AUTO then this code and all following codes will not be put arranged into columns but will be displayed underneath.

Example

*QUESTION 2 *CODES L2 *AUTO Question text 1:code 2:code 3:code 4:code 5:code 6:code 7:code 8:code 9:code 10:code 11:code 12:code 13:code 14:code 15:code 16:code 17:code 18:code 19:code 20:code 21:code 22:code 23:code 24:code 25:code 26:code 27:code 28:code 29:code 30:code 31:code 32:code 33:code 34:code 35:code 36:code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 235

37:code 38:code 39:code 40:code 41:code 42:code 43:code 44:code 45:code 46:code 47:code 48:code 49:code 50:code 51:code 52:code 53:code 54:code 55:code 56:code 57:code 58:code 59:code 60:code

37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

61: don't know *STOPAUTO 62: no answer


Result:

236 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Command System Purpose Syntax See also Description

*STOPRANDOM
ODIN 4.08 (16-bit) only Stops randomisation of answer categories.

*STOPRANDOM *RANDOM *INV *ROT *NOCON *STOPAUTO *NOHIDE


This command is always used behind a code definition and has to be behind this code on the same line. If the answer categories are displayed in random order by means of *RANDOM *ROT or *INV then this code and all following codes will not be randomised but will be displayed in normal order.

Example

*QUESTION 1 *CODES 61L11 *MULTI *RANDOM Which of the following brands do you know? 1:Aiwa 2:Denon 3:Kenwood 4:Marantz 5:Philips 6:Pioneer 7:Samsung 8:Sharp 9:Sony 10:Other, specify ... 11:Don't know *NMUL

*OPEN *STOPRANDOM

In this example codes 1-9 will be displayed in random order, while categories 10 and 11 will always be displayed at the bottom of the category list.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 237

*STRAT
Purpose Syntax See also Description Stratification on output.

*STRAT <n|[expression]> *ENDST *ENDNGB


With this command a check can be made to see if a certain stratum has reached its limit. The stratification criteria will be put in the T-file/Sample table record during the interview, so-called stratification on output. If the stratum limit is reached there will be continued with the question with the question number indicated in the argument.

Arguments

n|expression
This is a positive integer that specifies an existing question number.

Example

*QUESTION 1 *CODES 201 *ADDRESS *QUESTION 2 *CODES 61 Do you own a VCR? 1: Yes 2: No *MOVA Q1 Q2 *STRAT 99 *QUESTION 3 *CODES 62 Did you use your VCR yesterday? 1: Yes 2: No *QUESTION 4 Thank you for your co-operation *END *QUESTION 99 I dont have more questions for you. Thank you for your co-operation. *ENDNGB
In this example, the answer of question 2 is transferred to the T-file/Sample table record and the stratification cells are checked to see if the quota has been reached. If so, a jump to question 99 is made.

238 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*SUBROUTINE ... *ENDSUB


Purpose Syntax Defines a subroutine.

*SUBROUTINE name <commands> *ENDSUB *GOSUB *RETURN *FIELD


Defines the start of a subroutine. This command has to be at the beginning of a line. This command will always be used in combination with *ENDSUB (end subroutine). The subroutine is known within the questionnaire and can be jumped to at any time. A subroutine consists of a set of commands and questions that the system considers as a special component. When a subroutine is called in the questionnaire the system will execute the commands in the subroutine. It is as if the commands in the subroutine are copied to the place where the subroutine was called. The answer fields in a subroutine will be considered relative. When a subroutine is called the system will use the starting position, belonging to *GOSUB, as the starting point to determine where the answers have to be put. A subroutine is considered a separate component of the questionnaire It should be placed somewhere in the questionnaire before calling the subroutine; the system will skip the questions in the subroutine. In a subroutine you can call another subroutine with a maximum depth limited by the computer memory and the 32000 data positions available for ODIN. Subroutines can also be called after a *NEW command, when placed in the first sub-questionnaires).

See also Description

Arguments

name
This is the name of the subroutine.

Remarks

It is not allowed to jump out of a subroutine by means of the *GOTO command; to terminate a subroutine, the command *RETURN is available.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 239

Example

*SUBROUTINE OPINION *QUESTION 1 *CODES 1 What do you think of the service of *? BRAND? 1: 2: 3: 4: Very good Good Poor Very poor

*ENDSUB *QUESTION 2 *CODES 61L5 *MULTI *SAVE BRAND Which of the following gas stations have you ever visited? 1: 2: 3: 4: 5: Esso Shell Texaco BP Mobil *GOSUB *GOSUB *GOSUB *GOSUB *GOSUB OPINION OPINION OPINION OPINION OPINION

240 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*SWILANG
Purpose Syntax See also Description Switches to another language.

*SWILANG [name] *LANGUAGE


With this command it is possible to switch to another language during the interview. The command has the same effect as choosing the language from the Language Menu. The name in the syntax has to match the name of the language section.

Arguments

name
This is the name of the language section that ODIN refers to. To switch to the default language you can refer to a section that does not exist or you can omit the name (but not the double quotes ()).

Remarks

The double quotes around the section name are mandatory. In NIPOSYS.INI the following setting applies: SwilangDisablesLanguageSwitch = n. When turning this setting on (n=1), the Language Menu will be disabled so that the interviewer can not switch languages. Default = 0 (language switch enabled).

Example

*QUESTION 1 *CODES 201 Interviewer: choose a language 1: 2: 3: 4: Dutch *SWILANG Dutch German *SWILANG German French *SWILANG French English *SWILANG

*QUESTION 2 *CODES 202 Do you have a dog? 1: Yes 2: No *END *LANGUAGE "Dutch" *QUESTION 2 Heeft u een hond? 1: Ja 2: Nee

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 241

*LANGUAGE "German" *QUESTION 2 Haben Sie einen Hund? 1: Ja 2: Nein *LANGUAGE "French" *QUESTION 2 Avez vous un chien? 1: Oui 2: Non

Note: Jumping to the 'source' language (the part of the questionnaire containing all the commands and routing) is specified with *SWILANG "". The default language in NIPO ODIN 32-bit is English. When your source questionnaire is not in English, but English is one of the translations, use *LANGUAGE "UK" and *SWILANG "UK".

242 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*TAB
Purpose Syntax Description Sets the tab width.

*TAB <n>[,n2,...]
This command can be used to specify the tab width. The tab width is determined by the character size of the default font (font 0) for NIPO ODIN 16-bit and by percentages in the NIPO ODIN 32-bit.. In the Web Client and the NIPO CATI Client 5.01 and higher, the *TAB command is slightly different from the use in the NIPO CATI Client 4.08 and 5.00. The command will use percentages of the screen in stead of screen-positions. The NIPO HTML Generator will convert the tab-positions to columns on the screen.

Arguments

n
This is a positive integer that indicates the tab width.

Example 1

*FONT 0 "10 ARIAL" *TAB 30 *QUESTION 1 *FORM Please, fill in: 1:Name : *ALPHA 73L30 2:Street : *ALPHA 103L40 3:Place : *ALPHA 143L20 4:Age : *NUMBER 163L2 *END
Result:

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 243

Example 2

*TAB 40,50,60,70,80,90 *QUESTION 1 *FORM How do you rate .... <tab>very poor<tab>poor<tab>neither poor, nor good<tab>good<tab>very good<tab>don't know/ no answer 1:Statement 1<tab>*SCALE L1 6 10 2:Statement 2<tab>*SCALE L1 6 10 3:Statement 3<tab>*SCALE L1 6 10 4:Very long statements may be written in one line, because the TAB will force a linewrap<tab>*SCALE L1 6 10 Result

Note: The indication 10 after the *SCALE will be ignored: the system will calculate the scale distance from the *TAB command. Note that the distance between the scales is always equal. *TAB definitions above 100 will be ignored. Note 2: By using stylesheets it is also possible to centre the scale-boxes under the text. See the NIPO HTML Generator Manual for more details.

244 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*TEXTVARS
Purpose Syntax Defines one or more text variables or arrays.

*TEXTVARS <name>[,name2,...] or *TEXTVARS <name[size]>[,name2[size2],...]

See also Description

*? *PUT *SAVE (question option) *VARS


Defines text variables or one-dimensional text arrays. This command has to be at the beginning of the line. These text variables or arrays can be used throughout the entire questionnaire to store data or retrieve data. In text variables or arrays all alphanumerical data can be stored. A text variable or array initially is empty. For technical reasons it is not possible to use variables which name start with an L.

!
Arguments

name
The name of the variable or array. Multiple variables or arrays can be created with a single *TEXTVARS command by including additional variable or array names separated by commas (Name2, Name3, and so on).

size
Specifies the size of the array to create. One-dimensional arrays have one column and size rows. Remarks ODIN has ten system variables, namely 0 up to and including 9, which do not need to be defined. Contrary to other variables, variable 9 will not be cleared at the start of a new interview.

Example

*TEXTVARS UHELP[2] *QUESTION 2 *ALPHA 151L20 *SAVE UHELP[1] What is the name of the oldest child? *QUESTION 3 *ALPHA 171L20 *SAVE UHELP[2] What is the name of the second oldest child? *PAGE The oldest child is named *? UHELP[1] The second oldest child is named *? UHELP[2]

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 245

*TIME
Purpose Syntax See also Description Gets current time.

*TIME <Qn> *DATE


This command is also allowed under condition. Gets the current time as set in the computer and puts this over 7 positions in the data field in the form hhmm:ss. If the data field isn't long enough the data will be truncated.

Arguments

Qn
The question reference of the data field where the time is put.

246 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*USELIST
Purpose Syntax See also Description Uses answer categories from a list.

*USELIST <n|[expression]|name> *LIST *LIST (question option)


This command is always used in combination with a closed question and uses a list as a substitute for (a part of) a category list. This is similar to the *LIST (question option) command except that *USELIST has to be used as (part of) a category list while *LIST has to be used as a question option. More than one *USELIST in one question is allowed.

Arguments

n|expression
This is a positive integer or expression that indicates an existing list.

name
This is the name of an existing list. Remarks This command only makes sense if the question referred to a closed question. It is ignored by (alpha)numeric questions.

Example

*LIST 1 1: Heineken 2: Amstel 3: Grolsch 4: Carlsberg 5: Tuborg *QUESTION 1 *CODES L7 *MULTI What brands of beer do you know? *USELIST 1 6: Other *OPEN 7: Dont know *NMUL
In this example, the first five categories come from a pre-defined list.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 247

*VAR
Purpose Syntax See also Description Defines a variable name for export to DIANA variables, SPSS, etc.

*VAR <name> *LABEL


This command is always used in combination with *QUESTION and a question type definition and has to be behind these commands on the same line. This command gives the possibility to give a question its own variable name. The name doesn't have to be unique. At the creation of variables by ODIN default the variable name of a question will be created by means of the question number as this is unique within a questionnaire. Using *VAR command enables you to create your own variable names.

Arguments

name
A name of maximum 12 characters. The name may not contain spaces.

Remarks

With variable name, the name of the variable in the variable file of NIPO Diana is meant.

248 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*VARS
Purpose Syntax Defines one or more numeric variables or arrays.

*VARS <name>[,name2,...]
or

*VARS <name[size]>[,name2[size2],...]
See also Description

*? *PUT *SAVE (question option) *TEXTVARS


Defines numeric variables or one-dimensional number arrays. This command has to be at the beginning of the line. These numeric variables or arrays can be used throughout the entire questionnaire to store data or retrieve data. In numeric variables or arrays all alphanumerical data can be stored. A numeric variable or array initially is empty. For technical reasons it is not possible to use variables which name start with an L.

!
Arguments

name
The name of the variable or array. Multiple variables or arrays can be created with a single *VARS command by including additional variable or array names separated by commas (name2, name3, and so on).

size
Specifies the size of the array to create. One-dimensional arrays have one column and size rows. Remarks ODIN has 10 system variables, which do not need to be defined, namely 0 up to and including 9. Contrary to other variables, variable 9 will not be cleared at the start of a new interview.

Example

*VARS GHELP,HHELP[2] *QUESTION 1 *NUMBER 93 *SAVE GHELP How many children, living at home, are there in this household? *QUESTION 2 *NUMBER 94L2 *SAVE HHELP[1] What is the age of the oldest child? *QUESTION 3 *NUMBER 96L2 *SAVE HHELP[2] What is the age of the second oldest child? *PAGE There are *? GHELP children living at home. The oldest is *? HHELP[1] years. The second oldest is *? HHELP[2] years.
In the example above a numeric variable GHELP is defined and a number array HHELP that has two elements. These variables are then used in the questionnaire to save numbers and insert those in the text.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 249

*VCONTROL
System Purpose ODIN 4.08 only Makes the display of columns and texts in a grid question dependent on answers to a previous question.

Syntax See also Description

*VCONTROL <Qn> <W|N> *CONTROL *GRID


This command is always used in combination with a *GRID question and has to be on the same line as the question definition. This command controls the display of answer columns and texts in a *GRID question dependent on answers to a previous question. This previous question is referred to by means of Qn.

Arguments

Qn
The reference to the control question where n is the number of the question.

W
Only answer categories that were mentioned at the control question are being displayed.

N
Only answer categories that were not mentioned at the control question are being displayed. Remarks Make sure that the control question and the current question have the same set of answer categories. Categories that are suppressed, as a result of this command, can't be part of the answer. When all categories are suppressed the question will be skipped. The text above the grid columns has to be positioned between the centres of two columns:

Grolsch is positioned between the middle of column one and two AND the middle of column two and three

250 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Example 1

*QUESTION 1 *CODES 61 Single-coded question to control the next grid question. 1: 2: 3: 4: 5: 6: Heineken Grolsch Amstel Carlsberg Tuborg Other

*QUESTION 2 *FORM *VCONTROL Q1 W Heineken Grolsch Other Amstel Carlsberg Tuborg \

1 1:*GRID 62L6 5.002 6.012*NON 2 3 4 5

Example 2

*QUESTION 100 *CODES 68L6 *MULTI Multiple question to control the next grid question. 1: 2: 3: 4: 5: 6: Heineken Grolsch Amstel Carlsberg Tuborg Other

*QUESTION 200 *FORM *VCONTROL Q100 W Heineken Grolsch Other Amstel Carlsberg Tuborg \

1 1:*GRID 74L30 5.002 6.012 2 3 4 5

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 251

*WAITCR
Purpose Syntax See also Description Sets wait time for user-defined keys and enter key.

*WAITCR <n|[expression]> *BUT


This command sets the minimum wait time between two consecutive touches of [Enter], [OK] or a user-defined key.

Arguments

n|expression
This is a positive integer that specifies the number of units of 1/18 second.

Remarks

Default value for DOS is 10 (about second). Default value for Windows is 0 (no wait time).

Example

*WAITCR 9
In this Windows example, the wait time is set to second.

252 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

*WAITPLAY
System Purpose Syntax See also Description Windows Waits for multimedia files to finish.

*WAITPLAY *DELAY *PLAY


During playback of a multimedia file the interview does not stop; playback occurs simultaneous. With this command however, it is possible to force a waiting time until playback has finished. To play sound fragments, a sound card is required. All multimedia files recognised by the multimedia interface can be played.

!
Remarks Example

*PLAY letitbe.wav *WAITPLAY *QUESTION 1 *CODES 102 Do you recognise this sound? 1: yes 2: no

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 253

*WRITE
Purpose Syntax See also Description Writes data to a file.

*WRITE <Qn|var> [filename] *READ


With this command it is possible to write data to a file. If the filename is omitted data will be written to the last file used for writing. The file consists of one record in which all data will be written. The data will be separated by headers, which contain the letter D and the size of the data strings. The format of the file is illustrated below: header 1 D 1 position size 4 positions data string size specified in header D 1 position header 2 size 4 positions data string size specified in header

Arguments

Qn
The question reference of the data field that has to be written.

var
Variable that holds the data that has to be written.

filename
A self chosen filename that complies with the MS-DOS conventions. Remarks During an interview you can not go back over a *WRITE with filename, you can only go back over a *WRITE without filename. You can not use *WRITE indifferently with *READ; after a *READ there has to be a filename specified with *WRITE.

Example

*TEXTVARS txt[2] *PUT txt[1] my text *PUT txt[2] my second text *WRITE txt[1] myfile *WRITE txt[2]
The record of the file looks like:

D0007my textD0014my second text

254 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

<<<! !>>>
System Purpose Syntax Description Web Client only Insert HTML (incl. JavaScript) in text.

<<<! !>>>
With this command it is possible to insert HTML (including JavaScript) in the text of a NIPO ODIN Questionnaire. The HTML starts with <<<! and is closed with !>>>. See your HTML manual for the syntax of HTML and JavaScript.

Example 1

1: Sedan <<<!&nbsp;&nbsp;&nbsp!>>> *PICT 1

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 255

Example 2

*PAGE 1: Start <<<! <A HREF="http://www.niposoftware.com" TARGET="_blank" ONCLICK= "window.open ('http://www.niposoftware.com', 'niposoftware', 'width=1024, height=640, toolbar=no, menubar=no, location=no, resizable=yes, scrollbars=yes'); return false; ">NIPO Software website</a> !>>>
Result:

After clicking on the link:

256 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

4.2

Listing of commands per system

Commands may behave differently in DOS, ODIN 16-bit and/or ODIN 32-bit. For a full description see the specific command. Commands that are only supported in DOS are not described in this manual, but are enlisted only in this overview for historic reasons.
Command DOS ODIN 16-bit ODIN 32-bit Stand Alone CATI CAPI Tele Panel Web Client

** *? *ABORT *ADDRESS *ALPHA (question type) *ALPHA (in *FORM question) *APPOINT *AUTO *AUTO (in *CONJ) *BACK *BMP *BUT *CENTRE1 *CODES *CONJ ... *ENDCONJ *CONTROL *COPY2 *COUNT *CUT *DATE *DELAY *DESC3 *DTIME *DUMMY *END *END (in *REPEAT loop) *ENDNGB *ENDST *EXCLUDE *FIELD *FONT
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 257

Command

DOS

ODIN 16-bit

ODIN 32-bit

Stand Alone

CATI

CAPI

Tele Panel

Web Client

*FORM *FORMAT *GENERAL4 *GOSUB *GOTO *GRID *GROUP *HEADING *HELP (definition) *HELP (question option) *IF *IF (question option) *IF (in *CONJ) *INCLUDE *INFO *INIT *INSTRUC *INTRO11 *INV *INV (in *CONJ) *KEY4 *LABEL *LANGUAGE *LEFT *LEFT (in *CONJ) *LINE *LIST *LIST (question option) *LIST (in *CONJ) *LOAD4 *MARK4 *MAX *MERGE *MIN
258 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Command

DOS

ODIN 16-bit

ODIN 32-bit

Stand Alone

CATI

CAPI

Tele Panel

Web Client

*MIN (in *CONJ) *MOVA *MOVE5 *MOVU *MULTI *NAP4 *NCLS *NEW *NEWCOLUMN2 *NEXT *NMUL *NOCON *NOENTER2 *NOHIDE6 *NOMARK4 *NON *NONRESP *NOTBACK *NP4 *NP (in *CONJ) *NUMBER (question type) *NUMBER (in *FORM question) *OPEN (question type) *OPEN (codes option) *OR5 *ORDER10 *P4 *PAGE *PICT (question option) *PICT (codes option) *PICT (in *CONJ) *PLAY7 *PLAY8
NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 259

Command

DOS

ODIN 16-bit

ODIN 32-bit

Stand Alone

CATI

CAPI

Tele Panel

Web Client

*PLAY9 *PLAYWAIT5 *PNW *PRINT4 *PUT *QUESTION *RANDOM *RANGE2 *READ *REC1 *REPEAT (question option) *REPEAT ... *ENDREP *REPETE4 *REPNUM *RETURN *RIGHT *RIGHT (in *CONJ) *ROT *ROT (in *CONJ) *RUN *SAMPLEDATA10 *SAVE *SCALE (question type) *SCALE (in *FORM question) *SCALERANGE11 *SHOWDOCUMENT *SIZE6 *SKIP *SNGRET4 *SQLGET10 *SQLPUT10 *STOPAUTO6 *STOPRANDOM6 *STRAT *SUBROUTINE ... *ENDSUB
260 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Command

DOS

ODIN 16-bit

ODIN 32-bit

Stand Alone

CATI

CAPI

Tele Panel

Web Client

*SWILANG *TAB *TEXTVARS *TIME *USELIST *VAR *VARS *VCONTROL *WAITCR *WAITPLAY *WAP4 *WRITE *XOR5 <<<!...!>>>
1 2

Version 4.05 and higher Version 4.06 and higher 3 NIPO ODIN Developer (16-bit) Library only 4 ODIN for DOS only 5 Removed since 4.06 6 Version 4.08 (16-bit) only 7 Play a note sequence 8 Increasing sound with lines and scales 9 Play multimedia file 10 Version 5.08 and higher 11 Version 5.11 and higher

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 261

File structures

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 263

5.1

Data files

All files in ODIN are ASCII/ANSI format and have a fixed file structure. These structures are described below: 5.1.1 Closed answers file (U-file)

The closed answers file (U-file) contains the answers to all closed questions. For each interview (respondent) one record (line) is written in the file. The length of the records is fixed, and depending on the highest position used in the NIPO ODIN questionnaire. The first positions (fields) in each record are reserved for the system. Table 5-1 | Record description of the closed answers file
Position length Description

1-8 9-10 11-15 16-19 20

8 2 5 4 1

21-28 29-40 41 42-48 49-53 54-55 56-57 58-59 60

8 12 1 7 5 2 2 2 1

61-..

interview number sub-questionnaire number interview time in seconds number of screens shown interrupt indication: 1 = interview broken off 2 = appointment made interviewer number date and time last contact 0 (zero) ODIN / OdDemon version number Idle time Week number (CASI only) Week version number (CASI only) Unique family member number (CASI only) Channel: 1 = CATI 2 = CAWI (Web) 3 = CAPI 4 = CASI (Panel) answers

Note: Channel is not yet supported in ODIN 4.08. Position 60 will be empty for all channels.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 265

1) Data files (U- and O-file) in unicode A questionnaire in unicode can be used as long as the workstation supports that character set. If all surveys should write data files in unicode the following stringvalue can be added in the registry of the CATI Master:

HKEY_LOCAL_MACHINE\Software\NIPO\CatiMaster UnicodeData = Y
By default the data will be written in plain ASCII. When unicode data files are needed for separate surveys, this can be configured in the file survey.ini. Add the following line to the

[Config] section: UnicodeData=Y


Note: If a datafile is already present, the system will check the file header, if the file is unicode or not. The UnicodeData setting will be ignored. Note 2: When *ALPHA is used in a questionnaire and the respondent uses a unicode language (i.e. a unicode character set is used), the U-file must be written in unicode. When *OPEN is used in a questionnaire and the respondent uses a unicode language (i.e. a unicode character set is used), the O-file must be written in unicode.

266 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

5.1.2

Open answers file (O-file)

The open answers file (O-file) contains the answers to all open ended and semi-open questions. For each open answer that is actually asked to the respondent, one record (line) is written in the file so several records will be written for each interview (respondent). The amount of records will be depending on the routing. The length of the records is unfixed, i.e. be as long as the open answer that was typed. The first positions (fields) in each record are reserved for the system. Table 5-2 | Record description of the open answers file
position length Description

1-8 9-10 11-15 16-18 19-... (depending on 19, etc.)

8 2 5 3 (depending on 1618)

interview number sub-questionnaire number starting position answer field in U-file length reserved answer field in U-file corresponding answer code number (or blank) text of open answer

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 267

5.1.3

Telephone file (T-file)

The Sample file (telephone file or T-file) is the file containing telephone numbers and addresses of the (aimed) respondents. Each respondent will be in a separate record (line). The length of the file should be fixed. Table 5-3 | Record description of the telephone file
Position length Description

1-17 18-19 20-21 22-23 24-35 36-43 44-45 46-47 48-49 50-51 52-59 60-71 72-101 102

17 2 2 2 12 8 2 2 2 2 8 12 30 1

103-119 120-127 128-133 134

17 8 6 1

135

136-180 181-215 216-250

45 35 35

Telephone number (area code and subscribers number) Response code (See paragraph 6.1.4 for description of the responscodes) Number of contacts Response code of last contact Date and time of last contact Interviewer number of last contact Response code of last but one contact Response code of second last contact Response code of third last contact Response code of fourth last contact Interview number Appointed time or redial time (YYYYMMDDhhmm) Name of appointed respondent Indication to show second telephone number (1 = show second telephone number 2 = use second telephone number by default) Second telephone number (area code and subscribers number) Time interval for contacting respondent Reserved for future use Indication which telephone number is Dialed last (1 = second number, blank = only one number available / no contact) Number of address-fields to be shown on screen (1 = show first field only, 2 = show first and second field, etc.) First address-field (e.g., name) Second address-field (e.g., street and house number) Third address-field (e.g., zip code and residence)

Note: In previous versions of the NIPO Fieldwork System 1.03 position 120-134 was used for the description of the second number.

268 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Table 5-4 | Record description of the telephone file in case of Omnibus


Position length Description

251-490 251-257 258 259-270 ... 501-

240 7 1 12

Stratification data for each sub-survey in a CATI-omnibus (20 positions per sub-survey, maximum 12 sub-surveys) Name of first sub-survey 1 = Successful interview first sub-survey Free for stratification first sub-survey etc. for second, third, ... sub-survey Free for other data

Table 5-5 | Record description of the telephone file in other cases


Position length Description

251-285 286-

35

Fourth address-field Free for other data

(e.g., department, country, etc.)

Minimum length of a telephone-record is 135; maximum length for NIPO CATI Client 4.08 (16-bit) is 8000. For NIPO CATI Client 5.03 (32-bit) there is no maximum. Note: The response code (18L2) and number of contacts (20L2) must be filled. Set the value initially to 00. Note 2: In a telephone file no empty lines are allowed. The NIPO CATI Client will give an error message and can not be executed. Tip: You can create interview numbers in advance. These numbers will be used as interview number in all files. Make sure the number is unique. If an interview number is not unique, the system will look for the first free number. Interview numbers have to be an 8-digit number (leading zeros are required).

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 269

5.1.4

Sample table (separate table for each survey)

Instead of a Sample file (T-file or surveyT), a Sample table can be created for each separate survey. The default name for the Sample table is SampleName, where Name is the survey name (for instance: the Sample table for survey A1234 will be called SampleA1234 ). Table 5-6 | Field names in the Sample table (separate table for each survey)
Fieldname Pos in Tfile Description Type Minimum length Allow NULL

InterviewNumber AppointmentName AppointmentTime CallIntervalBegin CallIntervalEnd Channel

52L8 72L30 60L12

int Var Char Date Time Var Char Var Char


Channel, where: 1= CATI 2= CAWI (Web) 3= CAPI 4= CASI (Panel) 99= Sample record sent as anonymous web interview.

8 30

NOT NULL

4 4

ContactTime DisplayField1 DisplayField2 DisplayField3 DisplayField4 Email ExtraData GroupID

24L12 136L45 181L35 216L35 251L35 e.g., Name e.g., Address e.g., City e.g., Country or State Email address (for Web records) Only available if configured in the NIPO CATI/Web Master.

Date Time var char var char var char var char

45 35 35 35 50

286-

Var Char Var Char

215

270 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Fieldname

Pos in Tfile

Description

Type

Minimum length

Allow NULL

ID

Indicator2nd Number

120L1

InitialChannel

The unique identifier, that is created for each respondent in the Sample table, when sending a (non-anonymous) mail. The ID should be unique, not only within the Sample table, but also within the EmailManagemenent table last dialed number: 1= second number blank= only 1 number available / no contact Channel used when initially importing the Sample record, where: 1= CATI 2= CAWI (Web) 3= CAPI 4= CASI (Panel) Language of respondent (for sending mail and/or multilanguage questionnaires)

int

Int

InterviewerNumber Language

36L8

int var char int

NumberOfContacts1 ResponseCode1

20L2 18L2 2-digit response, where: 00= Initial 18= Successful, 29= Suspended (Web), etc. (See paragraph 6.1.4 for the list of default responsecodes)

2 2

int

NOT NULL NOT NULL

SecondPhoneNumber ShowDisplayFields

103L17 135 Number of displayfields to show 0= No displayfields 1= Show only DisplayField1 2= Show DisplayField1 + DisplayField2 3= Show DisplayField1 + DisplayField2 + DisplayField3 4= Show all DisplayFields

Var Char int

17 1

This field should be initialized (set to 0). NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 271

Fieldname

Pos in Tfile

Description

Type

Minimum length

Allow NULL

ShowSecondPhone Number

102L1

Status1

SuspendImage

SystemData

22L2 44L2 46L2 48L2 50L2

0= Hide second phone number 1= Show second phone number 2= Use second phone number as default 1-digit status, (See paragraph 6.1.2 for the code list of Status) Suspend Image, containing all the answers and the routing of previous sessions. 5 previous Response-codes

int

int

NOT NULL

Image

Var Char

10

TargetInterviewer

TelephoneNumber TimeDifference

1L17

Interviewer number to be used when 'Same interviewer appointment' was switched on by the interviewer, when making an appointment. Depending on the EnableIDA setting in the NIPO CATI Master Telephone number (for CATI records) Time difference between respondent and CATI-Studio.

Int

Var Char Var Char

17 10

Primary key: InterviewNumber Note: The 2-digit field ResponseCode was in previous versions of the NIPO Fieldwork System 1.03 sometimes referred to as StatusCode. Do not confuse this with the field Status, which is a new field, containing a 1-digit number. Also do not confuse the Status field in the Sample table with the Status field in the Survey table. Note 2: In previous versions the character WW in the field ResponseCode (Pos 18L2 of the T-file), meant the T-record was in waiting mode. This is replaced by the code 5 in the field Status.

This field should be initialized (set to 0 for CATI, 1 for Web).

272 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Note 3: With the NIPO ODIN command *PUT, you can retrieve data directly from the T-file by referring to a position instead of a question number or variable name.

*PUT intnr 52L8


will copy position 52L8 (the interview number) from the T-file in the variable intnr When a Sample table in a database is used, the variable will be filled with the database field that was based on that specific position (as is used the other way around for T-files, that internally are seen as databases). Note 4: Contrary to NIPO Web Interview System 1.04, the Email address is not the key for the Sample table. This means that the E-mail address does not have to be unique, thus enabling sending 2 separate links to 2 users of the same E-mail address. Note 5: When sending a survey or E-mails with the option Anonymous switched on, the system will not create a separate ID for each Sample record, but will use a SurveyID, that is stored in the Survey table. Sample records that are sent anonymous, will get a Channel code 99 (Sent as anonymous). When an interview is started from an anonymous survey or directly from an URL on a website, the NIPO CATI/Web Master will not update the original Sample record, but create a new Sample record. The response-rate for an anonymous survey, should be compared to the number of sent emails or the number of visitors on the website. Note 6: In an anonymous survey respondents may fill in an interview more than once. The NIPO CATI/Web Master will give out new interview numbers.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 273

5.1.5

Contact file (C-file)

In the NIPO Fieldwork System 1.03 a record is written in the contact file for each contact attempt. Table 5-7 | Record description of the Contact file
Position length Description

1-8 9-16 17-20 21-28 29-30 31-32 33-38 39-44 45-50 51-56 57-60

8 8 4 8 2 2 6 6 6 6 4

61-66 67-72

6 6

interviewer number date of interview (YYYYMMDD) time of interview (uumm) interview number response code (space means no T-file/Sample table available) (See paragraph 6.1.4 for description of the responscodes) contact number total time in seconds introduction time in seconds area code telephone time in seconds number of screens shown to interviewer (note: when the interviewer goes back in the questionnaire and follows another routing, the number of screen will be reset) Edit open time in seconds Waiting time, in seconds, between asking and receiving a T-file record

Note: In an omnibus a separate record will be written in the Contact.Log file for each sub-questionnaire, with the interview time and the number of screens for that specific sub-questionnaire. But only one C-file will be created for an omnibus, containing the accumulated interview time and number of screens for all sub-questionnaires.

274 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

5.1.6

Stratification file (S-file)

A stratification file (S-file) is used to divide the Sample into several strata or sub-Samples, in which a limited number of interviews must be realised. Stratification is only possible if a T-file/Sample table exists. Each stratum must be defined in one separate record with the following format: stratum field offset: characteristic (limit) description... See paragraph 3.2 for more details about stratification.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 275

5.2
5.2.1

Database tables
Sample table (separate table for each survey)

For each survey a separate Sample table can be created. The default name for the Sample table is SampleName, where Name is the survey name (for instance: the Sample table for survey A1234 will be called SampleA1234). The Sample table can also be an ASCII file (Address-file or T-file). Table 5-8 | Field names in the Sample table (separate table for each survey)
Fieldname Pos in Tfile Description Type Minimum length NOT NULL

AppointmentName AppointmentTime CallIntervalBegin CallIntervalEnd Channel

72L30 60L12

Var Char Date Time Var Char Var Char


Channel, where: 1= CATI 2= CAWI (Web) 3= CAPI 4= CASI (Panel) 99= Sample record sent as anonymous web interview.

30

4 4

ContactTime DisplayField1 DisplayField2 DisplayField3 DisplayField4 Email ExtraData GroupID

24L12 136L45 181L35 216L35 251L35 e.g., Name e.g., Address e.g., City e.g., Country or State Email address (for Web records) Only available if configured in the NIPO CATI/Web Master.

Date Time var char var char var char var char

45 35 35 35 50

286-

Var Char Var Char

215

276 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Fieldname

Pos in Tfile

Description

Type

Minimum length

NOT NULL

ID

Indicator2nd Number

120L1

InitialChannel

The unique identifier, that is created for each respondent in the Sample table, when sending a (non-anonymous) mail. The ID should be unique, not only within the Sample table, but also within the EmailManagemenent table last dialed number: 1= second number blank= only 1 number available / no contact Channel used when initially importing the Sample record, where: 1= CATI 2= CAWI (Web) 3= CAPI 4= CASI (Panel)

int

Int

InterviewerNumber InterviewNumber Language

36L8 52L8 Language of respondent (for sending mail and/or multilanguage questionnaires) 20L2 18L2 2-digit response, where: 00= Initial 18= Successful, 29= Suspended (Web), etc. (See paragraph 6.1.4 for the list of default responsecodes)

int int var char int int

8 8

NOT NULL

NumberOfContacts1 ResponseCode1

2 2

NOT NULL NOT NULL

SecondPhoneNumber ShowDisplayFields

103L17 135 Number of displayfields to show 0= No displayfields 1= Show only DisplayField1 2= Show DisplayField1 + DisplayField2 3= Show DisplayField1 + DisplayField2 + DisplayField3 4= Show all DisplayFields

Var Char int

17 1

This field should be initialized (set to 0). NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 277

Fieldname

Pos in Tfile

Description

Type

Minimum length

NOT NULL

ShowSecondPhone Number

102L1

Status1

SuspendImage

SystemData

22L2 44L2 46L2 48L2 50L2

0= Hide second phone number 1= Show second phone number 2= Use second phone number as default 1-digit status, where: 0= Available (CATI) 1= Available (Web) 2= Not successful / Refusal 3= Completed 4= CATI appointment 5= CATI waiting 6= Out, distributed to CATI/Web Client Suspend Image, containing all the answers and the routing of previous sessions. 5 previous Response-codes

int

int

NOT NULL

Image

Var Char

10

TargetInterviewer

TelephoneNumber TimeDifference

1L17

Interviewer number to be used when 'Same interviewer appointment' was switched on by the interviewer, when making an appointment. Depending on the EnableIDA setting in the NIPO CATI Master Telephone number (for CATI records) Time difference between respondent and CATI-Studio.

Int

Var Char Var Char

17 10

Primary key: InterviewNumber

This field should be initialized (set to 0 for CATI, 1 for Web).

278 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Note: The 2-digit field ResponseCode was in previous versions of the NIPO Fieldwork System 1.05 sometimes referred to as StatusCode. Do not confuse this with the field Status, which is a new field, containing a 1-digit number. Also do not confuse the Status field in the Sample table with the Status field in the Survey table. Note 2: In previous versions the character WW in the field ResponseCode (Pos 18L2 of the T-file), meant the Sample table record was in waiting mode. This is replaced by the code 5 in the field Status. Note 3: With the NIPO ODIN command *PUT, you can retrieve data directly from the T-file by referring to a position instead of a question number or variable name.

*PUT intnr 52L8


will copy position 52L8 (the interview number) from the T-file in the variable intnr When a Sample table in a database is used, the variable will be filled with the database field that was based on that specific position (as is used the other way around for T-files, that internally are seen as databases). Note 4: Contrary to NIPO Web Interview System 1.04, the Email address is not the key for the Sample table. This means that the E-mail address does not have to be unique, thus enabling sending 2 separate links to 2 users of the same E-mail address. Note 5: When sending a survey or E-mails with the option Anonymous switched on, the system will not create a separate ID for each Sample record, but will use a SurveyID, that is stored in the Survey table. Sample records that are sent anonymous, will get a Channel code 99 (Sent as anonymous). When an interview is started from an anonymous survey or directly from an URL on a website, the NIPO CATI/Web Master will not update the original Sample record, but create a new Sample record. The response-rate for an anonymous survey, should be compared to the number of sent emails or the number of visitors on the website. Note 6: In an anonymous survey respondents may fill in an interview more than once. The NIPO CATI/Web Master will give out new interview numbers.

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 279

1) Create new fields in Sample table via NIPO FMS In the NIPO FMS you can create new fields for individual Sample tables, by right-mouse clicking on the grid.

2) Use *SAMPLEDATA to retrieve and update data from the Sample table All fields that are created by the NIPO FMS can be retrieved in the NIPO ODIN questionnaire, by using the command *SAMPLEDATA. Define the fieldnames with *SAMPLEDATA as variables in your questionnaire and the variable will be filled automatically with the contents of the database field, when starting the survey. When the survey is closed by the Web Client (either by ending the questionnaire, suspending or even closing the browser), the database field is updated with the current contents of the variable. The field is only updated when closing the Web Client, i.e. it is not updated while the client is still busy.

3) Stratification of fields in Sample table When using the *STRAT command within a NIPO ODIN questionnaire, the system will check all fields in the database defined by *SAMPLEDATA as if already updated.

280 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

4) Use system names in Sample table instead of table fieldnames All system fields in the Sample tables may only be referred to by their system names, not by the fieldnames. The NIPO CATI Master will produce an error message 'Duplicate field name'. Table 5-9 | Setting names and Field names in Sample table Setting name in NIPO CATI/Web Master Field name in Sample table AppointmentName AppointmentTime Status CallIntervalBegin CallIntervalEnd Channel ContactTime DisplayField1 DisplayField2 DisplayField3 DisplayField4 ExtraData GroupID ID Indicator2ndNumber InterviewerNumber InterviewNumber Language NumberOfContacts Email SecondPhoneNumber ShowDisplayFields ShowSecondPhoneNumber ResponseCode SystemData TargetInterviewer TelephoneNumber TimeDifference

TTAppointmentName TTAppointmentTime TTAvailabilityCode TTCallIntervalBegin TTCallIntervalEnd TTChannel TTContactTime TTDisplayField1 TTDisplayField2 TTDisplayField3 TTDisplayField4 TTExtraData TTGroupID TTID TTIndicator2ndNumber TTInterviewerNumber TTInterviewNumber TTLanguage TTNumberOfContacts TTRespEmail TTSecondPhoneNumber TTShowDisplayFields TTShowSecondPhoneNumber TTStatusCode TTSystemData TTTargetInterviewer TTTelephoneNumber TTTimeDifference

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 281

Note: The field ResponseCode is a (2-digit number), that you can configure with the RESPn setting in the NIPO CATI/Web Manager. The field Status is a (1-digit) number, that is updated by the Master, based on the Channel and Type (AVAIL, APPOINT, STOP, WRITE, etc). Note 2: The field ExtraData is only created in your Sample table by NIPO FMS, when the setting TTExtraData=ExtraData is specified in the registry of the NIPO CATI/Web Master or when the setting: RespondentFields=TTExtraData:ExtraData is specified in the Registry/survey.INI. Note 3: The fields ID, Status, SystemData, Language are system fields and may not be changed by your NIPO ODIN questionnaire. The Language field will be updated automatically when switching between *LANGUAGE sections.

282 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

5.2.2

Omnibus or SubSample table (separate table for each survey)

Separate table for each omnibus survey, only in combination with Sample table. The default name for the Omnibus or SubSample table is SubName, where Name is the survey name (for instance: the Omnibus table for survey A1234 will be called SubA1234). In this table the NIPO CATI/Web Master stores the stratification data for each subsurvey in an omnibus. Table 5-10 | Field names in the Omnibus Table
Fieldname Description Type Minimum length NOT NULL

InterviewNumber QuestionnaireName Success STData

Interview number (Refers to a record in the Sample table) Sub-questionnaire name Sub-questionnaire status: 1=successful other is unsuccessful Extra data field to store stratification fields for subquestionnaires.

Integer Text Integer varchar

8 7 1 12

NOT NULL

Note: The field STData is only created in your Omnibus table by NIPO FMS, when the setting STData=STData is specified in the registry of the NIPO CATI/Web Master.

Primary key:

InterviewNumber QuestionnaireName

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 283

1) Create new fields in Omnibus table via NIPO FMS In the NIPO FMS you can create new fields for individual Omnibus tables, by right-mouse clicking on the grid.

2) Use *SAMPLEDATA to retrieve and update data from the Omnibus table All fields in the Omnibus table that are created by the NIPO FMS can be retrieved in the second and further questionnaire within an omnibus, by using the command *SAMPLEDATA. Define the fieldnames with *SAMPLEDATA as variables in your omnibus questionnaire and the database field is updated with the current contents of the variable. The field is only updated when closing the Web Client, i.e. it is not updated while the client is still busy.

3) Stratification of fields in Omnibus table When using the *STRAT command within the second and further questionnaire within an omnibus, the system will check fields in the omnibus table defined by *SAMPLEDATA as if already updated.

4) Use system names instead of table fieldnames All system fields may only be referred to by their system names, not by the fieldnames. The NIPO CATI Master will produce an error message 'Duplicate field name'. Table 5-11 | Setting names and Field names in Omnibus table Setting name in NIPO CAPI Master Field name in Sample table Success QuestionnaireName InterviewNumber Data

STSuccess STQuestionnaireName STInterviewNumber STData

284 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Status, ResponseCode, TerminateCode, Logging

6.1.1

Status field in Survey table

Table 6-1 | Overview of Status field in Survey table


Code Description

Inactive: Survey may not be started by NIPO CATI master Sample may be altered by NIPO FMS Active: Survey may be started by NIPO CATI master Sample may not be altered by NIPO FMS Running: Survey has been started by NIPO CATI master Sample may not be altered by NIPO FMS Pause: Survey is about to be reloaded by NIPO CATI master Sample may not be altered by NIPO FMS

6.1.2

Status field in Sample table

Table 6-2 | Overview of Status field in Sample table


Code Description

0 1 2 3 4 5 6

Available (CATI) Available (Web) Not successful / Refusal Completed CATI appointment CATI waiting Out, distributed to CATI/Web Client

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 285

6.1.3

Channel and Initial Channel field in Sample table

Table 6-3 | Overview of Channel / InitialChannel field in Sample table


Code Description

1 2 3 4 99

CATI CAWI (Web) CAPI CASI (Panel) Sample record sent as anonymous web interview.

286 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

6.1.4

Overview of response codes

The following overview shows the default response codes. Response codes can be set in the NIPO CATI/Web Master configuration or in the Survey configuration file (INI-file). Response codes 00, 18-30 and 91-99 can not be changed. Table 6-4 | Default response codes
Response Code Remark Text shown on the screen Specification Call-back time in minutes (CATI only)

00 01 02 03 04 05 06

SYS

Initial / not used Not at home No answer Answer device Busy Information tone No house at this address / moved Wrong telephone-number Make an appointment

AVAIL AVAIL AVAIL STOP STOP APPOINT

240 240 60

07

Definite appointment

APPOINT

appointment time (-15 minutes) appointment time (-15 minutes)

08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

#S #S #F #S B B B #S SYS SYS SYS SYS SYS SYS SYS SYS SYS

Refusal Refusal (busy) Refusal (not by telephone) Refusal (ill/not present) Refusal (no approval) No company at this address Inactive company Company terminated Outside target-group Already questioned Successful *ENDNGB (in questionnaire) System error (or: currently running) Stratification maximum reached *ABORT (in questionnaire) Interview broken off To be handled by special interviewer Blocked by blacklist Duplicate interview number Used by other survey

REFUSAL REFUSAL REFUSAL REFUSAL REFUSAL STOP STOP STOP STOP STOP WRITE WRITE

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 287

Response Code

Remark

Text shown on the screen

Specification

Call-back time in minutes (CATI only)

28 29 30 31 to 89

SYS SYS I

90 91-95 96 98 99

SYS

SYS SYS SYS

Abandoned call Interview suspended Web Client only Interviewer no time Free for use, to be configured in the NIPO CATI/Web Master configuration or in the Survey configuration. Successful NIPO CAPI only Reserved for system. Interview to be continued System error NIPO CAPI only Initial, already sent to interviewer workstation NIPO CAPI only

240

288 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

1) Specification of ResponseCodes

Table 6-5 | Explanation Remark and Specification column


indication means response code ...

#S B #F A I SYS APPOINT AVAIL REFUSAL STOP SWITCH WRITE

Default not shown on the screen Only shown in case of business address Will not lead to a final response code, so address will reappear Is a fixed appointment code, only the text may be altered Cannot be shown on the screen, the interviewer however may enter this code Can not be changed, these are system response codes that cannot be shown on the screen. Appointment screen will pop-up Address still available for interviewing Interview marked as refusal, not available for interviewing Interview not available for interviewing Switch from NIPO CATI Client to Web Client Interview will be written

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 289

2) TerminateCodes In the Web Client the system uses TerminateCodes to relocate respondents, based on the ResponseCodes. Negative code numbers are used for the system codes. Table 6-6 | Overview of TerminateCodes
Response code Description

1 - 99 0 -1 -2 -3 -4 -5 -6 -7 -8

-9 -10 -11 -12 -13

ResponseCode as written by NIPO ODIN questionnaire. Default relocation, if the terminate code was not specified in Relocations table for this survey. Already done / interview was already completed Error in questionnaire / Runtime Error Java Applet Error / Odin Servlet Error Currently not used Master error Currently not used Licence error (more web connections than NIPO Software licence allows) Only one interview at a time allowed, interview ended (Respondent opens new Window in Browser during NIPO Web Interviewing). Currently not used Switch survey Pause Invalid answer from ODIN Demon / No reaction from ODIN Demon No addresses available to write response data

290 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Index
*HEADING...................................................123 *HELP (definition)................................................125 (question option)......................................126 *IF..................................................................12 (condition)................................................128 (question option)......................................129 *IF (in *CONJ) .....................See NIPO Conjoint Measurement manual *INCLUDE ...................................................130 *INFO ..........................................................132 *INIT....................................................24, 133 *INSTRUC ...................................................135 *INTRO........................................................136 *INV .............................................................137 *INV (in *CONJ)...................See NIPO Conjoint Measurement manual *LABEL........................................................139 *LANGUAGE .........................................14, 140 *LEFT ..........................................................144 *LEFT (in *CONJ) ................See NIPO Conjoint Measurement manual *LINE ...........................................................145 *LIST (definition)................................................147 (question option)......................................149 *LIST(in *CONJ) ..................See NIPO Conjoint Measurement manual *MAX ...........................................................152 *MERGE......................................................154 *MIN ............................................................156 *MIN (in *CONJ) ..................See NIPO Conjoint Measurement manual *MOVA ........................................................158 *MOVE ............................. Replaced by *COPY *MOVU ........................................................159 *MULTI ........................................................160 *NCLS ...................................................25, 161 *NEW...........................................................162 *NEWCOLUMN ...........................................163 *NEXT .........................................................166 *NMUL.........................................................167 *NOCON......................................................168 *NOENTER .................................................169 *NOHIDE .....................................................170 *NON ...........................................................171

*
** ................................................................... 69 *? .................................................................. 70 *ABORT ........................................................ 73 *ADDRESS ............................................. 10, 74 *ALPHA (in *FORM question) ....................... 76 *ALPHA (question type) ................................ 75 *APPOINT..................................................... 77 *AUTO .................................................... 22, 78 *AUTO (in *CONJ) .............. See NIPO Conjoint Measurement manual *BACK........................................................... 80 *BMP............................................................. 81 *BUT ............................................................. 83 *CENTRE...................................................... 85 *CODES........................................................ 86 *CONJ ... *ENDCONJ ... 88, See NIPO Conjoint Measurement manual *CONTROL ................................................... 89 *COPY .......................................................... 91 *COUNT........................................................ 93 *CUT ............................................................. 94 *DATE ........................................................... 95 *DELAY......................................................... 96 *DESC (NIPO ODIN Developer 4.08 Library) 97 *DTIME ......................................................... 98 *DUMMY ....................................................... 99 *END ........................................................... 100 *ENDCONJ ..................................... See *CONJ *ENDNGB ................................................... 102 *ENDREP................................... See *REPEAT *ENDST ...................................................... 103 *ENDSUB.......................... See *SUBROUTINE *EXCLUDE.................................................. 104 *FIELD ........................................................ 106 *FONT........................................................... 21 (definition) ............................................... 108 (switching)............................................... 109 *FORM .................................................. 23, 111 *FORMAT ................................................... 114 *GOSUB...................................................... 115 *GOTO ........................................................ 117 *GOTO after non-response code .................. 11 *GRID (in *FORM question) ........................ 118 *GROUP ..................................................... 121

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 291

*NONRESP................................................. 172 *NOTBACK ................................................. 173 *NP (in *CONJ) ................... See NIPO Conjoint Measurement manual *NUMBER (in *FORM question) ................. 175 *NUMBER (question type) .......................... 174 *OPEN (codes option) ......................................... 179 (question type) ........................................ 177 *OR ............................. Replaced by *INCLUDE *ORDER...................................................... 180 *PAGE .................................................. 12, 183 *PICT (codes option) ......................................... 186 (question option) ..................................... 184 *PICT (in *CONJ) ................ See NIPO Conjoint Measurement manual *PLAY ......................................................... 187 *PLAYWAIT .............. Replaced by *WAITPLAY *PNW .......................................................... 188 *PUT ..................................................... 14, 189 *PUT in combination with Sample table ........ 14 *QUESTION................................................ 192 *RANDOM............................................. 23, 194 *RANGE...................................................... 196 *READ ........................................................ 197 *REC ........................................................... 198 *REPEAT (question option) ..................................... 200 *REPEAT ... *ENDREP ........................... 201 *REPETE ...................... Replaced by *REPEAT *REPNUM ................................................... 204 *RETURN.................................................... 205 *RIGHT ....................................................... 206 *RIGHT (in *CONJ) ............. See NIPO Conjoint Measurement manual *ROT........................................................... 207 *ROT (in *CONJ)................. See NIPO Conjoint Measurement manual *RUN 32-bit......................................................... 11 NIPO ODIN 16-bit ................................... 208 NIPO ODIN 32-bit ................................... 210 *SAMPLEDATA .......................................... 212 *SAVE (codes option) ......................................... 214 (question option) ..................................... 213 *SCALE (in *FORM question) ..................... 217 *SCALE (question type) .............................. 215

*SCALERANGE ..........................................220 *SHOWDOCUMENT ...................................225 *SIZE ...........................................................226 *SKIP...........................................................228 *SQLGET ....................................................229 *SQLPUT.....................................................232 *STOPAUTO ...............................................235 *STOPRANDOM .........................................237 *STRAT .......................................................238 *SUBROUTINE ... *ENDSUB ......................239 *SWILANG ..................................................241 *TAB ......................................................10, 243 *TEXTVARS ................................................245 *TIME ..........................................................246 *USELIST ....................................................247 *VAR............................................................248 *VARS .........................................................249 *VCONTROL ...............................................250 *WAITCR.....................................................252 *WAITPLAY.................................................253 *WRITE .......................................................254 *XOR .......................... Replaced by *EXCLUDE

_
_CAPI_ (Constant) ........................................43 _CASI_ (Constant) ........................................43 _CATI_ (Constant).........................................43 _CAWI_ (Constant) .......................................43 _CHANNEL (system variable) .......................42 _ISCAPI (system variable) ............................42 _ISCASI (system variable) ............................42 _ISCATI (system variable).............................42 _ISCAWI (system variable) ...........................42

<
<<<! !>>> ................................................255

A
As_Was Channel aware filters ........................8

C
C-file ............................................................274 Changed command *LANGUAGE .............................................14 *PUT..........................................................14 Channel aware script uses current channel...15 Channel aware scripting ................................10 Channel Aware scripting................................42

292 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

Channel aware scripting with As_Was............ 8 Closed answers file (U-file) ......................... 265 Command *PAGE directly behind *IF ........... 12 CONJTXT (in *CONJ) .... See NIPO Conjoint Measurement manual Contact file (C-file) ...................................... 274 Copy positions from T-file limited to field length ...................................................................... 21 Known issues

J
JavaScript.............................. See <<<! !>>> Jump to question after non-response code ...11

K
in NIPO ODIN Script Language 5.08 .........15 in Web Client .............................................29

D
Data files (U- and O-file) in unicode ............ 266 Default response codes .............................. 287 Display of *NUMBER *LIST question in box 29 Duplicate interview numbers in T-files .......... 25 Dutch commands .......................................... 16

M
Most important features of NIPO ODIN Script language 5.08 ..............10 NIPO ODIN Script language 5.09 ................8 NIPO ODIN Script language 5.11 ................7

F
Features and Known issues............................ 7 Field names in Omnibus table......................................... 283 Sample table (separate table for each survey) ........................................ 270, 276 File Closed answers file................................. 265 Contact file .............................................. 274 Open answers file ................................... 267 Stratification file................................. 52, 275 Stratification file for Web Clients ............... 60 Stratification file when using Omnibus table .............................................................. 59 Stratification file when using Sample table 56 Stratification files for omnibus surveys with T-files .................................................... 57 Telephone file ......................................... 268 New command

N
*HEADING...................................................7 *INTRO........................................................7 *ORDER .....................................................13 *SAMPLEDATA ...........................................13 *SCALERANGE...........................................7 *SQLGET ...................................................13 *SQLPUT ...................................................13 New commands in the NIPO ODIN Script Language 5.08 ..............................................13 New commands in the NIPO ODIN Script Language 5.11 ................................................7 No more support for Dutch commands.......................................16 improper use of ODIN syntax (illegal constructions) .......................................17 replaced commands ..................................16 slashes to separate categories ..................20 No more support for changing font of code numbers ........................................................21

H
HTML ..................................... See <<<! !>>>

I
Illegal constructions ...................................... 17 Improper use of ODIN syntax........................ 17 INIT block is executed before Suspend Image ...................................................................... 24 Insert HTML ................................. See <<<! !>>> JavaScript .......................... See <<<! !>>> Introduction ..................................................... 1

O
O-file............................................................267 Omnibus surveys.........................................269 Omnibus table .............................................283 Open answers file (O-file)............................267 Overview of Channel / InitialChannel field in Sample table ............................................................286 response codes .......................................287 Status field in Sample table .....................285 Status field in Survey table ......................285

NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007 | 293

TerminateCodes ..................................... 290

Web Clients in anonymous survey ............60 Web Clients in non-anonymous survey .....60 Web Clients started from a URL ................60 System variable CMDLINE ...................................................41 System variables _ISCATI and _ISCAWI ..............................42 miscellaneous............................................41

Q
Quota ..................................... See Stratification

R
Record description of Closed answers file................................. 265 Contact file .............................................. 274 Open answers file ................................... 267 Telephone file ......................................... 268 in case of Omnibus ............................. 269 in other cases...................................... 269 Removed commands .................................. 261 Replaced commands .................................... 16 ResponseCode field in Sample table .......... 287 ResponseCodes: specification.................... 289 Re-using interviewnumbers that were already completed ..................................................... 26

T
Tables Omnibus table .........................................283 Sample table ...................................270, 276 SubSample table .....................................283 Tab-positions with *TAB based on percentages ......................................................................10 Telephone file (T-file)...................................268 TerminateCodes ..........................................290 T-file ............................................................268

S
Sample table ....................................... 270, 276 Selecting another CHARSET in the *FONT command ...................................................... 24 Separate table for each survey ........... 270, 276 S-file...................................................... 52, 275 Specification of ResponseCodes ................ 289 Status field in Sample table......................... 285 Status field in Survey table.......................... 285 Stratification file (S-file) ......................... 52, 275 for omnibus surveys with T-file.................. 57 for Web Clients ......................................... 60 when using Omnibus table........................ 59 when using Sample table .......................... 56 Stratification for What's new in

U
U- and O-files unicode.................................266 U-file ............................................................265 Unicode data files (U- and O-file) ................266 Using *AUTO with too many categories ........22 Using *RANDOM on a *FORM question, without category numbers .............................23 Using slashes to separate categories............20

W
NIPO ODIN Script language 5.08 ..............10 NIPO ODIN Script language 5.09 ................8 NIPO ODIN Script language 5.11 ................7

294 | NIPO ODIN Script Language 5.11 Command Reference | NIPO Software Amsterdam | January 2007

You might also like