Вы находитесь на странице: 1из 416

NIPO ODIN

Scripters Guide
Version 5.16

More information:
For more information please contact the NIPO Software helpdesk at
helpdesk@niposoftware.com or call +31 20 5225 980.

NIPOODIN
Scripter'sGuide
Version5.16

Lastrevision:Wednesday15December2010


Copyright19972010NIPOSoftware
Allrightsreserved
ThesoftwarecontainsproprietaryinformationofNIPOSoftware.Itisprovidedunderalicenseagreement
containingrestrictionsonuseanddisclosureandisalsoprotectedbycopyrightlaw.Reverseengineeringof
thesoftwareisprohibited.
Duetocontinuedproductdevelopmentthisinformationmaychangewithoutnotice.Theinformationand
intellectualpropertycontainedhereinisconfidentialbetweenNIPOSoftwareandtheclientandremains
theexclusivepropertyofNIPOSoftware.Ifyoufindanyproblemsinthedocumentation,pleasereport
themtousinEmail.NIPOSoftwaredoesnotwarrantthatthisdocumentiserrorfree.Incaseswherethe
documentationsignificantlydiffersfromthesoftwareimplementation,theenduserisencouragedto
contactNIPOSoftware.However,theinformationinthisdocumentcannotbeusedtogranttheenduserof
theproductanyrightswithregardtoupdatesorfixes,demandingamatchwiththeexistingdocumentation.
Nopartofthispublicationmaybereproduced,storedinaretrievalsystem,ortransmittedinanyformorby
anymeans,electronic,mechanical,photocopying,recordingorotherwisewithoutthepriorwritten
permissionofNIPOSoftware.

Contents
Introduction
Aboutthismanual
SoftwareCompatibility
Terminology
General
QuestionsandAnswers
FilesandTables
TypographicalConventions
ContactingUs
ContactingNIPOSoftwareSales
ContactingtheNIPOSoftwareHelpdesk
YourFeedbackonthisGuide

9
9
9
10
10
10
10
11
12
12
12
13

VersionHistory
ChangesinNIPOODINScriptLanguage
ChangesinNIPOODINScriptLanguage5.16
ChangesinNIPOODINScriptLanguage5.15.001
ChangesinNIPOODINScriptLanguage5.15
ChangesinNIPOODINScriptLanguage5.14
ChangesinNIPOODINScriptLanguage5.13
ChangesinNIPOODINScriptLanguage5.12
ChangesinNIPOODINScriptLanguage5.11
ChangesinNIPOODINScriptLanguage5.10
ChangesinNIPOODINScriptLanguage5.09
ChangesinNIPOODINScriptLanguage5.08
ChangesinNIPOODINDeveloper
ChangesinNIPOODINDeveloper5.14
ChangesinNIPOODINDeveloper5.11.003
ChangesinNIPOODINDeveloper5.11
ChangesinNIPOODINDeveloper5.10
ChangesinNIPOODINDeveloper5.08
ChangesinNIPOODINDeveloper5.06
ChangesinNIPOODINDeveloper5.05
ChangesinNIPOODINDeveloper5.04
DutchCommandSetDropped
MigratingSurveysFromNIPOODIN4.08
*WAITCRCommandDroppedforNIPOCATIandNIPOCAWI
Dutchcommandsetnolongersupported
ObsoleteCommandNames
*PLAYNoLongerSupportedAsaQuestionOption
VerticalLineQuestionNotSupportedinNIPOCAPIandNIPOCAWI
*CENTREDoesNotProperlyCenterHeadingTexts
SelfModifyingScriptNoLongerSupported
ForwardSlashesNoLongerSeparateCodeLabels
CopyingPositionsFromaTfileIsLimitedtoFieldLength
*AUTONotSupportedinNIPOCAWI
*INITblockisExecutedBeforeSuspendImage
SelectingAnotherCharacterSetinthe*FONTCommand
DuplicateInterviewNumbersinTfilesNoLongerContacted
Stopwatch[1]andStopwatch[2]NotSupportedinNIPOCAPIandNIPOCAWI
UsingCodeNumbersina*FORMQuestion

15
15
15
15
15
15
16
16
16
16
16
16
18
18
18
18
18
19
19
19
20
20
20
21
21
21
21
21
22
22
23
24
24
24
24
25
25
25

UsingtheNIPOODINDeveloper
TheScriptEditorWindow
LineSize
ToggleDisplayingTabsandSpaces
PopupMenuOptions
OpenQuestionnaireFile
QuestionPreviewinNIPOCATI/CAWI/CAPI
InsertingQuestionDefinitions
ChangingQuestionOptions
ChangingCodeOptions
GridComposer
SyntaxChecking

27
27
27
27
27
27
27
28
28
31
32
35

PageI

Introduction

WarningMessagefor*CODESQuestionWithoutCodeCategories
WarningMessageforUnfixedQuestions
Erroron*FORMQuestionLanguageSectionMismatch
UndeclaredVariablesareCreatedwhenFixingaQuestionnaire
ResultsWindowKeepsPreviousSyntaxChecks
SyntaxcheckforOmnibusSurveys
TestRunQuestionnaireinNIPOCATI/CAPI/CAWI
CheckRoutingforStratification
ShowVariables
MenuOptions
OpenallQuestionnairesinOmnibusSurvey
OpenDataFiles
RemoveCommands
Comment/Uncomment
CreateQuestionnairesinUnicode
FindFunctionwithRegularExpressionsandMarkAll
StartEditorinWorkbookMode
CreateCodeNumbersBeforeCodeLabelsandFields
TheNIPOODINDeveloper
NIPODiana
CodeLabelExportsina*FORMQuestion
RandomCodeNumberExportinNIPODiana
OrderCodeNumberExportinNIPODiana
Exportsof*FORMQuestionswithCodes
TripleSXML
SPSSPortable
SPSSPC
Ascribe
Quantime
Images/Sound
NfieldCode
ExportXFile
Imports
Ascribe
NfieldCode
NIPOODINDeveloperConfiguration
TemplatedRelatedFilesFolderConfiguration
SyntaxHighlighting
ApplicationConfigurationOptions
ODINOptions
InterviewSystemOptions
CodingSystemOptions
CheckOptions
DummyDataOptions
PrintOptions
AutosaveOptions
FilesOptions
AdditionalConfigurationOptions
UsingtheNIPOODINScriptLanguage
NamingConventions
Questions
DataFields
AnswerCodes
Variables
SystemVariables
ChannelAwareScripting
ChannelAwareScriptingVariablesandConstants
ChannelAwareScriptingExample
ConsequencesofChannelAwareScriptingandSwitchModeSurveys
RepeatNumber
SystemVariables09
Timers
Stopwatch[1]
Stopwatch[2]
Stopwatch[3]
TimersExample

PageII

37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
40
40
42
43
43
44
45
47
49
51
51
53
53
54
54
54
55
56
56
57
57
57
58
59
59
61
62
63
64
65
67
67
67
67
68
68
70
70
71
71
72
72
73
74
74
74
74
74

Introduction

ConjTxt[n]
ScriptCommandTemplate
JavaScriptSupported
BrowserUserAgent
Language
PreTel
Expressions
ExpressionOperators
ExamplesofExpressions
CommonMistakesinExpressions
FormFieldReferences
Backslashes
Stratification(Quota)
AutomaticSyntaxChangeWhenReferencingPositionsinTfiles
Stratificationfile(Sfile)whenusingSampletable
Stratificationfiles(Sfiles)forOmnibusSurveys(UsingTfiles)
Omnibussurvey,usingSampletablesandOmnibustables
Stratificationfile(Sfile)forNIPOCAWI
NonAnonymousSurveys
AnonymousSurveys
SurveysstartedfromaURL
CommandIndex
<<<!!>>>
*?
*ABORT
*ADDRESS
*ALPHA(QuestionType)
*ALPHA(in*FORMquestion)
*APPOINT
*AUTO
*BACK
*BMP
*BUT
*CENTRE
*CODES
*CONJ...*ENDCONJ
*CONTROL
*COPY
*COUNT
*CUT
*DATE
*DELAY
*DTIME
*DUMMY
*END
*ENDNGB
*ENDST
*EXCLUDE
*FIELD
*FONT(definition)
*FONT(switching)
*FORM
*FORMAT
*GOSUB
*GOTO
*GRID(in*FORMquestion)
*GROUP
*HEADING
*HELP(definition)
*HELP(questionoption)
*IF(condition)...*ELSE
*IF(questionoption)
*INCLUDE
*INFO
*INIT...*END
*INSTRUC
*INTRO

75
75
75
76
76
76
76
77
78
79
79
80
80
82
83
84
85
86
86
86
86
87
88
89
92
93
95
96
97
98
102
104
106
108
109
111
112
114
115
116
117
118
119
120
121
123
124
125
127
129
130
132
135
137
139
141
146
149
151
152
154
155
156
158
159
161
162

PageIII

Introduction

*INV
*LABEL
*LANGUAGE
*LEFT
*LINE
*LIST(definition)
*LIST(questionoption)
*MAX
*MERGE
*MIN
*MOVA
*MOVU
*MULTI
*NCLS
*NEW
*NEWCOLUMN
*NEXT
*NEXTRECORD
*NMUL
*NOCON
*NOENTER
*NOHIDE
*NON
*NONRESP
*NOTBACK
*NUMBER(questiontype)
*NUMBER(in*FORMquestion)
*OPEN(questiontype)
*OPEN(codesoption)
*ORDER
*PAGE
*PICT(questionoption)
*PICT(codesoption)
*PLAY
*PNW
*PUT
*QUESTION
*RANDOM
*RANGE
*READ
*REC
*REPEAT(questionoption)
*REPEAT...*ENDREP
*REPNUM
*RETURN
*RIGHT
*ROT
*RUN
*SAMPLEDATA
*SAVE(questionoption)
*SAVE(codesoption)
*SCALE(questiontype)
*SCALE(in*FORMquestion)
*SCALERANGE
*SHOWDOCUMENT
*SIZE
*SKIP
*SQLADD
*SQLGET
*SQLPUT
*STOPAUTO
*STOPRANDOM
*STRAT
*SUBROUTINE...*ENDSUB
*SWILANG
*TAB
*TABLE
*TEXTVARS

PageIV

163
165
166
170
171
173
175
178
180
182
184
185
186
188
189
190
194
195
198
199
200
201
202
203
204
205
206
208
210
211
214
215
217
219
220
222
224
226
228
230
232
234
235
238
239
240
241
242
244
245
246
247
249
252
256
257
260
261
265
268
270
273
274
275
277
279
281
283

Introduction

*USELIST
*VAR
*VARS
*VCONTROL
*WAITCR
*WAITPLAY
*WRITE

284
285
287
288
291
292
293

AdvancedScripting
AdvancedUseof*NEXTRECORDCommand
ScenariosUsing*NEXTRECORD
Scenario1:UsingSystemdefinedInterviewNumbers
Scenario2:InterviewNumbersBasedonHouseholdInterviewNumber
Scenario3:UsingaPresetInactiveInterviewNumberforEachRespondent
ReturnCodesfor*NEXTRECORD
ErrorWhenReadingNextRecord
InterruptingtheTelephonicContact
RestartingtheInterviewSetsNewRecordstoSystemError
Using*NEXTRECORDinCombinationwithStratification
HidedialogInterviewWillContinuewithNextPerson
ChangeTextinDialogInterviewwillcontinuewithnextperson
Advanceduseof*SQLADDCommand
Scenariosfor*SQLADD
Scenario1:StoreNewRecordinTable(NottheSampleTable)
Scenario2:StoreNewRecordinCurrentSampleTable
Scenario3:StoreNewRecordinAnotherSampleTable
Scenario4:StoreSeveralRecordsinaTable(VariableswithArrays)
Scenario5:AddNewRespondentsinNIPOCAWISurveyAndEmailThemDirectly
ErrorsUsing*SQLADD
ErrorsMessagesUsing*SQLADD
GoingBackOver*SQLADDRemovesAddedRecords
RestartingtheInterviewDoesNotRemoveNewRecords
InstructionModeorTestModeMayCreateNewRecords
ReusingSampleRecordsfromTfileThatWereAlreadyCompleted
Stratification
ChangeInterviewNumber
Morethan5Contacts
SystemErrors
CreateaNewSurvey
AlreadyCompletedCode
DeleteDfile
JumptoQuestionResponseCode
SettingtheCodePage
NIPOConjointMeasurement
OverviewofsupportedcommandsinNIPOConjointMeasurement
StartmoduleNIPOConjointMeasurement
DefiningTextScreens
ReferenceToaFeature
Filters
CONJTXT[n]TextArray
FiltersinNIPOConjointMeasurement
HowdoesfilteringinNIPOConjointMeasurementactuallywork?
LimitationsontheUseofFilterswithinNIPOConjointMeasurement
ExampleNIPOConjointMeasurement
ExampleNIPOConjointScript
DatapositionsinNIPOConjointMeasurement
LimitationsofNIPOConjointMeasurement
MultibyteCharacterFields(MBCSFieldsSetting)
Scenario:*ALPHAforMBCSStorage
ExampleUsingAdobeFlashinNIPOCAWIandNIPOCAPI
NIPOODINTemplateUsingAdobeFlash
NIPOODINQuestionnaireUsingAdobeFlash
AdobeFlashApplication
AdditionalRemarks

295
295
295
295
297
299
300
301
302
302
302
302
303
303
303
303
305
306
308
310
313
314
315
315
315
315
315
316
316
316
316
316
317
317
318
318
320
321
322
322
322
323
323
324
324
325
327
331
334
334
335
337
338
338
339
339

FileStructuresandDatabaseTables
DataFiles

341
341

PageV

Introduction

ClosedAnswersFile(Ufile)
Openanswersfile(Ofile)
StoringdatainUnicode
TelephoneFile(Tfile)
ContactFile(Cfile)
Stratificationfile(Sfile)
Databasetables
Sampletable(SeparateTableforEachSurvey)
UsingCustomSampleTableFields
UsingSystemFieldsintheSampleTable
OmnibusorSubSampleTable(SeparateTableforEachSurvey)
UsingCustomOmnibusTableFields
UsingSystemFieldsintheOmnibusTable
NIPOCAPIClientAddressTable
Status,ResponseCodes,TerminateCodes
StatusFieldinSurveyTable
StatusfieldinSampleTable
ChannelandInitialChannelFieldinSampleTable
OverviewofResponseCodes
SpecificationofResponseCodes
TerminateCodes

341
342
342
343
344
346
346
346
349
350
351
351
351
352
353
353
353
353
353
355
355

OverviewofCommandsandSystemVariables
ListingofCommandsperSystem
ListingofSystemVariablesperChannel

357
357
361

TheNIPOHTMLGenerator
SupportedHTMLstandards
ApplyingDesigntoaSurvey
DefaultandCustomTemplatesandStylesheets
OrderofCheckingOdintemplateFiles
ExampleofUsingOdintemplateFiles
OrderofCheckingStylesheets
ExampleofUsingStylesheets
QuestionTypes
ExampleofGeneratedHTMLPage
WorkingWithTemplates
TemplateTags
InterviewProgressEstimation
UsingJavaScriptinanOdintemplateFile
OdintemplateExample
WorkingwithCSS
CSSFileDetails
CharacteristicsforQuestionElements
QuestionElementsExample
CSSforQuestions
DefaultQuestionSelectors
*CONJQuestionSelectors(NIPOConjointMeasurement)
*CODESQuestionSelectors
*CODES*MULTIQuestionSelectors
*NUMBERQuestionSelectors
*ALPHAQuestionSelectors
*LISTquestionselectors
*FORM*NUMBERand*FORM*ALPHAQuestionSelectors
*SCALEquestionselectors
*FORM*SCALEQuestionSelectors
*FORM*GRIDQuestionSelectors
CSSforButtons
CSSforTabs
CSSforFonts
CSSforProgressBar
SelectorsinNIPOCAWI(AlphabeticalOverview)
SelectorsinNIPOCAPI(AlphabeticOverview)
CSSExamples
ExampleNIPOODINQuestionnaireUsingStylesheets
Example1:ChangeBackgroundColorofaSelectedCode
Example2:BoxSizeforOpenAnswerCode
Example3:boxSizeforOpenQuestion

363
363
363
364
364
365
366
367
367
368
374
375
375
376
376
376
377
377
378
379
379
379
381
381
382
382
382
383
383
384
385
385
386
387
388
389
394
397
398
401
401
402

PageVI

Introduction

Example4:CenterScales
Example5:CenterTextAboveScales
Example6:ColorBackgroundforFirstandThirdStatementGray
Example7:GridUsingVariousStylingOptions
Index

403
404
404
405
407

PageVII

Introduction
NIPOFieldworkSystemfieldworkmanagementforCATI/Webrequiresthecombineduseoftwo
applications:theNIPOFMSandtheNIPOCATI/WebManager.
TheNIPOCATI/WebManagerisusedtoconfiguresurveysandsurveydefaults,tostartandstopsurveys,
andtomanage,monitor,viewandreviewongoingfieldworkprogressintheNIPOCATIcallcenter.
TheNIPOFMSisusedtotodeploysurveyfiles,configureadditionalsurveysettings,setupandmanage
sample,mailmessagesandinvitations(NIPOCAWI)andtoadministerinterviewers,assessinterviewersand
planfieldwork.
DuetotheiroverlapinfunctionalitytheNIPOFMSandtheNIPOCATI/WebManagermaybeusedbyboth
theprojectmanagerandthefieldworksupervisor.Dependingonyourrolewithintheorganization,youmay
wishtoskipthesectionsthatdonotnecessarilyapplytoyou.

Aboutthismanual
ThismanualisintendedfortheNIPOODINScriptwriters.Thefollowingtopicsarediscussedwithinthese
pages:
TheNIPOODINScriptLanguage,theNIPOSoftwarescriptingsolutionforquestionnairesintheNIPO
CATI,NIPOCAPIandNIPOCAWIenvironments.
TheNIPOODINDeveloper,theapplicationfordesigningNIPOODINscripts,testingthequestionnairein
variouschannels,andexportingthedatatoastatisticalanalysissoftwareofchoice.
TheNIPOHTMLGenerator,thestylingguideforNIPOCATIandNIPOCAPIsurveys.
ThismanualisnotintendedfortheNIPOCATI/NIPOCAPIinterviewers,norforsupervisorsand/or
technicianswhosetupandruntheworkstations(interviewerworkstations)inaCATIStudio.

SoftwareCompatibility
ThisdocumentationisintendedforusewiththeNIPOFieldworkSystem1.12release.Thefollowing
softwareanddocumentationisincludedwiththisrelease.Makesureallsoftwareisuptodatewiththis
releasepriortousingthisdocument.
NIPOFieldworkSystem1.12releaseapplicationsandcomponents

NIPOCATI/WebMaster3.08
NIPOFMS1.12
NIPOCATI/WebManager3.09
NIPOWebInterviewServer1.05
NIPOSTRAND1.05
NIPOODINScriptLanguage5.16
NIPOCATIClient5.09
NIPOODINDeveloper5.14

NIPOFieldworkSystem1.12releasedocumentation

NIPOFieldworkSystem1.12ReleaseNotes
NIPOFieldworkSystem1.12TechnicalReference(tobedelivered)
NIPOFieldworkSystem1.12User'sGuide
NIPOODIN5.16Scripter'sGuide

Page9

Introduction

Terminology
General
Questiontype
Definesthetypeofanswerwhichisexpectedforaquestion.Questiontypesareforexampleclosed,open,
numerical,etc.
Questionoption
Defineswhatspecialpropertiesananswermusthaveorhowanswercategorieswillbedisplayed.Thereare
questionoptionstoallowmultipleanswers,setamaximumvaluetobeentered,showanswercategoriesin
randomorder,etc.
Answeroption
Definesthebehavioroftheprogramwhenananswercategoryischosen.Thereareansweroptionsto
preventthatanansweriscombinedwithotheranswercategories,topromptforanopenanswer,etc.

QuestionsandAnswers
Closedquestion
Aquestionwheretheanswerisexpectedtobeachoicefromafixednumberofanswercategories.
Answercodecategory
Oneofthepossibleanswersdefinedfora(semi)closedquestion.
Openquestion
Aquestionwheretheanswerisexpectedtobeenteredliterallyastext.
Semiclosedquestion
Aquestionwheretheanswerisexpectedtobeachoicefromafixednumberofanswercategoriesand
wherechoosingcertainanswercategorieswillshowaboxtoentertheanswerliterallyastext.
Openendedanswer
Theliteraltextofananswerenteredforanopenorsemiclosedoropenquestion.
Numericalquestion
Aquestionwhereananswerisexpectedtobeanumericalvalue.
Textquestion
Aquestionwhereananswerisexpectedtobetextoflimitedlength.
Answercode
AnumericvaluewhichisstoredintheUfilewhenananswercategoryischosen.
Answerfield
A(seriesof)positionsintheUfilewhereanswercodes,valuesortextsarestored.

FilesandTables
Qfile(questionnaire)
ASCIIfilecontainingthequestiontextandalltheNIPOODINcommandsforrouting,etcetera.
Sfile(stratification)
ASCIIfilecontainingthestratification(quota)criteria.

Page10

Introduction

Samplefile(Tfile)
ASCIIfilecontainingthegrosssample.EachrecordintheSamplefile(telephonefileorTfile)contains
information(telephonenumber,address,name,companysize,etc.)aboutone(future)respondent.
Sampletable
Tableinthedatabasecontainingthegrosssample.EachrecordintheSampletablecontainsinformation
(telephonenumber,address,name,companysize,etc.)aboutone(future)respondent.
Omnibustable
Tableinthedatabasecontainingtheomnibusinformation,forexamplethenamesandorderofsub
questionnaires.IfaTfileisusedinsteadofaSampletable,theomnibusinformationisstoredintheSample
record.
Ufile
ASCIIorUnicodetextfilecontaininganswercodesthatrefertochosenanswercategoriesofclosed
questions,valuesenteredfornumericalquestionsandtextsenteredfortextquestions.
Ofile
ASCIIorUnicodetextfilecontainingallopenanswersenteredbykeyboard.
Cfile
ASCIItextfilecontaininginformationforeachcontact.
Bfile
BinaryfilecontainingopenanswersenteredwithaTabletcomputer(usingthe*OPEN*BMPcommands)
and/orrecordedanswers(usingthe*RECcommand).
Dfile
BinaryfilecontainingtheSuspendImage(incaseofaTfile).WhenaSampletableisused,theSuspend
ImageisstoredintheSuspendImagefieldintheSamplerecord.

TypographicalConventions
Inthismanualthefollowingtypographicconventionsareused:

Page11

Introduction

Example

Convention

*QUESTION 1 *CODES 61L2

TheCourierfontindicatessyntaxdescriptions,argumentdescriptions
orscriptexamples.

Qn, Qm

Insyntax,ifanargumentreferstoaquestion,nindicatesthenumber
ofthequestion.Ifasecondargumentalsoreferstoaquestionthenm
indicatesthesecondquestionnumber.

var, numvar, txtvar

Ifanargumentreferstoavariableorarray,varindicatesboth
numericandtextvars.Numvarindicatesanumericvariableand
txtvarindicatesatextvariable.

Expression

Ifanargumentreferstoanexpression,theexpressionwillfirstbe
interpretedandcalculatedandthentheresultisused.

<Argument>

Anglebracketsencloseobligatoryarguments.

[Argument]

Squarebracketsencloseoptionalarguments.

Argument|Argument2

Averticalbarseparatestwomutuallyexclusivechoices.

Argument[,Argument2,]

Threedotsindicatethatanargumentcanberepeatedinalistany
numberoftimes.Acommaseparatesthelistedarguments.

<[Argument]> or [[Argument]]

Squarebracketsenclosedbyangleorsquarebracketsarepartofthe
argument.

<"Argument"> or ["Argument"]

Doublequotesenclosedbyangleorsquarebracketsarepartofthe
argument.

Size

Indescriptions,italicwordsrefertoapartofthesyntax.

ContactingUs
Forsupport,licensinginformation,productnewsoranyotherqueriesorfeedbackregardingNIPOSoftware
products,feelfreetocontactusbyphoneorbymail.NIPOSoftwarehasthreeofficesaroundtheglobe
checktheofficenearesttoyourtimezoneforfeedbackduringyourworkinghours.

ContactingNIPOSoftwareSales
Foranyqueriesonyourlicense,onlicensepricingortoreceiveinformationonanyotherNIPOSoftware
products,pleasecontacttheNIPOSoftwareSalesdepartmentduringworkinghours.
NIPOSoftwareSalesAmsterdam
GroteBickersstraat74
1013KS
Amsterdam
TheNetherlands
Tel:+31205225989(GMT+1)
Email:sales@niposoftware.com

ContactingtheNIPOSoftwareHelpdesk
Inthecaseofanyqueriesorissuesnotcoveredinthisguide,orwhenexperiencingtechnicaldifficulties,
youcancontacttheNIPOSoftwareHelpdeskatthreeofficesworldwide.

Page12

Introduction

Ifcontactingbymail,pleaseencloseversioninformationandthefile(s)associatedwithyourquestionor
problem.PleaseZIPyourfilesbeforesending.
Ifcontactingbyphone,contacttheofficenearesttoyourtimezoneforimmediateassistance.
NIPOSoftwareHelpdesk
GroteBickersstraat74
1013KS
Amsterdam
TheNetherlands
TheEMEAoffice(Amsterdam):+31205225980(GMT+1)
TheAPACoffice(HongKong):+85221164119(GMT+8)
TheAMERoffice(BuenosAires):+541148916470(GMT3)
Email:helpdesk@niposoftware.com

YourFeedbackonthisGuide
Developmentanddocumentationarecontinuouslyongoingprocesses.Newfeaturesareadded,issuesare
solvedandfunctionalityisimproved.Althoughwestrivetokeeptheinformationinourdocumentationup
todateandaccurate,wecannotguaranteethatthisguideiswithouterrorandomission.Youare
encouragedtocontactustoinformusofshortcomingsinallourhelpfiles,onlinedocumentationor
printedmaterial.Suggestionsandopinionsarealsowelcomed.
Whenprovidingfeedback,pleasemakesuretomentionwhichguideyouarereferringto.
NIPOSoftwareDocumentation
GroteBickersstraat74
1013KS
Amsterdam
TheNetherlands
Email:documentation@niposoftware.com

Page13

VersionHistory
ChangesinNIPOODINScriptLanguage
ChangesinNIPOODINScriptLanguage5.16
Introducedexportcommand*TABLEtosupporthierarchicaldataexportsfor*FORMquestionsand
*REPEATblocksusingtheNIPODSCforSPSSDimensions.

ChangesinNIPOODINScriptLanguage5.15.001
Fixedthe"FatalErroronposition1L1"errorthatcausedsurveystobeblockedforfurtherinterviewing.
Theissuecouldbecausedbyaseriesofactionsperformedbytheinterviewer.

ChangesinNIPOODINScriptLanguage5.15
ThelibrarySTDRUN32.DLLcommandhasbeenextendedtosupportexchangeofdatausingan
externalfileratherthantheclipboard.
ImprovedinterviewprogressbarforNIPOCAWIandNIPOCAPItheprogressbarnowcorrectlymaxes
outtowards100%andhasbetterhandlingof*REPEATblocks.
A*CONTROLona*FORMquestionwith*AUTOnowhidestheentirerowratherthanleavingasingle
visiblelineonthescreen(NIPOCAPIonly).Without*AUTO,theserowsgetthe
ODINFORMHIDDENROWselectorsotheymaygetcustomstyling.
Textsbothbeforeandbehindfieldsin*FORMquestionsarenowproperlyhidden(styleapplied)when
theircodesaremade(in)visiblethroughtheuseof*CONTROL(NIPOCAPIonly).
ThefollowingHTMLselectorshavebeenaddedforNIPOCAPI:odinformelementafter,
odinformelementafterN,odinformelementafter-even,odinformelementafterodd,odinformelementafter_first,odinformelementafter_last,
odinformelementafter-placement-N,odinformelementafter-placement_even,
odinformelementafter-placement-odd,odinformelementafter-placement-first
andodinformelementafter-placement-last.

ChangesinNIPOODINScriptLanguage5.14
The*TABcommandcannowbeusedtoinfluencecodescolumnswhenusing*AUTO(NIPOCAPIClient
12.06andabove)
The*SIZEcommandhasbeenextendedfortheNIPOCAPIClienttosettheheightoffullyopenended
answerandbitmapanswer(*BMP)boxesandtosetthewidthandheightofsemiopenendedanswer
andbitmapanswerboxes.
The*DATEcommandinan*INITblocknowalwayscorrectlystoresthecurrentdatewhenfollowing
upappointmentsorsuspendedinterviews.
FixedacrashintheNIPOCATIClientandpreviewswhenusing*FORM,*SCALEand*ORDERinasingle
question.

Page15

VersionHistory

ChangesinNIPOODINScriptLanguage5.13
Theabilitywasaddedtointerviewmultiplerespondentsatthesametelephonecontactusing
*NEXTRECORD.
Newscriptcommand*SQLADDtoaddrecordstoadatabasetable(NIPOCATI/NIPOCAWIonly).
UseMultiByteCharacterFieldstostoremultibytelanguages(Chinese,Japanese,etc)innonUnicode
datafiles
*INCLUDEand*EXCLUDEnowsupportranges.
Reintroducing*VCONTROLfor*GRIDquestionstohideordisablecolumnsbasedontheanswersina
previousquestion.
Asoffversion12.06theNIPOCAPIClientnolongeroccasionallyhangswhenusinga*CONTROLin
*FORM*SCALEquestion.

ChangesinNIPOODINScriptLanguage5.12
ReleasedwithNIPOCAPIClient5.01only.
Youcannowrefertofieldsina*FORMquestionusingbothliteralnumbersandexpressions.

ChangesinNIPOODINScriptLanguage5.11
New(NIPOCATIonly)scriptcommand*NEXTRECORDtocreatesamplerecordsontheflyand
interviewmultiplerespondentsduringthesamecall(version5.11.006andhigher;releasedafterNIPO
FieldworkSystem1.07asanintermediateupdate)
SystemvariablessuchasSTOPWATCH[3]and_ISCATInolongerneedtobedefinedwith*VARSor
*TEXTVARS
Introduced*SCALERANGEtodefinealternatevaluesfora*SCALEquestionorfield
Introduced*INTROtospecifydifferentintroductiontextsbasedonthechannel(NIPOCATI,NIPOCAPI,
NIPOCAWI)aswellassetdialingintroductionscreens.
Newscriptcommand*HEADINGtocreateheadingsabovealistofcategories.

ChangesinNIPOODINScriptLanguage5.10
MinorupdatetomaketheNIPOODINScriptlanguageparserandenginesupportthelatestMicrosoft
FoundationClasses.

ChangesinNIPOODINScriptLanguage5.09
Asuspendimageisnowcorrectlyinterpretedtotheoriginalchannel(aswas)ratherthanthecurrent
channel(asis).

ChangesinNIPOODINScriptLanguage5.08
CompleterewriteoftheNIPOODINscriptlanguageforWindows32bitplatforms,introducinganumberof
newcommandsandanewapproachtohandlingscriptparsing,executionandsuspension.

Page16

VersionHistory

IntroducingComputerAssistedWebInterviewing(CAWI)foronlineinterviewing.
IntroducingtemplatesandstylesheetstoenhancethelookandfeelofCAWIquestionnaires(Seethe
NIPOODINHTMLGeneratorScripter'sGuidefordetails).
Introducingsampletables,storingsampledataindatabasefieldsratherthan(ASCII)Tfiles.
Introducingsuspendimages,whicharerecordingsofinterviewsupuntilappointments.Suspendimages
arereplayedbytheengine,preventingsmallchangestothequestionnairefromrestartingasuspended
interview.
Scriptsarenowparsedintoabytecodeformatandexecutedbyaruntimeengine,leadingtostricter
syntaxvalidationandfasterexecution.
Introducingchannelawarescripting,withsystemvariables_ISCATI,_ISCAWI,_ISCAPI,_ISCASI
and_CHANNELtocheckonwhatchannelthequestionnaireisbeingexecuted.
Newscriptcommand*SAMPLEDATAtoreferencesampletablefieldsdirectlyasvariables,ratherthan
usingpositionsinaTfile(the*ADDRESSscriptcommandnowautomaticallymapstopositionswithin
thesampletablefields)
Newscriptcommand*ORDERtodisplaycategoriesinanorderofmentionsandtoexecutea*REPEAT
loopinanorderofmentions.
Newscriptbrackets<<<!and!>>>toexecuteHTMLandJavaScriptinlineinCAWIquestionnaires.
Newscriptcommand*SQLGETtoretrievedatafromoneormorerowsinadatabasetable(otherthan
thesurvey'ssampletable).
Newscriptcommand*SQLPUT tostoredatainoneormoreexistingrowsinadatabasetable(other
thanthesurvey'ssampletable).
The*TABcommandnowdefinespercentagesofthescreenorwindowwidthratherthanamountsof
characters
Scriptcommand*LANGUAGEnowalsoacceptsanRTLparametertodisplayrighttoleftlanguages
suchasHebrewandArabiccorrectly.
The*RUNscriptcommandnowusesSTDRUN32.DLLtoexecuteWindows32bitapplications
SystemvariableSTOPWATCH[3]nownolongercountsthetimebetweensuspension(appointment)
andcontinuationofaninterview.

Page17

VersionHistory

ChangesinNIPOODINDeveloper
ChangesinNIPOODINDeveloper5.14
Forallexports,youcannowcombineIncludeopenendedanswersandRetainODINdataformat.The
openendedanswersareappendedasfixedlengthfieldsattheendofeachrecord.
Forallexports,openendedanswersarenowdefinedandexportedevenifnoopenendedanswershave
beengivenforanyoftheexportedinterviewrecords.
FixedanissueintheSPSSPCexportwhereusingdecimalsin*NUMBERdefinitionscausedthenexttwo
questionstorefertothesamedatafieldwhileshiftingallremainingdatapositions,whennotretaining
theNIPOODINDataformat.
Formultiplecodedquestions,theexportsettingUsecodenumbersforMultipleDichotomyfieldsno
longercreatesvariablesfortheentirerangeofcodesiftherearegapsinthecodenumberingofthe
question.
Forallexports,ifusingasinglequestionwithmultiple*OPENcodes,thecorrespondingvariablesareno
longercreatedinreverseorder.
Fixedanissuewheremultiple*OPENcodesinasinglequestioncausedtheexporttocreatetoomany
variables.
FixedanissuewhererunningaNIPOCAWIpreviewcouldpopupanerror"Aproblemoccurredwhile
writingthetemporaryhtmlfile,pleasecheckifyourtemplatedirectoryissetupcorrectly".
Fixedanissuewhere(rangesof)variableswerenotexportedbecausethefilteringsuggestedthese
variablesremainedempty.TheNIPOODINDevelopernolongermakesassumptionsaboutthecontents.
Fixedanissuewheretheerrormessage"Error:Illegalarrayindex:0"wasincorrectlyreportedforscripts
referringtoarrayindexesbyvariable.
Fixedanissuewherethemessage"Anerroroccurredduringimport:Cannotaccessaclosedfile"
appearedduringanNfieldCodeimport.
TheNIPOODINDevelopernolongercrashesonasyntaxcheckifaclosingquoteismissingina*BUT
buttontextdefinition.

ChangesinNIPOODINDeveloper5.11.003
AddedsupportforMicrosoftWindows7.
AnimportofanNfieldCodefilenolongerfailsonduplicateCodeFrames.

ChangesinNIPOODINDeveloper5.11
AddedaGridComposertoquicklyinsert*FORMquestionswithscales.
TheTemplateRelatedFilesdirectoryforNIPOCAPIandNIPOCAWIarenowseparately
configurable.
AddedNfieldCodeimportandexportfacilities.
YoucannowexportXfilesoftheNIPOCodingModule4.08toNfieldCode.

ChangesinNIPOODINDeveloper5.10

AddedQPSandQuantimeexports.
OpeninganINIfileofanomnibussurveynowcorrectlystartsthesubsurveysofsurvey.
*HEADINGtextsarenowcorrectlydisplayedinquestionpreviews.
Fixedanissuewheresomevariableswentmissingduringanexport.
Fixedanissuewhere*OPENendedcodescpi;dyieldinduplicatevariablenames.
FixedanoccasionalcrashwhenstartingorcheckingaCAWIquestionnaire.

Page18

VersionHistory

ChangesinNIPOODINDeveloper5.08

NIPOCATIpreviewnowsupports*NEXTRECORD.
Addedsyntaxhighlightingfornewcommands.
Fixedissuesintheoverviewofunusedquestionsinthesyntaxcheck.
FixedIBMSPSSexportissuewhereincorrectdatalistswereoccasionallysavedformultipledichotomies.
Exportof*FORM*SCALEquestionsofNIPODiananolongeroccasionallymixesuplabeltexts.
FixedanissueinimportingAscribedcodeddataifthecodedsurveywaspartofanOmnibus.

ChangesinNIPOODINDeveloper5.06
IntroducedaNIPOCAPIClientpreviewforquestionnairetesting.
YoucannowincludeopenendedanswersinexportstoSSSandSPSSPCdatasetswithouttheneedto
codethem.
Addedarightclickmenuoptiontoopenaquestionnairefilesetinthe*MERGEcommandorinthe
surveyconfigurationfile.
YoucanopenandsyntaxcheckallsurveyswithinanOmnibusquestionnairebyopeningthesurvey
configurationfilefortheOmnibus.

ChangesinNIPOODINDeveloper5.05

AddedanexporttotheIBMSPSSformat.
AddedanexporttotheQuantimeformat.
Addedanexportforbitmap(*BMP)andsoundrecordings((*REC)fromtheBfile.
Improvedexportof*FORMquestionswith*SCALEor*GRID.
Addedanoptiontoinsertcodenumbersinfrontrowsoftext.

Page19

VersionHistory

ChangesinNIPOODINDeveloper5.04
YoucannowsyntaxcheckandrunallquestionnaireswithinasingleomnibussurveybyopeningtheINI
configurationfile.
QuestionnairescannowbedisplayedinbidirectionallanguagessuchasHebrewandArabic.
TheResultswindowofasyntaxchecknowkeepstheresultsofprevioussyntaxcheckstocompare
differences.
Asyntaxchecknowissuesawarningfora*CODESquestionwithquestiontextbutwithoutcodes.
ThekeycombinationCTRL+SHIFT+8togglesdisplayingtabandspacecharacters.
Addedrightclicktoquicklyinsertquestiondefinitionsorchangequestionoptionsthroughdialogs.
Asyntaxchecknowissuesawarningifthequestionnairehasanyunfixedpositions.
Addedanexportto/importfromAscribefromLanguageLogic.
YoucannowselecttopreviewaquestionnaireinNIPOCATIorNIPOCAWI.
YoucannowselecttopreviewasinglequestioninNIPOCATIorNIPOCAWI.
Addedanoptiontoviewvariablecontents(NIPOCATIonly).
Addedanoptionaddorremovecomments(**)foraselectionoftext.
Fixingaquestionnaireautomaticallydefinesvariablesthathavenotpreviouslybeendefinedwith
*SAMPLEDATA,*VARSor*TEXTVARSas*TEXTVARS.
Addedanoptiontoremovecommandstocreate*LANGUAGEsectionsbasedonthequestionnaire.
YoucannowcreatequestionnairesinUnicode.
Apreviewofaquestionnaireallowsyoutotestroutingforstratificationreachedcases.
YoucannowuseregularexpressionsintheFinddialog.
AddedanoptionMarkallintheFinddialogtomarkeveryoccurrenceinthesidebar.
TheNIPOODINDevelopernowsupportsaworkbookmodeformultipledocumenthandling.
Thescripteditorwindownowsupportsconfigurablesyntaxhighlighting.
AddedaNIPODianaexport.
YoucannowconfigurethemaximumallowedrecordlengthforNIPOODINquestionnaires.
Thereisnowaseparatefileopenoptiontoopenfileswithamaximumrecordlengthof99,999.
Addedanautosaveoptiontoperiodicallysavebackupsofallopenedfiles.
YoucannowconfigurefiletypestolistinFile>OpenandFile>Save(as...)dialogs.
Addedasettingtooptionallyrememberthelastusedfiletypefilter.
Youcannowconfiguretoprintheaders,footersandlinenumbersinscriptprints.
Thesyntaxchecknowreportsanerrorifa*FORMquestiondoesnotcontainany*NUMBER,*ALPHA,
*GRIDor*SCALEfields.

DutchCommandSetDropped
TheDutchcommandsetforNIPOODIN,obsoletesincetheintroductionofNIPOFieldworkSystemproducts
forMicrosoftWindows,isnolongersupported.

MigratingSurveysFromNIPOODIN4.08
SurveyscriptsthathavepreviouslyrunontheNIPOODINInterviewSystemorNIPOCOMPASSmay
generallyrunwithoutproblemsontheNIPO32bitinterviewsoftware.However,duetotheintroductionof
ascriptparserandengineandseveralotherenhancementssuchassampletables,somechangesmaybe
necessarytorunasurveyasrequired.Checkyoursurveysagainstthissectionbeforedeployingitonany
NIPOSoftwaresystemthatusesthe32bitclientswiththeODINScriptlanguageversion5andabove.

Page20

VersionHistory

*WAITCRCommandDroppedforNIPOCATIandNIPOCAWI
Thescriptcommand*WAITCRhaslimitedsupportandisavailableforNIPOCAPIscriptsonly.Itisnolonger
supportedinNIPOCATIandnotsupportedforNIPOCAWI.

Dutchcommandsetnolongersupported
ItisnolongerpossibletousetheDutchcommandsetinNIPOODIN;youmustusetheEnglishequivalents.

ObsoleteCommandNames
AsofNIPOODIN5,thefollowingobsoletecommandnamescannolongerbeusedandmustbechangedto
theirnewmodernequivalent.
Replacedcommandsthatarenolongersupported
Oldcommand

Newcommand

*OR

*INCLUDE

*XOR

*EXCLUDE

*MOVE

*COPY

*PLAYWAIT

*WAITPLAY

*REPETE

*REPEAT

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

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

VerticalLineQuestionNotSupportedinNIPOCAPIandNIPOCAWI
TheverticallinequestionisnolongersupportedinNIPOCAPIandNIPOCAWI.
NIPOODIN4.08VerticalLineExample
*QUESTION 10 *LINE L3 *MIN [0] *MAX [-100]
Select your score in percentage.

Youshoulduseahorizontallineinstead,usingapositivenumberforthe*MAXparameter.

Page21

VersionHistory

*CENTREDoesNotProperlyCenterHeadingTexts
IntheNIPOCATIandNIPOCAPI,headingsarenotcenterediftheapplicationisconfiguredtocentercode
labels.Inthefollowingexample,headingtextswillleftaligntothecodes.
HeadingTextsExample
*QUESTION 10 *CODES L1
Choose your favorite brand:
*HEADING "German"
1: BMW
2: Mercedes
*HEADING "French"
3: Renault
4: Citroen

SelfModifyingScriptNoLongerSupported
Selfmodifyingscriptisscriptthatisabletochangeitselfatruntime.InNIPOODINthiswasdonebyplacing
scriptcommandsandcategoriesintextvariables,andthendisplayingthecontentofthatscriptvariableon
aparticularlineinthescript.Suchconstructionswerepossibleduetothenatureofthe4.08interpreter.
Withversion5aparserisintroducedthatcompilesthescript,requiringastrictsyntaxandmakingself
modifyingscriptimpossible.Belowareafewpopularexamplesofselfmodifyingscript,andalternatives
thatcanbeusedtoobtainthesameresultinNIPOODINScriptlanguageversion5andabove.
Example1:Insertingpictures
*TEXTVARS FIGURE
*PUT FIGURE "*PICT *?NR"
*QUESTION 1 *CODES L1 "*?FIGURE"

Sincethe*PICTcommandallowsvariableparameters,thisconstructioncanbeomitted.
Example1:NIPOODIN5Alternative
QUESTION 1 *CODES L1 *PICT [ NR ]

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

Thiskindofconstructioncanbeavoidedalltogetherbycreatingabetterfiltercondition.
Example3:Showingandhidingcodes
*TEXTVARS DONTKNOW
*IF [ Q2,1 ] *PUT DONTKNOW "9: Dont know"
*QUESTION 3 *CODES L1
Do you own a VCR?
1: Yes
2: No
*?DONTKNOW

Thiskindofconstructionmakesitimpossibletodeterminecodelistsonexports,andcanbeavoidedwith
*CONTROLon*DUMMYquestions:

Page22

VersionHistory

Example3:NIPOODIN5alternative
*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: Don't know

Ifmorethanonecodeneedstobetoggled,a*MULTIquestionshouldbeusedforQ4.Ifusinghighcode
numbersincombinationwith*MULTIcauseslargegapsinthedata,adummycanbereusedasrequiredby
clearingitscontentusing*EXCLUDE Q4 Q4.
Example4:Variablescalelength
*QUESTION 2 *NUMBER L1 *SAVE ScaleLen
How long do you want the scale to be?
*QUESTION 1 *FORM
1: *SCALE 61 [ScaleLen] 28

Variablescalelengtharenolongerpermitted,butstronglyrecommendedagainstfromamethodological
pointofview.Ifdifferentscalelengthsarerequired,useseparatequestions.

ForwardSlashesNoLongerSeparateCodeLabels
InODIN4.08multiplecodescouldbeplacedonasinglerowbyseparatingthembyforwardslashes.
ExampleofODIN4.08scriptusingcategoriesseparatedbyslashes
*QUESTION 5 *CODES L20 *MULTI
Which brand do you know?
1: Brand A
/ 4: Brand D / 7: Brand G
2: Brand B
/ 5: Brand E / 8: Brand H
3: Brand C
/ 6: Brand F / 9: Brand I
19: None of these

NIPOODIN5uses*AUTOand*NEWCOLUMNtocreatecolumnsofcodesautomatically:
AlternativeinNIPOODIN5
*QUESTION 5
Which brand
1: Brand A
2: Brand B
3: Brand C
4: Brand D
5: Brand E
6: Brand F
7: Brand G
8: Brand H
9: Brand I

*CODES L20 *MULTI *AUTO


do you know?

*NEWCOLUMN

*NEWCOLUMN

19: None of these *STOPAUTO

Note:
INNIPOCATIthecolumnsareonlycreatedifthepagebecomestoolongtofitinthewindow.Since
NIPOCAPIandNIPOCAWIarebrowserbasedtheheightofthewindowcannotbedecided;use
*NEWCOLUMNtoforcecolumnswhererequired.

Page23

VersionHistory

CopyingPositionsFromaTfileIsLimitedtoFieldLength
Sincetheintroductionofsampletables,theNIPOODINScriptlanguageinternallyreferencesdatabase
fields,evenwhencopyingdatafromaTfile.Positionsreferencedwith*ADDRESSaremappedtodatabase
fields.Thismeansthatyoucannotcopypositionsthatexceedthelengthofthedatabasefields.
Example
Script

Result

*PUT NAME 251L50

Only35positions(251285)arecopiedbecausethefield
DisplayField4islength35(251L35).

*MOVA 101L50 201L50

Only15positions(201215)arecopiedbecausethefield
DisplayField2islength35(181L35).

Takespecialcarewhencopyingdatafrom,orinto,literalpositionsusing*ADDRESS.Ifpossible,replace
*ADDRESSwithreferencestotheactualfieldnamesusing*SAMPLEDATA.

*AUTONotSupportedinNIPOCAWI
The*AUTOcommandisnotsupportedfortheNIPOCAPIandNIPOCAWIastheenginecannotdetermine
theheightofthebrowserwindow.Use*NEWCOLUMNtosplitthecategoriesintocolumns.

*INITblockisExecutedBeforeSuspendImage
Asuspendimagereplaysapreviously'recorded'interviewusingthecurrentquestionnaireupuntilthefirst
unansweredquestionbeforehandingbackcontroltotheinterviewerortherespondent.Thisfeatureis
usedtofollowupinterviewswithappointmentsorsuspendedCAWIinterviewsandcontinuewherethe
interviewwaslastleft.Inthe32bitclient,an*INITblockisusedtoexecutescriptbeforeresumingthe
interruptedinterview.Thisblockisexecutedbeforethesuspendimageisexecuted.
ThisissignificantlydifferentfromtheAfileimplementationintheNIPOInterviewSystem16bit,which
containedonlythecontentsofvariablesandthequestionnumberwheretoresume.The*INITblockis
executeddirectlybeforethequestionwheretheinterviewisresumed.Thismadeitpossibletomakechecks
onvariablesorquestionsthatwerefilledinaprevioussession.
Thismeanstheexecutionofthe*INITblockintheNIPOInterviewSystem32bitmayleadtodifferent
resultsascomparedtothe16bitversion,asvariablesandquestionswillnolongercontainvaluesfrom
previousruns.Thereforean*INITblockcannolongerrelyonvariablesfilledinpreviousinterview
sessions.
Ifthe*INITblockisusedtodisplaysomevariablesfromaprevioussession(likeacounter),youcanstore
thiscounterinthetelephonefileorsampletableandusethe*COPYcommandtoretrievethisdata.

SelectingAnotherCharacterSetinthe*FONTCommand
Itisnolongerpossibletochangethecodepagecharactersetwithinyourquestionnaire.UseUnicode
insteadwhenthedefaultcharactersetofWindowsdoesnotsupporttherequiredcharactersforthetarget
language.

Page24

VersionHistory

DuplicateInterviewNumbersinTfilesNoLongerContacted
WhenconductingasurveyusingTfiles,withtheintroductionofNIPOODIN5theNIPOFieldworkSystem
nowchecksifacompleted(successful,definitenonresponse)interviewforthatinterviewnumberwas
storedintheDfile(thefilecontainingthesuspendimagesorinterview'recordings').Ifthisisthecase,the
duplicateinterviewnumberisflaggedwithresponsecode26.Onlyifthereisnodefiniteresponsecodefor
thatinterviewnumber,therecordisreused.ThismeansthatreplacingaTfilenolongerallowsthereuseof
values.
WhenusingaTfileintheNIPOFieldworkSystem,interviewnumberscanbepresetinposition52L8before
startingasurvey.Thesenumbersneedtobe8digitswithleadingzerosandshouldbeunique.TheNIPO
FieldworkSystemdoesnotdistributeTfilerecordswithduplicateinterviewnumbers.Duplicateinterview
numbersareflaggedwithresponsecode26.

Stopwatch[1]andStopwatch[2]NotSupportedinNIPOCAPIandNIPOCAWI
SystemvariablesSTOPWATCH[1]andSTOPWATCH[2]arenotsupportedinNIPOCAPIandinNIPOCAWI
becausetheycannotbeproperlyoraccuratelyimplementedinanHTMLandJavaScriptinterface.

UsingCodeNumbersina*FORMQuestion

Page25

UsingtheNIPOODINDeveloper
TheNIPOODINDeveloperistheNIPOODINscriptauthor'stool.Itcanbeusedforthefollowingpurposes:

Create,editandsyntaxcheckquestionnairesforNIPOCATI,NIPOCAPIandNIPOCAWI
RunapreviewofthequestionnaireinNIPOCATI,NIPOCAPIorNIPOCAWI
CreateandeditpicturelibrariesforusewithNIPOODINquestionnaires
Generatedummy(test)datatoverifyquestionnaireintegrity
Exportsurveydataforstatisticalanalysisinvariouspackages.

ThissectionbrieflydiscussesanumberoffeaturesoftheNIPOODINDeveloper.

TheScriptEditorWindow
LineSize
AlineintheNIPOODINDevelopermaybeupto4000characterslong.Scrollinginaverylonglinemightbe
slowuseEdit>Gotopositiontoeasilyplacethecursoronacertainposition.Toopenlargerfiles,select
File>Opendatafile...fromthemenu.

ToggleDisplayingTabsandSpaces
ClickCTRL+SHIFT+8toshowthetabandspacecharactersintheNIPOODINDeveloper.Notethatthe*TAB
commandinyourquestionnairedoesnotinfluencetheeditoroftheNIPOODINDeveloper.Useapreview
toseetheliveresult.

PopupMenuOptions
Foranyopenfileinthescripteditorwindow,rightclickanywheretoopenthepopupmenu.Thissection
describesanumberofthoseoptions.
OpenQuestionnaireFile
Whenreferringtoanotherfileinyourquestionnaireusing*MERGEorinasurveyconfigurationfileyoucan
openthefilebyrightclickingtheselectingthefilenameinthetextandselectingOpenDocumentfromthe
popupmenu.
Examplequestionnaire
*MERGE INITQ

Examplesurveyconfigurationfile
[Files]
Q=""OMNIBUSQ" "TVQ" "PCQ" "CARQ" "ENDQ""

QuestionPreviewinNIPOCATI/CAWI/CAPI
RightclickalinewithaquestiondefinitionandselectQuestionPreviewfromthepopupmenutopreview
thequestioninNIPOCATI,CAWIorCAPI.Alternatively,selectODIN>QuestionPreviewfromthemenu.
Adialogappearstoentervaluesforrelevantvariablesusedinthequestion.Filtersareignored.

Page27

UsingtheNIPOODINDeveloper

InsertingQuestionDefinitions
TosimplifycreatingNIPOODINQuestionnaire,rightclicktheeditorwindowandselectInserttochoose
fromtheavailablequestionoptions.
Insertingaquestion

ChangingQuestionOptions
Rightclickonaquestionlinetochangethequestionoptions.Dependingonthetypeofquestion,oneofthe
followingdialogboxesappears.
Changingthegeneralquestionoptions

Page28

UsingtheNIPOODINDeveloper

Changingthequestionoptionsfora*CODESquestion

Changingthequestionoptionsfora*NUMBERquestion

Page29

UsingtheNIPOODINDeveloper

Changingthequestionoptionsforan*OPENquestion

Changingthequestionoptionsforan*ALPHAquestion

Page30

UsingtheNIPOODINDeveloper

Changingthequestionoptionsfora*SCALEquestion

Changingthequestionoptionsfora*LINEquestion

ChangingCodeOptions
Rightclickonacategorycodelinetochangethecodeoptions.Thefollowingdialogappears.

Page31

UsingtheNIPOODINDeveloper

Changingthecodeoptionsina*CODESquestion

GridComposer
AuserfriendlyGridComposerisavailabletogeneratethescriptingofgridsandscalesefficientlywith
adequatespacing.RightclicktheeditorwindowandselectInsert>Gridquestionfromthemenu.
EntersomeparametersintheInsertGridQuestiondialogandclickOK.Thescriptforthegrid/scalesis
insertedintothescriptintheQfile.Youcanquicklycreatethescriptofgrid/scalesof*MULTI, *SCALE,
*GRID, *NON,*CONTROL,VCONTROLcommandstobefurthermodifieduponyourneeds.
Examplegridcomposerentry

Page32

UsingtheNIPOODINDeveloper

Dialogdescription
Description

Meaning

QuestionNumber

Thequestionnumberforthisgrid/scales

Multipleanswersallowed

Checkthistoappend*MULTItoall*SCALEcommandsorthe*GRIDcommand

Noanswerallowed

Checkthistoappend*NONtothe*QUESTIONcommand

Statementsonthexaxis/yaxis Thelocationofthestatementsdeterminewhetherthecomposerwillgeneratea*GRIDor
oneormore*SCALEcommands.Ifthestatementsareonthexaxis,agridisgenerated
andall*CONTROL/*VCONTROLoptionsareavailable.
Ifthestatementsareontheyaxisoneormore*SCALEcommandsaregenerated.The
optiontohidethecolumnheaderwillbegrayedoutasthiscombinationisnotpossible)
Undercontrolofquestion

Selectingandenteringthequestionnumbertobedependentonresultsina*CONTROL
statementbeingaddedafterthe*QUESTIONstatement.

Include

SelectingresultsinaWafterthe*CONTROL/*VCONTROL,elseanNisgenerated.

Hidecolumnheaderifunder
control

Onlyavailablewhenstatementsareonthexaxistohidecolumnheadersifundercontrol.
Selectingitresultsin*VCONTROLreplacing*CONTROL.
Addanewstatementorscaleitem.

Deletethecurrentlyselecteditem.

Movethecurrentlyselecteditemupinthelist.

Movethecurrentlyselecteditemdowninthelist.

Reloadprevious

Reloadthedataofthelastinsertgrid.

Insert

InsertthescripttotheQfile.

Cancel

Cancelinsertionofagrid.

Note:
Thegridcomposerworksasawizard:onceinserted,thegridcomposercannolongerbeusedto
modifythegrid.Modificationsneedtobedonedirectlyonthescript.
Validityofthequestionnumberandcontrolquestionnumberinthegridcomposerarenotchecked
againstthequestionnaire.Runasyntaxchecktocheckforerrors.
Thesizeofthefieldassociatedwith*SCALEiscomputedbasedonstandardscalesthatstartfrom1.
If*SCALERANGEcommandwithnegativevaluesisused,thecomputedfieldlengthmayhastobe
manuallyadjusted.

Page33

UsingtheNIPOODINDeveloper

Example1usingtheGridComposer

Example1resultscript
*TAB 20, 40, 60, 80, 100
*QUESTION 2 *FORM *NON *VCONTROL Q1 W
Why do you buy them?
apple
orange banana pear
1:Easy to buy

*GRID L12 3.2 4.4 *MULTI

Easy to store
Inexpensive to buy

Example1resultoutputinNIPOCATI(assuming'orange'and'banana'notselected)

Page34

UsingtheNIPOODINDeveloper

Example2usingtheGridComposer

Example2resultscript
*TAB 20, 46, 72, 100
*QUESTION 2 *FORM *CONTROL Q1 W
Why do you buy them?
easy to buy
easy to store
1:apple *SCALE L3 3 1 *MULTI
2:orange
*SCALE L3 3 1 *MULTI
3:banana
*SCALE L3 3 1 *MULTI
4:pear *SCALE L3 3 1 *MULTI

inexpensive to buy

Example2resultoutputinNIPOCATI

SyntaxChecking
YoucannowsyntaxcheckyourquestionnairebyselectingODIN>Check>Check...fromthemenu.Adialog
appearsinwhichwarningoptionsmaybeconfigured.Warningsareissuesthatmayleadtounwanted
behaviorand/orlossofdata,butdonotpreventthequestionnairefromrunning.

Page35

UsingtheNIPOODINDeveloper

NIPOODINDevelopercheckoptions

Youmayselectthefollowingoptions:
Dontsuppresswarnings.Allwarningsarereported.
Suppressallwarnings.Noneofthewarningsarereported.
Suppress.Youcanselectwhichwarningstosuppress.
Thefollowingwarningsmayoptionallybesuppressed:
Toomanypositionsforquestion.Appliesifmorepositionsaredefinedthanstrictlyrequiredtostore
theinputdata.
MAXpositionsforDiana.Appliesifmorethan32,000positionsareused,whichistherecordlimitfor
NIPODiana.
Multipleuseofposition.Appliesifaparticularpositionisaccessedtostoreinformationfrommorethan
onequestion.Thismaycausethedatatobeoverwritten.
Jumptopreviousquestion.Appliesifa*GOTOisusedtojumpbackinsteadofforwardinthe
questionnaire,whichmaycauseaninfiniteloop.Itisrecommendedtouse*BACKinstead.
Codequestionwithoutcodes.Codequestionswithoutcodesareskipped,thereforeawarningcanbe
issuedifacodequestionmissescodes.
Missingquotes.Appliestoquotedtextwhereaclosingquoteismissing.
Maximumdatapositions
Setsthemaximumamountofpositionsallowedforasingleinterview.ThisisusefultomatchNIPOODINto
thelimitofthestatisticalsoftwareinuse.
Filterduplicateerrormessages
Thislimitsthenumberofreportspererrormessage.Forexample,duplicateuseofapositionintheUfile
mayonlyneedtobereportedonce.
Keeppreviousresults
Resultsofaprevioussyntaxcheckarenotclearedforanewsyntaxcheck.
Keepresultsafterclosingfile
KeepstheResultswindowopenoncethequestionnairefileisclosedintheeditor.

Page36

UsingtheNIPOODINDeveloper

WarningMessagefor*CODESQuestionWithoutCodeCategories
Ifnocodecategoriesaredefinedfora*CODESquestionawarningisdisplayeduponasyntaxcheck.No
warningissuppliedifaquestiontextisalsomissing.

WarningMessageforUnfixedQuestions
YoucantestrunaquestionnairewithintheNIPOODINDeveloperNIPOODINDeveloperwithunfixed
questions,butcannotrunthequestionnaireinNIPOCATI,NIPOCAWIorNIPOCAWIwithunfixed
questions.
TheNIPOODINDevelopergivesawarningmessageuponsyntaxcheckifanyunfixedquestions(length
definitionswithoutpositiondefinition)havebeendefinedintheNIPOODINQuestionnaire.Onlyone
warningisevergeneratedforthefirstlinewhereanunfixedquestionwasfound.
SelectODIN>FixorclicktheFixbuttontofixthequestions.

Erroron*FORMQuestionLanguageSectionMismatch
Thesyntaxcheckreportsanerrormessagewhena*FORMquestioninthelanguagesectiondoesnot
containanyfields(*NUMBER,*ALPHAor*SCALE).Thesyntaxcheckalsoreportsanerrormessagewhen
afield(*NUMBER,*ALPHAor*SCALE)isspecifiedinaquestionthatisnotdefinedas*FORM.

UndeclaredVariablesareCreatedwhenFixingaQuestionnaire
Ifavariableisnotdeclaredbeforeitisbeingused,awarningmessageappearsWhenfixingthedata
positionsorrenumberingaquestionnaire,thesevariablenamedeclarationsareautomaticallyaddedtothe
questionnaireas*TEXTVARSvariables.Makesurenomistakesaremadeinthevariablename,andverify
if*TEXTVARSisanappropriatetype.

ResultsWindowKeepsPreviousSyntaxChecks
TheResultswindowofasyntaxcheckkeepsprevioussyntaxchecks.Rightclickthewindowandselect
Removetabtoclosetheresultwindow.ClickonthecrossontheupperleftcornerorusetheView>
Resultsfromthemenutotoggleshowingthedockingwindow.

SyntaxcheckforOmnibusSurveys
Questionnairesthatarepartofanomnibus,mayusevariablesandquestionnumbersfromaprevious
questionnaireinthatomnibus.Iftheomnibus.INIfileislocatedinthesamedirectory,thesystem
checksallotherquestionnairesfromthatomnibus.

TestRunQuestionnaireinNIPOCATI/CAPI/CAWI
SelectODIN>RunfromthemenuandselecttopreviewthequestionnaireinNIPOCATI,CAPIorCAWI.

Page37

UsingtheNIPOODINDeveloper

CheckRoutingforStratification
Whenusingthecommand*STRATinaquestionnaire,foreachoccurrenceamessagedialogstratification
filled?Yes/Nopopsup.Selecttheappropriateanswertotestyourrouting.Notethatnotelephonefileor
sampletableisused.

ShowVariables
ForNIPOCATIandNIPOCAPIpreviews,youcanshowthecontentsofthecurrentlyknownvariablesby
selectingView>Viewvariables...fromthemenu.Notethatsystemvariables0through9andthe
CONJTXTvariablesarealwaysavailableevenifnotused.Othervariableshavetobedeclaredwith*VARS,
*TEXTVARSor*SAMPLEDATAfirst.

MenuOptions
OpenallQuestionnairesinOmnibusSurvey
Whenrunninganomnibussurvey,youcandoasyntaxcheckonthesurvey.INIfile.
Allquestionnaireswillbecheckedintheordertheyaredefinedinthesetting
Q=""name1" "name2"".
WhenscrollingthroughtheResultswindow(withthewarningsanderrors),theNIPOODINDeveloper
automaticallyopensallquestionnairesthatarepartoftheomnibus.Youcanalsoclickonalineinthe
Resultswindowtoopenaspecificquestionnaire.UseView>Workbookmodetomakeswitchingfromone
windowtoanothereasier.
Example
[Files]
Q=""OMNIBUSQ" "TVQ" "PCQ" "CARQ" "ENDQ""

Asyntaxcheckisperformedonall5questionnairesandwillopenallfilesthatarenotalreadyopened,when
youscrollthroughtheResultswindow.

OpenDataFiles
Theregularscripteditoriscapableofmanagingupto4,000horizontalpositions.Toopenlarger(data)files,
selectFile>OpenDataFile...fromthemenu.Thisopensfilesupto99,999horizontalpositions,andcancels
syntaxhighlighting.

RemoveCommands
Tobeabletocreateamultilanguagequestionnaire,selectODIN>RemoveCommands...fromthemenu.
Thisoptioncreatesatranslatable*LANGUAGEsectionwithoutNIPOODINcommands,exceptfor
*QUESTION,*FONTand*?varname,thatmaybelinkedtotheoriginalquestionnaireusingthe
*LANGUAGEcommand.

Comment/Uncomment
SelectablockoracoupleoflinesandselectEdit>Commenttomakecommentsoftheseline.Thisinsertsa
**infrontofallselectedlines.SelectEdit>Uncommenttoremovethe**fromtheselectedlines.

Page38

UsingtheNIPOODINDeveloper

CreateQuestionnairesinUnicode
Thismeansfullsupportforallnonwesternlanguages,likeHebrew,Arabic,Chinese,Japanese,etcetera.
UnicodeisenforcedbysavingthefileastypeUTF16.Verifythatsupportfortheselectedlanguageis
availableonthetargetedworkstations.

FindFunctionwithRegularExpressionsandMarkAll
SelectEdit>Findtosearchforspecifictextinyourquestionnaire.ClickMarkAlltomarkentriesfoundin
thesidebar.
Findfunction

StartEditorinWorkbookMode
SelectView>Workbooktoenableordisableshowingwindowsinaworkbookmode.Theworkbookmode
makesswitchingwindowseasier.

CreateCodeNumbersBeforeCodeLabelsandFields
Selectthelinesyouwanttonumber,thenselecttheODIN>Insertnumbersfromthemenu.Fillinthe
dialogasrequired.
TheNIPOODINDeveloperdoesnotimmediatelyverifycodenumbersagainstanyduplicatesoragainstthe
questiondefinition.Tocreateuniquenumbers,donotupdatepartiallists.Usethesyntaxchecktocheckon
duplicatecodenumbers.Numberingisperformedonalllinescontainingacarriagereturn
Creatingcodecategorynumbers

Page39

UsingtheNIPOODINDeveloper

Result:

TheNIPOODINDeveloper
TheNIPOODINDeveloperallowsyoutoexportyourdatatoavarietyofstatisticalsoftwarepackages.The
followingformatsaresupported:

NIPODiana/NvisionScript
TripleSXML
SPSSPortable
SPSSPC(scriptformat)
Ascribe
Quantime
Image/Sound

NIPODiana
TheexporttoNIPODianamaybeusedtocreatefilesthatmaybeusedbybothNIPODianaandNvision
Script.

Page40

UsingtheNIPOODINDeveloper

ExporttoNIPODianavariables

Choosethefollowingoptions:
Language
Ifmorethanonelanguageisdefinedwithinthequestionnaire,selectthelanguagetouseforthequestion
andcodelabelsintheexport.
Addfilterstovariables
Anyquestionnairefiltersarealsodefinedinthevariables.
Variablenameinfrontofquestiontext
Thequestionlabelisprecededbytheexportnameofthevariable.Optionallyaddalinefeedtothevariable
name.
UseCODEnifnocodetextspecified
Forcodecategorylabelswithouttext,alabeliscreatedcontainingtheword'CODE'followedbythecode
number.
Questionninfrontofquestiontext
Allquestiontextsareprecededbytheword"Question"followedbythequestionnumberoriginallyusedin
thequestionnaire.Optionallyaddalinefeedtothevariablename.
Writerandomandordernumbers
Where*RANDOMand*ORDERareusedwithapositiondefinition,thisstorestheorderinwhichthecodes
appearedduringthequestionnaireinanadditionalvariable.
Insert[LF]inquestiontext
Iflinefeedsareusedinthequestionlabels,thesearetransferredintheexport.Duplicatelinefeedsare
removed.Bydefault,linefeedsaretranslatedintospaces.

Page41

UsingtheNIPOODINDeveloper

Insert[LF]incodetext
Iflinefeedsareusedinthecodelabels,thesearetransferredintheexport.Duplicatelinefeedsare
removed.Bydefault,linefeedsaretranslatedintospaces.
Includequestionswithouttextandunusedquestions
Exportsquestionswithouttextandquestionsthatarenevershownduetorouting.Bydefaultthesearenot
exported.
Generatecodesforscalequestions
Generatescodenumbersfor*SCALEquestions.Bydefaulttheseareexportedasnumericalvariables.
Includenullevaluatingfilteranddummyquestions
Exportsquestionsthatuseafilterthatalwaysevaluatestofalse(forexample*IF [ 1 = 0])and
*DUMMYquestions.Bydefaultthesearenotexported.
Noduplicatetextfor*OPENand*NUMBERquestions
For*OPENand*NUMBERquestions,createsalabelwiththequestiontext,removingthelabelforthe
questiontext.
Maximumcodespervariable
Enforcesamaximumnumberofcodespervariable.Codesbeyondthislimitarenotexported.Thismaybe
requiredforNIPODiana,whichhasalimitof200variables.
Setlinelength
Setsthemaximumamountofcharacterstobeusedforquestionlabelsandcodelabelsonasinglerow.
Rowsaresplitusingthebackslashcharacter.Sentencesaresplitatcompletewords.
OpenVARfileafterexport
AutomaticallyopenstheexportedvariablefileintheNIPOODINDeveloper.
UnicodeVARfile
ExportsaUnicodevariablefileinsteadofanASCIIfile(supportedbyNvisionScriptonly).

CodeLabelExportsina*FORMQuestion
Ina*FORMquestion,alltextofacodelabel(bothbeforeandafterthedatafield)isusedfortheexportto
NIPODianavariables.
Exportingtextof*FORMquestion
*QUESTION 1 *FORM
How much did you pay for:
1: Product A
2: Product B

*NUMBER 61L3.2 Euros


*NUMBER 66L3.2 Euros

Isexportedas:
*V1_1 61L3.2: How much did you pay for: Product A
*V1_2 66L3.2: How much did you pay for: Product B

Page42

Euros
Euros

UsingtheNIPOODINDeveloper

RandomCodeNumberExportinNIPODiana
Exportingrandomorder
*QUESTION 2 *CODES 81L9 *RANDOM 90L3 *CONTROL Q1 N
Which of the following brands of beers do you know?
(Int: read out)
1:
2:
3:
8:
9:

Heineken
Amstel
Grolsch
Other *OPEN *NOCON
None *NMUL *NOCON

Isexportedas:
*V2 *MV 81L9:V2[LF]Question 2[LF]Which of the following brands of brands of beers do you
know? (Int: read out)
1: Heineken
2: Amstel
3: Grolsch
8: Other
9: None
*V2_R1 *SNG 90L1:V2_R1[LF]Question 2 - Random nr. 1[LF]Which of the following brands of
brands of beers do you know? (Int: read out)
1: Heineken
2: Amstel
3: Grolsch
8: Other
9: None
*V2_R2 *SNG 91L1:V2_R2[LF]Question 2 - Random nr. 2[LF]Which of the following brands of
brands of beers do you know? (Int: read out)
1: Heineken
2: Amstel
3: Grolsch
8: Other
9: None
*V2_R3 *SNG 92L1:V2_R3[LF]Question 2 - Random nr. 3[LF]Which of the following brands of
brands of beers do you know? (Int: read out)
1:
2:
3:
8:
9:

Heineken
Amstel
Grolsch
Other
None

OrderCodeNumberExportinNIPODiana
Exportingorderofmentions
*QUESTION 1 *CODES 61L9 *MULTI 70L3
Which brands of beers do you know?
(Int: type the codes in the same order as mentioned by respondent)
1:
2:
3:
8:
9:

Heineken
Amstel
Grolsch
Other *OPEN
None *NMUL

Page43

UsingtheNIPOODINDeveloper

Isexportedas:
*V1 *MV 61L9:V1[LF]Question 1[LF]Which brands of beers do you know? (Int: type
the same order as mentioned by respondent)
1: Heineken
2: Amstel
3: Grolsch
8: Other
9: None
*V1_O1 *SNG 70L1:V1_O1[LF]Question 1 - Order nr. 1[LF]Which brands of beers do
(Int: type the codes in the same order as mentioned by respondent)
1: Heineken
2: Amstel
3: Grolsch
8: Other
9: None
*V1_O2 *SNG 71L1:V1_O2[LF]Question 1 - Order nr. 2[LF]Which brands of beers do
(Int: type the codes in the same order as mentioned by respondent)
1: Heineken
2: Amstel
3: Grolsch
8: Other
9: None
*V1_O3 *SNG 72L1:V1_O3[LF]Question 1 - Order nr. 3[LF]Which brands of beers do
(Int: type the codes in the same order as mentioned by respondent
1: Heineken
2: Amstel
3: Grolsch
8: Other
9: None

the codes in

you know?

you know?

you know?

Exportsof*FORMQuestionswithCodes
Exportsof*FORMquestionsusingcodesforfieldsappropriatelynumbersvariablesaccordingtothecode
numbers.Thelabeliscreatedfromallsuccessivetextforthatcode.Notethatina*SCALEor*GRID
questiontheappropriatecolumnheadersareexportediftabshavebeenusedcorrectlytoseparatethese.
Examplescript1
*QUESTION 1 *FORM
What is your address?
1:
2:
3:
4:

Street
*ALPHA 61L35
House number
*NUMBER 96L5
Postal code *ALPHA 101L10
City *ALPHA 111L30

ResultexporttoNIPODianascript1
*V1_1
*V1_2
*V1_3
*V1_4

*TEK
*SNG
*TEK
*TEK

61L35: What is your address? Street


96L5: What is your address? House number
101L10: What is your address? Postal code
111L30: What is your address? City

Examplescript2
*QUESTION 2 *FORM
What did you think of the service at the following gas stations?
Esso
1:Very good
Good
Average
Poor
Very poor
No opinion

Mobil Oil
Shell
*GRID 141L5 6.1 4.10

Texaco

Inthescriptabove,tabsareusedtospacecolumnheaders.Notethatthereisalsoatabbetweenthelabel
andthe*GRIDonthefirstline,andthatboththecolumnheaderandthefirstlineareendedwithaspace
andtab.

Page44

UsingtheNIPOODINDeveloper

ResultexporttoNIPODianascript2
*V2_1 141L1: What
1:Very good
2:Good
3:Average
4:Poor
5:Very poor
6:No opinion
*V2_2 142L1: What
1:Very good
2:Good
3:Average
4:Poor
5:Very poor
6:No opinion
*V2_3 143L1: What
1:Very good
2:Good
3:Average
4:Poor
5:Very poor
6:No opinion
*V2_4 144L1: What
1:Very good
2:Good
3:Average
4:Poor
5:Very poor
6:No opinion

did you think of the service at the following gas stations?

Esso

did you think of the service at the following gas stations?

Mobil Oil

did you think of the service at the following gas stations?

Shell

did you think of the service at the following gas stations?

Texaco

TripleSXML
TripleSXMLisaopenstandarddataformatusingXML.Itissupportedbyavarietyofproducts,including
butnotlimitedto:

Bellview
CfMCSurvent
Merlin
Miriad(TNS)
Preport
SNAP

AnexporttoTripleSrequiresthatthesurveydatafileispresentinsamethedirectoryasthequestionnaire
thatisexported.ForaquestionnaireNAMEQ,thedatafileshouldbenamedNAME.DAT.

Page45

UsingtheNIPOODINDeveloper

ExporttoTripleSXML

ExporttoTripleSversion
SetstheTripleSformattouse.Checkyourstatisticalanalysispackagefordetails.Supportedexportsare
1.1,1.2and2.0.
Datafileformat
Setsthedatafileformatfortheexport,eitherfixedorcsv(characterdelimited).Thisisonlysupportedfor
TripleSversion2.0.
Converttextusingcodepage
Selectthecodepagetoconverttheexportinto.Makesuretheselectedcodepagematchesthelanguageof
yourquestionnaire.
Subsurvey
Selectwhichsurveytoexportif*NEWwasusedwithinthequestionnaire.
Language
Ifmorethanonelanguageisdefinedwithinthequestionnaire,selectthelanguagetouseforthequestion
andcodelabelsintheexport.
Includealphanumericquestions
Include*ALPHAand*NUMBERquestionsintheexport.
Includequestionswithouttextandunusedquestions
Exportsquestionswithouttextandquestionsthatarenevershownduetorouting.Bydefaultthesearenot
exported.
Includenullevaluatingfilteranddummyquestions
Exportsquestionsthatuseafilterthatalwaysevaluatestofalse(forexample*IF [ 1 = 0])and
*DUMMYquestions.Bydefaultthesearenotexported.
Recodequestionscontainingcode'0'
Code0forcodecategoriesisbydefaultnotsupportedintheTripleSXMLformat.Thisoptionrecodescode
labelsifcode0wasusedinthequestionnaire.

Page46

UsingtheNIPOODINDeveloper

Includeopenanswers
Inadditiontooptionallycodedopenendedquestions,thisexportsopenendedanswerverbatimintothe
datafile.
Openanswerlength
Setsthemaximumnumberofcharacterstobeusedforopenendedanswers.Answersbeyondthelength
limitaretruncated.
CheckQPScompliance
CheckscompliancewithTripleSexportsforQPS.Ifthecomplianceisnotmet,awarningmessageis
displayed.
OpenSSSfile
AutomaticallyopenstheTripleSvariabledefinitionfileintheNIPOODINDeveloperafterexport.
ThefollowingcharactersinthequestionandcodetextareescapedwhenexportingtoTripleSXML:

<isreplacedby&lt;
>isreplacedby&gt;
&isreplacedby&amp;
'isreplacedby&apos;
"isreplacedby&quot;

SPSSPortable
AnexporttoSPSSPortablerequiresthatthesurveydatafileispresentinsamethedirectoryasthe
questionnairethatisexported.ForaquestionnaireNAMEQ,thedatafileshouldbenamedNAME.DAT.
ExporttoSPSSPORfile

Subsurvey
Selectwhichsurveytoexportif*NEWwasusedwithinthequestionnaire.
Language
Ifmorethanonelanguageisdefinedwithinthequestionnaire,selectthelanguagetouseforthequestion
andcodelabelsintheexport.
Converttextusingcodepage
Selectthecodepagetoconverttheexportinto.Makesuretheselectedcodepagematchesthelanguageof
yourquestionnaire.

Page47

UsingtheNIPOODINDeveloper

RetainODINdataformat
Notavailableforthisformat.
Includeopenanswers
Notavailableforthisformat.
Maxrecordlength
Themaximumnumberofpositionsofasinglerecord.Checkyourstatisticalanalysissoftwareforthelimits.
Longerrecordsaresplitattheconfiguredthreshold.
Includequestionswithouttextandunusedquestions
Exportsquestionswithouttextandquestionsthatarenevershownduetorouting.Bydefaultthesearenot
exported.
Includenullevaluatingfilteranddummyquestions
Exportsquestionsthatuseafilterthatalwaysevaluatestofalse(forexample*IF [ 1 = 0])and
*DUMMYquestions.Bydefaultthesearenotexported.
Includesavescript
Notavailableforthisformat.
Variablenameinfrontofquestiontext
Thequestionlabelisprecededbytheexportnameofthevariable.Optionallyaddalinefeedtothevariable
name.
Questionninfrontofquestiontext
Allquestiontextsareprecededbytheword"Question"followedbythequestionnumberoriginallyusedin
thequestionnaire.
UsequestionID'sasvariablenames
Ifspecified,usenamesdefinedwith*VARasvariablenames.
Usealternativenamesforrandomandordervariables
Usesaslightlyshorterformatfor*RANDOMand*ORDERvariables,wherethedefaultfirstletterisreplaced
byRorOrespectively.
Writerandomandordernumbers
Where*RANDOMand*ORDERareusedwithapositiondefinition,thisstorestheorderinwhichthecodes
appearedduringthequestionnaireinanadditionalvariable.
UsecodenumbersforMultipleDichotomyfields
Bydefault,for*MULTIquestionsallcodesareexportedasmultipledichotomyquestions(mentioned/not
mentioned).Thisoptionplacestheoriginalcodenumberinthequestionlabelforthesequestions.
Textformentioned
Formultipledichotomyquestions,setsthelabeltobeusedfor'mentioned'.
Textfornotmentioned
Formultipledichotomyquestions,setsthelabeltobeusedfor'nomentioned'.
Variablenamelength
Setsthemaximumlengthforvariablenames.Chooseeither8or64,dependentonyourSPSSversioninuse.
Variablelabellength
Setsthemaximumlengthforthevariablelabel(thequestiontext).Longertextsaretruncatedatthe
threshold.
Valuelabellength
Setsthemaximumlengthforthevaluelabel(thecodelabeltext).Longertextsaretruncatedatthe
threshold.

Page48

UsingtheNIPOODINDeveloper

Variablenamesfirstletter
Setsthefirstletterforanexportedvariablename.ThisonlyhappensquestionIDsarenotused,orifthe
questiondoesnothaveaquestionIDdefined(*VAR).
Numberofcharsfrommultiquestion
Bydefault,multipledichotomyquestionsreceivethefulloriginalquestiontextinadditiontothecodelabel.
Thisoptionconfiguresthemaximumnumberofcharactersfromthequestionlabeltoinclude.
Note:
Theselectedsettingsforvariablenamesmaycausetheexporttogeneratevariablenamesthat
exceedthemaximumnumberofcharactersfortheSPSSversionyouareusing.Awarningisissued
fortheminimumlimitforolderversionsadjustthesettingsifrequired.

SPSSPC
AnexporttoSPSSPCscriptfilesrequiresthatthesurveydatafileispresentinsamethedirectoryasthe
questionnairethatisexported.ForaquestionnaireNAMEQ,thedatafileshouldbenamedNAME.DAT.This
exportcreatestwofiles:avariabledefinitionfile(SPSfile)andadatafile(EXTfile).RuntheSPSfilein
SPSStocreatethedataset.
ExporttoSPSSPC(scriptfiles)

Subsurvey
Selectwhichsurveytoexportif*NEWwasusedwithinthequestionnaire.
Language
Ifmorethanonelanguageisdefinedwithinthequestionnaire,selectthelanguagetouseforthequestion
andcodelabelsintheexport.
Converttextusingcodepage
Selectthecodepagetoconverttheexportinto.Makesuretheselectedcodepagematchesthelanguageof
yourquestionnaire.
RetainODINdataformat
Keepstheexporteddatafile(EXTfile)inthesameformatastheoriginalNIPOODINdatafile(DATfile).
Includedopenendedanswers,ifany,areappendedattheendofeachrecord.
Includeopenanswers
Includesopenendedanswerverbatiminthedatafileasadditionalvariables.

Page49

UsingtheNIPOODINDeveloper

Maxrecordlength
Themaximumnumberofpositionsofasinglerecord.Checkyourstatisticalanalysissoftwareforthelimits.
Longerrecordsaresplitattheconfiguredthreshold.
Includequestionswithouttextandunusedquestions
Exportsquestionswithouttextandquestionsthatarenevershownduetorouting.Bydefaultthesearenot
exported.
Includenullevaluatingfilteranddummyquestions
Exportsquestionsthatuseafilterthatalwaysevaluatestofalse(forexample*IF [ 1 = 0])and
*DUMMYquestions.Bydefaultthesearenotexported.
Includesavescript
Includestheline"SAVE OUTFILE='survey.SAV' /COMPRESSED"wheresurveyisthenameof
thesurvey.
Variablenameinfrontofquestiontext
Thequestionlabelisprecededbytheexportnameofthevariable.Optionallyaddalinefeedtothevariable
name.
Questionninfrontofquestiontext
Allquestiontextsareprecededbytheword"Question"followedbythequestionnumberoriginallyusedin
thequestionnaire.
UsequestionID'sasvariablenames
Ifspecified,usenamesdefinedwith*VARasvariablenames.
Usealternativenamesforrandomandordervariables
Usesaslightlyshorterformatfor*RANDOMand*ORDERvariables,wherethedefaultfirstletterisreplaced
byRorOrespectively.
Writerandomandordernumbers
Where*RANDOMand*ORDERareusedwithapositiondefinition,thisstorestheorderinwhichthecodes
appearedduringthequestionnaireinanadditionalvariable.
UsecodenumbersforMultipleDichotomyfields
Bydefault,for*MULTIquestionsallcodesareexportedasmultipledichotomyquestions(mentioned/not
mentioned).Thisoptionplacestheoriginalcodenumberinthequestionlabelforthesequestions.
Textformentioned
Formultipledichotomyquestions,setsthelabeltobeusedfor'mentioned'.
Textfornotmentioned
Formultipledichotomyquestions,setsthelabeltobeusedfor'nomentioned'.
Variablenamelength
Setsthemaximumlengthforvariablenames.Chooseeither8or64,dependentonyourSPSSversioninuse.
Variablelabellength
Setsthemaximumlengthforthevariablelabel(thequestiontext).Longertextsaretruncatedatthe
threshold.
Valuelabellength
Setsthemaximumlengthforthevaluelabel(thecodelabeltext).Longertextsaretruncatedatthe
threshold.
Variablenamesfirstletter
Setsthefirstletterforanexportedvariablename.ThisonlyhappensquestionIDsarenotused,orifthe
questiondoesnothaveaquestionIDdefined(*VAR).

Page50

UsingtheNIPOODINDeveloper

Numberofcharsfrommultiquestion
Bydefault,multipledichotomyquestionsreceivethefulloriginalquestiontextinadditiontothecodelabel.
Thisoptionconfiguresthemaximumnumberofcharactersfromthequestionlabeltoinclude.
Note:
Theselectedsettingsforvariablenamesmaycausetheexporttogeneratevariablenamesthat
exceedthemaximumnumberofcharactersfortheSPSSversionyouareusing.Awarningisissued
fortheminimumlimitforolderversionsadjustthesettingsifrequired.

Ascribe
OpenendedanswersinNIPOFieldworkSystemsurveysmaybecodedusingLanguageLogic'sonlinecoding
solutionAscribe.Ascribeimportscodingprojectsusingaproprietary(ZIPcompressed)XMLformat.
AnexporttoAscriberequiresthatthesurveydatafileispresentinsamethedirectoryasthequestionnaire
thatisexported.ForaquestionnaireNAMEQ,thedatafileshouldbenamedNAME.DAT.
AscribeExport

Language
Ifmorethanonelanguageisdefinedwithinthequestionnaire,selectthelanguagetouseforthequestion
andcodelabelsintheexport.
Codeframefile
Iftheprojectwaspreviouslycoded,thecurrentquestionnairemaynotcontaintherequiredCodeFrames.
SelecttheAscribeCodeFramefiletouseforcoding.
Incremental
CheckthisoptionifyouplantoaddthecurrentexporttoanexistingAscribeproject.Usethisfeaturetoadd
newdatatoanexistingproject.
Theresultfileiscalled[surveyname]_setup.zipwheresurveynameisthenameofyoursurvey.
SeetheAscribedocumentationfordetailsonhowtocreateaprojectfromthisfileorhowtoadd
incrementaldatatoanexistingproject.

Quantime
AnexporttoQuantimerequiresthatthesurveydatafileispresentinsamethedirectoryasthe
questionnairethatisexported.ForaquestionnaireNAMEQ,thedatafileshouldbenamedNAME.DAT.
ExporttoQuantime
Includequestionswithouttextandunusedquestions
Exportsquestionswithouttextandquestionsthatarenevershownduetorouting.Bydefaultthesearenot
exported.

Page51

UsingtheNIPOODINDeveloper

Includenullevaluatingfilteranddummyquestions
Exportsquestionsthatuseafilterthatalwaysevaluatestofalse(forexample*IF [ 1 = 0])and
*DUMMYquestions.Bydefaultthesearenotexported.

Subsurvey
Selectwhichsurveytoexportif*NEWwasusedwithinthequestionnaire.
Language
Ifmorethanonelanguageisdefinedwithinthequestionnaire,selectthelanguagetouseforthequestion
andcodelabelsintheexport.
Converttextusingcodepage
Selectthecodepagetoconverttheexportinto.Makesuretheselectedcodepagematchesthelanguageof
yourquestionnaire.
Variablelabellength
Setsthemaximumlengthforthevariablelabel(thequestiontext).Longertextsaretruncatedatthe
threshold.
Valuelabellength
Setsthemaximumlengthforthevaluelabel(thecodelabeltext).Longertextsaretruncatedatthe
threshold.
Side
Definesthedefaultleftcolumnwidthforthequestiontextandcodelabels.
Variablenameinfrontofquestiontext
Thequestionlabelisprecededbytheexportnameofthevariable.Optionallyaddalinefeedtothevariable
name.
Questionninfrontofquestiontext
Allquestiontextsareprecededbytheword"Question"followedbythequestionnumberoriginallyusedin
thequestionnaire.
Usevariablenames
Insteadofautomaticallyassigningquestionvariablenamesbasedonquestionnumbers,usethelabels
definedby*VAR.

Page52

UsingtheNIPOODINDeveloper

Includequestionswithouttextandunusedquestions
Exportsquestionswithouttextandquestionsthatarenevershownduetorouting.Bydefaultthesearenot
exported.
Includenullevaluatingfilteranddummyquestions
Exportsquestionsthatuseafilterthatalwaysevaluatestofalse(forexample*IF [ 1 = 0])and
*DUMMYquestions.Bydefaultthesearenotexported.

Images/Sound
Ifeither*BMPor*RECareusedintheNIPOODINquestionnaire,thesemaybeexportedasseparateimage
andsoundfiles.Bitmapfilesareexportedas*.BMPfilesandrecordingsareexportedas*.WAVfiles.
ExportImages/Sound(extractBfile)

Bfile
SelecttheBfiletoextract.
Location
Specifyadirectorywheretheextractedfilesmustbeplaced.
Filenamesaregeneratedautomatically.AseparatefileiscreatedforimageorwaveclipintheBfile.The
followingnamingconventionisused:
I<i>_S<s>_P<p>_L<l>_C<c>.BMP
I<i>_S<s>_P<p>_L<l>_C<c>.WAV
Where:

<i>Interviewnumber
<s> Subsurveynumber
<p> PositiondefinitioninUfile
<l> LengthdefinitioninUfile
<c> Codeiftheanswerisrelatedtoacodecategory

NfieldCode
ThisexportscreatesanimportfileforNfieldCode,thesuccessortotheNIPOODINCodingModule.
ExporttoNfieldCode

Usevariablelabelsifpresent
Uselabelsdefinedwith*VARand*LABEL.

Page53

UsingtheNIPOODINDeveloper

Includeappointmentnotes
Includesappointmentnotesasaseparateopenendedquestion.
Includesnotestoclosedquestions
Includesforcedopenendedanswersonclosedquestionsasopenendedquestions.
Language
Selectsthenameoftheoriginallanguageinwhichthequestionnairewasscripted.Notethattheexport
alwaysusesthecodeframedefinedbythedefaultlanguage(theoriginalscript)otherlanguagescannot
beexported.
TheexportedfileissavedwiththenameofthesurveyfileandtheextensionNFC.Thisfilemustbe
importedinNfieldCodetocreateanNfieldCodeproject.

ExportXFile
ThisexportallowsyoutoexportNIPOCodingModulecodingfilestoNfieldCode.
ExportXfiletoNfieldCode

Xfile
SelectstheXfiletoexporttoNfieldCode.
Destination
Setsadestinationdirectorytoexportthecodeframefileto.NotethatNfieldCodeexportsallcodeframes
intheXfileandthereforemaycreatemultiplefiles.
Language
Selectsthenameoftheoriginallanguageinwhichthequestionnairewasscripted.Notethattheexport
alwaysusesthecodeframedefinedbythedefaultlanguage(theoriginalscript)otherlanguagescannot
beexported.
Filesaresavedinthefollowingformat:
[Surveyname]X_[SubquestionnaireNumber]_[Position]_[Length]{C[Code]}.nfcf
ThePositionandLengthparameterscorrespondtothequestionpositionandlengthasspecifiedin
thequestionnaire.IftheCodeFrameispartofasemiopenendedquestion,Codespecifiesthecode
numberonwhichthe*OPENcommandwasused.

Imports
TheimportsfortheNIPOODINDeveloperareusedtoimportopenendedcodingprojectsfromNfieldCode
orAscribe.ThisreimportsdatapreviouslyexportedtoNfieldCodeorAscribe.Theseimportsimmediately
startanexportforthedataanalysissoftwareselectedintheimportdialog.

Ascribe
ThisimportsanAscribeexportfile.OnceaprojecthasbeenpartiallyorfullycodedinAscribe,itmaybe
usedtomergethecodedopenendedanswersbackintothedatafile.

Page54

UsingtheNIPOODINDeveloper

Sincethisimportissuesandexport,itrequiresthatthesurveydatafileispresentinsamethedirectoryas
thequestionnairethatisexported.ForaquestionnaireNAMEQ,thedatafileshouldbenamedNAME.DAT.
Ascribeimport

Language
Setsthetranslationtouseasdefinedwithinthecodingproject.Thisonlyappliesifmultipletranslationsof
questionsandcodeshavebeenmade.
Inputfile
Selectsthe.ZIPexportfiletouse.Notethatthisexportfilemustmatchthecurrentlyopened
questionnairefile.
Convertsingletomultiifcodedmulti
Ifanypreviouslysinglecodedquestionshavebeenchangedtomultiplecodedquestions,theyare
converted.Otherwise,onlythefirstselectedcodeisaccepted.
Outputformat
Setstheexporttypetobeused.Confirmingthisdialogbringsyoutotherelevantexportdialog.

NfieldCode
ThisimportsanNfieldCodeexportfile.OnceaprojecthasbeenpartiallyorfullycodedinNfieldCode,it
maybeusedtomergethecodedopenendedanswersbackintothedatafile.
Sincethisimportissuesandexport,itrequiresthatthesurveydatafileispresentinsamethedirectoryas
thequestionnairethatisexported.ForaquestionnaireNAMEQ,thedatafileshouldbenamedNAME.DAT.

Page55

UsingtheNIPOODINDeveloper

NfieldCodeimport

Language
Setsthetranslationtouseasdefinedwithinthecodingproject.Thisonlyappliesifmultipletranslationsof
questionsandcodeshavebeenmade.
Inputfile
Selectsthe.NFCexportfiletouse.Notethatthisexportfilemustmatchthecurrentlyopened
questionnairefile.
Outputformat
Setstheexporttypetobeused.Confirmingthisdialogbringsyoutotherelevantexportdialog.

NIPOODINDeveloperConfiguration
TemplatedRelatedFilesFolderConfiguration
BothNIPOCAPIandNIPOCAWIusetemplatestostylethequestionnaires.InthetoolsbaroftheNIPOODIN
Developer,youcanconfigurethelocationoftheTemplateRelatedFilesfolderforeither.Youcan
alsoselectapreviouslyconfiguredTemplateRelatedFilesfolder.
TheconfiguredfoldermusthavethenameTemplateRelatedFilesfolder.Foreachsurvey,asub
folderwiththesurveynamemustbeplaced.ThisiswhereyoustorethesurveyspecificCSSfiles,
OdinTemplatefilesandanyadditionalfilesrequiredbyeither.TheDefaultfoldercontainsthetemplates
andstylesheetsthatareusedincaseanysurveyspecificfileisnotsupplied.
ThefolderstructureoftheTemplateRelatedFilesfoldermatchesthefolderstructurefortheWaiting
Room.IfanyWaitingRoomisconfiguredforuseonthenetwork,itmaybeusedinstead.Notehoweverthat
previewfilesarestoredinarelativepath,soyoumusthavefullread/writeaccesstothislocation.
Note:
AlthoughitispossibletoconfigurethesameTemplateRelatedFilesfolderforbothNIPO
CAWIandNIPOCAPI,thisisnotrecommendedduetosubtledifferencesinstylingandclassnames
betweenthetwochannels.

Page56

UsingtheNIPOODINDeveloper

SyntaxHighlighting
TheNIPOODINDeveloperallowsforscripthighlightinginthescripteditor.Youcandefinetheeditorfont
andtheforegroundandbackgroundcolorsfor:

Text
Textselection
Number
Comment(remarks)
Keywords(NIPOODINcommands)
Routingcommands
Variabledeclarations

SelectODIN>Fonts...fromthemenutoconfiguresyntaxhighlighting.
Note:
Syntaxhighlightingdoesnotworkinbidirectional(Hebrew,Arabic)mode.

ApplicationConfigurationOptions
SelectSettings>Optionsfromthemenutochangetheapplicationconfigurationoptions.Theseare
describedinthissection.
ODINOptions
Thisdialogsetsvariousoptionsforthepopupmenuactiontoinserttemplatequestions.
NIPOODINDeveloperODINoptions

Page57

UsingtheNIPOODINDeveloper

Lengthmultipleanswer
Setsthedefaultlengthinsertedformultiplecodedquestions.
Lengthopenended
Setsthedefaultlengthinsertedopenendedquestions.
Makeopenalwaysmulti
Adds*MULTItothe*OPENquestiontemplate.
InterviewSystemOptions
TheconfigurationoptionsintheInterviewSystemsectionconfiguretheapplicationfilelocationsforthe
NIPOCATI,NIPOCAPIandNIPOCAPIpreviewsandvariouspreviewrelatedmatters.
NIPOODINDeveloperInterviewSystemOptions

InterviewSystemOptions
Runinterviewsystemsintestmode
Whenintestmode,noresultdataisstoredforatestinterview.Otherwise,UfileandOfiledataiscreated
fromapreview.
Displaystratificationdialog
Forevery*STRATcommandinthequestionnaire,thepreviewasksifitshouldfollowtheroutingfor
'stratificationreached'.Notethatnostratificationfileorsampleistestedforthisoption.
Unicodedata
Whennotintestmode,thisoptionstorestheUfileandOfilerecordsinUnicode.

Page58

UsingtheNIPOODINDeveloper

CATI
CATIClient
SetsthelocationoftheNIPOCATIClientapplication,whichisrequiredfortheNIPOCATIpreview.By
defaultitcanbefoundintheNIPOODINDeveloperapplicationdirectory.SelectODQES.EXEforthenon
UnicodeversionorODQESU.EXEfortheUnicodeversion.
Adjustablescreensize
AllowstheNIPOCATIClientwindowtoberesized.Bydefaultthewindowismaximizedandappearsontop
ofallotherapplications.
Singleshot
Ifset,automaticallyendsthepreviewattheendofthequestionnaire.Otherwise,itrestarts.
CAWI
OdDemonlocation
SetsthelocationoftheNIPOODINDemon,whichisrequiredtostarttheNIPOCAWIpreview.Bydefaultit
canbefoundintheNIPOODINDeveloperapplicationdirectory.ThefiletoselectiscalledOddemon.exe.
ShowquestionID's
Ifselected,displaysthequestionnumberanddefinition.
CAPI
CAPIClient
SetsthelocationoftheNIPOCAPIClientapplication,whichisrequiredfortheNIPOCAPIpreview.By
defaultitcanbefoundinasubdirectoryCAPI Preview intheNIPOODINDeveloperapplication
directory.ThefiletoselectiscalledCAPIPreview.exe.
Inaddition,clicktheConfigurebuttontoconfigureoptionsfortheNIPOCAPIPreview.SeetheNIPOCAPI
ClientUser'sGuideforinformationontheconfigurationoptions.
CodingSystemOptions
TheCodingSystemoptionsareobsoleteinthisversionoftheNIPOODINDeveloper.
CheckOptions
TheCheckoptionsconfigurevariousoptionswithregardtoasyntaxcheckofthequestionnaire.

Page59

UsingtheNIPOODINDeveloper

NIPOODINDeveloperCheckOptions

SuppressWarnings
Syntaxcheckwarningsareissueswithinthescriptthatmayleadtounwantedscriptbehavioranddata
storage,butdonotpreventexecutionofthequestionnaire.Youcanselectanyofthefollowingthree
settings:
Don'tsuppresswarnings
Allwarningsarelistedinthesyntaxchecklog.
Suppressallwarnings
Noneofthewarningsarelistedinthesyntaxchecklog.
Suppress
Selectwhichwarningtypesmustbesuppressed:

Page60

UsingtheNIPOODINDeveloper

Toomanypositionsforquestion.Thelengthdefinitionofa*CODESquestionreservesmorespacethan
requiredtostoretheanswercodes.Thismaysometimesbethecaseforanyquestionwhere*MULTI
wasaccidentallyomitted.
MAXpositionsforDiana.OnlyrelevantifNIPODianaisusedforreporting.Anyquestionnairethatuses
morethanNIPODiana'sdefaultlimit(8,000positions)generatesthiswarning.NotethatNIPODiana
maybeconfiguredtouseupto32,000positions.
Multipleuseofposition.Thereismorethanoneattempttostoredatainoneormorepositions.This
potentiallymayoverwritepreviouslystoredinformationwithinthesameinterview.Thiswarningis
ignoredforpositionsina*DUMMYquestion.
Jumptopreviousquestion.Usinga*GOTOtojumpbackinthequestionnairecanpotentiallyleadto
lossofdataandendlessloops.Itisrecommendedtouse*BACKifappropriate.
Codequestionwithoutcodes.Ifa*CODESquestiondoesnothaveanycodes,itisalwaysskipped.This
warningisignoredfor*CODESquestionsincombinationwith*DUMMY.
Missingquotes.A*PUTisusedtostoreatextinatextvariablewheretheopeningquotedoesnothave
amatchingclosingquote.
Maximumdataposition
Themaximumdatapositioncanbeusedtoimposedatasizelimitsforyourstatisticalanalysissoftware.
Exceedingthislimitgeneratesawarningduringasyntaxcheck.
Filterduplicateerrormessages
Preventsthesyntaxcheckfromlistingwarningsanderrorsmorethanonceforasinglecheck.Forexample,
incaseofmultipleuseofaposition,noteveryoccurrenceislisted.
Keeppreviousresults
Thesyntaxchecklogfileisnotcleareduponthenextsyntaxcheck;instead,anewwindowisopenedsothat
resultsmaybecompared.
Keepresultsafterclosingfile
Ifthequestionnairefileisclosed,thesyntaxchecklogfileisnotclosed.
DummyDataOptions
ThissectionconfigurestheODIN>GenerateDummyData...feature.Inparticular,itspecifieswhatchannel
isassumedtocreatedummydata.Youmayopttoselecttherequiredchannelifyourquestionnaire
containsanychannelawarerouting.

Page61

UsingtheNIPOODINDeveloper

NIPOODINDeveloperDummyDataOptions

PrintOptions
ThePrintoptionsallowyoutodefinesomesettingswhenprintingthecurrentlyopenedquestionnaire.
Notethatlonglinesareautomaticallywrapped.

Page62

UsingtheNIPOODINDeveloper

NIPOODINDeveloperPrintOptions

Printheaderandfooter
Printsheaderandfooterinformation:thequestionnairefilenameandapagenumber.
Printlinenumbers
Printslinenumbersinfrontofthecodelines,exceptwherelinesarewrapped.
AutosaveOptions
TheAutosaveoptionsmaketheNIPOODINDevelopersavebackupsofchangedquestionnairefiles
automaticallyatconfigurableintervals.

Page63

UsingtheNIPOODINDeveloper

NIPOODINDeveloperAutosaveoptions

SelectAutosavetoenableautosaving.Optionallychangethenumberofminutesbetweensaves.
Onceconfigured,Autosavesavesfilesattheconfiguredinterval.Ifafileisclosedinaregularfashion,its
relatedbackupfileisdeleted.IfexecutionoftheNIPOODINDeveloperterminatesunexpectedly,for
exampleduetoasystemcrashorapowerfailure,thebackupfilescanbefoundinthefolderwherethe
originalissaved.AutobackupscontaintheextensionOBK.Openinganyfileforwhichabackupisavailable
alsoopensthebackupfile.
FilesOptions
ThebehavioroftheFile>OpenandFile>SavedialogscanbeconfiguredintheFilesoptions.

Page64

UsingtheNIPOODINDeveloper

NIPOODINDeveloperFilesOptions

Filetypes
ThissectionallowsyoutoconfigurethefiletypesfilteredbytheNIPOODINsavingandloadingdialog
boxes.
ClickAddtypetocreateanewtype.Youareaskedtospecifythenameofthetypeasitappearsinthedrop
downboxinthefiledialogs.Notethatitisgoodcustomtoincludethefilefiltersinroundbrackets.Click
Removetypetoremoveunwantedtypes.Inaddition,selectatypeandclickUporDowntochangeits
orderinthelist.
Foreverytype,clickAddfiltertoaddafilefilter.Morethanonefilefilterpertypemaybespecified.Select
afilterandclickRemovefiltertodeleteitagain.
Rememberlastusedfilefilter
AutomaticallyselectsthelastusedfilefilterwhenreopeningaOpenorSavedialog.
SavefilesasUnicode
AutomaticallysetsthefileencodingtoUnicodeforfilesaves.

AdditionalConfigurationOptions
InadditiontoapplicationconfigurationintheNIPOODINDeveloper,youmaysometimesrequire
configurationatadeeperlevel.Beforemakingthechangesdiscussedinthissection,makesuretoclosethe
NIPOODINDeveloper.
BelowareanumberofsettingsthatmaybeconfiguredintheNIPOSYS.INIconfigurationfileinthe
applicationdirectory.

Page65

UsingtheNIPOODINDeveloper

Note:
Foranyofthelogfileconfigurationslistedbelow,makesurethedirectoryexistsandthatyouhave
read/writepermissionforthatdirectory.
SettingsintheNIPOSYS.INIconfigurationfile
Section

Setting

Description

Example

Odin Developer

JRE

LocationofJavaVirtual
Machine,requiredforNIPO
CAWIpreview

JRE=C:\Program Files\Java\
jre1.4.2_04\bin\client\jvm.dll

Odin Developer

LogDirectory

DirectorytosaveNIPOODIN
Developerlogfiles

C:\Temp\Log\NIPOODINDeveloper

Odin Developer

LogLevel

LogleveldetailforNIPO
ODINDeveloper,ranging
from0(nologging)to4
(maximum).

Odin Developer

LogNumFiles

MaximumnumberofNIPO
ODINDeveloperlogfilesto
store.Thelatestalways
containsextension001.

Odin Developer

BiDi

0
Enablebidirectional
languages(Hebrew,Arabic)
anddisplaytextRTL(rightto
left)intheNIPOODIN
Developereditor.Notethat
thisdisabledcolor
highlighting.

Odin Developer

ReadWriteDirectory

Temporarydirectoryforfile
manipulation

ODQes

LogDirectory

Directorytosavelogfilesofa C:\Temp\Log\NIPOCATIClient
NIPOCATIClientpreview

ODQes

LogLevel

LogleveldetailforNIPOCATI 5
Client

ODQes

LogNumfiles

MaximumnumberofNIPO
CATIClientlogfilestostore.
Thenewestalwayscontains
extension001.

C:\Temp\ReadWrite

10

LoggingforthepreviewinNIPOCAWIissetseparatelyintheregistryofyoursystem.Thefollowingstring
settingsmaybeaddedtotheHKEY_LOCAL_MACHINE\SOFTWARE\NIPO\OdinDemonkey:
SettingsintheNIPOODINDemonregistry
Setting

Description

Defaultvalue/Example

OdDemonLogDirectory

DirectorytosaveNIPOODINDemon
logfiles

C:\Temp\Log\OdDemon

OdDemonLogLevel

LogleveldetailforNIPOODINDemon, 4
rangingfrom0(nologgingto4
(maximum).

OdDemonLogNumFiles

Numberoflogfilestobecreated
beforeoldestlogfileisoverwritten.

Page66

UsingtheNIPOODINScriptLanguage
NamingConventions
Namesofvariables,subroutinesandlistshavetobeuniqueandmayconsistofamaximumof12
characters.Onlyletters,underscoresandnumbersareallowed.Thefirstcharactermustbealetter.

Questions
Questionnumbersaremadeupofpositivenumbers(>=1).Noalphabetic(exceptX,seebelow)orother
charactersareallowed.Eachquestionnumberhastobeuniquewithinone(sub)questionnaire.Question
numberscanbeusedindifferently.TheNIPOODINDeveloperallowsyoutorenumberthequestionnaire,
butthisisnotdeemednecessary.InsteadofnumbersyoucanalsousethecharacterXoneachquestion.In
thiscasethequestionnumbersarenotdefinedandroutinghastobedoneafterwards.Whenyou
renumberthequestions,questionnumberswillbeinserted.
Thehighestquestionnumberis2147483647.
The*QUESTIONcommandmaybeabbreviatedto*Q.
Examplequestiondefinitions
Validquestiondefinitions

Invalidquestiondefinitions

*QUESTION 1

*QUESTION 0

*QUESTION 2

*QUESTION 2

*Q 3

*QUEST 3

*QUESTION 2501

*QUESTION 25a

*QUESTION 109

*QUESTION 10.9

*QUESTION 11001

*QUESTION 11.001

*QUESTION 102

*QUESTION 1-2

*QUESTION 2147473647

*QUESTION 2234567890

*QUESTION 1234567890

*QUESTION 1 234 567 890

DataFields
IntheNIPOODINScriptingLanguageitisnotnecessarytodefinethestartingpositionofadatafieldwhen
youdefineaquestion.Onlythelengthofthedatafieldisrequired.NIPOODINkeepstrackofallthe
positionsusedinthequestionnaire.IntheNIPOODINDeveloper,youcanautomaticallyinsertthestarting
positionsusingtheFixPositionscommand.Omittingstartingpositionsisnotallowedforquestionsthat
refertodatafieldsintheTfileorsampletable.Thesestartingpositionsalwayshavetobedefined.
Inaclosed,butnotmultiplequestionthenumberofdigitsofthehighestcodenumberdefinesthe
minimumlengthofthedatafield.Inaclosed,multiplequestionthehighestcodenumber(ratherthan
numberofcodes)definestheminimumlengthofthedatafield.
Innumericquestionstheminimumandmaximumlengthdependontheanswerthatyouexpect.The
maximumsizeisapproximately16positions,includingdecimalsandafloatingpoint.
Thehighestpositionforadatafieldis99.999.Makesureyouranalysisprogramcanhandlethedatasize.

Page67

UsingtheNIPOODINScriptLanguage

AnswerCodes
Answercodesarerecognizedbyanumberfollowedbyacolon.Thisnumberhastobethefirstnonblank
characteratthebeginningofaline.Codenumberscanbeusedindifferently.Codenumbershavetobe
uniquewithinaquestion.Ifthecodetextdoesnotfitonaline,itisallowedtocontinueonthenextline.All
thefollowinglineswillbeconsideredaspartofthecodeuntilthefirstblankline.
Answercodenumbersmayrangefrom0to2147483647forsinglecodedquestionsandfrom1tothe
remainingpositionsavailableintheUfileformultiplecoded(*MULTI)questions.
*HEADINGtextsmaybeprovidedtogroupsectionsofcodes,butheadingsarenotconsideredpartofthe
answerlabels.
Example
*QUESTION 1 *CODES L2
This is the question text.
Long lines in question and code texts will automatically be truncated at complete words if
the line exceeds the screen width.
Question text and codes may contain empty lines. Empty lines between codes are removed if
*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

Variables
Youcanstoreatextoravalueinavariabletodisplayinaquestionortouseforrouting.Variableshaveto
bedefinedwith*VARSor*TEXTVARSbeforetheymaybeused.Variablenamesarenotcasesensitive.
Avariablecanbefilledwiththe*PUTorthe*SAVEcommand.Itscontentscanbedisplayedwiththe*?
command.Notethatthecontentsofthevariabledependsonthetypeofvariable.
Anumericvariable(*VARS)maycontainanyvalue.Usethe*FORMATcommandtochangetheonscreen
appearanceofnumericvalues.Whentextoratextvariableissavedinanumericvariable,theNIPOODIN
syntaxcheckwillgiveawarningmessage.
*TEXTVARSdefinesatextvariableandmaycontainatextofunlimitedlength.ThetextmaycontainCR/LF
whichwillbeusedwhendisplayingthevariable.VariablesmaynotcontainNIPOODINcommands,except
for*FONT.
Note:
Thecontentsofvariablesisnotstoredinthedatafileautomatically.Somakesurethatifyoubase
questionsorroutingonavariable,youstorethisinformation.

Page68

UsingtheNIPOODINScriptLanguage

Example1
*TEXTVARS Gender
*QUESTION 1 *CODES L1 *SAVE Gender
Interviewer: Mark gender:
1: Male
2: Female

Ifcode1isselectedthetextvariableGenderwillcontainthetextMale.Ifcode2isselected,thevariable
Genderwillcontainthetext'Female'.
Example2
*VARS Gender
*QUESTION 1 *CODES L1 *SAVE Gender
Int. type gender of respondent
1: Male
2: Female

Ifcode1isselected,thenumericvariableGenderwillcontainthevalue1.Ifcode2isselected,the
variableGenderwillcontainthevalue2.
Example3
*TEXTVARS Gender
*IF [ Q1,1 ] *PUT Gender "man" *ELSE *PUT Gender "woman"

Ifquestion1containscode1,thevariableGenderwillcontainthetext'man',elsethevariableGender
willcontainthetext'woman'.
Example4
*VARS Gender
*IF [ Q1,1 ] *PUT Gender "man" *ELSE *PUT Gender "woman"

Thesyntaxcheckgivesawarningmessage,becauseatextiswritteninanumericvariable.Afterthefilteris
checked,thecontentsofthevariablewillbe1(regardlessoftheoutcomeofthefilter).
Example5
*VARS Age
*QUESTION 2 *NUMBER L2 *SAVE Age
What is your age?

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

Afterquestion2isanswered,thevariableAgewillcontainthecodetextofthecodethatwasselected.
Example7
*VARS Age
*QUESTION 2 *CODES L1 *SAVE Age
What is your age?

Page69

UsingtheNIPOODINScriptLanguage

1:
2:
3:
4:
5:
6:

18-24 years
25-34 years
35-44 years
45-54 years
55-64 years
65 years or older

9: won't tell

Afterquestion2isanswered,thevariableAgewillcontainthecodenumberofthecodethatwasselected.
Example8
*VARS Age,CurrentYear
*QUESTION 21 *NUMBER L4 *DUMMY
*DATE Q21
*PUT CurrentYear [ Q21 ]
*QUESTION 22 *NUMBER L4 *MIN 1900 *MAX [CurrentYear] *BUT 99 "Refusal"
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.

Thisexampleobviouslyisonlytruewhentherespondentalreadyhadhis/herbirthday.
Example9
*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 ]

SystemVariables
Inadditiontocustomdefinedvariables,NIPOODINrecognizesanumberofsystemvariablesforvarious
purposes.Unlessmentioned,thesesystemvariablesdonotneedtobedefinedusing*VARS.

ChannelAwareScripting
ChannelAwareScriptingallowsyoutobaseyourquestionnaireroutingdependentonthechannel(NIPO
CATI,NIPOCAPIandNIPOCAWI)thescriptrunson.ThereareseveraladvantagestoChannelAware
Scripting:

Page70

UsingtheNIPOODINScriptLanguage

Createmultiplatformscriptswhilemaintainingaconsistentdataoutput.
Dramaticallyreducethetimetodevelopscriptsfordifferentchannels.
NIPOODINcontainsanumberofbuiltinreadonlyvariablesthatarechangedatruntimetoreflectthe
platformthequestionnaireisbeingrunon.Thisallowsyoutocustomizethequestionnairetothemedium
bychangingtherouting,showing,hidingorchangingquestions,codesandquestioninstructions,simplyby
checkingthevaluesofthesevariables.
ChannelAwareScriptingVariablesandConstants
The_CHANNELvariablecontainsanumericvaluethatrepresentsthechannel(NIPOCATI,NIPOCAWI,
NIPOCAPIorNIPOCASI)wherethequestionnaireiscurrentlyexecuted.Thevalueofthisvariableis
automaticallysetbythesystemandcannotbechanged.Youcancheckforthevaluecorrespondingwiththe
channel,butyoucanalsorefertoachannelbyusingthecorrespondingconstant.Seethetablebelow.
Valuesfor_CHANNEL
Value

Constant

NIPOCATIStandAlone

Value
0

NIPOCATI

_CATI_

NIPOCAWI

_CAWI_

NIPOCAPI

_CAPI_

NIPOCASI

_CASI_

Inaddition,foreachchannelthereisavariablethatissetto1(true)ifthatchannelisusedorto0(false)
otherwise:
Channelvariables

_ISCATIis1ifthescriptisruninNIPOCATI.
_ISCAWIis1ifthescriptisruninNIPOCAWI.
_ISCAPIis1ifthescriptisruninNIPOCAPI.
_ISCASIis1ifthescriptisruninNIPOCASI.

ChannelAwareScriptingExample
ExampleIntroductionforChannelAwareScripting
*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
*?TTDisplayField1, please press the <Start> button to start the interview.

Page71

UsingtheNIPOODINScriptLanguage

ExampleroutingforChannelAwareScripting
*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
*QUESTION 3 *CODES 63L1 *IF [ _ISCAPI ]
This question will appear only on a NIPO CAPI Client
1: OK
*QUESTION 4 *CODES 64L1 *IF [ _ISCASI ]
This question will appear only on a Stand-alone Client
1: OK
*QUESTION 5 *CODES 65L1 *IF [ _CHANNEL = _CATI_ \ _CHANNEL = _CAPI_ ]
This question will appear only on Web or CAPI Clients
1: OK

ConsequencesofChannelAwareScriptingandSwitchModeSurveys
Typicallyaninterviewisruninasinglechannelonly.However,sinceNIPOFieldworkSystemsupports
switchingfromNIPOCATItoNIPOCAWI,asingleinterviewmaybecompletedusingtwochannels.This
meansthatthefilteringinasingleinterviewmayhavebeensubjecttotwodifferentroutings,onebasedon
NIPOCATIandonebasedonNIPOCAWI.Asaconsequence,youmayseeunexpectedresults:inasingle
interviewitispossibleforarespondenttohaveansweredbothCATIonlyandCAWIonlyquestions.
Theexceptiontothisarequestionsandscriptinthe*INITblock.The*INITblockisalwaysexecuted
whenaquestionnaireisstartedorresumed.Thismeansthatanycollecteddatainan*INITblockisalways
subjecttothechannelthatthequestionnairewascompletedin.The*INITblockcanalsobeusedto
initializevariablesaccordingtochannel,ifrequired.

RepeatNumber
Theoperator?Rcontainsthecurrentvalueofa*REPEATloop,anumberbetweenandincluding1andn
wherenisthevaluespecifiedatthe*REPEATstatement.Notethatthisisnottheiterationnumberfor
example,inthethirdexecutionintheloopthevalueof?Risnotnecessarily3.Thisisespeciallytruefor
randomized,controlled,rotatedorinvertedloops.
Innestedblocks,theoperator?Rreturnsthevalueoftheloopwhereisnestedin.Toaccessvaluesfrom
loopsaboveorbelowthecurrent,youshoulduseaquestionoranumericalvariabletopassthevalue.The
operatordoesnotexistoutsidethescopeofa*REPEATblock.
?Risasystemvariableandcannotbechanged(forexamplebyusing*SAVEor*PUT)norcanitbe
displayeddirectlyinquestiontextusingthe*?command.Copythevaluetoavariableanothervariableto
accessit(e.g.*PUT Temp [?R]).

Page72

UsingtheNIPOODINScriptLanguage

Exampleusingtherepeatnumber
*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 *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

Innestedblocksyouhavetotransfertherepeatnumber?Roftheouterblocktoanumericvariablefirstto
beabletouseitintheinnerblock.
Examplestoringtherepeatvalue
*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

SystemVariables09
TensystemvariablescanbeusedinNIPOODINnextto,andinthesamewayas,userdefinesvariables.
Thesesystemvariablesarenumbered(09)anddonothavetobedefinedbeforetheyareused.Theymay
containeithernumericoralphanumericvalues.
Exampleusingasystemvariable
*PUT 7 "chicken"
*QUESTION 1
Do you often eat *? 7 ?

Inthisexample,theword"chicken"isstoredinsystemvariable7andisdisplayedinquestion1.
Note:
Whereasallvariablevaluesareresetatthestartofanewinterview,systemvariable0retainsits
valueacrossinterviews.

Page73

UsingtheNIPOODINScriptLanguage

Timers
TimerscanbeusedbymeansofthesystemarrayvariableSTOPWATCH[n],wherenisthestopwatch(13)
touse.Stopwatchescanbeusedtotimethedurationofeventswithinthescript.Eachofthesethree
stopwatchesmeasuresadifferenttimeevent,describedinthissection.
Stopwatch[1]
Stopwatch[1]receivesthetimeinsecondsbetweendisplayingaclosed,numericoralphanumeric
questionandpressingacodeorenteringavalue.Thistimerisresetwitheverynewquestion.
Note:
ThistimerisavailableforNIPOCATIonly.

Stopwatch[2]
Stopwatch[2]storesthetimebetweendisplayingthequestionandpressingthe[OK]button.This
timerisresetforeveryquestion.
Note:
ThistimerisavailableforNIPOCATIonly.

Stopwatch[3]
Stopwatch[3]canbeusedasatimerthatyouhavetoresetyourselfsettingthevalueto0.Thistimer
startsassoonastheinterviewisstartedoronceititreset.
TimersExample
Thescriptbelowusesall3timerstomeasurethetimeofselectingacode,pressingenterandmeasuringthe
lengthofa(sectionof)aninterview.

Page74

UsingtheNIPOODINScriptLanguage

TimersExample
*PUT Stopwatch[3] [0]
*QUESTION 1 *CODES L1
The time until you select a code will be stored in Stopwatch[1].
The time until you press [OK] will be stored in Stopwatch[2].
1: Yes
2: No
*PAGE
The time you took to select a code was *? Stopwatch[1] seconds
The you took to press [OK] was *? Stopwatch[2] seconds
*QUESTION 2 *CODES L1
This was the last question.
1: Continue
*PAGE
The total time to conduct this interview was *? Stopwatch[3] seconds
*END

ConjTxt[n]
ThearrayConjTxt[n]setsvariousvalueswithregardtoConjointMeasurementinNIPOCAWI.Seethe
sectiononConjointMeasurementfordetails.

ScriptCommandTemplate
ThevariableAgentNamecontaintheinterviewernameinNIPOCATIifinterviewernameswereregistered
intheNIPOFieldworkSystemdatabase.Unlikeregularvariables,thisvariablemaybedisplayedthe
introductionscreen.TheAgentNamevariableisnotsupportedinNIPOCAPIandhasnomeaninginNIPO
CAWI.

JavaScriptSupported
ThevariableJavaScriptSupportedcanbeusedtomakearuntimecheckifJavaScriptisinstalledand
enabledonthebrowser.ThisfeatureissupportedforNIPOCAWIonly.Notethatvariablemustbedefined
priortouse.Thecheckisexecutedatthefirstquestionofthequestionnaire(notincludingtheintroduction
screen)andcanthereforenotbeusedbeforethesecondquestion.
Example:
*VARS JavaScriptSupported
*TEXTVARS IsIsnt
*QUESTION 1
In this question NIPO ODIN checks for the availability of JavaScript.
*IF [JavaScriptSupported = 1 ] *PUT IsIsnt "is" *ELSE *PUT IsIsnt "is NOT"
*QUESTION 2
On this browser, JavaScript *?IsISnt supported.

Page75

UsingtheNIPOODINScriptLanguage

BrowserUserAgent
ThevariableBrowserUserAgentcanbeusedtoretrieveatextrepresentationoftheuseragentHTTP
header.ThisfeatureforNIPOCATIandNIPOCAPIonly.Priortouse,thisvariablemustbedefined.The
valueisretrievedatthefirstquestionofthequestionnaire(notincludingtheintroductionscreen)andcan
thereforenotbeusedbeforethesecondquestion.
Example
*TEXTVARS BrowserUserAgent
*QUESTION 1
In this question the HTTP Header data is retrieved.
*QUESTION 2
HTTP Header data for this browser: *? BrowserUserAgent

Language
The*Languagevariablecontainsthenameofadefinelanguagesectioncurrentlyinuse.Seethe
*Languagecommandformoredetails.

PreTel
PreTelisusedwithautodialingfacilitiesonly,thisvariablespecifiesaprefixforalltelephonenumbers
senttothedialer.Thedialermayusethisprefixforadministrativepurposes.Forexample,itcanbeusedto
linkthecalltoaprojecttoregistertelephonycostsforaproject.

Expressions
NIPOODINsupportstheuseofexpressionsinquestionnaires.Anexpressionmayindicateallsortsofdata
butwillalwaysresultinavalue.Expressionsareusedintwodifferentways:
Asaboolean;theresultoftheexpressioniseitherfalse(theexpressionhasasresultvalue0)ortrue
(theexpressionhasasresultthevalue1).
Tomakecalculationsormanipulationswithavalueasresult.
Somecommandswillrequireorallowforanexpressionasargument.Expressionshavetobeenclosedin
squarebrackets.
Expressionsareevaluatedfromlefttorightandoperatorsapplytotheoperandsimmediatelyleftandright.
NIPOODINexpressionsdonotfollowtheregularprecedencerules!Ifalefttorightevaluationisnot
appropriate,youcanuseparenthesistoevaluateanexpressionfirst.

Page76

UsingtheNIPOODINScriptLanguage

ExpressionOperators
Expressionoperators
Operator

Description

Use

Note

Questionreference

Qn

Referencetoquestionnoritscontents

Lengthoffield

nLm

Positionn,lengthm

Fieldtest

QxFn

Contentsoffield(cell)numbernwithin
formquestionx

codetest

Qx,n

1ifpresent,otherwise0

codestring

Qx,n-m

Codestring

minussign

-n

Negationofn

not

#Qx

1ifnoanswerinquestionx,otherwise
0

negation

#n

1ifvaluennottrue,

add

n+m

Sumofnandm

subtract

n-m

Differenceofnandm

multiply

n*m

Productofnandm

divide

n/m

Divisionofnandm

&

logicalAND

n&m

1ifbothnot0,otherwise0

logicalOR

n\m

0ifboth0,otherwise1

RAN

randomvalue

RAN n

Randomvaluefrom0uptoand
includingn1

equalto

n=m

Resultsin1iftrueor0iffalse

<

lessthan

n<m

Resultsin1iftrueor0iffalse

>

morethan

n>m

Resultsin1iftrueor0iffalse

<=

lessthanorequalto

n<=m

Resultsin1iftrueor0iffalse

>=

morethanorequalto

n>=m

Resultsin1iftrueor0iffalse

<>

notequalto

n<>m

Resultsin1iftrueor0iffalse

?R

repetitionnumber

?R

current(logical)repetitionnumber

?A

listreferenceinconjointmeasurement

?A

featureofAlist

?B

listreferenceinconjointmeasurement

?B

featureofBlist

?Y

Heightofapictureormovie

?Y

heightinpixels

TO

Range

n1 TO n2

Rangen1throughn2

separateranges

n1 TO n2 ; n3 TO n4

Rangen1throughn2orn3throughn4

QxM

orderofmentionsina*MULTIquestion

QxM

QxR

displayorderofaquestion,whenusing
*RAN,*INVor*ROT

QxR

QxMy

orderofmentioningnumberyina*MULTI
question

QxMy

QxRy

displayorderUsedincombinationwith
*ORDERnumberyofaquestion,whenusing
*RAN,*INVor*ROT

QxRy

otherwise0

Page77

UsingtheNIPOODINScriptLanguage

Questionreference
ThereferencetoaquestionbymeansofQnwherenrepresentsthequestionnumber.Forexample,Q10
referencesquestion10.Ifitconcernsacodetestthenmorecodevaluesmayoccur;thesewillbetreatedas
alogicalor.
Codestring
Anygivennumberofcodesseparatedbyoneormorecommasoracoderangeindicatedbyadash.Valid
codesconsistofthedigits0uptoandincluding9,orBforablankvalue.Forexample,Q2,Breturns1(true)
isQ2isblank,Q3,1-5returns1ifinQ3anyofthecodesintherange15aremarked,andQ4,2,4,8,12
returns1ifQ4containsanyofthecodes2,4,8,or12armarked.
Valuesnorm
Thevaluesnormmayrepresentanyofthefollowing:
Number
Expressionorvariable
Textenclosedindoublequoteswith,possibly,theembeddedcontentsofavariable
Positionreference
Thereferencetoapositioninthedatafile.Specifystartingpositionandfieldlengthtodistinguishposition
referencesfromnumbers.Itisrecommendedtousequestionreferencesinsteadofpositionreferences.

ExamplesofExpressions
Examplesofexpressionsarepresentedhere.Notethatexpressionsarealwaysspecifiedbetweensquare
brackets.Theexpressionsintheseexamplesmaybeeitherassignedtoavariableorappliedtoan*IFfilter.
ExpressionExamples
Expression

Resultsin

[ 100 ]

Thevalue100.

[ RAN 100 ]

Arandombetween0and99inclusive.

[ Total[3] ]

ThevaluestoredinthethirdelementofthenumberarrayTOTAL.

[ TOTAL2 * 3 + 10 ]

thevaluestoredinthevariableTOTAL2,multipliedby3andthenincreasedby10.

[ Q11,1 ]

1ifcode1wasmarkedinQ11,otherwise0.

[ Q12,1,2,3 ]

1ifanyofthecodes1,2or3weremarkedinQ12.

[ Q13 >= 18 ]

1ifthevalueinQ13isequaltoorlargerthan18.

[ Q11,1 \ Q12,1,2,3 ]

1ifcode1ismarkedinQ11orifcode1,2or3ismarkedinQ12.

[ Q12,1,2,3 & Q13 >= 18 ]

1ifcode1,2or3ismarkedinQ12andQ13isequaltoorlargerthan18.

[ Q12 ]

ThevalueofQ12ifQ12isasinglecodedornumericalquestion;thehighestmarkedcodeif
Q12isamultiplecodedquestion.

[ Q13 = Q14 ]

1ifthe(highest)valueofQ13isequaltothe(highest)valueofQ14

[ #(Q5 \ Q6) & Q7 = 1 ]

1ifeitherQ5orQ6doesnotcontainavalueandQ7equals1.Thebracketsarerequiredto
lettheexpressionevaluateQ5andQ6first.

[ Q5 , 1 TO 3 ]

1ifanyofthecodes1,2or3aremarkedinQ5.

[ Q5 , 1 TO 3 ; 6 TO 8]

1ifanyofthecodes1,2,3,6,7,or8aremarkedinQ5.

Page78

UsingtheNIPOODINScriptLanguage

CommonMistakesinExpressions
Thissectiondescribescommonmistakesmadeinexpressions,whereasyntaxcheckdoesnotrejectthe
syntaxusedbutwhereamisunderstandingexistsonhowtheexpressionisevaluated.Theseexamplesfocus
offilteringconstructions.
Incorrectexpressionsandhowtocorrectthem
Incorrectexpression

Whatitwasintendedtodo

Whatitdoes

Correctexpression

*IF [20 < Q2 < 40]

CheckifQ20isbetweenthevalues
20and40.

Thisfirstschecksif20
issmallerthanQ2
(result0or1)thenif
theresultissmaller
thanQ40.

*IF [ Q2 > 20 & Q2 < 40 ]

*IF [Q20,3\4\5]

CheckifQ20hascode3,4or5
marked.

ThischecksifQ20has *IF [ Q20,3,4,5 ]


code3.Thenitchecks
ifeithertheresultof
theexpression,or4,
or5aretrue.Any
valueabove0is
alwaysconsidered
true,thereforethe
expressionalways
resultsin1.

*IF [ Q21=1,2,3 ]

CheckifQ21hascode1,2or3
marked.

ThischecksifQ21is
equaltothe
expression1,2,3.The
latterexpression
checksifposition1in
theUfilecontainsa2
ora3.

*IF [ Q21 = 1-3 ]

CheckifQ21hascode1,2or3
marked.

Thischecksifthevalue *IF [ Q21,1,2,3 ]


ofQ21equals2(13).

*IF [ #Q21 = 1 ]

CheckifQ21isnotequalto21

ThisfirstchecksifQ21 *IF [ #(Q21 = 1) ]


isnotempty,then
comparestheresultto
1.Inotherwords,the
expressionreturns1if
Q21isnotempty.

*IF [ Q21,1,2,3 ]

FormFieldReferences
Expressionsmayrefertofieldsina*FORMquestionusingtheFoperator.
Exampleof*FORMfieldreferences
*Q 10 *FORM *CONTROL Q5 W
At the garden centre, how many items did you buy of each?
1:
2:
3:
4:

Flowers:
Trees:
Rakes:
Shovels:

*NUMBER
*NUMBER
*NUMBER
*NUMBER

L2
L2
L2
L2

Flower price
Tree price
Rake price
Shovel price

*NUMBER
*NUMBER
*NUMBER
*NUMBER

L2.2
L2.2
L2.2
L2.2

*VARS items
*PUT items [Q10F1+Q10F3+Q10F5+Q10F7]

ThereferenceswithoperatorFdonotrefertothecodesusedinthe*FORMquestion,buttotheindexof
thefieldwhensearchingforfieldsfromthetoplefttothebottomrightofthescreeninrows.Inother
words,thefieldbehind"Flowers"isfield1,thefieldbehind"Flowerprice"isfield2,thefieldbehind"Trees"
isfield3andsoforth.

Page79

UsingtheNIPOODINScriptLanguage

Fieldnumbersdonotchangeeveniffieldsarehiddenusingthe*CONTROLcommand.Forexample,field6
remainsfieldlinkedwith"Rakeprice"regardlessofusing*CONTROL.
Areferencetoafieldthatdoesnotexistinthe*FORMquestionwillalwaysreceivetothevalueofthefirst
fieldinthequestion,regardlessofwhetherthatfieldwasshown.Forexample,Q10F10orQ10F15would
bothrefertoQ10F1.
Fieldscanalsobereferencedtocopyvaluesinto:
Copyingvaluesintofields
*COPY Q10F1 [50]
*COPY Q10F2 [1.25]

Fieldindexesmaybereferencedusingavariableoranexpression.Thefollowingisvalidsyntaxtoaddall
pricevalues:
Referencingfieldsusingtherepeatnumber
*VARS totalprice
*put totalprice [0]
*REPEAT 5
*put totalprice [totalprice+Q10F(2*?R)]
*ENDREP

However,variablesorexpressionsmaynotbeusedtostorevaluesintothefields.Thefollowingsyntaxis
invalid:
Invalidfieldreferencesyntax
*REPEAT 8
*COPY Q10F(?R) [0]
*ENDREP

Backslashes
Youmaysplituplinesoftextorcodeinseverallinesusingthebackslash(\)attheendofthepreceding
line.

Stratification(Quota)
Astratificationfile(Sfile)isusedtodividethesampleintoseveralquotagroupsinwhichalimitednumber
ofinterviewsmustberealized.Stratificationiscountedonthesurveysample,thereforeaTfileorSample
tablemustbeprovided.Eachcellmustbedefinedinoneseparaterecordwiththefollowingformat:
stratum field offset: characteristic (limit) description
Stratificationamountstostoringaproperty,whichischaracteristicforagroupofrespondents,inthe
stratumfieldoftheirtelephonerecords.Eachstratummusthaveauniquecharacteristic.Thecharacteristics
maybestoredintheSamplerecordsbeforetheinterviewprogramiscalled(stratificationoninput)ormay
bestoredbythesystemduringaninterview(stratificationonoutput).
Thecharacteristicmaybeformedbyacertainvalueortext.Characteristicscontainingblanksmustbe
enclosedinquotationmarks.Acharacteristicmayoccupy79positions.Thedescriptionofastratummay
consistofupto80characters.
Onceastratificationlimitisexceeded,thesamplerecordsinthatstratificationcellareblocked(response
code21),whichmeansnewinterviewscannottakeplaceinthatparticularstratificationcell.Whenusinga
Tfileblockedsamplerecordswillnolongerbedrawnfromthesample,notevenafterthestratificationlimit
hasbeenchangedafterwards.WhenusingaSampletableblockedSamplerecordswillnolongerbedrawn,
butwillbereleasedwhenastratificationlimithasbeenchangedbytheNIPOFieldworkSystemsupervisor.

Page80

UsingtheNIPOODINScriptLanguage

Whenstratificationcriteriaarenotknowninadvance(forinstance:ageandgender)youcannotcheckthe
stratumuntilafterstartingtheinterview,andquiringfortherequiredinformationfirst.SeetheNIPOODIN
commands,*ADDRESS,*MOVAand*STRAT.
ExampleofaSurveystratificationfile(Tfile)
286
286
286
286
287
287
288
288
288
288
287
287
287
287
287
287
287
287

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

"N" (100) North


"E" (100) East
"S" (100) South
"W" (100) West
1 (200) Males
2 (200) Females
1 (100) 18 - 34 years
2 (100) 35 - 44 years
3 (100) 45 - 54 years
4 (100) 55 years or older
11 (55) Males - 18 - 34 years
12 (55) Males - 35 - 44 years
13 (55) Males - 45 - 54 years
14 (55) Males - 55 years or older
21 (55) Females - 18 - 34 years
22 (55) Females - 35 - 44 years
23 (55) Females - 45 - 54 years
24 (55) Females - 55 years or older

ExampleofaSurveystratificationfile(Samplefile)
Region : "N"
(100) North
Region : "E"
(100) East
Region : "S"
(100) South
Region : "W"
(100) West
GenderAge : 1 (200) Males
GenderAge : 2 (200) Females
GenderAge+1: 1 (100) 18 - 34 years
GenderAge+1: 2 (100) 35 - 44 years
GenderAge+1: 3 (100) 45 - 54 years
GenderAge+1: 4 (100) 55 years or older
GenderAge: 11 (55) Males - 18 - 34 years
GenderAge: 12 (55) Males - 35 - 44 years
GenderAge: 13 (55) Males - 45 - 54 years
GenderAge: 14 (55) Males - 55 years or older
GenderAge: 21 (55) Females - 18 - 34 years
GenderAge: 22 (55) Females - 35 - 44 years
GenderAge: 23 (55) Females - 45 - 54 years
GenderAge: 24 (55) Females - 55 years or older

ThefirststratumcriterionisRegion.Theregioninthisexampleisstoredinposition286ofthesample
record(Tfile),orinthefieldRegionintheSampletable,where"N"standsforNorth,"E"standsforEast,
"S"standsforSouthand"W"standsforWest.Eachregionislimitedto100successfulinterviews.Notethat
theactualpositionsorcodingsthatareusedforyourstratificationdependsonyourTfileandmightdiffer
foreachsurvey.Likewise,whenusingaSampletablesyouccanchooseanappropriatenameforthefield.
Whenacriterioncontainsnonnumericcharactersand/orspaces,itmustbeembeddedindoublequotes.
ThesecondstratumcriterionisGender.FortheTfile,a1inposition287characterizesaMale,and2a
Female.It'slimitis200successfulinterviewseach.FortheSampletable,theGenderisstoredinthefirst
positionoftheGenderAgefield.
ThethirdcriterionisAgeGroup.FortheTfile,itischaracterizedbyvalue1inposition288forpeopleupto
34,value2forpeopleof35to44,value3forpeopleof45to54andvalue4forpeopleof55andolder.Itis
thesecondfieldintheGenderAgefieldintheSampletable,andisthereforereferencedby
GenderAge+1.

Page81

UsingtheNIPOODINScriptLanguage

Finallythereisthecombinedstratumcriterionforgenderandage.InaTfile,thisisstoredinconsecutive
positions287288.FortheSampletable,thesecombinationsarestoredinasinglefield(GenderAge)since
fieldscannotbecombinedintheNIPOFieldworkSystem.EachofthesixcombinationsofGenderandAge
Grouphasatargetof55successfulinterviews.Notethatinthecombinationofageandgenderthetargets
donotaddupto100peragecategory.Thismeansthatwedonotneedexactly50malesof1834and50
femalesof1834,butacceptthattherecanbe55malesof1834andonly45femalesof1834.Thequota
for200femaleswillforcethatthese'missing'femalesarecompensatedinanotheragecategory.
Note:
InastratificationfilefortheNIPOFieldworkSystemnoemptylinesortrailingreturnsareallowed.In
theNIPOCAPISystememptylines,linescontainingtextonlyandtrailingreturnsareallowed.
WhenusingTfiles,makesurethetelephonefilerecordlengthiswideenoughwhenaddressinghigh
positions(>286fortheNIPOFieldworkSystem,>776fortheNIPOCAPISystem).Itisnot
recommendedtousepositionsusedbythesystem.

AutomaticSyntaxChangeWhenReferencingPositionsinTfiles
WhenusingpositionsinsteadofSampletablefieldsinanSfile,asinglerunontheNIPOFieldworkSystem
changesthepositionreferencesintofieldreferences.ThishappensbecausethesysteminterpretsaTfileas
aSampletableinternallyallpositionswithinaTfilefallwithinacorrespondingdatabasefield.
ExampleofastratificationfilereferencingpositionsinaTfile
286: 1 (6) Males
286: 2 (6) Females

Position286andbeyondcorrespondwiththefieldTTExtraDatainthesampletable.Thereferencesare
changedaccordingly.
ResultafterastartintheNIPOFieldworkSystem
TTExtraData:1 (
TTExtraData:2 (

6) Males
6) Females

Notethatstratificationcriteriamaynotoverlapdatabasefields;datamaycrosstwofieldsifpositionsare
referencedontheborderoftwofields.
ExampleofstratificationthatoverlapsSampletablefields
5: 11 (6) region 1 - Males
285: 12 (6) region 1 - Females

Position285isthelastpositionofDisplayField4andposition286isthefirstpositionofExtraData.
Asaresult,criteriaareonlycheckedagainstthefirstcharacterofthestratum.

Page82

UsingtheNIPOODINScriptLanguage

Example2ofstratificationfilereferencingpositionsinaTfile
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

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

ResultafterastartintheNIPOFieldworkSystem
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+

Stratificationfile(Sfile)whenusingSampletable
IncaseaSampletableisusedinsteadofaTfile,thestratificationcanrefertothetable'sfieldnames.
ExampleofaSurveystratificationfilewhenusingSampletable
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 (100) 35 - 44 years
Age : 3 (100) 45 - 54 years
Age : 4 (100) 55 years or older
GenderAge : 11 (055) Males - 18 - 34 years
GenderAge : 12 (055) Males - 35 - 44 years
GenderAge : 13 (055) Males - 45 - 54 years
GenderAge : 14 (055) Males - 55 years or older
GenderAge : 21 (055) Females - 18 - 34 years
GenderAge : 22 (055) Females - 35 - 44 years
GenderAge : 23 (055) Females - 45 - 54 years
GenderAge : 24 (055) Females - 55 years or older

Page83

UsingtheNIPOODINScriptLanguage

Explanation

Foreachregionmaximum100interviewsshouldbedone.
200malesand200femalesshouldbeinterviewed.
Foreachagecategoryweneed100interviews.
Inthecombinationofageandgenderthetargetsdonotaddupto100.Thismeansthatwedonotneed
exactly50malesof1834and50femalesof1834,butacceptthattherecanbe55malesof1834and
only45femalesof1834.Thequotafor200femaleswillforcethatthesefemalesarecompensatedin
anotheragecategory.
Note:
Combinationsoffieldshavetobecreatedbycombiningthestringsinanewfield.Itisnot(yet)
possibletocreateexpressions.

Stratificationfiles(Sfiles)forOmnibusSurveys(UsingTfiles)
IncaseofanOmnibussurvey,youcanmakeaseparatestratificationfileforeachsubsurvey.Themain
survey(thefirstNIPOODINquestionnaireinthesurvey)doesnotdifferfromaregularstratification.For
subsurveys,however,12positionspersubsurveyarereservedperTfilerecordtostorestratificationdata.
TheTfilefieldreservedforthestratificationofaparticularrespondentmaylookliketheexamplebelow.
Eachfieldforthestratificationisprecededbythesurveyname.TheNIPOCATI/WebMasterusesthis
nametodeterminethequotatargetspersubsurvey.Thisexamplewastakenfromarecordinthe
telephonefile,startingatposition251.
A1001

11

A1002

112

A1003

12

Thefirstsevenpositionscontainthenameofthesubsurvey.The1inthenextpositionmeansthatthe
respondentansweredthesubsurveysuccessfully.Ifanotherstratificationcriterionisdefinedonthis
position,thesubsurveyisnolongerpresentedtotheinterviewerifthestratificationcellisfull.The
remaining11positionsmaybeusedforstratificationinformation.
StratificationfilesforallsubsurveysrefertotherelativepositionintheTfilerecord.Position1containsthe
valueoneifthesubsurveywascompleted.Positions212mayhavebeenpresetintheTfile,ormaybe
filledbytheNIPOODINquestionnaire.
ExampleofaStratificationfileforOmnibussurveys
1:
1:
2:
2:
2:
2:
2:

1 (100) Total sub-survey 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

AstartattheNIPOCATI/WebMasterrewritesthestratificationfileasthis:
ResultafterastartintheNIPOFieldworkSystem
STSuccess:
STSuccess:
STData: 01
STData: 02
STData: 03
STData: 19
STData: 20

1
2
(
(
(
(
(

(100) Sub-survey about PC


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

BelowisanexampleofaNIPOODINsubsurveyusingthestratificationfile.

Page84

UsingtheNIPOODINScriptLanguage

ExampleofaNIPOODINquestionnaireforOmnibussurveys
*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)
** *ABORT cuts to the next sub-survey
*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
** The rest of the questionnaire goes here. Note that a sub-survey should not
** end with *END or any *ENDST value.

Omnibussurvey,usingSampletablesandOmnibustables
WhenusingaSampletableratherthanatelephonefileforanomnibussurvey,asubsampletablemustbe
createdforeverysubsurveyinthequestionnaire.ThesetupisbasicallythesameaswhenworkingwithT
files,withsomedifferences:

TheNIPOCATI/WebMasteraddsanewrecordintheOmnibussubsampletableforeachsub
questionnairewithastratificationfile.Thisrecordcontainsthefollowinginformation:

InterviewNumber Questionnairename Success


AfieldSTData(varchar12)willbeavailable,whenthefollowingsettingiswrittenintheregistryofthe
NIPOCATI/WebMaster:
STData:STData
ThisfieldSTDatacanbesetinthesubquestionnairesbyusingthe*COPYcommandonpositions2
12.
*SAMPLEDATAinthefirstquestionnaireofanOmnibusreferstodatabasefieldsintheSampletable.
*SAMPLEDATAinsubquestionnaires(allbutthefirst)oftheOmnibusreferstodatabasefieldsinthe
Omnibustable.
StratificationinsubquestionnairescanbebasedonfieldsintheOmnibustableoronfieldsinthe
Sampletable.Use*SAMPLEDATAintheNIPOODINquestionnaireorusethesurvey.INIsettings
RespondentFieldsand/orRespondentSubFields.

Page85

UsingtheNIPOODINScriptLanguage

Stratificationfile(Sfile)forNIPOCAWI
NonAnonymousSurveys
StratificationforWebClientsworksthesamewayasstratificationforNIPOCATIusingaSampletable.Note
thatifyouusestratificationoninput(stratificationgroupalreadyknownbeforestartinganinterview),the
addresswillbeblockedifastratificationcellisfilled,whichmeansthattherespondentimmediatelygetsa
relocationpage.
Stratificationonnonanonymoussurveysmayresultinthefollowing:
1. Arespondentisinvitedforasurveybymail.
2. Therespondentclicksthelinkforthesurvey.
3. Thelinkimmediatelyredirectstothestratificationreachedpage,thepagethatcaninformthe
respondentthattheirparticipationisnolongerrequired.
Becauseofthisconsequence,stratificationonnonanonymoussurveysisnotrecommended.
Stratificationonoutputmayalsobeused:Eachcontactwillupdatetheexistingrecordforthatrespondent
intheSampletable.Usethe*SAMPLEDATAor*ADDRESScommandintheNIPOODINquestionnaireto
filldatabasefieldsandthe*STRATcommandtocheckyourstratificationcellsandthenjumptoaspecific
question.
Note:
Donotusethe*SQLPUTcommandtoupdateyoursampletable,asthesystemwillnot'recognize'
thesamplerecordischangedandthuscannotcheckthestratificationcell.

AnonymousSurveys
Ifasurveyissentoutanonymously(usingaSurveyIDinsteadofarespondentID),youcanonlyuse
stratificationonoutputasthereisnoreferencetotheoriginalSamplerecordofthespecificrespondent.
Foreachcontactanew(empty)samplerecordiscreatedintheSampletable.Usethe*SAMPLEDATAor
*ADDRESScommandintheNIPOODINquestionnairetofilldatabasefieldsandthe*STRATcommandto
checkyourstratificationcellsandthenjumptoaspecificrouteoutquestion.
SurveysstartedfromaURL
WhenasurveyisstartedfromaURLpublishedonawebsite,stratificationcanonlybeusedifanempty
Sampletableiscreatedforthesurvey.Foreachcontactanew(empty)samplerecordiscreatedinthe
Sampletable.Usethe*SAMPLEDATAor*ADDRESScommandintheNIPOODINquestionnairetofill
databasefieldsandthe*STRATcommandtocheckyourstratificationcellsandthenjumptoaspecific
question.
Bydefault,stratificationisimpossiblewithoutaSampletable.

Page86

CommandIndex

Page87

CommandIndex

<<<!!>>>
System
WebClientonly
Purpose
InsertHTMLtags,includingJavaScript,intext.
Syntax
<<<! !>>>
Description
WiththiscommanditispossibletoinsertHTMLtags,includingJavaScriptinthetextofaNIPOODIN
questionnaire.TheHTMLstartswith<<<!andisclosedwith!>>>.
Example
*PAGE
Click <<<! <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; ">here</a> !>>> to
open the NIPO Software website in a new Browser window.

Result:

ClickingthelinkopenstheNIPOSoftwarewebsiteinanewbrowserwindow.

Page88

CommandIndex

*?
Purpose
Retrievesthecontentsofavariableorarrayastext.
Syntax
*? <var | n | expression | var[n|expression] >
Description
Thecontentsofavariableorarrayareretrievedandputinplaceofthecommandandwillbeprocessedas
text.Thiscommandmayoccuratanyplacewheretextmayoccur.
Arguments
var
Thisisthenameofthevariablefromwhichthecontentsareretrieved.
n|expression
Thisisapositiveintegerfrom0uptoandincluding9oranexpressionthathasaresult0uptoandincluding
9,whichindicatesasystemvariable.
var[n|expression]
Whenanarrayvariableisused,thisthenameofavariablefollowedby(betweensquarebrackets)a
positiveintegerorexpressionthatindicatestheelementnumberofthisarray.
Remarks
Youcanuseuppercaseandlowercasenamesindifferently;variablenamesarecaseinsensitive.
Systemvariablesmaybedisplayed,butdonotneedtobedefinedusing*VARSor*TEXTVARS.
Example1
*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 of *?Age years old.

ResultofExample1

Page89

CommandIndex

Example2
*TEXTVARS txt[4]
*PUT
*PUT
*PUT
*PUT

txt[1]
txt[2]
txt[3]
txt[4]

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

*PAGE
*? txt[1]
*? txt[2]
*? txt[1] *? txt[2] *? txt[3]
*? txt[4]

ResultofExample2

Example3
*TEXTVARS Number, Price, PricePerFax
*FONT 0 "10 Arial"
*TAB 30
*QUESTION 1 *FORM
Specify count and price:
1:Number of fax machines bought:
*NUMBER 61L3 *SAVE Number
2:Total price paid:
*NUMBER 64L4.2 *SAVE Price
*FORMAT 3.2
*PUT PricePerFax [Q1F2 / Q1F1]
*QUESTION 2 *CODES 70L1
You bought *? Number fax machines for *? Price?
So the average price per fax machine was *? PricePerFax ?
1: Yes
2: No

ResultofExample3

Page90

CommandIndex

SeeAlso
*FORMAT ........................................................135
*PUT................................................................222
*SAVE(codesoption)......................................246
*SAVE(questionoption) .................................245
*TEXTVARS......................................................283
*VARS..............................................................287

Page91

CommandIndex

*ABORT
Purpose
Endsthequestionnaire,interviewnotsuccessful.
Syntax
*ABORT
Description
Terminatesthequestionnaireandmarkstheinterviewasnotsuccessful.Therewillbenodatawritten.
Thiswillbeirrevocable.IntheTfileorSampletablerecord,ifpresent,theresponsecodefor*ABORT(22,
notsuccessful)isstored.
Example
*QUESTION 1 *CODES L1
Are you willing to co-operate with a survey about car-insurances?
Interviewer: If the respondent does not own a car, use code 4 to end the interview.
1: Yes
2: No, perhaps later
*CUT 1
3: No, refusal (specify refusal type) *NONRESP "E"
4: Does not own a car

*ABORT

SeeAlso
*APPOINT..........................................................97
*CUT ...............................................................116
*END ...............................................................121
*ENDNGB........................................................123
*ENDST ...........................................................124
*NONRESP ......................................................203

Page92

CommandIndex

*ADDRESS
Purpose
ReferstoadatafieldintheTfileorSampletablerecord.
Syntax
*ADDRESS
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandaquestiontypedefinitionandmustbe
specifiedafterthesecommandsonthesameline.
WiththiscommandyoucanrefertoadatafieldintheTfileorSampletablerecord.Thisdatafield
specificationmusthaveafixed(nonvariable)format.
Remarks
WhenusingaSampletable,theNIPOODINquestionnairecanrefertoallSampletablefieldnamesby
usingthe*SAMPLEDATAcommand.HoweveryoucanalsorefertopositionsinaSampletableby
referencingfieldpositionsasifitwasaTfile,becausethefieldsintheSampletablearemappedtothe
defaultpositionsinTfilesseeSampletable(separatetableforeachsurvey)fordetails.
YoucanrefertopositionsintheTfilethatoverlapfieldsinaSampletable,buttheresultistruncatedat
theborderofthefield.Asyntaxcheckwillwarnofsuchtruncationswithanerrormessagesuchas
Warning: 136L55 spans multiple database fields, will be truncated to
136L45.
Example
*QUESTION 1 *NUMBER 290L2 *ADDRESS
*QUESTION 2 *NUMBER 61L2
How old are you?
*MOVA Q1 Q2

Thisexamplestoresthecontentsofquestion2(position6162)intoposition290291oftheTfileorSample
tablerecord.
Example2
*QUESTION 11 *ALPHA 61L17
*MOVU Q11 1L17

ThistransfersthefieldTelephoneNumberfromtheSampletableintoQ11.Thismayalsobedoneusing:
*QUESTION 11 *ALPHA 61L17
*SAMPLEDATA TelephoneNumber
*COPY Q11 "*?TelephoneNumber"

Thetelephonenumberisanalphanumericalfield,becauseitmaycontainspacesandaleadingzero.
Example3
*QUESTION 12 *NUMBER 81L8
*MOVU Q12 36L8

ThiscopiesthecontentsofthefieldInterviewerNumberfromtheSampletableintoQuestion12,
because36L8correspondstotheInterviewerNumberfieldintheSampletable.Thismayalsobedone
using:
*QUESTION 12 *ALPHA 81L8
*SAMPLEDATA InterviewerNumber
*COPY Q12 [InterviewerNumber]

Page93

CommandIndex

SeeAlso
*COPY .............................................................114
*MOVA ...........................................................184
*MOVU ...........................................................185
*QUESTION .....................................................224
*SAMPLEDATA................................................244

Page94

CommandIndex

*ALPHA(QuestionType)
Purpose
Definesatextquestion.
Syntax
*ALPHA [pos]L<length>|<pos>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthiscommand
onthesameline.Definesaquestionthatexpectsanalphanumericalansweroflimitedlength.Contraryto
an*OPENquestionthelengthofananswertoan*ALPHAquestionislimitedandtheanswerisstoredin
theUfile.
Arguments
pos
ThisisthestartofthedatafieldwherethedataiswrittenintheUfile.
length
Thisisthelengthofthedatafield.
Example
*QUESTION 1 *ALPHA 61L20
What is your first name?

Result:

SeeAlso
*ALPHA(in*FORMquestion) ...........................96
*CODES ...........................................................109
*LIST(definition).............................................173
*NUMBER(questiontype)..............................205
*OPEN(questiontype)....................................208
*QUESTION .....................................................224

Page95

CommandIndex

*ALPHA(in*FORMquestion)

Purpose
Definesatextfieldina*FORMquestion.
Syntax
*ALPHA [pos]L<length>|<pos>
Description
Thiscommandisalwaysusedina*FORMquestion.Definesafieldthatexpectsanalphanumericalanswer
oflimitedlength.Severalfieldsmaybespecifiedinthesame*FORMquestion.
Arguments
pos
ThisisthestartofthedatafieldwherethedataiswrittenintheUfile.
length
Thisisthelengthofthedatafield.
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:

SeeAlso
*FORM ............................................................132
*GRID(in*FORMquestion)............................141
*NUMBER(questiontype)..............................205
*SCALE(in*FORMquestion) ..........................249

Page96

CommandIndex

*APPOINT
System
NIPOCAPIonly
Purpose
Makesanappointmentfornextquestionnaire.
Syntax
*APPOINT
Description
Anappointmentismadeforthenextquestionnaireinline.IntheCompassInterviewSystemforCAPI,you
cangatheranumberofquestionnairestoasocalledsurveycluster.Theseparatequestionnaireswillbe
dealtwithattherespondentshomeconsecutively.Ifinoneofthequestionnairesthecommand
*APPOINT isexecutedthenextquestionnairewillnotbestarted.Theinterviewerisaskedtomakean
appointmentforthequestionnairethatisnextinline.
SeeAlso
*CUT................................................................116
*END ...............................................................121
*ENDNGB ........................................................123
*ENDST ...........................................................124
*NONRESP ......................................................203

Page97

CommandIndex

*AUTO
System
NIPOCATI/NIPOCAPIonly
Purpose
Automaticallyarrangescategoriesintocolumns.
Syntax
*AUTO
Description
Usethequestionoption*AUTOto:
Automaticallyarrangecategoriesintocolumnsonthescreenwhenmorecategoriesaretobedisplayed
thantherearescreenlines.Whenthecommand*NOCONisusedafteracategorythenfromthat
categoryonthecategorieswillnotbedividedintocolumns.
Removethegapscausedbycategoriesincodedquestionswhenusingthe*CONTROLcommand(NIPO
CATIonlyNIPOCAPIandNIPOCAWIcanautomaticallyremovegapsdependentonthestylesheet
configuration).
*AUTOcanalsobeusedasasinglecommandonacommandline.Allquestions(beforeandafterthe
command)willhaveautomaticallyarrangediftheydontfitonthescreen.
Remarks
The*AUTO commandautomaticallytriestosetthecolumnstoanequallength.
Thenumberofcategoriesthatfitonthescreenusing*AUTOdependsonthelengthofthecategory
texts.Eachcolumnwillbeaswideasthelargestcategorytext.Withcategorytextstoolargetofithalfa
screen,nocolumnsareshown.
InNIPOSYS.INIthefollowingsettingapplies:
AutoColumns = nspecifieswhetherthecategorieshavetobeautomaticallyarrangedornot,where
n=0(autoarrangeoff)or1(autoarrangeon).Defaultis0.SettingAutoColumnsto1hasthesame
resultasputtingan*AUTOcommandatthebeginningofthequestionnaire.
*AUTOisnotsupportedintheNIPOWebClient.Use*NEWCOLUMNtosplitcategoriesincolumnsfor
theWebClient.
IntheNIPOCAPIClient,youcanuse*TABtoindicatethenumberofcolumnsandthespacingofthe
columnsthatshouldbeusedtodisplaythelist.
Extremelylargelistsmaydegradetheperformanceoftheinterviewersoftware.Reducethenumberof
categoriesifpossible,creatingseveralquestionsinsteadofonequestionorusinga*LIST in
combinationwith*NUMBER.

Page98

CommandIndex

Example1
*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
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

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50

98: don't know *NOCON


99: no answer

Page99

CommandIndex

Result:

Example2
Inthefollowingexample,*TABisusedtosplitthescreenintotwocolumnswhenitneedstodisplaymore
than8brands.ThisworksfortheNIPOCAPIClientonly.
*LIST brands
1: BMW
2: Audi
3: Volvo
4: Mercedes
5: Citroen
6: Datsun
7: Bentley
8: Cadillac
9: Alfa Romeo
10: Ferrari
11: Honda
12: Renault
13: Buick
14: Corvette
15: Fiat
16: Ford
17: Isuzu
18: Lotus
19: Mazda
99:Don't know any *NOCON
*TAB 33,67
*QUESTION 1 *CODES L99 *MULTI *AUTO
Which brands do you know?
*USELIST brands
*VARS cnt
*COUNT cnt Q1
*IF[cnt < 8] *TAB *ELSE *TAB 50
*QUESTION 2 *CODES L2 *AUTO *CONTROL Q1W
Which brand do you prefer?
*USELIST brands

Page100

CommandIndex

SeeAlso
*GROUP ..........................................................146
*NEWCOLUMN ...............................................190
*NOCON..........................................................199
*TAB................................................................279

Page101

CommandIndex

*BACK
Purpose
Jumpsbacktoapreviousquestion.
Syntax
*BACK <n|[expression]>
Description
Theinterviewwillreturntothequestionspecifiedintheargument.Itdoesinfactthesameaspressingthe
Backbuttonasmanytimesinsuccessionasneededtoreachthatquestion.
Whenthe*BACKcommandisexecuted,allcommandsandanswersbetweenthecurrentquestionandthe
questionyouarereturningtoarebeingundone,asifyouactuallysteppedbackthroughthequestionnaire
andthereforethereisamajordifferencewiththecommand*GOTO.
Arguments
n|expression
Thisisapositiveintegerorexpressionthatindicatesanexistingquestion.
Remarks
With*BACKyoucanonlyjumpbacktoaquestionthatwaspreviouslydisplayedaccordingtothecurrent
routing.Iftheindicatedquestionwasneverdisplayed,the*BACKcommandwillgotothefirstquestion
thatwasdisplayedafterthisone.
Example
*VARS tot
*VARS answer[3]
*QUESTION 1 *FORM
What proportion of travels are done by ....
(Int. dont know = 999)
1:Bus
*NUMBER L3 *RANGE [ 0 TO 100;999 ] *SAVE ANSWER[1]
2:Train
*NUMBER L3 *RANGE [ 0 TO 100;999 ] *SAVE ANSWER[2]
3:Car
*NUMBER L3 *RANGE [ 0 TO 100;999 ] *SAVE ANSWER[3]
** If one of the values is a Don't Know, skip the check
*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: Go back and try again *BACK 1
*QUESTION 3

Inthisexample,wejumpbacktothefirstquestiontocorrectthepercentagesiftheyarenotintherange95
to105.

Page102

CommandIndex

SeeAlso
*GOTO ............................................................139
*STRAT ............................................................274

Page103

CommandIndex

*BMP
System
NIPOCAPI/NIPOCATIonly
Purpose
Displaysacanvastodrawonandsavesopenendedanswersasabitmap.
Syntax
*BMP
Description
Opensacanvastodrawonusingthemouseorapen(Tabletcomputer),Openendedanswersaresavedto
asocalledbitmapfile(Bfile)insteadoftheOfile.Theseanswerscanbecodedinthesamewayasthe
regularOfile.
Thesizeoftheopenendedbitmapanswerboxcanbechangedusingthe*SIZEcommand.
Remarks
Thebitmapfileisinbinaryformatandcannotbereadusinganordinarypaintprogram.Openended
answersmustbecodedusingNfieldCodeortheNIPOODINCodingModule.Itisgoodpracticetoreservea
fairnumberofpositionsforcodinginadvance.
Example
*QUESTION 10 *OPEN L99 *MULTI *BMP
What car brands do you know?

Result:

Example2
*QUESTION 1 *CODES 61L99 *MULTI *BMP
What brands of beer do you know?
1: Heineken
2: Amstel
3: Grolsch
98: Other... *OPEN
99: None *NMUL

Page104

CommandIndex

Inthisexample,afterchoosingcode98anopenanswercanbewrittenonscreenandwillbestoredasa
bitmapintheBfile.
Result:

SeeAlso
*OPEN(questiontype)....................................208
*SIZE................................................................257

Page105

CommandIndex

*BUT
Purpose
Definesabutton.
Syntax
*BUT <code> <"text">
Description
Withthiscommandyoucreateuserdefinedbuttonswhicharedisplayedduringtheinterview.These
buttonscanbeusedinsteadofornexttoanswercategories.Ifyouclickonthebuttontherelatingcodeis
written.
Arguments
code
Thisisthecodethatisstoredwhenpressingthebutton.
text
Thisisthebuttontext.
Remarks
Amaximumoffivebuttonsperquestionisallowed.
Whenusingbuttonsona*FORMquestionthevalueofthebuttonsisstoredinthefirstfieldoftheform
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

Inthisexample,thecategoryforDontknowisleftoutofthecategorylist.Insteadabuttonisdefinedto
enterthisanswer:
Result:

Example2
*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

Page106

CommandIndex

Result:

IftheRefusalbuttonisused,thecode99isstoredinthefirstfield(Name).
SeeAlso
*WAITCR .........................................................291

Page107

CommandIndex

*CENTRE
Purpose
Centersanswercategoriesautomatically.
Syntax
*CENTRE [n|expression]
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthiscommand
onthesameline.Itcenterstheanswercategoriesautomatically.
Arguments
n
Thisargumentcanbevalue0or1.Value1indicatesthattheanswercategoriesareautomaticallycentered.
Thedefaultvalueis0(notcentered).
Remarks
InNIPOSYS.INIthefollowingsettingapplies:
CentreCodes = nspecifieswhethertheanswercategorieshavetobecenteredornot,wheren=0
(notcentered)or1(centered).Defaultisnotcentered.
When*AUTOisapplicable(i.e.theanswercategoriesaredividedonthescreen)the*CENTRE
commandorthecenteringsettingwillbeignored.
Whencenteringtheanswercategories,youcansuppressthedisplayofthecategorycodeswiththe
settingHideCodes=1inthefileNIPOSYS.INI.
Example
*QUESTION 1 *CODES 61 *CENTRE
Do you own a car?
1: Yes
2: No

Inthisexample,theanswercategoriesaredisplayedinthemiddleofthescreen(notethatthecategory
numbersmaybesuppressedwiththeHideCodessetting):
Result:

SeeAlso
*AUTO...............................................................98

Page108

CommandIndex

*CODES
Purpose
Definesaquestiontype.
Syntax
*CODES [pos]L<length>|<pos>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthiscommand
onthesameline.Itdefinesaclosedquestionwithasetofprecodedanswercategories,whereeach
categoryhasauniquevalue.
Arguments
pos
ThisisthestartofthedatafieldwherethedataiswrittenintheUfile.
length
Thisisthelengthofthedatafield.
Inaclosed,butnotmultiplequestionthenumberofdigitsofthehighestcategorynumberdefinesthe
minimumlengthofthedatafield.Inaclosed,multiplequestionthehighestcategorynumber(i.e.notthe
numberofcategories)definestheminimumlengthofthedatafield.
Remarks
Itisalsopossibletodefineadummyquestionbyomittingthecategoriesinordertostoredatafrom
otherquestionsorvariablesortouseitasalabel.
TheargumentL1maybeomittedwhendatapositionsarefixed.
TheNIPOODINDeveloperreportsawarningmessagewhenthelengthismorethanthehighestcode
numberrequires.TheNIPOODINDeveloperreportsanerrormessagewhena*CODESquestion
without*MULTIexceedsthemaximumsizeofL10(max.codenumberis2147483647=2321).Use
*ALPHAtocopylargedummyquestionsfromandtotheTfile.
Example1
*QUESTION 1 *CODES 61
Do you own a car?
1: Yes
2: No

Inthisexample,aclosedquestionisdefinedwithtwoprecodedanswercategories.
Example2
*QUESTION 2 *CODES 62L25 *MULTI
What brands of cars do you know?

Page109

CommandIndex

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: Don't know *NOCON

Inthisexampleaclosedquestionwithmultipleanswersisdefined.Becausethehighestcodenumberis25,
thefieldhastobeatleast25positionslong.Whentheinterviewerorrespondentisusingthekeyboardto
typethecodenumbers,thevariouscodesshouldbeseparatedbyaspace,thatisgeneratedautomatically
whenacodenumberiscomplete.Soitisbesttoskipcode1whenusingcode10andhigher,skipcode2
whenusingcode20andhigher.
SeeAlso
*ALPHA(QuestionType)...................................95
*FORM ............................................................132
*MULTI ...........................................................186
*NUMBER(questiontype)..............................205
*OPEN(questiontype) ...................................208
*SCALE(questiontype)...................................247

Page110

CommandIndex

*CONJ...*ENDCONJ
System
NIPOCAWIonly
Purpose
Executesmoduleconjointmeasurement.
Syntax
*CONJ [pos]L<length> [*LEFT text] [*RIGHT text]
<commands>
*ENDCONJ
Description
Afulldescriptionofconjointmeasurementcanbefoundinthismanual.
SeeAlso
*LIST(definition).............................................173
*LIST(questionoption)...................................175

Page111

CommandIndex

*CONTROL
Purpose
Makesthedisplayofanswercodesandtextsdependentonanswerstoapreviousquestion.
Syntax
*CONTROL <Qn> <W|N|W*|N*>
Description
Thiscommandisalwaysusedincombinationwith*QUESTION,*FORMor*REPEATandhastobe
specifiedafterthesecommandsonthesameline.Thiscommandcontrolsthedisplayofanswercodesand
textsdependingonanswerstoapreviousquestion.Thissocalledcontrollingquestionisreferredtoby
meansofQn.Whenusedincombinationwith*REPEAT,executionofrepetitionnumbersonlytakesplace
(ornot)ifthenumberscorrespondwiththeanswercodesmentionedinthecontrollingquestion.
Arguments
Qn
Thereferencetothecontrolquestionwherenisthenumberofthequestion.
W
Onlyanswercategoriesthatwerementionedatthecontrolquestionarebeingdisplayed.
N
Onlyanswercategoriesthatwerenotmentionedatthecontrolquestionarebeingdisplayed.
W*
Answercategoriesthatwerenotmentionedatthecontrolquestionaremarkedwithanasterisk(NIPOCATI
/NIPOCAWIonly)
N*
Answercategoriesthatwerementionedatthecontrolquestionaremarkedwithanasterisk(NIPOCATI/
NIPOCAWIonly)
Remarks
Makesurethatthecontrolquestionandthecurrentquestionhavethesamesetofanswercategories.
Categoriesthataresuppressedasaresultofthiscommand,can'tbepartoftheanswer.Whenall
categoriesaresuppressedthequestionwillbeskipped.
Emptylinesforcategoriesthataresuppressedby*CONTROLwillbeskippedifthecategoriesare
automaticallydividedintocolumnsonscreen.
Inaformquestion,*CONTROLautomaticallysuppressesemptylinesthataretheresultofthecontrol.
Whencontrollingarepeatblock,W*andN*havenomeaning.

Page112

CommandIndex

Example1
*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

Inthisexample,theanswersmentionedinquestion1arenotdisplayedinquestion2.However,ifDont
knowisselectedinquestion1,thiscategorywillbedisplayedinquestion2,sinceitisexcludedfromthe
controloptionby*NOCON.
Example2
*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

Inthisexample,question2willonlybeaskedformakesthatwerementionedinquestion1.
SeeAlso
*FORM ............................................................132
*NOCON..........................................................199
*QUESTION .....................................................224
*REPEAT...*ENDREP ......................................235
*VCONTROL ....................................................288

Page113

CommandIndex

*COPY
Purpose
Transfersdatawithinaquestionnaire.
Syntax
*COPY <Qn> <Qm|[expression]|"text">
Description
Thiscommandisalsoallowedundercondition.Dataspecifiedinthesecondargumentwillbetransferredto
thedatafieldspecifiedinthefirstargument.*COPYisinterpretingthecontentsofdatafieldstobemoved.
Theoriginalcontentsofthereceivingdatafield,ifany,willbereplaced.
Arguments
Qn
Thequestionreferenceofthedatafieldwherethedatawillbetransferredto(i.e.thereceivingfield).
Qm
Thequestionreferenceofthedatafieldthatwillbetransferred(i.e.thesendingfield).
expression
Ifanexpressionisgivenassecondargumenttheresultoftheexpressionwillbeavalue.Thisvaluewillthen
beputasdatainthereceivingdatafield.
text
Thistextwillbetransferredliterallytothereceivingdatafield.Itisallowedtorefertoavariableinthetext.
Inthatcase,thecontentsofthisvariablewillbeembeddedinthetextandthenwillbetransferredtothe
receivingdatafield.
Remarks
Itisrecommendedtousethesamequestiontypeforbothsendingandreceivingfields.
Ifthedatathathastobetransferredconsistsonlyofdigits,NIPOODINregardsthisasanumber.
Therefore,totransferdatafromamultiplequestionyouhavetouse*INCLUDE.
Whenusingthe*INCLUDEcommandtoincludecodesinasinglecodedquestion,thecontentswillbe
settothehighestcode.Usethe*COPYcommandtooverwriteoriginalcontents.
Contrarytothe*INCLUDEcommandthe*COPYcommandwillgivewarningmessageswhendata
positionsareusedmorethanonce.Usethe*INCLUDEcommandtosuppressthesewarnings.
Whenaquestionalreadycontainsthecategorythatwascopied,nothingchanges.
Example1
*QUESTION 1 *CODES 71L2
*COPY Q1 [3]

ThecontentsofQ1willbe03.
Example2
*QUESTION 1 *CODES 71L2
*QUESTION 2 *CODES 81
*COPY Q1 Q2

ThecontentsofQ2arestoredinQ1.Forexample,ifQ2contains8,thecontentsofQ1willbe08.
SeeAlso
*EXCLUDE .......................................................125
*INCLUDE........................................................156

Page114

CommandIndex

*COUNT
Purpose
Countsthenumberofanswers.
Syntax
*COUNT <Qn|numvar> <Qm>
Description
Thiscommandisalsoallowedundercondition.Thenumberofanswerstothequestionspecifiedinthe
secondargumentiscountedandwillbeputasanumberinthedatafieldorvariablespecifiedinthefirst
argument.
Arguments
Qn
Thequestionreferenceofthedatafieldwherethenumberisstored.
numvar
Thenameofthenumericvariablewherethenumberisstored.Thisvariablehastobedefinedearlierinthe
questionnaire.
Qm
Thequestionreferencefromwhichthenumberofanswershavetobecounted.
Remarks
Thiscommandisonlyusefulformultiplecodes(*MULTI)questions.
Example
*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

Inthisexample,thenumberofanswersonquestion1iscountedinthevariablenumbandusedinthe
questiontextofquestion2.
SeeAlso
*MULTI............................................................186
*VARS..............................................................287

Page115

CommandIndex

*CUT
System
NIPOCATI/NIPOCAPIonly
Purpose
Interruptsaninterviewandmakesanappointment.
Syntax
*CUT <n|[expression]>
Description
Withthiscommandtheinterviewcanbeinterruptedfora(definitive)appointment.Thiscommandisalso
allowedundercondition.Thecontextoftheinterviewwillbesavedandtheinterviewerhastomakean
appointmenttofinishtheinterviewatalatertime.Whenpickinguptheinterviewagain,itwillstartwith
thequestionwithquestionnumberindicatedbyn.
Arguments
n|expression
Thisisapositiveintegerthatspecifiesanexistingquestionnumber.
Example
*QUESTION 1 *CODES L1
Are you the managing director of this company?
1: Yes
2: No
*QUESTION 2 *CODES L1 *IF [ Q1,2 ]
Can you connect me with the managing director of the company?
1: Yes
2: No, he is not in the office currently *CUT 1
3: No, refusal *ABORT

SeeAlso
*ABORT.............................................................92
*APPOINT..........................................................97
*END ...............................................................121
*ENDNGB........................................................123
*ENDST ...........................................................124
*NONRESP ......................................................203

Page116

CommandIndex

*DATE
Purpose
Getscurrentdateandtime.
Syntax
*DATE <Qn>
Description
Thiscommandisalsoallowedundercondition.Getsthecurrentcomputerdateandtimeoftheclient
workstationandstoresthisin18positionsinthedatafieldintheformatYYYY/MM/DD hhmm:ss.Ifthe
datafieldisn'tlongenoughthedatawillbetruncated.
Arguments
Qn
Thequestionreferenceofthedatafieldwherethedateisstored.
Examples
*QUESTION 901 *ALPHA 101L18
*DATE Q901
E.g., on January 31 2008 at 2:15 PM and 30 seconds 2008/01/31 1415:30 is storedis
storedTION 902 *ALPHA 201L10
*TIME Q902

E.g.,onJanuary31st,20082008/01/31isstoredinposition201210,thetimewillbetruncated(i.e.isnot
written).Towritethetimeonly,seethe*DTIMEcommand.
*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

Inthisexample,thecompletedatewillbestoredinquestion1.Question2,3and4refertopartsofthe
datafieldfromquestion1,tostoretheyear,monthanddate.
SeeAlso
*DTIME ...........................................................119

Page117

CommandIndex

*DELAY
System
NIPOCATI/NIPOCAPIonly
Purpose
Delaystheinterview.
Syntax
*DELAY <n>
Description
Thiscommanddelaystheinterviewfornseconds.*DELAYcanbeusedtodisplayavideoorplayasound
fragmentforacertainnumberofsecondsbeforetheinterviewercanmoveontothenextquestion.
Arguments
n
ThenumberofsecondsthatNIPOODINwaitsbeforeresumingthescript.
Example
*PLAY "mymovie.avi"
*DELAY 10
*QUESTION 1 *CODES 61L1

Do you recognize this commercial?


1: Yes
2: No

Inthisexample,thevideoplaysfor10secondsbeforethequestioncomesup.
Note:
Theemptylinesabovethequestiontextareintendedtomakeroomforthevideo.

SeeAlso
*WAITPLAY..................................................... 292

Page118

CommandIndex

*DTIME
Purpose
Getscurrenttime.
Syntax
*TIME <Qn>
Description
Thiscommandisalsoallowedundercondition.GetsthecurrentcomputertimeoftheworkstationtheNIPO
ODINengineisrunningon(eithertheNIPOCAPIClientorNIPOCATIClientworkstationortheNIPOODIN
WebServer)andwritesthisin7positionsinthedatafieldintheformathhmm:ss.Ifthedatafieldisn't
longenoughthedatawillbetruncated.
Arguments
Qn
Thequestionreferenceofthedatafieldwherethetimeisput.
Example
*QUESTION 901 *ALPHA 101L7
*TIME Q901

Forexample,at2:15PMand30seconds1415:30willbestoredinposition101107.Thedateisnot
stored(Seethe*DATEcommand).
*QUESTION 902 *ALPHA 201L4
*TIME Q902

Forexample,at2:15PM1415willbestoredinposition201204,thesecondsaretruncated.
SeeAlso
*DATE..............................................................117

Page119

CommandIndex

*DUMMY
Purpose
Specifiesadummyquestion.
Syntax
*DUMMY
Description
Thiscommandspecifiesadummyquestion.Dummyquestionsare,forexample,closedquestionsthatwill
beusedtoextractcategorytextsfrom.Ifyoudonotmarkthesequestionsasdummyquestionstheywould
appearonthescreenduringtheinterview.*DUMMYpreventsthequestionfrombeingdisplayed.Inearlier
versionsofODINitwasnecessarytospecifydummyquestionsbyusingnullevaluatingfilterslike*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

Inthisexample,question2willnotbedisplayedduringtheinterview.However,thetextfromthisdummy
questionisusedtodisplayinthethirdquestiontext.

Page120

CommandIndex

*END
Purpose
Endsthequestionnaireorsubpartsofit.
Syntax
*END
Description
Ingeneralthiscommanddefinestheendofthequestionnaireorsubpartsofit.Thiscommandisalso
allowedundercondition.Withsubpartsaphysicalunconditionalendisalwaysrequired.Theactionofthis
commanddependsonthecontext.Wedistinguishthefollowing:
Terminationofthequestionnaire.Theinterviewismarkedasasuccessfulinterview.Alldataisstoredto
theappropriatefiles.IntheTfile/Sampletablerecord,ifpresent,theresponsecodefor'successful'is
stored.
Terminationoftheinitialpart(withthe*INITcommand).Anunconditionalphysicalendisrequired.
Terminationofarepetitionblock(*REPEAT).If*ENDisusedwithinarepetitionblock,therepetition
willbeended.Thecurrentrepetitionandallnotyetexecutedrepetitions,ifany,willnotbeexecuted.
Example1
*QUESTION 1 *CODES 96
Do you own a DVD recorder?
1: Yes
2: No *GOTO 99
*QUESTION 2 *CODES 97
Did you use your DVD recorder 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

Page121

CommandIndex

Example2
*REPEAT
*REPNUM
*REPNUM
*REPNUM

3
1
2
3

*RANDOM
*PUT statement "good quality"
*PUT statement "value for money"
*PUT statement "user friendly"

*QUESTION 1 *CODES 1L1


Philips DVD recorders are...
*?statement
1: Applies
2: Does not apply
9: Does not know Philips DVD recorders at all *END
*ENDREP

InthisexamplethreestatementsaboutPhilipsDVDrecordersareasked.Whentherespondentdoesnot
knowPhilipsDVDrecordersatall,thereisnoneedtoaskanyfurtherstatementsandtherepeatloopwillbe
terminated.Duetothe*RANDOM command,thiscanbeinanyofthe3statements.
SeeAlso
*ABORT.............................................................92
*APPOINT..........................................................97
*CUT ...............................................................116
*ENDNGB........................................................123
*ENDST ...........................................................124
*INIT...*END..................................................159
*NONRESP ......................................................203
*REPEAT...*ENDREP......................................235

Page122

CommandIndex

*ENDNGB
Purpose
Endsaquestionnaire.
Syntax
*ENDNGB
Description
Terminatesthequestionnaireandmarkstheinterviewasnotsuccessful,usefulinterview.Thedatais
storedintheappropriatefiles.IntheTfile/Sampletablerecord,ifpresent,theresponsecode'19:No
success,answerswritten'isstored.Interviewswiththiscodeare(bydefault)notcountedinthe
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

SeeAlso
*ABORT .............................................................92
*APPOINT..........................................................97
*CUT................................................................116
*END ...............................................................121
*ENDST ...........................................................124
*NONRESP ......................................................203

Page123

CommandIndex

*ENDST
Purpose
Endsaquestionnaireandwritesaresponsecode.
Syntax
*ENDST <code>
Description
Terminatesthequestionnaire.IntheTfile/Sample tablerecord,ifpresent,theresponsecodeas
indicatedisstored.Thewritingofthedatadependsonthemeaningoftheindicatedresponsecode.
Arguments
code
ThenonresponsecodethathastobewrittenintheTfile/Sampletable.
Remarks
Thenonresponsecodemustbeatwodigitnumberfrom0089.
Example
*QUESTION 1 *CODES L1
Do you own a car ?
1: Yes
2: No

*ENDST 16

Inthisexample,whereonlypeopleowningacarshouldbeinterviewed,thecodeforoutsidetargetgroupis
placedintheTfile/Sampletablerecord.
Example2
*QUESTION 1 *CODES L1
Do you want to continue this survey in a web questionnaire?
If so, we will send you an Email with a link (a URL), that you can start to fill in the
questionnaire yourself.
1: Send Email with link
*ENDST 41
2: No, continue interview in CATI

Inthisexample,weuseresponsecode41toswitchtheinterviewfromNIPOCATItoNIPOCAWI.Makesure
toconfigureresponsecode41inthesurveyconfigurationfile:
RESPC41T=Switch to Web Interviewing
RESPC41=0,SWITCH

SeeAlso
*ABORT.............................................................92
*APPOINT..........................................................97
*CUT ...............................................................116
*END ...............................................................121
*ENDNGB........................................................123
*NONRESP ......................................................203

Page124

CommandIndex

*EXCLUDE
Purpose
Datamanipulation.
Syntax
*EXCLUDE <Qn> <Qm|[expression]|[range]>
Description
Thiscommandisalsoallowedundercondition.Withthiscommanditispossibletoremoveoneormore
answercodesfromthereceivingdatafield.
Arguments
Qn
Thequestionreferenceofthedatafieldwheretheprocesstakesplace.
Qm
Allanswersofthisquestionwillberemovedfromthespecifieddatafield.
expression
Theresultoftheexpressionwillrepresentacodevalue.Nextthiscodewillberemovedfromthedatafield.
range
Youmaynowalsospecifymorethanonecode,separatedbysemicolons,thatshouldbeexcludedfromthe
question.UseTOtospecifyarange.
Remarks
Contraryto*COPYand*INCLUDE,the*EXCLUDE commandisusedforbothsinglecodedandmultiple
questions.Whenaquestiondidnotcontainthecodethatwasexcluded,nothingchanges.
Example1
*QUESTION 1
*EXCLUDE Q1
*EXCLUDE Q1
*EXCLUDE Q1
*EXCLUDE Q1

*CODES 71L10 *MULTI


[3]
[4]
[5]
[7]

IfQ1containedcodes2,3,4,5,6and7,itwouldnowcontainonlycode2and6.
Thiscanalsobespecifiedas:
*EXCLUDE Q1 [3;4;5;7]

oras:
*EXCLUDE Q1 [3 TO 5;7]

Note:
Donotseparatecodeswithcommas.UsearangewithTOorusesemicolons;tospecifymorethan
onecode.
Example2
*QUESTION 1 *CODES 71L10 *MULTI
*QUESTION 2 *CODES 81L10 *MULTI
*EXCLUDE Q1 Q2

IfQ1containsthecodes2,3,4and7,andQ2containscodes2,7,and9,Q1willendupwithcodes3and4.
Question2remainsunchanged.

Page125

CommandIndex

Example3
*QUESTION 1 *CODES 136L7 *MULTI
*EXCLUDE Q1 Q1

ThiseffectivelyclearsallanswersinQ1.
SeeAlso
*COPY .............................................................114
*INCLUDE........................................................156

Page126

CommandIndex

*FIELD
Purpose
Definespositionsofasubroutineorrepeatblock.
Syntax
*FIELD [pos]L<length>|<pos>
Description
Thiscommandisusedwith*GOSUB(jumptosubroutine)and*REPEAT(repetitionblock)andmustbe
specifiedafterthatcommandonthesameline.ThiscommanddefinesdatafieldintheUfile,wherethe
enteredanswersofthesubroutineorrepetitionblockhavetobestored.Positionswithintheroutineor
*REPEATblockarerelativepositionswithinthisblock.
Arguments
pos
ThestartofthedatafieldwherethedataiswrittenintheUfile.
length
Thelengthofthedatafield.
Remarks
Ifyou'reworkingwithunfixeddatafieldsyoudon'thavetospecifythiscommand.Fixingthequestionnaire
willplacetherequired*FIELDcommandswhererequired.
Example1
*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 of the quality of *?BRAND ?
1:
2:
3:
4:

Very good
Good
Poor
Very poor

5: Dont know \ no answer


*ENDREP

Example2
*TEXTVARS BRAND
*SUBROUTINE BRANDSUB

Page127

CommandIndex

*QUESTION 2 *CODES 1
What do you think of the quality of *?BRAND ?
1:
2:
3:
4:
5:

Very good
Good
Poor
Very poor
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 computers?
1: Acer
*GOSUB BRANDSUB *FIELD 64L2
2: IBM *GOSUB BRANDSUB *FIELD 66L2
3: Tulip
*GOSUB BRANDSUB *FIELD 68L2

SeeAlso
*GOSUB ..........................................................137
*REPEAT...*ENDREP......................................235

Page128

CommandIndex

*FONT(definition)
Purpose
Definesafont.
Syntax
*FONT <n> <"size facename [style] [(R G B, R G B)]">
Description
Specifiesthesize,fonttypefacename,styleandforegroundandbackgroundcolorsofafont.Argumentnis
usedtoidentifythefontwhenthefontisselected.Thefontdescriptionargumentsmustbeenclosedby
doublequotes(")andcanbespecifiedinanyorder.Font0doesnothavetobespecifiedsinceitisthe
defaultfont.Thedefaultfontisthefontthatisusedforeveryquestionwherenofontisselected.Iffont0is
redefinedthenthenewfontdefinitionisusedasthedefaultfont.
Arguments
n
Positiveintegerusedtoidentifythefont.
size
Pointsizeofthefont.
facename
Nameofthefont.ThisfontmustbeinstalledunderWindows.
style
Thefollowingstylesareavailable:bold,italic,underline,strikeout.Stylescanbecombined,theymustbe
separatedbyatleastonespace.
(R G B, R G B)
ThisargumentspecifiestheforegroundandbackgroundcolorsinRGB(RedGreenBlue)values.R,G,Bare
intherangeof0255inclusive,whereristheamountofred,gistheamountofgreenandbistheamount
ofblue.Ifonlyaforegroundcolorhastobespecifiedthiscanbedonebyusing(R G B);Ifonlya
backgroundcolorhastobespecifiedthiscanbedoneby:(,R G B).
Blackis(000);whiteis(255255255);redis(25500)etcetera.
Remarks
Ifarequestedfontisnotinstalled,MicrosoftWindowswillchooseafontinthesamefamilyoffonts.
Example
*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"

SeeAlso
*FONT(switching)...........................................130

Page129

CommandIndex

*FONT(switching)
Purpose
Switchestoanearlierdefinedfont.
Syntax
*FONT <n|[expression]>
Description
Selectsanearlierdefinedfont.Canbeusedasaquestionoptionorinquestionorcodetexts.Theselected
fontwillremainactiveuntilanewfontisselected.Everytimethescreeniscleared,thecurrentfontissetto
thedefaultfont(*FONT 0)ortothefontspecifiedinthequestionoption.
Arguments
n|expression
Thisisapositiveintegerorexpressionthatreferstoanearlierdefinedfont.
Example1
*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:

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

Inthisexample,theinfopageisdisplayedinCourierBold.

Page130

CommandIndex

Example3
*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 randomizer draws a number between -100 and 100
Negative numbers are printed in *FONT 0red*FONT 1
Positive numbers are printed in *FONT 2blue*FONT 1
*FONT [2*(x>0)]*? x*FONT 1
*END

SeeAlso
*FONT(definition) ..........................................129

Page131

CommandIndex

*FORM
Purpose
Definesaformquestion.
Syntax
*FORM
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthiscommand
onthesameline.Definesaformquestionthatcontainsoneormoreseparateinputfieldsthatwillbedealt
withseparatelyononeandthesamescreen.Thesefieldswilleitherexpectnumbersoralphanumerical
textsoflimitedlengthasinput.
Thecommands*NUMBERand*ALPHAdetermineofwhichtypeandhowlonganinputcellis.Intheform
questiontheremaybedescriptivetextsthatgenerallyprecedeacelldefinition.
Itisalsopossibletocreatesocalledgrids,byusing*FORM incombinationwith*SCALEor*GRID.
*FORMquestionscanbecontrolledbyanotherquestionbyusingthe*CONTROLcommand.
Remarks
Ifthereisacodeinfrontofthedescriptivetexts,thiscodecontrolsinwhichorderthecellsaredealt
withduringtheinterview.Thecellwhichturnitiswillbehighlighted.Thiscodeisalsousedto
determinewhichlinesaredisplayedorsuppressedby*CONTROL.
Informquestions,*CONTROLautomaticallysuppressesemptylinesthataretheresultofthecontrol.
YoucanrefertoafieldinaformquestionwiththeexpressionQnFm,wherenisthequestionnumber
andmisthefieldnumber(i.e.theorderinwhichtheywerespecified:fromthelefttotherightandthen
fromtoptobottom;donotconfusethiswiththeFormcellnumberinfrontofthecell,thatdefinesthe
orderinwhichfieldsarefilledwhenusingthe<Tab>).Fordetails,seeFormFieldReferences.
Note:
Ifyourefertoafieldnumberthatishigherthantheamountoffieldsintheformquestion,thevalue
offield1isreturned.
Example1
*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

Page132

CommandIndex

Result:

Example2
*TAB 30
*TEXTVARS Number, Price, PricePerFax
*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 PricePerFax [Q1F2 / Q1F1]
*QUESTION 2 *CODES 70L1 *IF [Q1F1 > 1 ]
You bought *? Number fax machines for *? Price?
So the average price per fax machine was *? PricePerFax ?
1: Yes
2: No
*QUESTION 3 *FORM
Number and price of PC's, monitors and printers.
Number
Computers
Monitors
Printers

Total price
1:*NUMBER 71L3 4: *NUMBER 74L5.2
2:*NUMBER 81L3 5: *NUMBER 84L5.2
3:*NUMBER 91L3 6: *NUMBER 94L5.2

*PUT PricePerComputer [Q3F2 / Q3F1]


*PUT PricePerMonitor [Q3F4 / Q3F3]
*PUT PricePerPrinter [Q3F6 / Q3F5]
*** First we want to ask the numbers and then the prices.
*** This means that Q3F2 refers to the field that was
*** defined second(74L5.2), but will be filled in fourth (4:).

Page133

CommandIndex

Example3
*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 rate the taste of the following beers:
Very poor
1:Heineken
*SCALE 67L1 5 6
2:Amstel

*SCALE 68L1 5 6

3:Grolsch

*SCALE 69L1 5 6

4:Carlsberg

*SCALE 70L1 5 6

5:Tuborg

*SCALE 71L1 5 6

Very good

Result:

SeeAlso
*ALPHA(in*FORMquestion) ...........................96
*GRID(in*FORMquestion)............................141
*NUMBER(in*FORMquestion) .....................206
*SCALE(in*FORMquestion) ..........................249

Page134

CommandIndex

*FORMAT
Purpose
Specifiestheformatofnumbertransfer.
Syntax
*FORMAT <i[.f]>
Description
Specifiestheformatofnumbersfromnumericvariableswhentheyareretrievedbythecommand*? or
whenconvertinganumericvariableintoatextvariableby*PUT.
Arguments
i
Theminimumspacetobeusedfortherepresentationoftheintegerpartofthenumber.Ifnecessary,more
spacewillbeused.
f
Themaximumspacethathastobeusedforthefractionalpartofthenumber;thiswillbefilledwithtrailing
zeros.Iffistoosmalltodisplayalldecimals,thesewillberounded.Themaximumnumberofdecimalsis4.
Thedefaultis0.
Example
*TAB 30
*TEXTVARS Number, Price, PricePerFax
*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 PricePerFax [Q1F2 / Q1F1]
*QUESTION 2 *CODES 70L1
You bought *? Number fax machines for *? Price?
So the average price per fax machine was *? PricePerFax ?
1: Yes
2: No

Result:

Page135

CommandIndex

SeeAlso
*? ......................................................................89
*NUMBER(in*FORMquestion) .....................206
*NUMBER(questiontype)..............................205
*PUT................................................................222
*VARS..............................................................287

Page136

CommandIndex

*GOSUB
Purpose
Jumpstoasubroutine.
Syntax
*GOSUB <name>
Description
Takescareofajumptoasubroutinespecifiedbyname.Afterreturnfromthesubroutinetheinterviewwill
continuewiththenextcommandfollowing*GOSUB.Thiscommandisalsoallowedundercondition.
Arguments
name
Thenameofthesubroutinethatiscalled.Thissubroutinehastobedefinedearlierinthequestionnaire.
Remark
Ifyou'reworkingwithsocalled'floating'datafieldsyoudon'thavetospecifythe*FIELDcommand.
Whenfixingtheanswerfieldsofthequestionnaireitwillbeputthereautomatically.
Example1
*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
*GOSUB
Mobil

*GOSUB
*GOSUB
*GOSUB
OPINION
*GOSUB

OPINION
OPINION
OPINION
*FIELD
OPINION

*FIELD
*FIELD
*FIELD
69L1
*FIELD

66L1
67L1
68L1
70L1

Inthisexample,foreachanswermentioned,thesubroutineiscalledinreverseorderthattheywere
enteredinQ1.Datapositionsarefixed,eachsubroutinecallrequiresonly1position,specifiedinthe
*FIELDcommand.Question901issettoposition1inthefield,arelativepositionwithinspecifiedfield.

Page137

CommandIndex

Example2
*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

Inthisexample,ifanswer2or3wouldbeselected,thetextoftheanswerisstoredinavariableandthe
subroutineiscalled.Datapositionsarenotfixed,sothe*FIELDcommandisnotspecifiedhere.
SeeAlso
*FIELD .............................................................127
*SUBROUTINE...*ENDSUB ............................275

Page138

CommandIndex

*GOTO
Purpose
Jumpstoaquestion.
Syntax
*GOTO <n|[expression]>
Description
Thiscommandcanbeusedonseparateline,afterafilterexpression,onacodeofa *CODESquestionand
onaresponsecodeinthesurveyconfigurationfileofaNIPOCATIsurvey(toendtheinterviewgracefully
withclosingremarksorquestions).
Ifusedonacategoryithastobeonthesamelineasthecodenumberdefinition.Ifthecodeisselected,the
interviewcontinueswiththequestionspecified.Thiscommandcanalsobeusedunconditionally.However,
jumpingintooroutofasubroutineorrepetitionblockisnotallowed.
IfusedonaresponsecodeofaNIPOCATIsurvey,thejumpismadeoncetheinterviewerselectsthecode
throughthenonresponselist,forexample:
RESPC31T=Stop interview, jump to final questions *GOTO 9001
RESPC31=STOP,WRITE

Anyspecificationsforthecodeareignoredbuttheymustexist.Makesuretheindicatedquestionexistsand
thatthequestionnaireisappropriatelyterminatedafterwards,usingforexample*ENDST.
Arguments
n|expression
Thisisapositiveintegerorexpressionthatindicatesanexistingquestion.Makesurethattheexpression
alwaysreferstoanexistingquestionnumber,toavoidaruntimeerrorduringtheinterview,thatwill
terminatetheinterviewinasurveyerrorduringfieldwork.
Remark
IfyoujumpbackinyourNIPOODINquestionnairetoaquestionthatisspecifiedbeforethecurrent
position,athemessage"Warning: Jump to previous question"appearsduringasyntaxcheck
intheNIPOODINDeveloper.
Whenyoujumpbacktocorrectorchangeanswerspreviouslyentered,considerusingthe*BACK
commandinsteadof*GOTO.Thisshowstheanswersonpreviousquestionsthatwereentered,butwill
alsoautomaticallyclearanyanswersgivenonapreviousquestionnairerouting.
Ratherthanjumpingtoapreviousquestiontocreatealoop,itisrecommendedtousea*REPEATloop
toavoidcreatinganendlessloopand/orproblemswhenexportingquestions.Thisalsoavoidsissues
whenaninterviewissuspendedtobefolloweduplater.
Whenyoujump(unconditionally)acrosssomequestions,thesyntaxcheckintheNIPOODINDeveloper
givesanoverviewofquestionsthatareneverused:
Info: Overview of unused questions:
Info:
Question <n> in line <x>
Info:
Question <m> in line <y>

NotethatNIPOODINDevelopermightconsiderquestionsasunused,duetocomplexfiltersthatalways
evaluatetofalse,butinfactmightbetrueduringaninterview(forexampleduetoexpressionsbasedon
randomnumbersorthecontentsofasamplefield).Considerrewritingthefilterinalesscomplexformat.

Page139

CommandIndex

Example1
*QUESTION 10 *CODES 268
Do you have a driver's license?
1: Yes
2: No

*GOTO 26

Example2
*QUESTION 10 *CODES 268
Do you have a driver's license?
1: Yes
2: No
*IF [Q10,2] *GOTO 26

Inbothexamples,thosewithadriverslicensecontinuewiththefirstquestionafterQ10,theothersgoto
Q26.
SeeAlso
*BACK .............................................................102
*IF(condition)...*ELSE...................................154

Page140

CommandIndex

*GRID(in*FORMquestion)
Purpose
Definesagrid.
Syntax
*GRID [pos]L<length> x[.xs] y[.ys]
Description
Informquestionsitispossibletocreategrids.Agridusescheckboxestomarktheanswersonscreen
insteadofusingcodelists.Withthe*GRIDcommandyoucancreateverticalgrids.Thesegridsaremarked
toptobottom,contrarytohorizontalgrids(*SCALE)whicharemarkedlefttoright.Toallowmultiple
answersinverticalgridsusetheoption*MULTI.Thedatafieldhastobelargeenoughtostorealldata.
Arguments
pos
ThestartofthedatafieldwherethedataiswrittenintheUfile.Onlyonepositionpergridboxisrequired.
length
Thelengthofthedatafield.
x
Numberofboxesvertically.
xs
Verticalspacing(lines).Default:2
y
Numberofboxeshorizontally.Default:1
ys
Horizontalspacing(characters).Default:4
Remarks
Youcanuse*TABandtabstolineoutgrids.
Toaligncolumntexts(headers)abovethegrid,tabpositionsmustbedefinedwiththe*TABcommand
beforea*GRIDquestion.Foreachcolumninthegridatabmustbedefined.Thegridwillalwaysbe
distributedevenlybetweenthefirstandthelasttab(inotherwordsitisnotpossibletovarythegaps
betweencolumns).Ifthelasttabisnotat100%ofthescreen'swidth,thelastcolumntextandthe*GRID
mustbefollowedbyatabandaspacetousethelastinvisiblecolumn.Usestylesheets(CSS)tocentertexts
inNIPOCAWI.
*TAB 30, 40, 50, 60, 70
*QUESTION 1 *FORM
Question text
Column 1

Column 2

Column 3

Column 4

1:Row 1 *GRID 61L4 3.2 4.1


Row 2
Row 3

Intheexampleabove,tabsareusedtospacethecolumnheadingsandtoseparatethefirstrow'stextfrom
the*GRIDcommand.Thecolumnheadingandthefirstlinebothendwithtabspace.

Page141

CommandIndex

Inasingle*GRID(without*MULTI)theinterviewerorrespondentmustselectoneboxineach
(vertical)column.Inotherwords,eachbrandmustberated.
Inamultiple*GRID(with*MULTI)theinterviewerorrespondentmustselectoneormoreboxesin
each(vertical)column.Inotherwords,youcanselectoneormorestatementsforeachbrand.
Columnsthathavebeenremoved(NIPOCATI/NIPOCAPI)ordisabled(NIPOCAWI)using*VCONTROL
cannotbeselected.
Ifyouwanttoenforcethattheinterviewer/respondentselectsaboxineach(horizontal)rowinsteadof
each(vertical)column,itisrecommendedtouse*SCALEfieldsinthe*FORMquestioninstead.
Ifitisnotrequiredthatinterviewer/respondentselectoneormoreboxesforeachbrand(forexample,
statementsdonotneedtoapplytoabrand),youmayaddthe*NONcommandinthe*QUESTIONline.
Alternatively,addanoanswerstatementsuchas"Noneofthesestatementsapplyforthisproduct".
Itisnotpossibletoruleoutcombinationsofselectionsina*GRID*MULTIquestion.Youmayhowever
use*DUMMYquestionsonthesamedatapositionstoretrievethedataperproductandcreateafilter
with*IFtocheckifsuchcombinationshavebeenselected.
Example1
*QUESTION 101 *FORM
Vertical grid, using GRID
Heineken
1:1

Grolsch Amstel Carlsberg

Tuborg Other

*GRID L6 5.2 6.10 *NON

2
3
4
5

Thisresultsinagridconsistingof5lineswith6boxesperline.Notethattabspacecombinationsareplaced
ontheheadingrowandthefistrowofthecodes.
Result:

Page142

CommandIndex

Example2
*QUESTION 101 *FORM
Vertical Grid, MULTIPLE answers allowed
Heineken
1:1

Grolsch Amstel Carlsberg

Tuborg Other

*GRID L30 5.2 6.10 *MULTI

2
3
4
5

Thishasthesameresultasabovebutwithmultipleanswersallowed.Notethelengthofthedatafield(30):
6x5positionsarerequiredtostorethedata.Again,tabspacecombinationsareplacedontheheadingrow
andthefistrowofthecodes.
Result:

Example3
*QUESTION 1 *CODES 61L5 *MULTI
Beer brands
1:
2:
3:
4:
5:

Heineken Beer
Amstel Beer
Grolsch Beer
Bavaria Beer
Leeuw Beer

*TAB 30, 40, 50, 60, 70, 80, 90, 100


*QUESTION 4 *FORM *VCONTROL Q1 W
Statements (multiple grid)

Page143

CommandIndex

Heineken Beer
1:Value for money

Amstel Beer

Grolsch Beer

Bavaria Beer

Leeuw Beer

*GRID 66L20 4.2 5.5 *MULTI

Good product
Must have this product
None of these statements apply for this product
*** The next construction will check if no-one combined
*** the first 3 statements with the 'None of these apply'.
*TEXTVARS Brand
*** Use the same data positions as the *FORM *GRID question
*** for your dummy question in the *REPEAT loop.
*REPEAT 5 *FIELD 66L20
*PUT Brand Q1,?R
*QUESTION 5 *CODES 1L4 *MULTI *DUMMY
Dummy question with statements for *?Brand.
1:Value for money
2:Good product
3:Must have this product
4:None of these statements apply for this product
*QUESTION 6 *IF [Q5,1-3 & Q5,4]
You combined one or more statements for *?Brand with 'None of these statements apply for
this product'.
Please go back and correct.
*IF [Q5,1-3 & Q5,4] *BACK 4
*ENDREP

InQ4,tabsareusedtospacethecolumnheaders.Boththeheadinglinesandthecodelinesendwithatab
spacecombination.Incodeonethecodetextandthe*GRIDcommandareseparatedbyatabspace.
ResultinNIPOWebClientifHeineken,Amstel,andLeeuwwouldbeselectedinQ1:

Page144

CommandIndex

SeeAlso
*FORM ............................................................132
*MULTI............................................................186
*SCALE(in*FORMquestion) ..........................249
*TAB................................................................279
*VCONTROL ....................................................288

Page145

CommandIndex

*GROUP
Purpose
Keepscategoriestogether.
Syntax
*GROUP
Description
Whendisplayingcodesinaquestionrandomly,invertedorrotated,youcankeepcodestogetherwiththe
command*GROUPafterthefirstcategoryofagroup.Allcodesuptothenext*GROUParesortedonly
mutually.Thiscanalsobecombinedwiththequestionoption*AUTO.

Page146

CommandIndex

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
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

0
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
37
38
39
40
41
42
43
44
45
46
47
48
49

*GROUP

*GROUP

*GROUP

*GROUP

98:don't know *NOCON *GROUP


99:no answer

Page147

CommandIndex

Result:

SeeAlso
*AUTO...............................................................98
*INV ................................................................163
*RANDOM.......................................................226
*ROT ...............................................................241

Page148

CommandIndex

*HEADING
Purpose
Definesaheadertextabovecategories.
Syntax
*HEADING <text>
Description
Whendisplayingcodesinaquestionyoucandefineaheadingabovecodestobeusedwhentheyare
displayedrandomly,invertedorrotated.Thiscanalsobecombinedwiththequestionoption*AUTO.The
command*HEADINGwillbeinterpretedasanimplicit*GROUPonthenextcodeline.
Arguments
text
Atextlabelidentifyingthegroupofcodesitprecedes.
Example
*FONT 0 "Arial 10"
*FONT 1 "Arial 10 Italic"
*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

Page149

CommandIndex

Result:

SeeAlso
*AUTO...............................................................98
*GROUP ..........................................................146
*INV ................................................................163
*NEWCOLUMN ...............................................190
*RANDOM.......................................................226
*ROT ...............................................................241

Page150

CommandIndex

*HELP(definition)
Purpose
Definesapageoftext.
Syntax
*HELP [n]
Description
Definesapageoftext.Thiscommandmustbespecifiedatthebeginningofaline.Thetextconsistsofall
followinglinesuptothefirstnewcommandatthebeginningofaline,excluding**,*?and*FONT
(switching)commands.
Ifanumbered*HELPscreenisfollowedbya*PAGEcommandthispagewillactasthenexthelpscreen.In
thiswayitispossibletodivideyourhelpscreenintomultiplepages.Whenthehelppageiscalledtwonew
buttonswillappearonthequestionscreentogotothepreviousornextscreen.
Arguments
n
Thisisthenumberofthetextpage.Ifomitted,thespecifiedhelptextismadeavailableonallquestions.
Remarks
Thehelptextremainsunchangedandavailableuntilanewpageisdefinedwith*HELP.Thehelptextis
availablefromthepointinthequestionnairethatitwasdefined.AninterviewermaypressHelporF3to
viewthehelptext.Ifanemptypageoftextisdefined(*HELP withamewcommandimmediatelyonthe
nextline)itisnolongeravailable.
Example1
*HELP 1
This is the first help screen defined.
*HELP 2
And this is the second help screen defined.

Example2
*HELP 1
This is the first page of the help screen.
*PAGE
This is the second page of the help screen.

Inthisexample,ahelpscreenwith2pagesisdefined.

Page151

CommandIndex

*HELP(questionoption)
Purpose
Switchestoanearlierdefinedhelptextpage.
Syntax
*HELP <n>
Description
Thiscommandhastobeusedincombinationwith*QUESTION.Bypressingthehelpbutton,therelated
textpageisdisplayed.
Arguments
n
Thenumberofthepagethathastobedisplayed.
Remarks
Ifaglobalhelppagewasdefined,theglobalhelpfileisavailableonallquestionswithoutrequiring*HELP
asaquestionoption.Ifyoudospecify*HELPasaquestionoption,theglobalhelpisoverriddenwiththe
specifiedhelppage.
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

Page152

CommandIndex

Result:
Inthisexample,pressingtheHelpbuttondisplaysahelpscreenwithtextandpressingNextwilldisplaysthe
secondpageofthehelpscreen.

SeeAlso
*HELP(definition) ...........................................151

Page153

CommandIndex

*IF(condition)...*ELSE
Purpose
Createsacondition.
Syntax
*IF <[expression]> <action> [*ELSE <action>]
Description
Theexpressionwillbeinterpretedandtestedfortrueorfalse.Iftheexpressionistruethecommands
immediatelyfollowingtheexpressionwillbeexecuted.Youmayusethecommand*ELSEfollowedby
commandsthatwillbeexecutediftheexpressionisfalse.Formoreinformationontheexpressionsthat
maybeused,seeExpressions(onpage76).
Arguments
expression
Abooleanexpressionwithasresulttrueorfalse.
action
Oneormorecommandsthatcauseanaction.Definitioncommandsarenotallowed.Allthesecommands
willbeexecutedoneaftertheothertill*ELSEisencounteredortheendofthecommandlinehasbeen
reached.
Example1
*IF [ Q6 , 1-5 ] *GOSUB "BRAND"

IfQ6isansweredwithananswervaluebetween1and5thesubroutineBRANDiscalled.
Example2
*IF [ RAN 3 ] *GOTO 100

ThegeneratedvaluesforRAN 3are0,1and2.Value0willmaketheexpressionfalseandthuspreventthe
jump.Consequently,inroughly67%ofthecasestheinterviewjumpstoquestion100.
Example3
*IF [ Q11 = "PC" ] *GOTO 100 *ELSE *GOTO 200

Theconditionistrueiftheanswertoquestion11isequaltothetext"PC".
SeeAlso
*GOTO ............................................................139
*IF(questionoption) ......................................155

Page154

CommandIndex

*IF(questionoption)
Purpose
Displayaquestionundercondition.
Syntax
*IF <[n|expression]> ["text"]
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandaquestiontypedefinitionandmustbe
specifiedonthesameline.Thiscommandputsaconditiononaquestion.Thequestionwillonlybe
displayediftheexpressionistrue.Foradetailedexplanationofexpressions,seeExpressions(onpage76).
Arguments
expression
Abooleanexpressionwithasresulttrueorfalse.
text
Anytext.If,whencreatingvariablesduringanexport,thequestionfiltersarecopied,thistextwillbecopied
inthevariablefile.InNIPODiana,thistextisplacedabovethetablewithstraightrunsandcross
tabulations.
Example
*QUESTION 15 *CODES 96
Do you own a DVD player?
1: Yes
2: No
*QUESTION 16 *CODES 97 *IF [ Q15 , 1 ]
Did you use your DVD player yesterday?
1: Yes
2: No

Inthisexample,question16willonlybeaskediftheanswertoquestion15iscode1.
SeeAlso
*IF(condition)...*ELSE...................................154

Page155

CommandIndex

*INCLUDE
Purpose
Transfersdatawithinaquestionnaire.
Syntax
*INCLUDE <Qn> <Qm|[expression]|[range]>
Description
Thiscommandisalsoallowedundercondition.Oneormoreanswercodesarecombinedinthereceiving
datafield.
Arguments
Qn
Thequestionreferenceofthedatafieldwherethecodesmustbemerged.Formorecodestobeinsertedin
aquestion,thequestionmustbemultiplecoded(*CODES *MULTI).Onsinglecodedquestions,the
existingcodeisoverwrittenwiththehighestcodeinthesecondparameter.
Qm
Allcodesofthisquestionwillbemergedinthespecifieddatafield.Thisquestionmaybeasingle(*CODES)
oramultiplecodesquestion(*CODES *MULTI).
expression
Theresultoftheexpressionrepresentsacodevalue.Thiscodeismarkedinthedatafield.
range
Specifiesarangeofmorethanonecode,separatedbysemicolons,thatshouldbemarkedinthequestion.
UseTOtospecifyarange.
Remarks
Usethe*COPYcommandtooverwriteoriginalcontents.Use*EXCLUDE Qn Qntoclearallanswers
fromamultiplecodedquestion.
Contrarytothe*COPYcommandthe*INCLUDEcommanddoesnotgivewarningmessageswhendata
positionsareusedmorethanonce,exceptwhenthe*INCLUDEcommandisspecifiedbeforethe
actualquestiondefinition.
Whencopyingtextoran*ALPHAquestionintoan*ALPHAquestion,use*COPYratherthan
*INCLUDE.
Whenaquestionalreadycontainsthecodesthatwereincluded,nothingchanges.
Whenincludingmorethanonecodeorincludingarangeinaquestionthatisnot*MULTI,onlythelast
codethatwasspecifiedisincluded.
Example1
*QUESTION 1
*INCLUDE Q1
*INCLUDE Q1
*INCLUDE Q1
*INCLUDE Q1

*CODES 71L10 *MULTI


[3]
[4]
[5]
[7]

Thecontentsofthequestionwillbe:2,3,4,5and7.Thismayalsobespecifiedas:
*INCLUDE Q1 [3;4;5;7]

Oras:
*INCLUDE Q1 [3 TO 5;7]

Note:
Donotseparatecodeswithcommas.

Page156

CommandIndex

Example2
*QUESTION 1 *CODES 71L10 *MULTI
*QUESTION 2 *CODES 121L8 *MULTI
*INCLUDE Q1 Q2

TheanswersofQ2aremergedintotheanswersofQ1.Forexample,ifQ1containedcodes1and4andQ2
containscodes1,3and7,Q1willcontaincodes1,3,4and7.
SeeAlso
*COPY .............................................................114
*EXCLUDE .......................................................125

Page157

CommandIndex

*INFO
Purpose
Definesapageoftextwithinformationfortheinterviewer(beforetheintroduction).
Syntax
*INFO [n]
Description
Definesapageofinformationtext.Thiscommandmustbespecifiedatthebeginningofaline.Thetext
consistsofallfollowinglinesuptothefirstnewcommandthatisatthebeginningofaline,excluding**,
*?and*FONT(switching).Thispageoftextmayonlyoccuronceinthequestionnaire.
Thetextisdisplayedataparticularpointintheinterviewandbeforetheintroductiontext.InNIPOCATIand
NIPOCAPI,duringtheinterviewitcanbedisplayedatanytimebyselectingView>Infofromthemenu.
Theinfopageisoftenusedtoinformorinstructtheinterviewerorrespondentaboutthesubjectofthe
questionnaire.
Arguments
n
Specifiesunderwhatconditionthe*INFOpageisdisplayed,avalueofeither0,1,2or3(default1whennot
specified).
Valuesforn
Value

Function

Theinfopageissuppressedbeforethestartoftheinterview.TheinterviewercanseetheinfopageonlybyselectingView>
Infofromthemenu(NIPOCATIandNIPOCAPIonly).

Theinfopageisshownbeforetheintroductionscreenatthestartofeachinterview.Theinterviewercanalsoseetheinfo
pagebyselectingView>Infofromthemenu(NIPOCATIandNIPOCAPIonly).

Theinfopageisshownwhenwaitingforthedialertoreturnwithanewtelephonenumber(NIPOCATIonly,dialeronly)

ForNIPOCATIandNIPOCAWI,theinfopageisshownonlyoncewhenstartingthesurvey.ForNIPOCAPI,theinfopageis
showatthestartofeachinterview.

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

SeeAlso
*HELP(definition) ...........................................151
*INSTRUC........................................................161
*PAGE .............................................................214
*QUESTION .....................................................224

Page158

CommandIndex

*INIT...*END
Purpose
Startsaninitialpartofaquestionnaire.
Syntax
*INIT
Description
Definesthestartofaninitialpartofthequestionnaire.Thiscommandmustbespecifiedatthebeginningof
aline.Thecommandmayonlyoccuronceinthequestionnaire.Inaninitialization'block'anyNIPOODIN
scriptmaybeused.Thisblockisalwaysexecutedafterdisplayingtheintroduction,evenforresumed
questionnairesaftersuspensionoranappointment.Theblockisconcludedby*END.
The*INITcommandisusefulasaprecursoryinitializationthatmustalwaysbeexecutedwhenresuming
theinterviewafteranappointmentorsuspension.Itmaybeusedtorerunquestions,calculations,retest
stratificationetcetera.Afterexecutionofan*INITblock,theinterviewisresumedatthelastquestion
answeredprevioustotheappointmentorsuspension.
Remarks
Answersfromapreviousrunofthe*INITblockarenotmadevisible.
Ifthe*INITblockisusedtodisplaysomevariablesfromaprevioussession(likeacounter),one
solutionistostorethiscounterinthetelephonefileorSampletableandusethe*COPYcommandto
retrievethisdata.
WhenusingChannelAwarescripting(*IF [_ISCATI]or*IF [_ISCAWI]),questionsinthe
*INITblockwillalwaysbeexecutedaccordingtothecurrentchannel.
Example1
*INIT
*QUESTION 9001 *ALPHA L18
*DATE Q9001
*END

Inthisexamplethecurrentdateandtimeissavedeachtimetheinterviewisstarted.
Example2
*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 *CUT 1
3: No, refusal *ABORT

Inthisexamplethenameoftherespondentisaskedbeforeeachinterview.Notethatonlythenameofthe
lastcontactwillbesavedinquestion9002.

Page159

CommandIndex

SeeAlso
*END ...............................................................121
*INFO ..............................................................158
*INSTRUC........................................................161

Page160

CommandIndex

*INSTRUC
System
NIPOCAPIonly.
Purpose
Definesapageoftext.
Syntax
*INSTRUC
Description
Definesapageoftext.Thatismadevisibleonlyduringatestrunoftheinterview.Thiscommandmustbe
specifiedatthebeginningofaline.Thetextconsistsofallfollowinglinesuptothefirstnewcommandthat
isatthebeginningofalinewiththeexceptionof**,*?and*FONT(switching).
*INSTRUC
Please review the following instructions with regard to this survey:
...

SeeAlso
*HELP(definition) ...........................................151
*INFO ..............................................................158
*PAGE .............................................................214
*QUESTION .....................................................224

Page161

CommandIndex

*INTRO
Purpose
Definestheintroductionpage.
Syntax
*INTRO [n]
Description
Definestheintroductionpagetext.Foreachchannel(NIPOCATI,NIPOCAWI,NIPOCAPIorNIPOCASI)a
separateintroductiontextmaybedefined.Thetextconsistsofallfollowinglinesuptothefirstnew
commandthatisatthebeginningofalinewiththeexceptionof**,*?and*FONT(switching).Youmay
define*INTROtextperlanguagesectionifrequired,butonlyone*INTROdefinitionperchannelper
languagemaybespecified.
Arguments
[n]
Thisisthechannelnumberoroneofthepredefinedchannelconstants:_CATI_,_CAPI_,_CAWI_and
_CASI_.Expressionsarenotallowed.Ifomitted,theintroductiontextisusedforallchannelsthatdonot
havetheirownintroductiontextdefined.
Remarks
Ifnisthenumberofanunknownchannelawarningmessagewillbegiven.Itisnotconsideredanerror
becauseitmayrepresentavalidchannelinafutureversionofthesoftware.
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.

SeeAlso
*INSTRUC........................................................161
*LANGUAGE....................................................166

Page162

CommandIndex

*INV
Purpose
Randomlydisplayscodesininvertedorder.
Syntax
*INV [[pos]L<length>]
Description
Thiscommandcanbeusedintwoways:
Incombinationwithaclosedquestion.Itmustbespecifiedonthesamelineasthequestiondefinition.
Theanswercodesandthedescriptionsofthequestionareshowneithertoptobottomorbottomto
top,randomly.
Onasinglecommandlinewithoutarguments.Usethecommandonaseparatelinetomakeinversionof
categoriesrespondentconsistentacrossasingleinterview.NIPOODINfirstrandomlyselectsan
inversion(toptobottomorbottomtotop)andthenusestheselectedinversionforall*INVquestions
inthecurrentinterview.
Arguments
pos
Thedatafieldspecificationwheretheorderofthedisplayedcategoriesisstoredinthedatafilewiththe
closedanswers.
length
Thelengthofthedatafield.Notethatitisnotusefultostoremorethanonecode,sincetheorderofthe
codesisobviousfromthefirstvalue.
Remarks
Thepositionspecifiedafter*INV isonlystoredifthelistwasdisplayedinverted.
The*NOCONcommandexcludesanswercodesfrominversion.
Example1
*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

Inthisexample,theanswerisstoredinposition61.Inposition71,code5isstoredifthelistwasinverted.
The*NOCONensurescode6isalwaysdisplayedatthebottomofthelist.
Example2
*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

Page163

CommandIndex

Inthisexampleeitherallquestions(inthiscaseonlyQ2)aredisplayedinregularorderorinverted,
consistentlythroughoutthentireinterview.

Page164

CommandIndex

*LABEL
Purpose
Definesatextlabelforthequestion'sexport.
Syntax
*LABEL <text>
Description
Thiscommandmustbespecifiedona*QUESTIONwithaquestiontypedefinition.Thiscommandgivesthe
possibilitytoattachanexportlabeltoaquestionthatreplacesthequestiontext.Thelabeldoesn'thaveto
beunique.
Arguments
text
Thetextthatmustbeusedasthequestionlabel.Themaximumlengthofalabelnameis65characters.
Labelnamescontainingspacesmustbeenclosedbydoublequotes.
Example
*QUESTION 1 *CODES L1 *VAR Sex *LABEL Gender
Int. type the respondents gender
1:Male
2:Female
*QUESTION 2 *NUMBER L2 *VAR Age *LABEL "Age of respondent"
Could you please tell me your age?

ExportresultinNIPODiana/NvisionScript
*Sex *SNG 61L1: Gender
1:Male
2:Female
*Age 62L2: Age of respondent

ExportresultinIBMSPSS
VARIABLE LABELS
Sex 'Gender'
Age 'Age of respondent'

SeeAlso
*VAR ...............................................................285

Page165

CommandIndex

*LANGUAGE
Purpose
Definesalanguagesection.
Syntax
*LANGUAGE "<name>[,LTR|RTL]"
Description
Withthiscommand,youcancreateoneormoresectionsthatcontaintextinanotherlanguagethanthe
defaultlanguage.Thefirst*LANGUAGEsectionmuststartattheendofthescriptcontainingtheactual
questionnairelogic.Alimitednumberofcommandsareavailableina*LANGUAGEsectionformostly
formattingpurposes.Seefurtherbelowfordetails.Allotherlogicmustbeplacedinthemainsection.
Ifaquestionnumberisnotavailableinanotherlanguage,thetextfromthemainsectionisdisplayed.Ifa
questionisonlyavailableinatranslation,itisneverdisplayed.Thecodesaredisplayedastheyarespecified
inthelanguage,somakesuretheoriginalcodelabelsandtheirtranslationscorrespond.
DuringtheinterviewtheinterviewercanselecttheappropriatelanguagefromtheLanguagemenu(NIPO
CATIandNIPOCAPIonly).Thelanguagecanalsobechangedusingthe*SWILANGcommand.
ThenameofthecurrentlyactivelanguageiscontainedwithinthesystemtextvariableLANGUAGE.
Arguments
name
ThisisthenameofthelanguagesectionthatNIPOODINreferstowhenalanguageisselectedfromthe
menu.Languagenamesmustbespecifiedbetweendoublequotes(forexample"Nederlands").
LTR
IndicateslanguagedirectionLefttoRight(default).SupportedforNIPOCAPIandNIPOCAWIonly.
RTL
IndicateslanguagedirectionRighttoLeft(HebrewandArabic).SupportedforNIPOCAPIandNIPOCAWI
only.
Remarks
ThedefaultlanguageisalwaysconsideredtobeEnglish.Thisisthedefaultnameofthefirstiteminthe
languagemenuandcannotbechanged.Itisrecommendedtocreatetheoriginalquestionnairein
Englishwhenappropriateandthenaddthetranslationsections.
IfyouroriginalquestionnaireiswritteninanotherlanguagethanEnglishandyoumadeanEnglish
translationlateron,refertotheoriginallanguagewith"English"andtothistranslationwithanother
name,e.g.,"Engels".Toavoidconfusionitisrecommendedtouse*SWILANGtoswitchbetween
languagestonotconfusetheinterviewer.
Ifyouareusingthe*SWILANGcommandinyourNIPOODINquestionnaire,youcandisablethe
languagemenuinthesurveyconfigurationusingSwilangDisablesLanguageSwitch=1.
Tousebidirectionallanguages(HebrewandArabic)inNIPOCATIorintheNIPOCATIpreview,addthe
settingBiDi=1tothe[OdQes]sectionoftheNIPOSYS.INIfile.
Allowedcommands
Thefollowingcommandsmaybeusedina*LANGUAGEsection:

Page166

CommandIndex

*QUESTIONwithquestionnumberbutwithouttype,position,conditionsandotheroptions.
*?
**
*FONT(definition)
*FONT(switching)
*LIST(definition)
*USELIST
*INTRO
*INFO
*NEW
*PICT(questionoption)
*PICT(codesoption)
*HELP(definitiononlynumbered*HELPscreens)
*PAGE(Aspartofanumbered*HELPscreen)
*NUMBER(in*FORMquestion)withoutpositiondefinitionoroptions
*ALPHA(in*FORMquestion)withoutpositiondefinitionoroptions
*SCALE(in*FORMquestion)withoutpositiondefinitionoroptions
*GRID(in*FORMquestion)withoutpositiondefinitionoroptions
*HEADING
*MERGEtomergelanguagesectionsonly

Example1
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
*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

Page167

CommandIndex

*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

Example2
*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.

Page168

CommandIndex

*QUESTION 4 *FORM
FORM question
1:Numeric field
*NUMBER L2 *MIN 18 *MAX 65
2:Alpha field *ALPHA L20 *NON
*TAB 40,50,60,70
*QUESTION 5 *FORM
FORM SCALE question
value1 value2 value3
1:Statement 1
2:Statement 2
3:Statement 3

*SCALE L1 3 10
*SCALE L1 3 10
*SCALE L1 3 10

*QUESTION 6 *FORM
FORM GRID question
Brand 1 Brand 2 Brand 3
1:Line 1
Line 2
Line 3
Line 4

*GRID L12 4.1 3.10

*LANGUAGE "Nederlands"
*INTRO
Introduktietekst voor Nederlandse respondenten.
*QUESTION 4
FORM vraag
1:Numeriek veld
*NUMBER
2:Alfa veld
*ALPHA
*QUESTION 5
FORM SCALE vraag
waarde1 waarde2 waarde3
1:Uitspraak 1
2:Uitspraak 2
3:Uitspraak 3

*SCALE
*SCALE
*SCALE

*QUESTION 6
FORM GRID vraag
Merk 1 Merk 2 Merk 3
1:Regel 1
Regel 2
Regel 3
Regel 4

*GRID

SeeAlso
*SWILANG.......................................................277

Page169

CommandIndex

*LEFT
Purpose
Questiontypeoptionandoptionwithinconjointanalysis.

Syntax
*LEFT <text>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONand*SCALEorincombinationwith
*CONJ(Conjointmodule)andmustbespecifiedafterthesecommandsonthesameline.Withthis
commandatextcanbespecifiedthatisplacedatthelefthandendofthescaleduringtheinterview.
Arguments
text
Thetextthatwillbedisplayedonthelefthandpoleofthescale.Ifthetextcontainsspacesithastobe
placedbetweendoublequotes.
Example
*QUESTION 1 *SCALE 61 *LEFT "Left scale text" *RIGHT "Right scale text"
This is an example of a scale question.

Result:

SeeAlso
*CONJ...*ENDCONJ .......................................111
*RIGHT ............................................................240
*SCALE(questiontype)...................................247

Page170

CommandIndex

*LINE
Purpose
Definesacontinuousscalequestion.
Syntax
*LINE [pos]L<length>|<pos>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthiscommand
onthesameline.Inputisdonebymeansofdrawingaline,usingtheleftandrightcursorkeysorbyclicking
withthemouseonthescrollarrows.Thenumericalanswerconsistsofthelengthoftheline(thenumberof
horizontalscreenpositionsthelineoccupies)andwillbestoredrightalignedandwithleadingzerosinthe
specifiedpositions.
Youcanuse*MAXtospecifyamaximumvaluefortheline.Ifyouspecifyanegativevalueforthemaximum
averticallineispresented.
Arguments
pos
Thedatafieldspecificationwherethegivenanswersisstoredinthedatafilewiththeclosedanswers.
length
Thisisthelengthofthedatafield.
Example1
*QUESTION 1 *LINE 192L2
This is an example of a line question.

Result:

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

Page171

CommandIndex

Result:

SeeAlso
*MAX ..............................................................178
*MIN ...............................................................182
*REPEAT(questionoption).............................234
*SCALE(questiontype)...................................247

Page172

CommandIndex

*LIST(definition)
Purpose
Definesananswerlist.
Syntax
*LIST <n|"name">
Description
Definesacodelist.Thiscommandmustbespecifiedatthebeginningofaline.Thecodelistconsistsof
allthefollowinglinesuptothefirstnewcommandatthebeginningofaline.
Ifthelistisgoingtobeusedwithatextquestion(*ALPHA)theremaybeatextbetweensquare
bracketsafterthecodetext,whichisusedasdatatostorewhenthecodeisselectedduringthe
interview.
Ifthelistisgoingtobeusedwithanumericalquestion(*NUMBER)oratextquestion(*ALPHA)thelist
maycontainthesamecodemorethanonce.Thiswayyoucanhaveamultiplelabelsbecodedunderthe
samecodevalue,forexampletocoverforalternativenames,changedbrandnamesorcommonspelling
errors.
Listsprovideagreatwaytoreusecodelists,tocondensethequestionnaireandtomaintaincodeliststhat
arerepetitivelyusedthroughoutthequestionnaire.
Arguments
n
Apositiveintegerandisuniquewithinonesubquestionnaire.
name
Thenameofthelist.Thisnamemustbeuniquewithinone(sub)questionnaire.

Page173

CommandIndex

Remarks
Inthelistdefinitionacodemaybefollowedbytheansweroption*NOCON.Theuseofthisanswer
optionspecifiesthatthespecificcodealwayswillbedisplayedwhenthelistisused.Withthisoptionitis
forexamplepossibletoalwaysdisplaytheanswercategory"Dontknow".
Foreachcodeinthecodelistandwhenthelistisusedincombinationwitha*CODESquestion,the
followingcodeoptionsareallowed:*OPEN(codesoption),*NOCON,*NMUL,*SAVE(codesoption),
*FONT(switching),*GROUP,*NEWCOLUMNand*SWILANG.
Whenthelistisusedincombinationwith*NUMBERor*ALPHA,onlythecodeoption*NOCONis
allowed.Themeaningoftheoptionisthatthiscodewillnotdisappearfromthelistwhentypingan
answer.Allothercodeoptionsresultinasyntaxerror.
Ablanklineatthebottomofthelistisconsideredpartofthelistandisdisplayedinthecodelistofthe
questionthatusesthelist.
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

SeeAlso
*LIST(questionoption)...................................175
*USELIST .........................................................284

Page174

CommandIndex

*LIST(questionoption)
Purpose
Usesanswercodesfromalist.
Syntax
*LIST <n|[expression]|"name">
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandaquestiontypedefinitionandmustbe
specifiedafterthesecommandsonthesameline.Anearlierdefinedlistofcodeswillbeusedasanswer
codesforthequestion.Thiscommandmaybeusedinthefollowingthreequestiontypes:
Incombinationwitha*CODESquestionoptionallywith*MULTI,thecodesandthetextsfromthelist
areused.TheanswercodesstoredintheUfilearedecidedbythecodenumbersinthelist.
Incombinationwitha*NUMBERquestiontheanswermustbetyped.Thelistofavailableoptions
narrowsdownateachcharacterenteredthenumber,andonlycodelabelswithamatchingpattern
(bothlabelsstartingwithorcontainingthetext)aredisplayed.Whenfinallyoneisselected,thecode
numberbelongingtotheanswerisstoredasanumberintheUfile.Theinterviewermayusethemouse
orthearrowdownkeytoselectananswerfromthe(narroweddown)list.Thecodenumbersarenot
displayedinatypeaheadlistandcannotbeenteredbytheinterviewerorrespondent.InNIPOCAPIand
NIPOCAWI,alistsmallerthan25itemsischangedintoadropdownbox.ForNIPOCAWI,takecarenot
touseverylargelistassomeolderbrowsersdonotproperlysupportthis.
Incombinationwithan*ALPHAthefunctionalityisthesameaswitha*NUMBERquestion,exceptthat
thecodelabelisstoredintheUfileratherthanthecode.Notethatthelabeltextistruncatedtothe
positiondefinitioninthe*ALPHAcommand.
Arguments
n|expression
Apositiveintegerorexpressionthatindicatesanexistinglist.Iftheexpressionisanumericvariablethe
expressionhastobeplacedbetweensquarebrackets.Iftheexpressionisatextvariable,theexpressionhas
tobeplacedbetweendoublequotes.
name
Thenameofanexistinglist.
Example1
*LIST 1
1: Citroen
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?

Inthisexampletheearlierdefinedlistisusedfortheanswercodes.

Page175

CommandIndex

Example2
*LIST Cars
1: Citroen
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

Example3
*LIST Cars2
01: Alfa Romeo
02: B.M.W.
02: BMW
03: Citroen
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?

Inthisexample,thelistdisplayedisdeterminedbyatextvariableandthereforethenamemustbeplaced
betweendoublequotes(")whenyourefertoitinthequestion.
Whenselectingthebrand,forinstanceFord,starttypingthename.Whentypingforexamplethe"F"only
thelistnarrowsdowntothebrands"Ford"and"Fiat".The"Other"codeisalwaysdisplayedbecauseit
containsthe*NOCONcommand.Eithertypethe"O"toselect"Ford"orusetheArrowDownkey,then
pressENTER.Thisstorescodenumber05inthedatafile.
Whenselectingthebrand"Volkswagen"aftertyping"VOL"stillboth"Volkwagen"and"Volvo"are
displayed.Aftertypingthefourthcharacter"K"thelistnarrowsdownto"Volkswagen"only.Notethatwe
definedtheabbreviation"VW"withthesamecodenumber.

Page176

CommandIndex

Whenselectingthe"RollsRoyce",aftertyping"RO"thebrands"AlfaRomeo"and"RollsRoyce"are
displayed,asthesecondwordof
AlfaRomeo"stillfits."Citron"alsocontains"ro",butthisisnotatthebeginningofaword.
Example4
*LIST PeugeotModels
1:Peugeot 107 [11107 ]
2:Peugeot 1007 [111007 ]
3:Peugeot 206 [11206 ]
4:Peugeot 207 [11207 ]
5:Peugeot 207 CC
[11207CC]
6:Peugeot 207 SW
[11207SW]
7:Peugeot 307 CC
[11307CC]
8:Peugeot 307 SW
[11307SW]
9:Peugeot 307 Estate
[11307ES]
10:Peugeot 308 [11308 ]
11:Peugeot 308 SW
[11308SW]
12:Peugeot 407 [11407 ]
13:Peugeot 407 Coupe
[11407CO]
14:Peugeot 407 SW
[11407SW]
15:Peugeot 4007
[114007 ]
16:Peugeot 607 [11607 ]
17:Peugeot 807 [11807 ]
18:Peugeot Partner Combi
[11COMBI]
*QUESTION 4 *ALPHA L7 *LIST PeugeotModels
What model Peugeot do you have?
You can start typing the model number. The list of models will become shorter with every
character that you type. Then select the appropriate model by using the arrow keys or the
mouse.

InthisexamplethemodelofPeugeotisasked.NIPOODINstoresthemodelnumberspecifiedbetweenthe
squarebrackets.
SeeAlso
*LIST(definition).............................................173
*USELIST .........................................................284

Page177

CommandIndex

*MAX
Purpose
Setsamaximum.
Syntax
*MAX <n|[expression]>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthequestion
typedefinitiononthesameline.
Incombinationwith*CODES*MULTIitdefinesthemaximumnumberofanswersallowed.
Incombinationwith*NUMBERitdefinesthemaximumvaluethatmaybeentered.
Incombinationwith*NUMBERanda*LIST(questionoption)itdefinestheendofthelist;codelabels
thathaveahighercodevaluewillnotbedisplayed.
Incombinationwith*LINEitdefinesthenumberofstepsthelinewillincrease.Forexampleifthe
maximumis10thenthelinewillbeonitsmaximumin10steps.
Incombinationwith*SCALEitdefinesthenumberofpointsinthescale.Notethatthemaximum
numberofpointsona*SCALEquestionis26.
Arguments
n|expression
Thisisapositiveintegerorexpressionthatgivesthemaximumanswervalue.
Example1
*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)

Page178

CommandIndex

Example2
*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:

Citroen
Fiat
Ford
Hyundai
Mazda
Mitsubishi
Nissan
Opel
Peugeot
Renault
Suzuki
Toyota
Volkswagen
Volvo

15: Other *NOCON *OPEN


16: Dont know *NOCON *NMUL

Inthisexample,nomoreanswerscanbegiventhanthenumberofcarsmentionedinQ1.
Example3
*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.

SeeAlso
*LINE ...............................................................171
*MIN ...............................................................182
*MULTI............................................................186
*NUMBER(questiontype)..............................205
*RANGE...........................................................228
*SCALE(questiontype)...................................247

Page179

CommandIndex

*MERGE
System
NIPOCAPIandNIPOCATIStandaloneonly.
Purpose
Insertsaquestionnaire.
Syntax
*MERGE [startpos] <filename> [:C]
Description
Thespecifiedquestionnairefileisinsertedontheplaceofthiscommand.*MERGEcannotbeusedina
questionnairethatisalreadymergeditself.
Arguments
startpos
Thestartpositionwithwhichallfixeddatafieldsinthemergedquestionnairewillberaised.Alldatafields
thatarenotfixedwillbereservedasusualinconsecutivepositions.
filename
Nameofthequestionnairethathastobemerged.Thenamemustcomplywiththequestionnairenaming
conventions.NotethatthelastcharacterQinthefilenamemustbeincluded.
:C
Thequestionnairethatshouldbemergediscoded(encrypted),soitcannotbeviewed,openedorchanged
bytheinterviewerorrespondent.ThequestionnairecanbeencryptedwiththeNIPOSoftwareprogram
DECODE.EXE.Bydefaultmergedquestionnairesareuncoded(plainASCIItext),whichmeansthatthey
couldbeviewedorchangedbytheinterviewerorrespondent.
Remarks
Thequestionnairetobemergedhastohavefixeddatafields.
The*MERGEcommandisintendedfortheNIPOCAPISystemorNIPOInterviewSystemstandalone.
Whenusing*MERGEintheNIPOFieldworkSystem,thequestionnairethatshouldbemergedmustbe
placedonthelocaldriveoftheinterviewerworkstation.
Nostartpositioncanbedefinedifthequestionnaireistobemergedinalanguagesection.
The*MERGEcommandcannotbeusedconditionallyasitisevaluatedwhenthequestionnaireisloaded
intomemory.
Example1
*MERGE BCKGRNDQ

ThequestionnairewiththenameBCKGRNDQismergedintothemainquestionnaireatstartup.

Page180

CommandIndex

Example2
*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

Inthisexample,aquestionnairewiththenameDUTCHQismergedintotheDutchlanguagesectionofthe
mainquestionnaireandaquestionnairewiththenameGERMANQwillbemergedintotheGermanlanguage
sectionofthemainquestionnaire.

Page181

CommandIndex

*MIN
Purpose
Setsaminimum.
Syntax
*MIN <n|[expression]|Qn>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthequestion
typedefinitiononthesameline.
Incombinationwith*CODES*MULTIitdefinestheminimumnumberofanswersallowed.
Incombinationwith*NUMBERitdefinestheminimumvaluethatmustbeentered.
Incombinationwith*NUMBERanda*LIST(questionoption)itdefinesthestartofthelist;codelabels
thathavealowercodevaluewillnotbedisplayed.
Incombinationwith*LINEitdefinesthestartinglengthoftheline,thenumberofscreenpositionthe
lineisinitiallysetat.
Incombinationwith*SCALEitdefinesthecodebydefaultselectedinthescale.Setto0tospecifythat
nostartingpositionisselected.
Arguments
n|expression
Apositiveintegerorexpressionthatgivestheminimumanswervalueortheinitiallengthorposition.
Qn
Aquestionreferenceofadatafield.Theanswertothisquestionisusedastheminimumvalue.
Example1
*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)

Page182

CommandIndex

Example2
*QUESTION 1 *CODES L18 *MULTI *MIN 3
What are your three favorite car brand(s)?
(Minimum 3 brands)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:

Citroen
Fiat
Ford
Hyundai
Mazda
Mitsubishi
Nissan
Opel
Peugeot
Renault
Suzuki
Toyota
Volkswagen
Volvo

15: Other #1 *OPEN


16: Other #2 *OPEN
17: Other #3 *OPEN
18: Dont know *NOCON *NMUL

Example3
*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)

Example4
*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)

SeeAlso
*LINE ...............................................................171
*MAX ..............................................................178
*MULTI............................................................186
*NUMBER(in*FORMquestion) .....................206
*NUMBER(questiontype)..............................205
*RANGE...........................................................228
*SCALE(in*FORMquestion) ..........................249
*SCALE(questiontype)...................................247

Page183

CommandIndex

*MOVA
Purpose
TransfersdatatotheTfileorSampletablerecord.
Syntax
*MOVA <Qn> <Qm>
Description
DataspecifiedinthesecondargumentistransferredtothedatafieldintheTfileorSampletablerecord
specifiedinthefirstargument.Theoriginalcontentsofthereceivingdatafieldareoverwritten.This
commandmayalsobeallowedundercondition.
Arguments
Qn
Thisisa(dummy)questionthatreferstoadatafieldintheTfileorSampletablerecord.
Qm
Thequestionreferenceofthedatafieldthatcontainsthedatatobetransferred.
Remarks
PositionsintheTfilearelinkedtofieldsintheSampletable.Formoreinformation,seeCopyingPositions
FromaTfile(see"CopyingPositionsFromaTfileIsLimitedtoFieldLength"onpage24)fordetails.Asa
resultyoushouldnotrefertopositionsintheTfilethatoverlapfields.Forexample,thefollowingscript:
*MOVA 136L55 101L55

Resultsinthemessage"Warning: 136L55 spans multiple database fields, will be


truncated to 136L45".
Example
*QUESTION 1 *NUMBER 290L2 *ADDRESS
*QUESTION 2 *NUMBER 61L2
How old are you?
*MOVA Q1 Q2

ThisexamplestoresthecontentsofQ2(position6162)inposition290291oftheTfile.Thiscorresponds
tothe4thandthe5thpositioninthefieldTTDisplayField4intheSampletablerecord.
SeeAlso
*ADDRESS .........................................................93
*COPY .............................................................114
*MOVU ...........................................................185

Page184

CommandIndex

*MOVU
Purpose
Transfersdatatoadatafieldintheclosedanswersrecord(Ufile).
Syntax
*MOVU <Qn> <Qm>
Description
Dataspecifiedinthesecondargumentistransferredtothedatafieldspecifiedinthefirstargument.This
commandisusedtotransferdatafromtheTfileorSampletablerecordtoadatafieldintherecordwith
closedanswers.Theoriginalcontentsofthereceivingdatafieldareoverwritten.Thiscommandmayalso
allowedundercondition.
Arguments
Qn
Thequestionreferenceofthedatafieldwherethedatahavetobetransferredto.
Qm
Referstoa(dummy)questionindicatingadatafieldintheTfileorSampletablerecordthatcontainsthe
datatobetransferred.
Remarks
PositionsintheTfilearelinkedtofieldsintheSampletable.Formoreinformation,seeCopyingPositions
FromaTfile(see"CopyingPositionsFromaTfileIsLimitedtoFieldLength"onpage24)fordetails.Asa
resultyoushouldnotrefertopositionsintheTfilethatoverlapfields.Forexample,thefollowingscript:
*MOVU 155L55 136L55

Resultsinthemessage"Warning: 136L55 spans multiple database fields, will be


truncated to 136L45".
Example1
*QUESTION 1 *NUMBER 290L2 *ADDRESS
*QUESTION 2 *NUMBER 61L2
*MOVU Q2 Q1

Thisexamplestoresthecontentsofposition290291oftheTfileorSampletablerecordintoquestion2
(position6162).
Example2
*QUESTION 701 *ALPHA 1L17 *ADDRESS
*QUESTION 702 *ALPHA 101L17
*MOVU Q702 Q701

Thisexamplestoresthetelephonenumber(position117oftheTfileorSampletablerecord)intoquestion
702(position101117).
SeeAlso
*ADDRESS .........................................................93
*COPY .............................................................114
*MOVA............................................................184

Page185

CommandIndex

*MULTI
Purpose
Specifiesaquestionasamultiplecodedquestion.
Syntax
*MULTI [[pos]L<length>|<pos>]
Description
Specifiesaquestionasamultiplecodedquestion.Thiscommandmaybeusedincombinationwithaclosed
question,anopenquestionora*SCALEfieldina*FORMquestionandmustbespecifiedafterthese
commandsonthesameline.Thelengthofthedatafieldspecificationfor*CODEShastobeatleastaslong
asthehighestcodevalueinthesetofpresentedcodes.Theanswersisstoredasastringof0and1valuesin
thedatafilewiththeclosedanswers.Hereanswercodencorrespondswiththentthpositioninthestring.A
1onthatpositionmeansthattheanswerwasgiven.
If*MULTIisusedincombinationwith*OPEN,thequestionwillberegardedasamultipleanswer
questionwhencodingopenanswers.
If*MULTIisusedincombinationwith*GRID,thegridquestionwillberegardedasmultipleandmore
thanoneboxmaybeselectedinbothhorizontalandverticaldirection.
If*MULTIisusedincombinationwitha*SCALEina*FORMquestion,itcreatesamultipleanswer
checkbox.
Arguments
pos
Anoptionaldatafieldspecificationwheretheorderofthementionsisstoredinthedatafilewiththeclosed
answers.
length
Thenumberofcodesofwhichtheorderwillbesavedisdependentofthelengthinthedatafield
specification.Thishastobejustaslongasthenumberofcodestobesavedmultipliedbythenumberof
digitsforthehighestcode.Ifthedatafieldisshortercodesmaybetruncated.
INNIPOCAWI,theorderofmentionsismarkedbynumbersastherespondentselectstheanswers.
Remarks
Tospecifyamaximumnumberofanswerstobementioned,use*MAX.
Example
*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

Inthisexample,allmentionsarestoredinposition61L10.Theorderofthefirstthreeanswersmentionedis
storedinposition71L6.Forinstance,ifthecategories5,1,6and4arementioned,position71L2willhold
thevalue05,position73L2willholdthevalue01andposition75L2willholdthevalue06.

Page186

CommandIndex

SeeAlso
*CODES ...........................................................109
*GRID(in*FORMquestion)............................141
*NMUL ............................................................198
*OPEN(questiontype)....................................208
*SCALE(in*FORMquestion) ..........................249

Page187

CommandIndex

*NCLS
Purpose
Doesnotclearthescreenatnewquestion.
Syntax
*NCLS
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONor*PAGEandmustbespecifiedafter
thesecommandsonthesameline.Duringtheinterview,thescreenwillnotbeclearedwhenthisquestion
isdealtwith.Thequestionisplacedunderthepreviousquestiononthescreen.Ifallverticalscreenlines
areused,thetextwillscrolloffthetopofthescreenandascrollbarwillappear.
Remarks
Ifthescreendoesnotscrollautomatically,youcanusethescrollbartoscrollthescreen.
Example
*QUESTION 1 *CODES 61
Do you own a DVD player?
1: Yes
2: No
*QUESTION 2 *OPEN 62L10 *MULTI *IF [Q1,1] *NCLS
What is the brand of your DVD player?

Inthisexample,thescreenisnotclearedwhenquestion2comesup:

SeeAlso
*PNW..............................................................220

Page188

CommandIndex

*NEW
Purpose
Startsanewsubquestionnaire.
Syntax
*NEW [n|Qn]
Description
Definesthestartofanewsubquestionnaire.Thiscommandmustbespecifiedatthebeginningofaline.A
subquestionnaireformsaclosedsetofquestions.Questionnumbersandanswerfieldsmaymatch
questionnumbersandanswerfieldsofanothersubquestionnairewithoutconsequences.Foreachsub
questionnaireaseparateanswerrecordisstored.Variablesarealwaysknownthroughouttheentire
questionnaire.
Thefunctionofthiscommandistodealwithseveralsubjects,forinstancefromdifferentresearchers,inthe
sameinterviewortostoreseparaterecordsforeachmemberofahouseholdortostoredataover99,999
positionsperrecord.
Arguments
n
Thepositionoftherecordfromwheretheanswersofthepreviousquestionnairewillbecleared.
Qn
Thequestionreferenceofthedatafieldfromwheretheanswersofthepreviousquestionnairewillbe
cleared.
Remarks
Ifthisargumentisgivenyoumaystillrefertodatafieldsthatarelowerthanthespecifieddatafield.
Iftheargumentisomittedthedefaultpositionis61.
Aftera*NEWyoucanalwaysrefertoquestionsinprevioussubquestionnaire(s).Howeverifyouusea
questionnumberagaininanewsubquestionnaire,itwillrefertothequestioninthecurrentsub
questionnaire.Youarenotallowedtostoreanythinginaprevioussubquestionnaire.

Page189

CommandIndex

*NEWCOLUMN
System
NIPOCATIandNIPOCAWI
Purpose
Setsabreakpointforcategorylists.
Syntax
*NEWCOLUMN
Description
Thiscommandisusedtosetabreakpointforcodelistsifusedincombinationwith*AUTO.Whenacode
lististoolongtofitonthescreenthesystemattemptstoarrangethecodesintocolumnsofequallengthon
thescreen.With*NEWCOLUMNyoucandeterminewheretostartthenextcolumn.

Page190

CommandIndex

Remarks
IntheNIPOCATIyoucannotforcetosplitacolumnlistataspecificpoint.Onlyiftheenginedecidesto
splitacolumnlistitwilltakeintoaccountwhereyouhaveputthebreakpoints.
IntheNIPOCAWI,*AUTOisnotsupported.The*NEWCOLUMNcommandsplitscodesincolumnsfor
theNIPOCAWI.Inotherwords,thecolumnsareforced.
Bydefaultthesystemmakesabestefforttocreatecolumnsofequallength.Using*NEWCOLUMN
preventsthisbehavior.
Example

Page191

CommandIndex

*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
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

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
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

Inthisexamplethesecondcolumnstartsatthetwentiethcoderegardlessthelengthofthecolumns.

Page192

CommandIndex

Result:

SeeAlso
*AUTO...............................................................98
*GROUP ..........................................................146
*HEADING .......................................................149

Page193

CommandIndex

*NEXT
System
NIPOCATIonly.
Purpose
Skipsfieldsinformquestions.
Syntax
*NEXT <n>
Description
Withthiscommanditispossibletojumptoaspecificfieldinaformquestionwherenreferstothefield
number.Ifthefieldsarenotnumbered,NIPOODINwillnotskipanyfields.Adda*NONcommandafterall
fieldsthatmaybeskippedbythe*NEXTcommand.Itisrecommendedtousethisoptionincombination
withan*IFstatement.
Arguments
n
Fieldnumbertowhichthejumpwillbemade.Theindexofthefieldiscountedhorizontallyfirstand
verticallysecond.
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=Owned, 2=Rental)
3: Mortgage per month *NUMBER L5 *NON *NEXT 5
4: Rent per month

*NUMBER L5 *NON

5: Other fixed overheads

*NUMBER L5 *NON

Inthisexample,themortgagepermonthisaskediftherespondentownsahouse,otherwisetherentper
monthisasked.
SeeAlso
*FORM ............................................................132
*IF(condition)...*ELSE...................................154

Page194

CommandIndex

*NEXTRECORD
System
NIPOCATIonly.
Purpose
CreateorupdateaSamplerecordtobeusedinsametelephoniccontact.
Syntax
*NEXTRECORD Variable "SampleTableField1=text1, SampleTableField2
=text2, "
Description
Usethe*NEXTRECORDcommandinaNIPOODINquestionnaire,tocreateanewSamplerecordorto
updateanexistingSamplerecord,soitcanbeusedinthesametelephonecontact.Thepurposeofthisisto
performmultipleinterviewsduringasingletelephoniccontact,andmaintainsamplerecordsper
respondentifrequired.
Oncethecurrentinterviewiscompleted(eitherasasuccessfulintervieworwithanynonresponse
code),thesystemautomaticallyrestartstheinterviewwiththesamplerecordsthatwereupdatedor
createdduringtheinterviewwithoutdisconnectingthetelephonelineorendingtheinterview.
Oncethe*NEXTRECORDcommandisexecutedsuccessfullytheVariablecontainstheinterview
numberoftheupdatedorcreatedrecord.
Arguments
Variable
Thisisavariablethatcontainsavalue0uptoandincluding99999999,whichisusedasInterviewNumber.
When0(zero)isspecifiedastheinterviewnumber,thesystemcreatesanewsampletablerecordand
assignsaninterviewnumberautomatically.Thisinterviewnumberwillbebasedonthehighestvaluefor
thefieldInterviewNumberintheSampletable,orasdefinedintheStartIntnr=<nr>setting
specifiedintheSurveyConfigurationfile.Thisrecordcontainsacopyofallthefieldsoftheactiverecord
whichareknownbythesystem(usedinthescriptorinthesurveyconfigurationfile).Thesystemfields
areautomaticallyinitializedandthespecifiedsampletablefieldsareupdatedwiththeconfigured
values.
IftheInterviewNumberdoesnotyetexistintheSampletableanewrecordwiththespecified
interviewnumberiscreated.
Thisrecordwillcontainacopyofallthefieldsoftheactiverecordknownbythesystem(assetinthe
surveyconfigurationfile).Thesystemfieldsarealsoinitializedandthespecifiedsampletablefieldsare
updatedwiththeconfiguredvalues.
WhentheInterviewNumberalreadyexistsintheSampletable,thatSamplerecordwillbeupdated
withthegiveninformation.ThesystemfieldsareinitializedandtheSampletablefieldsthatare
specifiedareupdated.
AftersuccessfulexecutionVariablecontaintheInterviewNumberoftheneworupdatedrecord.
Iftheexecutionofthe*NEXTRECORDfails,thevariablewillcontaina(negative)returncode.For
details,seeReturnCodesfor*NEXTRECORD.
"SampleTableField1=text1, SampleTableField2=text2, "
SetthecontentsofdatabasefieldsintheSampletable.Thisstringmaybeleftemptyusingdoublequotes.

Page195

CommandIndex

Remarks
ThespecifiedSampletablefieldsmustexistintheSampletableandmusthavebeenpreviouslydefined
withthe*SAMPLEDATAcommand.
Text1,Text2,maycontainspacesand/orreferencesto(system)variables.
Textsshouldnotbeembeddedinquotes.Anyquoteswillbeconsideredpartofthetext.
Expressionsarenotsupported.Usethe*PUTcommandtofirstevaluateexpressions.
Valuessettofieldsaretruncatedtothesizeofthesampletablefield.
Theinterviewercannotgobackinthequestionnaireaftera*NEXTRECORDisexecuted.Youdonot
needtospecifya*NOTBACKcommandinthequestionnaire.
Wheneveracopyoftheactiverecordismade,thenewrecordincludesanychangesmadetotheactive
recordduringtheinterview.
Whenusedinanomnibussurveythe*NEXTRECORDcommandcannotbeusedtoupdatetherecords
oftheomnibustable.
*NEXTRECORDrequirescommunicationbetweenNIPOCATI/WebMasterandNIPOFMSServer.
Checktheconfigurationwithyoursystemadministrator.
Youmaynotchangethecontentsofthefollowingsystemfields(systemvariables):

InterviewNumber (TTInterviewNumber)
Status (TTAvailabilityCode)
ResponseCode (TTStatusCode)
NumberOfContacts (TTNumberOfContacts)
ContactTime (TTContactTime)
SystemData (TTSystemData)
InterviewerNumber (TTInterviewerNumber)
ID (TTID)
SuspendImage
Channel

Anychangesinsystemfieldsareignoredwithoutwarning.Thevaluesforthesefieldswillbeequaltothose
ofaninitialNIPOCATIrecordclaimedbytheNIPOFieldworkSystem.
Example1
*PUT NewNumber [ 0 ]
*NEXTRECORD NewNumber "TTDisplayField1=*?Name"

ThesystemcreatesanewSamplerecord.TheNIPOFieldworkSystemdefinesthenew
InterviewNumber.ThefieldDisplayField1issettothetextvariableNAME.Allotherfieldsare
copiedfromthecurrentsamplerecord.Allsystemfieldsareinitialized.Oncetheinterviewends,the
questionnairerestartsforthisnewlycreatedsamplerecord.
Example2
*SAMPLEDATA TTInterviewNumber
*PUT NewNumber [ TTInterviewNumber ]
*REPEAT 9
*IF [?R > FamilySize ] *END
*PUT NewNumber [ NewNumber + 1 ]
*IF [?R > 1] *NEXTRECORD NewNumber "TTDisplayField1=*?Name[?R]"
*ENDREP

ThesystemcreatesnewSamplerecordsdependentonthefamilysizestoredinthevariableFamilySize.
ThenewinterviewnumberisbasedontheoriginalInterviewNumbervalue.Thisrequiresthatthese
interviewnumbersdonotyetexisttheoriginalsamplemustcontainpresetinterviewnumberswith
"gaps"of9records.ThefieldDisplayField1isstoredwiththenameofthefamilymembersthathave
previouslybeenstoredintheNamearray..Allothersamplerecordfieldsarecopiedfromthecurrent
record.Allsystemfieldsareautomaticallyinitialized.

Page196

CommandIndex

SeeAlso
*SQLADD.........................................................261

Page197

CommandIndex

*NMUL
Purpose
Specifiesthatthecodeinquestioncannotbegivenasanswerincombinationwithothercodes.
Syntax
*NMUL
Description
Thiscommandisalwaysusedafteracodedefinitionandmustbespecifiedbehindthiscodeonthesame
line.Specifiesthatthecodecannotbegivenasanswerincombinationwithothercodes.
Remarks
Thiscommandisonlyeffectiveforquestionsthatallowmultipleanswers.
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

Inthisexample,selectingcode10willautomaticallydeselectothercodesandviceversa.

Page198

CommandIndex

*NOCON
Purpose
Specifiesthatthecodeinaquestiondoesn'tcomeundercontrol.
Syntax
*NOCON
Description
Thiscommandisalwaysusedbehindacodedefinitionandmustbespecifiedafterthiscodeonthesame
line.Ifthecodesofthecurrentquestionaredisplayedundercontrolbymeansof*CONTROLthenthis
codeisignoredandalwaysdisplayed.Thiscommandisalsousedforthequestionoptions*RANDOM,*INV
and*ROT.Allcodesstartingfromthecodethathave*NOCONasoptionaredisplayedonthescreen.
Ifusedincombinationwith*LISTand*NUMBERor*ALPHAthecodeisalwaysdisplayedregardlessof
thetextenteredasthenarroweddownsearch.
Example
*QUESTION 1 *CODES 61L10 *MULTI
What PC brands do you know?
(Unaided awareness)
1:
2:
3:
4:
5:
6:
7:
8:

Acer
AST
Compaq
Dell
Hewlett Packard
IBM
Philips
Tulip

9: Other *OPEN
10: 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

Inthisexample,code10inquestion2isalwaysdisplayed,evenwhenitismentionedinquestion1.
SeeAlso
*CONTROL ......................................................112
*INV ................................................................163
*LIST(definition).............................................173
*RANDOM.......................................................226
*ROT ...............................................................241

Page199

CommandIndex

*NOENTER
System
NIPOCATIonly
Purpose
AllowsbypassingtheENTERkey.
Syntax
*NOENTER
Description
WiththiscommanditispossibletoenterdatawithoutconfirmingbypressingtheENTERkeyortheOK
button.Thisspeedsupdataentry.
Remarks
Thisoptionhasnoeffecton*MULTIand*ALPHAquestions.Notethatthisoptionmaybeerrorsensitive.
Example
*NOENTER
*QUESTION 1 *CODES L1
Gender
1: Male
2: Female
*QUESTION 2 *NUMBER L2
Age

Page200

CommandIndex

*NOHIDE
Purpose
Ignoresthe*CONTROLcommandforaspecificcode.
Syntax
*NOHIDE
Description
Sameas*NOCON.See*NOCONforafulldescription.
SeeAlso
*NOCON..........................................................199

Page201

CommandIndex

*NON
Purpose
Permitsnonresponse.
Syntax
*NON
Description
Thiscommandcanbespecifiedonany*QUESTIONorona*ALPHA,*NUMBER,*SCALEor*LINEfield
ina*FORMquestion.Nonresponseispermittedatthisquestionorfield.ItispermittedtopressENTERor
OKwithoutgivingananswer.
Remarks
Ifthecommandisusedincombinationwitha*SCALEquestionora*LINEquestionaDon'tKnowbutton
automaticallyappearstoenternonresponse.
Example
*QUESTION 1 *NUMBER 61L4 *NON
What is your postcode?

Inthisexample,itispossibletopressENTERorOKwithoutfillinginthepostcode.
SeeAlso
*ALPHA(in*FORMquestion) ...........................96
*ALPHA(QuestionType)...................................95
*FORM ............................................................132
*LINE...............................................................171
*NUMBER(in*FORMquestion) .....................206
*NUMBER(questiontype)..............................205
*QUESTION .....................................................224
*SCALE(in*FORMquestion) ..........................249
*SCALE(questiontype)...................................247

Page202

CommandIndex

*NONRESP
System
NIPOCATI/NIPOCAWIonly.
Purpose
Endquestionnaire,toresponselist.
Syntax
*NONRESP ["I"|"E"|"A"]
Description
Withthiscommandtheinterviewisterminatedandtheindicatednonresponselistisputonthescreen.
Theargumentdetermineswhichlistwillbeshown.Iftheargumentisomittedthedefaultnonresponselist
for"I"isdisplayed.
Arguments
"I"
Thenonresponselistthatisdisplayedinitiallyappearsonthescreen.Thisisthelistthatappearsafter
pressingtheNonRespkeyintheintroductionscreen.Thislistcanbeconfiguredbythefieldworkmanager
orusingthesurveyconfigurationfile.Bydefaultthenonresponsecodescodes0117areinthislist.
"E"
Thenonresponselistthatisdisplayedwhentheinterviewerwantstoenteranonresponsecodeafterthe
interviewwasstarted,bychoosingFile>NonRespfromthemenu.Thislistcanbeconfiguredbythe
fieldworkmanagerorusingthesurveyconfigurationfile.Bydefaultthenonresponsecodescodes0417
areinthislist.
"A"
ThenonresponselistthatisdisplayedwhentheinterviewerselectsFile>Appointfromthemenutomake
anappointmentwiththerespondent.Thislistcanbeconfiguredbythefieldworkmanagerorusingthe
surveyconfigurationfile.Bydefaultthenonresponsecodescodes06and07areinthislist.
Example
*QUESTION 1 *CODES L1
Start interview now?
1: Yes
2: No, make appointment *NONRESP "A"
3: No, Non-response (specify) *NONRESP "E"

Notethatifanappointmentismade,itiscontinuedatQ1.Thereforecode1isrequiredtocontinuethe
interview.
SeeAlso
*ABORT .............................................................92
*APPOINT..........................................................97
*CUT................................................................116
*END ...............................................................121
*ENDNGB ........................................................123
*ENDST ...........................................................124

Page203

CommandIndex

*NOTBACK
Purpose
Blocksgoingbackinquestionnaire.
Syntax
*NOTBACK
Description
Theinterviewerorrespondentcannotgobackinthequestionnaireanyfurtherthanuptothiscommand.
UsingtheBackbuttonatthisspotresultsinanerrormessage.
Remarks
Itispossibletogobackpastthispointusingthecommand*BACK.

Page204

CommandIndex

*NUMBER(questiontype)
Purpose
Definesanumericalquestion.
Syntax
*NUMBER [pos]L<length>[.fraction]|<pos>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedbehindthis
commandonthesameline.Definesaquestionasanumericalquestionandexpectsanumberasananswer.
Arguments
pos
Thedatafieldspecificationwherethegivenanswersisstoredinthedatafilewiththeclosedanswers.
length
Thelengthofthedatafield.Thelengthofthedatafielddefinesthenumberofdigitsofthemaximumvalue
ofthequestion.Incaseofafloatingpointvalue,thelengthofthedatafieldislength+fraction.
fraction
Thenumberofdecimalsthatisallowedtobeenteredinafloatingpointvalue.Thefractionisstoredinthe
datafieldwithoutthedecimalseparator.Whichseparator(pointorcomma)istobeusedbythe
interviewerorrespondentdependsontheregionalconfigurationsettings.
Remarks

Theanswerisrightalignedandstoredwithleadingzerosintheanswerfield.
Theanswercanconsistofanintegerorafloatingpointvalue,asdefinedinthedatafieldspecification.
Thedecimalpointinthesyntaxisneverstoredintheanswerrecord.
Themaximumvaluecanbesetwiththe*MAXor*RANGEcommand,butisalsolimitedbythenumber
ofpositionsinthedatafield.
Theminimumvaluecanbesetwiththe*MINor*RANGEcommand.
Negativevaluescanonlybeenteredwhenthe*MINor*RANGEcommandisdefinedwithanegative
value.
Negativevaluesarestoredwithaprecedingminussigninthedatafile.Notethatyoumayrequirean
extrapositioninthefielddefinition.
Positivevaluesarestoredwithoutsign.

Example
*QUESTION 1 *NUMBER 61L3.2 *MAX 100
What percentage of your income do you spend on clothing?

Inthisexample,youcanenteravaluewithtwodecimals,forinstance60.75.Inthedatafield06075is
storedin5positions.
SeeAlso
*ALPHA(QuestionType)...................................95
*CODES ...........................................................109
*LIST(questionoption)...................................175
*MAX ..............................................................178
*MIN ...............................................................182
*OPEN(questiontype)....................................208
*RANGE...........................................................228

Page205

CommandIndex

*NUMBER(in*FORMquestion)
Purpose
Definesanumericalfieldina*FORMquestion.
Syntax
*NUMBER [pos]L<length>[.fraction]|<pos>
Description
Thiscommandisalwaysusedina*FORMquestion.Definesafieldthatexpectsanumberasananswer.
Severalfieldsmaybespecifiedinthesame*FORMquestion.Theanswerisrightalignedwithleadingzeros
intheanswerfield.Theanswercanconsistofanintegerorafloatingpointvalue,asdefinedinthedata
fieldspecification.Thedecimalcharacterisnotstoredinthedatefield.
Arguments
pos
Thedatafieldspecificationwherethegivenanswersisstoredinthedatafilewiththeclosedanswers.
length
Thelengthofthedatafield.Thelengthofthedatafielddefinesthenumberofdigitsofthemaximumvalue
ofthequestion.Incaseofafloatingpointvalue,thelengthofthedatafieldislength+fraction.
fraction
Thenumberofdecimalsthatisallowedtobeenteredinafloatingpointvalue.Thefractionisstoredinthe
datafieldwithoutthedecimalseparator.Whichseparator(pointorcomma)istobeusedbythe
interviewerorrespondentdependsontheregionalconfigurationsettings.
Remarks

Theanswerisrightalignedandstoredwithleadingzerosintheanswerfield.
Theanswercanconsistofanintegerorafloatingpointvalue,asdefinedinthedatafieldspecification.
Thedecimalpointinthesyntaxisneverstoredintheanswerrecord.
Themaximumvaluecanbesetwiththe*MAXor*RANGEcommand,butisalsolimitedbythenumber
ofpositionsinthedatafield.
Theminimumvaluecanbesetwiththe*MINor*RANGEcommand.
Negativevaluescanonlybeenteredwhenthe*MINor*RANGEcommandisdefinedwithanegative
value.
Negativevaluesarestoredwithaprecedingminussigninthedatafile.Notethatyoumayrequirean
extrapositioninthefielddefinition.
Positivevaluesarestoredwithoutsign.

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
*NUMBER 65L3.1 *MAX 100
3:Food *NUMBER 69L3.1 *MAX 100
%
4:Going out
*NUMBER 73L3.1 *MAX 100

*NUMBER 61L3.1 *MAX 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

Inthisexample,youcanenterfourvalueswithonedecimaleach.TheOKbuttonisenabledafterallfields
areenteredandmatchthecriterion*MAX 100.Question2checksthesumofthevalues.

Page206

CommandIndex

TheDon'tknowbuttonisenableduntilallfieldsarecompleted.IftheDon'tknowbuttonispressed,the
firstfieldofthe*FORMquestioncontainsthevalue99(thevalue0990isstoredinposition6164).
Result:

Page207

CommandIndex

*OPEN(questiontype)
Purpose
Definesanopenquestion.
Syntax
*OPEN [pos]L<length>|<pos>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthiscommand
onthesameline.Itdefinesaquestionasanopenquestionthatexpectsanalphanumericalanswer.This
openanswercanbeofvirtuallyunlimitedlength.Theanswerisstoredinaseparatedatafileforopen
answers(surveyO).Duringorafterfieldwork,suchopenendedanswersmaybecodedusingtheNIPO
CodingModuleorNfieldCode.Althoughtheanswerarenotstoredinthedatafile(Ufile)withtheclosed
answers,youmustreservedatapositionsintheUfile.Itisrecommendedbutnotrequiredtoreserve
positionsthatwillbeusedformergingthecodedopenendedanswers.
Arguments
pos
ThestartofthedatafieldreservedintheUfile.ThispositionisalsobeusedasidentificationtomatchOfile
openendedanswerswithaUfiledataposition,toenablecodingopenanswersusingNfieldCodeorthe
NIPOCodingModule.
length
Thelengthofthedatafield.
Remarks
Atextboxappearsinwhichyoucantypethecompleteanswer.TypingisfinishedwhentheOKorCancel
buttonispressed.
Optionallythecommand*MULTImaybeadded.Thishasnoinfluenceontheinterviewingprocess.
Whencodingopenanswersthequestionwillbetreatedasamultiplecodedanswerquestion.
Example1
*QUESTION 1 *OPEN 61 *NON
Do you have comment or remarks regarding this questionnaire?

Inthisexample,youcanenteranytext.ThistextisstoredintheOfile.NocodesarestoredintheUfile,so
therelateddatafield(61)remainsempty.Itishoweverusedtoreservesomespaceforcodingopenended
answer.Becauseofthe*NONcommand,itisalsopossiblenottoenteranythinginwhichcasenoopen
endedanswerarestored.
Example2
*QUESTION 2 *OPEN 62L100 *MULTI *BUT 100 "No suggestions"
Do you have any suggestions on how to improve this product?

Inthisexample,youcanenteranytext.ThistextisstoredintheOfile.Thepositionsreservespacetocode
openendedanswersafterwards(maximum100categories,multiple).IfthebuttonNosuggestionsis
pressed,noopenanswerisstored,butcode100ismarkedinthedatafile.

Page208

CommandIndex

SeeAlso
*ALPHA(QuestionType)...................................95
*BMP...............................................................104
*CODES ...........................................................109
*LINE ...............................................................171
*NUMBER(questiontype)..............................205
*OPEN(codesoption).....................................210
*REC ................................................................232
*SCALE(questiontype)...................................247

Page209

CommandIndex

*OPEN(codesoption)
Purpose
Specifiesacodeasanopencode.
Syntax
*OPEN
Description
Thiscommandisalwaysusedafteracodedefinitionandmustbespecifiedafterthiscodeonthesameline.
Specifiesacodeasopencodeandexpects,ifthecodeispartoftheanswer,aliteralanswerthatcanbeof
virtuallyunlimitedlength.Theenteredanswerisstoredinaseparatedatafileforopenanswers
(surveyO).
Remarks
Atextboxappearsinwhichyoucantypethecompleteanswer.TypingisfinishedwhentheOKorCancel
buttonispressed.
Thiscodesoptionisnotallowedforcode0insinglecodedquestions.
Example
*QUESTION 1 *CODES 61L3
Do you live in Amsterdam or somewhere else?
1: Yes, in Amsterdam
2: No, somewhere else *OPEN

Inthisexample,ifanswer2isselectedalocationcanbeentered.ThistextisstoredintheOfile,whilethe
code(2)isstoredintheUfile.Itisrecommendedtoreservecodespaceforcoding,whichiswhy3positions
arereserved(allowingforamaximumof999differentcountries).
SeeAlso
*CODES ...........................................................109
*OPEN(questiontype) ...................................208

Page210

CommandIndex

*ORDER
Purpose
Settheorderofcodesinacodelistortheorderofexecutionina*REPEATloop.
Syntax
*ORDER <var | QnM | QnR>
Description
Youcandefinetheorderofcodesina*CODESor*FORM questionandtheorderofa*REPEATloop
accordingtothecontentsofanarrayvariableortheorderofmentionsofanotherquestion.
Bothvariablenamesandquestionswithorderspecifier(QnMorQnR)maybeusedinthe*ORDER
command.
*ORDERmaybeusedina*REPEAT,*QUESTIONor*FORMstatement.
Invalidordersintheargumentwith*ORDERareignored.Thismeansifanordernumberisusedtwice
orifanindexinthevariableisempty,allremainingcodearedisplayedinregularascendingorder.
*ORDERcannotbeusedtogetherwith*RANDOM,*INV or*ROT.
TheorderofmentionsinaquestionareavailablethroughQnMiwherenisthequestionnumberandi
istheindexofthemention.
ThedisplayorderofarandomquestionisavailablethroughQnRi,wherenisthequestionnumberand
iistheindexoftherandomorder.
Youcanstoretheorderofmentionsandortherandomorderbyspecifyingalengthbehindthe*MULTI
or*RANDOMcommandusingLnwherenisthenumberofpositionstostoreanswers.Theoperators
QnMandQnRareavailable,independentofwhethertheorderissavedornot.
AsyntaxcheckproducesawarningmessageifthevariablesMorRaredefined.Ifthesevariablenames
areused,theoperatorQnMiandQnRiarenotavailable.
Theitemsina*REPEATblockorcodelistwhicharenotinthe*ORDERcommand,aredisplayedinthe
orderasiftherewasno*CONTROLcommand.Thismeansthatifyouonlywanttoshowtheitems
mentionedinaprevious*CODESquestionintheordertheywerementioned,youhavetousebotha
*ORDER anda*CONTROLcommand.
Arguments
var
Thisisavariablenameofanarrayvariable(*VARS name[n]).Thevaluesinthisvariablesettheorderin
whichthecodesaredisplayedortheorderinwhichthe*REPEATloopisprocessed.
QnM
Thisisorderofmentionsofaprevious*MULTI question.
QnR
Thisistheorderinwhichapreviousquestionwith*RANDOM,*INV or*ROT wasdisplayed.

Page211

CommandIndex

Example1
*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

Example2
*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
** that Q3 was (randomly) displayed
*REPNUM
*REPNUM
*REPNUM
*REPNUM
*REPNUM

1
2
3
4
5

*PUT
*PUT
*PUT
*PUT
*PUT

STATEMENT
STATEMENT
STATEMENT
STATEMENT
STATEMENT

*QUESTION 4 *CODES L1
*?STATEMENT
5:
4:
3:
2:
1:

5 (good)
4
3
2
1 (poor)

*ENDREP

Page212

"Brand A"
"Brand B"
"Brand C"
"Brand D"
"All brands"

CommandIndex

Example3
*** '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
*REPNUM
*REPNUM
*REPNUM
*REPNUM

1
2
3
4
5

*PUT
*PUT
*PUT
*PUT
*PUT

STATEMENT
STATEMENT
STATEMENT
STATEMENT
STATEMENT

"Brand A"
"Brand B"
"Brand C"
"Brand D"
"All brands"

*QUESTION 3 *CODES L1
*?STATEMENT
5:
4:
3:
2:
1:

5 (good)
4
3
2
1 (poor)

*ENDREP

WhenyoucreaterandomordernumbersforbrandA,B,CandD,youcouldalsousetheRANoperator.But
thenyouarenotsurethatitwillpickfourdifferentnumbers.Ifthishappens,brandA,B,CandDwillbein
randomorderuntiladuplicateismet.
*PUT
*PUT
*PUT
*PUT

MyOwnOrder[1]
MyOwnOrder[2]
MyOwnOrder[3]
MyOwnOrder[4]

[
[
[
[

(RAN
(RAN
(RAN
(RAN

4)
4)
4)
4)

+
+
+
+

1
1
1
1

]
]
]
]

*REPEAT 4 *ORDER MyOwnOrder

SeeAlso
*CODES ...........................................................109
*FORM ............................................................132
*INV ................................................................163
*RANDOM.......................................................226
*REPEAT...*ENDREP ......................................235
*ROT ...............................................................241

Page213

CommandIndex

*PAGE
Purpose
Definesapageoftext.
Syntax
*PAGE
Description
Definesapageoftext.Thiscommandshouldbeatthebeginningofalineorunderconditionusing*IF.
Thetextconsistsofallfollowinglinesuptothefirstnewcommandthatisatthebeginningofaline,
excluding**,*?and*FONT(switching).Duringtheinterviewthistextisdisplayed.ToproceedonlyENTER
orOKneedtobepressed.Thetextusuallycontainsanexplanationforthenextquestionorquestions.
Example1
*PAGE
And now some questions about snacks.
*QUESTION 1 *CODES 61
Did you have a snack today?
1: Yes
2: No

Inthisexample,ashortintroductiontothenext(setof)question(s)isdisplayed.
Example2
*IF [ TMP = 1 ] *PAGE This text will appear on a separate page

Afteran*IFstatement,youmayimmediatelyspecifyan*PAGEwithtext.
SeeAlso
*HELP(definition) ...........................................151
*INFO ..............................................................158
*INSTRUC........................................................161
*PNW..............................................................220
*QUESTION .....................................................224

Page214

CommandIndex

*PICT(questionoption)
Purpose
Displaysapicture.
Syntax
*PICT <filename|n|[expression]>
or
*PICT <n|[expression]> <"library name">
Description
Displaysapictureonthescreen.Thedefaultpositionofthepictureisintheupperrightcorner.Thefilecan
alsobepartofapicturelibrary.Inthiscasethepositionisdefinedinthepicturelibrary.The*PICT
commandmayalsobeusedincombinationwith*PAGE,*INFOand*HELP.
Oicturesinthefollowingformatsmaybeused:
BMP
JPG (normalandprogressiveencoding)
Arguments
filename
Thefilenameoftheimagethatmustbedisplayed.Ifthisfileisnotintheworkingdirectoryafullorrelative
pathnamemaybeused.Notethatscreenresolutionforrespondentsorinterviewerworkstationsmight
vary.Alwayscreateapictureinthelowestresolutionthatisusedforoptimumresults.
n|expression
Apositiveintegerorexpressionthatindicatesthenumberofthepictureinapicturelibrary(Pfile).
library name
Thenameofapicturelibraryotherthanthedefaultpicturelibrary.Adefaultpicturelibraryisalibrarywith
thesamenameasthequestionnaire:nameP.
Example1
*QUESTION 1 *CODES 61 *PICT NipoSoftwareLogo.jpg

Have you seen this logo before?


1: Yes
2: No

Page215

CommandIndex

ThisexampledisplaysaquestionwiththepictureNipoSoftwareLogo.jpg.Thescreenpositionofthe
picturecannotbeset.Emptylinesareusedtoreservespacetodisplaythepicture.

Example2
QUESTION 1 *CODES 61 *PICT 1
Have you seen this logo before?
1: Yes
2: No

Thisexampledisplaysaquestionwithpicture1fromthepicturelibrary.Thescreenpositionofthepicture
canbechangedintheMultimediaLibrary:

Example3
*QUESTION 1 *CODES 61 *PICT 1 "mylib" *PICT 3 "otherlib"

Thisexampledisplaysaquestionwithpicture1fromthepicturelibrarymylibandpicture3fromthe
picturelibraryotherlib.
SeeAlso
*HELP(definition) ...........................................151
*INFO ..............................................................158
*PAGE .............................................................214
*PICT(codesoption).......................................217

Page216

CommandIndex

*PICT(codesoption)
Purpose
Displaysapictureonacode.
Syntax
*PICT <n|[expression1]> <m|[expression2]>
Description
Thiscommandisalwaysusedonacodedefinitionandmustbespecifiedafterthiscodeonthesameline.A
pictureisdisplayedidentifiedbythepicturenumber.Thepicturecomesfromthepicturelibrary(Pfile).
Arguments
n|expression1
Apositiveornegativeintegerorexpressionthatindicatestheverticalshiftofthepictureinpixels.When
thevalueispositive,thedirectionoftheshiftisupwards.Whenthevalueisnegative,thedirectionofthe
shiftisdownwards.
m|expression2
Thevaluemisapositiveintegerorexpressionwhichindicatesthepicturenumberinthepicturefile(Pfile).
Remarks
ShiftingupanddowniscurrentlyonlysupportedforNIPOCAWI,butthefirstargumentmustbe
specifiedforNIPOCATIandNIPOCAPI.
Picturesmustcomefromthesurveypicturelibrary(surveyPfile).Directlyreferringtoafilenameor
referringtoanotherpicturelibraryisnotsupportedforpicturesaftercodes.
Example
*QUESTION 1 *CODES 65L2
Which flag do you like best?
1: *PICT 11 United Kingdom

2: *PICT 12 France

3: *PICT 13 Germany

4: *PICT 14 Italy

5: *PICT 15 United States of America

6: *PICT 16 Japan

Page217

CommandIndex

Result:

SeeAlso
*PICT(questionoption) ..................................215

Page218

CommandIndex

*PLAY
Purpose
Playsmultimediafiles.
Syntax
*PLAY [n1] [n2] <filename>
Description
Playsmultimediafiles,suchassoundfragmentsormovies.Duringplaybacktheinterviewdoesnotstop;
playbackoccurssimultaneously.Playbackstopswhenananswerisgiven.Thiscommandisalsoallowed
undercondition.Tohearsoundfragments,asoundcardisobviouslyrequired.
Arguments
n1
Anumberreferringtoapictureinthepicturelibrary.Whendefined,avideoclipispositionedonthesame
positionasthepictureinthelibrary.
n2
Anumberindicatingthesizeofthevideoclip.Theclipwillappearn2timestheoriginalsizeofthevideo
clip.Ifn1isdefined,n2ismandatory.
filename
Thenameofthemultimediafile.Absoluteorrelativepathsmaybeused.Thisisespeciallyimportantfor
NIPOCAWIandNIPOCAPIinterviews,wheremultimediafilesarelocatedinthesurvey's
TemplateRelatedFilesdirectory,orforNIPOCAPIinterviewswherethefilesaresimplytoolargeto
betransferredonlineandplayeddirectlyfrommediasuchasaCD.
Remarks
AllmultimediafilesrecognizedbythemultimediainterfaceoftheMicrosoftWindowsoperatingsystemcan
beplayed.
Example1
*PLAY "letitbe.wav"
*QUESTION 1 *CODES 102
Do you recognize this sound?
1: yes
2: no

Example2
ThisplaystherelatedvideofilefortheNIPOCAPIClient,assumingthesurveyiscalledDemo:
*PLAY "TemplateRelatedFiles\Demo\Video.avi"
*QUESTION 1 *CODES 102
Do you recognize this video fragment?
1: yes
2: no

Page219

CommandIndex

*PNW
System
NIPOCATIonly.
Purpose
Definesapageoftext,notwaitingforanentry.
Syntax
*PNW
Seealso
*PAGE*HELP*INFO*INSTRUC*QUESTION
Description
Createsapagetext.Thiscommandhastobeatthebeginningofaline.Thetextconsistsofallfollowing
linesuptothefirstnewcommandthatisatthebeginningofaline,excluding**,*?and*FONT
(switching).Duringtheinterviewthistextisdisplayed.Thetextusuallycontainsanexplanationforthenext
questionorquestions.ThesystemdoesnotwaitforanENTERorOKpressfromtheinterviewer/
respondentbeforecarryingoutthenextcommand.Usethiscommandifforinstanceaheavycalculation
willtakesometimeandabriefinformationmessageisrequired.
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

Page220

CommandIndex

SeeAlso
*HELP(definition) ...........................................151
*INFO ..............................................................158
*INSTRUC ........................................................161
*INTRO............................................................162
*PAGE .............................................................214
*QUESTION .....................................................224

Page221

CommandIndex

*PUT
Purpose
Putsdatainvariable.
Syntax
*PUT <var> <"text" | [value] | Qn | Qn,code | [expression] >
Description
Replacesthecontentsofavariablebydataindicatedinthesecondargument.Thiscommandisalsoallowed
undercondition.Youcantransferthecontentsofanumericvariabletoatextvariableandviceversa.
Whentransferringthecontentsofatextvariabletoanumericvariablethetextvariablemustcontaina
value.Thefollowingrulesapply:

Anyfractionsaretransferredaswell.
Thetransferstopsatthefirstnonnumericalcharacter.
Ifthefirstcharacterisnotnumeraltheresultvalueis0.
Whentransferringthecontentsofanumericvariabletoatextvariable,itisroundedtothenextinteger,
unlessanotherformatisspecifiedwiththe*FORMAT command.

Arguments
var
Thisisanearlierdefinedvariable,whichreceivesthedata.
text
Directtextenclosedinquotes(singleordouble)witheventuallyembeddedcontentsofavariable.Ifquotes
aretobedisplayedinthetextusetheotherquotestoembedthetext.
value
Avalueenclosedinsquarebrackets.
Qn
Theanswertothequestionwillbeusedasdata.
Qn,code
Thecodeofaquestionisusedasdata.Inatextvariablethedescriptivetextofthecodeisused.
Qn,var
Acodeofquestionnisusedasdata.Thiscodeisdefinedinthevariablevar.Inatextvariablethe
descriptivetextofthecodeisused,ratherthanthecodenumber.
Qn,?R
Acategoryofquestionnwillbeusedasdata.Thiscodeisdefinedbytherepetitionnumber.Inatext
variablethedescriptivetextofthecodeisused,ratherthanthecodenumber.
expression
Theresultoftheexpressionisstoredinthevariable.
Remarks
Atextvaluemayrangeseverallines.Alllinesupuntiltheclosingofthequotesareconsideredpartof
thetext.Linefeedsarealsoconsideredpartofthetext.Ifaclosingquoteismissingforacommand,an
erroroccursduringthesyntaxcheck.
AtextmaynotcontainNIPOODINcommandsotherthanthe*?and*FONT(switching)directives.
Sampletable
IfaSampletableisusedwhilecopyingpositionsfromaTfile,thepositionsaretranslatedtowardstheir
relativedatabasefield.Forexample:
*PUT intnr 52L8

Page222

CommandIndex

Copiestheinterviewnumber(position52L8intheTfile)inthevariableintnr.
However,inthisexampleasimplesolutionisalsoavailable:
*SAMPLEDATA intnr
ThiswillautomaticallyfillthevariableintnrwiththeinterviewnumberfromtheSampletable.
Example1
*VARS age
*QUESTION 1 *NUMBER 61L2
How old are you?
*PUT age Q1

Inthisexample,theanswerofquestion1isstoredinthevariableage.
Example2
*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

Example3
*TEXTVARS sex
*QUESTION 7 *CODES 91
Gender?
1: Man
2: Woman

*PUT sex "Men"


*PUT sex "Women"

SeeAlso
*? ......................................................................89
*FORMAT ........................................................135
*SAMPLEDATA ................................................244
*TEXTVARS......................................................283
*VARS..............................................................287

Page223

CommandIndex

*QUESTION
Purpose
Definesaquestion.
Syntax
*QUESTION <n>|X
or
*Q <n>|X
Description
Definesaquestionwithquestionnumbern.Thiscommandhastobeatthebeginningofaline.
Thequestionconsistsofalllinesuptothefirstcommandthatisatthebeginningofaline(excludingfor**,
*?,*FONTand*PICT).Afterthecommand*QUESTION (or*Q)thereareoftenmorecommandsonthe
sameline.Thesecommandsonthequestionlinedefinethespecificconditionsandoptionswhenanswering
thisquestion.
Arguments
n
Apositivenumberthatindicatesthequestionnumber.Questionnumbersaremadeupofpositivenumbers
(>=1).Noalphabeticorothercharactersareallowed(exceptforX,seebelow).Eachquestionnumberhas
tobeuniquewithinthe(sub)questionnaire.Youmayuseanyquestionnumberintherange1to
2147483647inanyordertheorderofthequestionnaireisnotsetbythequestionnumbers.TheNIPO
ODINDeveloperallowsyoutorenumberquestionnumbersifnecessary.
X
Aplaceholdervaluetobefilledwithaquestionnumberautomaticallylater,byrenumberingthe
questionnaire.Itisnotpossibletosetroutingorfilteringforplaceholderquestionnumbers.
Remarks
Questionswithoutquestiontextandcodesareconsidereddummyquestionsandareskippedduring
execution.
Example1
*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 co-operation.
*END

InthisexampleQuestion1isaprecodedquestion,Question2isanumericquestionandQuestion9999isa
questionwithouttype,whereonlyENTERisrequiredtocontinue.

Page224

CommandIndex

Example2
*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

]
&
&
&
&
]

*COPY
Q12 <
Q12 <
Q12 <
Q12 <
*COPY

Q11 [ 1 ]
35 ] *COPY
45 ] *COPY
55 ] *COPY
65 ] *COPY
Q11 [ 6 ]

Q11
Q11
Q11
Q11

[
[
[
[

2
3
4
5

]
]
]
]

InthisexampleQuestion11isadummyquestion,butiscreatedtobeabletostoretheagein6distinct
codes.
SeeAlso
*ALPHA(QuestionType)...................................95
*CODES ...........................................................109
*FORM ............................................................132
*LINE ...............................................................171
*NUMBER(questiontype)..............................205
*OPEN(questiontype)....................................208
*PAGE .............................................................214
*SCALE(questiontype)...................................247

Page225

CommandIndex

*RANDOM
Purpose
Randomizesanswercodesorrepetitions.
Syntax
*RANDOM [[pos]L<length>|<pos>]
Description
Thiscommandcanbeusedincombinationwith*QUESTION,*REPEATand*FORMandmustbespecified
afterthesecommandsonthesameline.Thecodesandthedescriptionsofaquestionareshowninrandom
orderonthescreen.Repetitionsareexecutedinrandomorder.
Arguments
pos
Thedatafieldspecificationwheretheusedorderisstoredinthedatafilewiththeclosedanswers.
length
Thelengthofthedatafield.
Remarks
Ifyouuse*RANDOM onaquestionthefollowingapplies:
Thenumberofcodesofwhichtheorderissaveddependsonthelengthofthedatafieldspecification.
Tostoretheentireorder,thismustbejustaslongasthenumberofcodestobesavedmultipliedbythe
numberofdigitsinthehighestcode.Theappliedrandomorderisstoredintheclosedanswerfile.
With*NOCONanswercodescanbeexcludedfromtherandomization.
Withina*FORM,fieldsarenotdisplayedinrandomizedorderifmorethanonefieldisusedonasingle
row.
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

Inthisexample,allmentionsarestoredinposition61L10.Intheanswerfield71L6thecodenumbersofthe
firstthreecodesdisplayedarestored.Thelasttwocodesarenotrandomizedalongandwillbedisplayed
alwaysatthebottomofthelist.
Example2
*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

Page226

CommandIndex

Inthisexample,question1isrepeated5times,randomly.Theanswerofthequestionsisstoredinthedata
field86L15:foreachquestion1position(1L1)fortheorderinwhichthequestionwasdisplayedand2
positions(2L2)fortheanswer.Forexample,thequestionsforJohnnyarestoredinpositions86L3(86L1the
order,87L2theanswer),forMaryinposition89L3(89L1theorder,90L2theanswer),etcetera.
SeeAlso
*FORM ............................................................132
*GROUP ..........................................................146
*INV ................................................................163
*NOCON..........................................................199
*ORDER...........................................................211
*REPEAT...*ENDREP ......................................235
*ROT ...............................................................241

Page227

CommandIndex

*RANGE
Purpose
Specifiesavaluerangefornumericalquestions.
Syntax
*RANGE <[n1|expression [TO n2|expression]]>[;n3 [TO n4];...]
Description
Thiscommandspecifiesarangefornumericalquestionsandnumericalfieldsina*FORMquestion.Youcan
specifyastartvalueandanendvaluefortherangebyseparatingthetwovalueswiththekeywordTO.
Multiplevaluescanseparatedbyasemicolon(;).Insteadofavalue,anexpressionmayalsobeused.
Remarks
Youcanonlyuseanincrementalrange(1 TO 5ratherthan5 TO 1).
Asemicolonmustbeusedtoseparatetworanges.Whenusingacomma,thesysteminterpretsthisasa
columncodereference.
TheargumentTOmustbeusedtoseparatetheextremeswithinarange.Thedash(-)isinterpretedasa
minussignandshouldnotbeused.
Arguments
n1
Thestartvalueoftherange.
n2
Theendvalueoftherange.
expression
Anexpressionofwhichtheresultwillbeusedasthestartorendvalue.
Example1
*QUESTION 1 *NUMBER L2 *RANGE [ 18 TO 70 ; 99 ]
How old are you?
Int.: enter "99" for no answer.

Inthisexample,theanswercanbeintherangeof18to70and99.
Example2
*QUESTION 1 *NUMBER L3 *RANGE [ -10 TO -1 ; 1 TO 10 ]
Specify a number in the ranges of -10 to -1 or 1 to 10.

Inthisexample,theanswercanbeintherangeof10to1and1to10.
Example3
*VARS x,y
*PUT x [-3]
*PUT y [3]
*QUESTION 1 *NUMBER L2 *RANGE [x TO y]
Specify a number in the ranges of *?x to *?y.

Inthisexample,theanswercanbeintherangeof3to3.

Page228

CommandIndex

SeeAlso
*MAX ..............................................................178
*MIN ...............................................................182
*NUMBER(in*FORMquestion) .....................206
*NUMBER(questiontype)..............................205

Page229

CommandIndex

*READ
System
NIPOCATIandNIPOCAPIonly.
Purpose
Readsdatafromafile.
Syntax
*READ <Qn|var> ["filename"]
Description
Withthiscommanddatacanbereadfromafileandplacedinthedatafieldorvariableindicatedbythefirst
argument.Ifthefilenameisomitteddatawillbereadfromthelastfileusedforreading.Thefileconsistsof
asinglerecord.Thecontentsoftherecordconsistofoneormorevalueswhichareeithernumbersortext.
NIPOODINtakescareofproperlyreadingvaluesonebyoneinconsecutivecallsto*READ.Itisnot
requiredtobeawareofthefileformatcreatedbyNIPOODINunlessthedataisaccessedorchangedbyan
externalapplication.
Fileformatfor*READand*WRITEforeachvalue
HeaderIdentifier

Size

Value

.Singleposition
containinga'D'

Decimalvalueof
4digits
indicatingthe
sizeofthevalue.

Anystringof
charactersofwhich
thesizeisdetermined
intheheader.

Forexample,whenthevalues123456andthetext"NIPOODINScript"arestoredinasinglefile,itwould
containthestring"D0006123456D0016NIPO ODIN Script".
Arguments
Qn
Thequestionreferenceofthedatafieldwherethedatabeingreadwillbestored.
var
Thenameofthevariablewherethedatabeingreadwillbestored.
filename
Thefilenameofthefiletostoretheinformationin.
Remarks
Duringaninterviewyoucannotgobackovera*READwithafilename,youcanhowevergobackovera
*READwithoutafilename.
Youcannotcombine*READwith*WRITEonthesamefile;aftera*WRITEafilenamehastobe
specifiedwiththenext*READ.
Ifnomoredatacanberead,theresultquestionorvariablewillbe0ifitisnumericoremptyifitis
alphanumeric.
Example
*VARS numb[2]
*READ numb[1] "myfile.txt"
*READ numb[2]

Inthisexample,twonumbersarereadfromthefilemyfile.txtandstoredinthearraynumb.

Page230

CommandIndex

SeeAlso
*WRITE............................................................293

Page231

CommandIndex

*REC
System
NIPOCATIonly
Purpose
Records(partsof)interviews.
Syntax
*REC [[pos]L<length>|<pos>]
Description
Withthiscommanditispossibletorecordpartsofanintervieworeventhewholeinterview.Thiscommand
canbeusedat:
Thebeginningofaline.Whenusedatthebeginningofalineadatafieldmustbespecified.Thisdata
fieldisusedtostoringtheanswersaftercoding.Specifying*RECatthebeginningofalineusingadata
fieldspecificationstartsrecording;specifying*RECwithoutadatafieldspecificationendsrecording.
Recordingalsoautomaticallystopsattheendofthescript.
Asaquestionoption.Onlythequestionisrecorded;recordingstopsautomaticallyatthenextquestion.
RecordedanswersaresavedtotheBfile(surveyBfile).Theseanswerscanbecodedinthesamewayas
theregularOfile,usingtheNIPOCodingModuleorNfieldCode.Notethatrecordingstakeapproximately
MBofdiskspaceperminute.
Remarks
Torecord(partsof)interviews,adialerisrequired.
Forrecordingsstartedatthebeginningofaline,recordingsarenotautomaticallyrestartedwhen
followingupanappointment.Ifyourequiretorecordtheentireinterview,placethe*RECcommand
withdatafieldspecificationinan*INITblock.
Arguments
pos
ThisisthestartofthedatafieldwherethedataiswrittenintheUfile.
length
Thisisthelengthofthedatafield.
Example1
*QUESTION 1 *CODES 648
We would like to record your answers. Do you agree?
1: Yes
2: No *GOTO 2
*REC 649L20
*QUESTION 2
Recording of the interview starts here.

Page232

CommandIndex

Example2
*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
This question is no longer recorded.

Inthisexample,theanswersonquestions1,2and3willberecordedandsavedintheBfile.
SeeAlso
*BMP...............................................................104

Page233

CommandIndex

*REPEAT(questionoption)
System
NIPOCATIonly
Purpose
Storesthecurrentpositioninascaleorlinequestion.
Syntax
*REPEAT <n>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandthequestiontypedefinitions*SCALE
or*LINEandmustbespecifiedafterthesecommandsonthesameline.Onspecifiedintervalsthecurrent
positionoftheblockorthelengthofthelineisstored.Howmanytimesthishappensdependsonthe
numberofreservedpositionsinthedatafieldspecificationandthegivenmaximum.Forinstance,ifthe
maximumofthescaleis10(i.e.2digitsareusedpervalue)andthelengthofthedatafieldis80,the
registrationwillberepeated40times.
Arguments
n
Positiveintegerthatrepresentsthenumberofsecondstowaitbetweeneveryregistration.
Example
*QUESTION 1 *LINE 61L60 *MAX 40 *REPEAT 5
This is an example of a line question.

Inthisexample,thelengthofthelineisstoredevery5secondsupto30times(sizeofdatafield(60)divided
by2positionsforthehighestcode(40)).
SeeAlso
*LINE...............................................................171
*REPEAT...*ENDREP......................................235
*SCALE(questiontype)...................................247

Page234

CommandIndex

*REPEAT...*ENDREP
Purpose
Startrepetitionblock.
Syntax
*REPEAT n
<commands>
*ENDREP
Description
Definesthestartofarepetitionblock.Thiscommandhastobeonthebeginningofaline.Thiscommandis
alwaysusedincombinationwith*ENDREP(endrepetitionblock).Arepetitionblockconsistsofasetof
commandsandquestionsthatareconsideredtobeaspecialcomponent.Whenarepetitionblockis
executedinthequestionnaire,thesystemexecutesallcommandswithintherepetitionblockasmanytimes
asisindicatedbyn.Theanswerfieldswithintherepetitionblockareconsideredrelativepositionstothe
datafield.Whenarepetitionblockisexecuted,thesystemusesthestartingpositiondefinedby*FIELD
onthe*REPEATstatementasthestartingpointtodeterminewheretheanswershavetobestored.For
everyrepetitiontheanswerfieldsbelongingtothecommandsintherepetitionblockarestoredinfixed
fieldsoneafteranother.Itispossibletorefertotherepetitionnumberwiththe?Roperatororthe
*REPNUMcommand.
Arguments
n
Thisisapositiveintegerthatgivesthenumberofrepetitions.
Remarks
Youcannotjumpoutofarepetitionblockwiththe*GOTOcommand.Toterminatearepetitionblock,
the*ENDcommandmustbeused.
Jumpingfromoutsidetherepetitionblockintoaquestionwithinarepetitionblockwiththe*GOTO
commandisnotpossible.
Therepeatnumbersinrepeatblockscanbecontrolledby*CONTROL,randomizedby*RANDOM,
invertedby*INVandrotatedby*ROT.
Example1
*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

Inthisexample,question1isrepeated5times.Theanswersofthe5questionsarestoredinthedatafield
86L10(foreachanswer2positions=1L2x5questions).Forexample,theanswersforJohnnyarestoredin
position86L2,forMaryin88L2,etcetera.

Page235

CommandIndex

Example2
*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

Inthisexample,question1isrepeated5times,inrandomorder.Theanswersofthe5questionsarestored
inthedatafield86L10(foreachanswer2positions=1L2x5questions).Forexample,theanswersfor
Johnnyarestoredinposition86L2,forMaryin88L2,etcetera.
Example3
*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

Inthisexample,question3isrepeated6times.OnlyforthosenewspapersmentionedinQ2thequestionis
displayed.
Example4
*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

Page236

CommandIndex

*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

Thisexampleisthesameastheprevious,butnowthe*IFstatementhasbeenreplacedwitha*CONTROL
statementtothesameeffect.
SeeAlso
*END ...............................................................121
*FIELD .............................................................127
*INV ................................................................163
*ORDER...........................................................211
*RANDOM.......................................................226
*REPNUM........................................................238
*ROT ...............................................................241
RepeatNumber.................................................72

Page237

CommandIndex

*REPNUM
Purpose
Conditiononrepetitionnumber.
Syntax
*REPNUM <n|[expression]>: <action> [*ELSE <action>]
Description
Thiscommandcanonlybeusedinsidearepetitionblock.Itcomparesthecurrentrepetitionwiththe
numberindicatedbyn.Iftheseareequalthecommandsafterthecolonareexecuted.Optionallyyoucan
usethecommand*ELSE afterwhichyouplacecommandsthatareexecutedifthecurrentrepetitionis
notequalton.
Arguments
n|expression
Thisisapositiveintegerthatindicatestherepetitionnumbertobecompared.
Remarks
Therepetitionnumberisstoredinthesystemvariable?R.
Thecoloninthesyntaxmaybeusedasaseparatorbetweentheconditionandtheaction.Itmayalsobe
leftout.
Thecommands*RANDOM,*ROT,*INVand*ORDERdonotchangetherepetitionnumber,butdo
changetheorderinwhichtherepeatblockisexecuted.
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

Inthisexample,question1isrepeated5times.Theanswerofeachquestionisstoredinthedatafield
86L10(foreachanswer2positions(1L2x5questions).
SeeAlso
*REPEAT...*ENDREP......................................235
RepeatNumber ................................................72

Page238

CommandIndex

*RETURN
Purpose
Returnsfromsubroutine.
Syntax
*RETURN
Description
Returnsfromasubroutinebeforethephysicalendofthesubroutineisreached.Thiscommandisalso
allowedundercondition,butismandatoryforevery*SUBROUTINE.
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 *GOSUB NEWSPAPER


La Stanza *GOSUB NEWSPAPER
The Mirror *GOSUB NEWSPAPER
The New York Times *GOSUB NEWSPAPER
Le Figaro *GOSUB NEWSPAPER
La Libration *GOSUB NEWSPAPER
El Pais *GOSUB NEWSPAPER
Other *OPEN *GOSUB NEWSPAPER

SeeAlso
*GOSUB...........................................................137
*SUBROUTINE...*ENDSUB.............................275

Page239

CommandIndex

*RIGHT
Purpose
Questiontypeoptionandoptionwithinconjointanalysis.
Syntax
*RIGHT text
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONand*SCALEorincombinationwith
*CONJandmustbespecifiedafterthesecommandsonthesameline.Withthiscommandatextcanbe
givenwhich,duringtheinterview,isplacedattherighthandpoleofthescale.
Arguments
text
Thisisthetextthatwillbedisplayedontherighthandpoleofthescale.
Remarks
Ifthetextcontainsspacesithastobespecifiedbetweendoublequotes.
Example
*QUESTION 1 *SCALE 61 *LEFT "Left scale text" *RIGHT "Right scale text"
This is an example of a scale question.

Result:

SeeAlso
*CONJ...*ENDCONJ .......................................111
*LEFT...............................................................170
*SCALE(questiontype)...................................247

Page240

CommandIndex

*ROT
Purpose
Displaysanswercategoriesrotated.
Syntax
*ROT [[pos]L<length>|<pos>]
Description
Thiscommandisalwaysusedincombinationwitha*CODESquestionor*REPEATblockandhastobeon
thesamelineasthequestiondefinition.Thecodesandtheirlabelsareshowninrotatedorderonthe
screen,startingrandomlyfromanyoftheavailableanswercodes.Thenthenextcodesfollowinsequence,
uptoandincludingthehighestcode.Nextthelowestcodesfollowuptocodewhereitrandomlystarted.
Arguments
pos
Thedatafieldspecificationwheretheorderofthedisplayedcategoriesiswrittenintheclosedanswerfile.
length
Thelengthofthedatafield.
Remarks
Thenumberofcodes,ofwhichtheorderwillissaved,dependsonthelengthinthedatafield
specification.Thishastobejustaslongasthenumberofcodestobesavedmultipliedbythelengthof
thehighestcode.Theorderofappearanceofthecodesonthescreenisstoredinthedatafilewiththe
closedanswers.
With*NOCONanswercodescanbeexcludedfromtherotation.
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

Inthisexample,allmentionsarestoredinposition61L10.Intheanswerfieldbehind*ROTthecodesfor
thefirst4codesonthescreenarestored.Thelasttwocodesarenotrotatedalongandarealways
displayedatthebottomofthecodelist.
SeeAlso
*GROUP ..........................................................146
*INV ................................................................163
*NOCON..........................................................199
*ORDER...........................................................211
*RANDOM.......................................................226
*REPEAT...*ENDREP ......................................235

Page241

CommandIndex

*RUN
System
NIPOCATIandNIPOCAPIonly
Purpose
RunsanexternalWindowsmodule(.DLL)withintheNIPOCATIClientandNIPOCAPIClient.
Syntax
*RUN Qn "[LIBRARY],[FUNCTION]"
Description
The*RUNcommandexecutesafunctionwithinanexternallibrary.Thelibrarymusthavebeenspecifically
developedtoworkinconjunctionwiththeNIPOODINengine,andmustbeaccessiblefortheNIPOCATI
ClientandNIPOCAPIClientexecutableinarelativepath.Thelibrarymayaccessvariablesdefinedwithin
theNIPOODINscriptandreturninformationinthespecifiedquestion.ItmayalsoreturndatainNIPOODIN
variables.
Formoreinformationoncreatingyourownlibraries,contacttheNIPOSoftwareHelpdeskforexample
source.
Arguments
Qn
Thetargetquestionwheretheresultvaluefromthelibraryfunctioncallisstored.Ifthedatafieldofthe
targetquestionisnotlongenough,theincomingdataistruncated.
LIBRARY
Thepartialorfullfilepathandnameofthelibrarytocall.
FUNCTION
Thenameofthefunctionwithinthelibrarytocall.Notethatthefunctionnameiscasesensitive.
STDRUN32
AspartofitsinterviewingclientsoftwareNIPOSoftwareincludesthelibrarySTDRUN32.DLL.Thislibrary
containsasinglefunctionSTDRUNENTRYwhichallowstheNIPOODINscripttocallanexternalexecutable
andpassinformationtotheexecutableusingtheclipboardorafile.Thefollowingvariablesmaybedefined
inNIPOODINscripttobeusedbySTDRUN32.DLL:
CMDLINE
Textvariable.Fullorpartialpathtotheapplicationthatneedstobecalled.
INPUTDATA
ThelibrarySTDRUN32.DLLusesthetextvariableINPUTDATAtotransferinformationtotheexternal
application.ThevalueofINPUTDATAiscopiedtotheclipboardpriortocallingtheapplication.Notethat
theapplicationthatiscalledneedstobeabletohandleinformationpassedtotheclipboard.
STDRUNTEMPFILEPATH
Ifyoudonotwishtousetheclipboardtopassinformationtotheexecutable,STDRUN32.DLLmayusea
fileinstead.Thistextvariablesetsapartialorfullfilepathtowardsafileinwhichtostorethecontentsof
INPUTDATA.AnyinformationpassedtoINPUTDATAisplacedinthisfileasanullterminatedstring.Note
thattheexecutablethatiscalledwillhavetotakecareofopening,readingandoptionallychangingthe
informationinthisfile.Anychangedinformationisultimatelypassedtothetargetquestionusingthisfile.
WhenusingSTDRUNTEMPFILEPATHitisrecommendedtosetRUNTYPEto1(seebelow)toavoidfile
accessissues.
RUNTYPE
Numericvariable.SetswhetherornotSTDRUN32.DLLwaitsfortheexternalapplicationtofinishbefore
NIPOODINcontinuestheinterview.

Page242

CommandIndex

Runtypevalues
Value

Function

0/10

WaitforapplicationthatwasopenedbytoclosebeforecontinuingtheNIPOODINscript.Use0for16bitapplicationsand10
for32bitapplications.

1/11

Donotwaitforapplicationtofinishcontinuethequestionnaireimmediately.Use1for16bitapplicationsand11for32bit
applications.

Waitfortheapplication,andforanyotherapplicationthatwasstartedbytheapplicationinturn,tofinishbeforecontinuing
theNIPOODINscript.

STDRUN32Example#1
ExampleofusingSTDRUN32.DLLusingtheclipboard.Returninformation,ifany,isstoredinQ1.
*TEXTVARS CMDLINE, INPUTDATA
*VARS RUNTYPE
*PUT CMDLINE "MYOWN.EXE"
*PUT RUNTYPE [ -1 ]
*PUT INPUTDATA "mydata"
*QUESTION 1 *ALPHA L10
*RUN Q1 "STDRUN32.DLL,STDRUNENTRY"

STDRUN32Example#2
ExampleofusingSTDRUN32.DLLusinganexternalfile.Returninformation,ifany,isstoredinQ1.
*TEXTVARS CMDLINE, INPUTDATA, STDRUNTEMPFILEPATH
*VARS RUNTYPE
*PUT CMDLINE "MYOWN.EXE"
*PUT STDRUNTEMPFILEPATH "TEMP.TXT"
*PUT RUNTYPE [ -1 ]
*PUT INPUTDATA "mydata"
*QUESTION 1 *ALPHA L10
*RUN Q1 "STDRUN32.DLL,STDRUNENTRY"

Page243

CommandIndex

*SAMPLEDATA
Purpose
WiththiscommandvariablesintheNIPOODINquestionnairecanbelinkedautomaticallywithfieldnames
intheSampletable.
Syntax
*SAMPLEDATA var1,var2,
Description
ThevariableintheNIPOODINquestionnaireisfilledautomaticallywiththecontentsofthematching
databasefieldwhenstartingtheinterview.Thefieldsinthedatabasetableareupdatedwiththecontents
ofthevariablewhenclosingtheinterviewforafinal(non)responseoranappointment.Ineveryother
aspect,asampledatavariableworksjustlikearegularNIPOODINvariable.
Remark
Whenusingatelephonefile,sampledatavariablesaremappedtopositionsinsystemfields.Inthiscase,
nocustomfieldscanbeused.
Default(system)fieldsinthesampletablemustbeprefixedwithTT.Forexample,toretrievethe
telephonenumberfromthesampletable,useTTTelephoneNumber.
Example
*SAMPLEDATA Region
*PAGE
According to our database the region is *?Region.

AssumesthatthesampletableforsurveyA1234containsafieldcalledRegion.
SeeAlso
*MOVA ...........................................................184
*MOVU ...........................................................185
*NEXTRECORD ................................................195
*PUT................................................................222
*SQLADD.........................................................261
*SQLGET .........................................................265
*SQLPUT .........................................................268
*TEXTVARS......................................................283
*VARS..............................................................287

Page244

CommandIndex

*SAVE(questionoption)
Purpose
Savestheanswerofaquestioninavariable.
Syntax
*SAVE <var>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthiscommand
onthesameline.Theansweronaquestionissavedinavariable.Ifitisanumericvariablethecodevalue
orthenumberissaved.Ifitisatextvariablewithaclosedquestionwithprecodedanswersthelabelofthe
codeissaved.Savingananswertextisparticularlyofuseifyouwanttoinsertthistextinasubsequent
question(dynamictextmodification).
Maynotbeusedinasinglequestionincombinationwith*SAVEasacodeoption.Ifusedona*MULTI
question,itsavesthehighestselectedcode(text)only.
Arguments
var
Any(alpha)numericalvariableoranyofthetensystemvariables.Iftheargumentisomittedsystemvariable
0isusedbydefault.
Example
*TEXTVARS PARTY
*QUESTION 5 *CODES 81 *SAVE PARTY
Which party will you vote for in the next election?
1:
2:
3:
4:
5:

Conservative union
Social democrats
Liberals
Greens
Communists

6: Other party *OPEN


7: None *GOTO 7
*QUESTION 6 *CODES 82
Did you also vote for the *? PARTY in the previous election?
1: Yes
2: No
*QUESTION 7
...

SeeAlso
*PUT................................................................222
*SAVE(codesoption)......................................246

Page245

CommandIndex

*SAVE(codesoption)
Purpose
Savesacodenumberorlabelinavariable.
Syntax
*SAVE <var>
Description
Thiscommandisalwaysusedafteracodedefinitionandmustbespecifiedafterthiscodeonthesameline.
Ifitisanumericvariablethecodevalueissavedasanswer.Ifitisatextvariablethedescriptivetextofthe
answercategoryissaved.Ifitisanopencodetheopenendedanswertextissaved.
Remark
Maynotbeusedinasinglequestionincombinationwith*SAVEasaquestionoption.
Arguments
var
Any(alpha)numericalvariableoranyofthetensystemvariables.Iftheargumentisomittedsystemvariable
0isusedbydefault.
Example
*TEXTVARS localpaper
*QUESTION 1 *CODES L7 *MULTI
To what newspapers do you subscribe?
1:
2:
3:
4:
5:
6:

New York Times


The Guardian
Sunday Times
Washington Post
Herald Tribune
A local paper *OPEN *SAVE localpaper

7: Dont know *NMUL


*QUESTION 2 *CODES L1 *IF [Q1,6]
Do you read *? localpaper frequently?
1: Yes
2: No

SeeAlso
*SAVE(questionoption).................................245

Page246

CommandIndex

*SCALE(questiontype)
Purpose
Definesadiscretescalequestion.
Syntax
*SCALE <pos>L<length>
Description
Thiscommandmustbeusedaftera*QUESTIONonthesameline.Inputisdonebymeansofpositioninga
blockinannpoints(default7points)scale.Theanswerconsistsofthepositionoftheblockinthescale
startingatoneandincreasingfromlefttoright.Thescalecanbemodifiedtoamaximumsizeof26points.
Theupperlimitisdeterminedbythemaximumvaluethatfitsthespecifiedlength,orbythe*MAX
command.Use*MINtosetaninitialcursorpositionforthe*SCALEquestion(default:middle).Specifying
*MIN 0doesnotplacethecursoranywhere.Use*RIGHTtosetatextontherighthandsideofascale
question.Use*LEFTtosetatextonthelefthandsideofascalequestion.
Arguments
pos
ThisisthestartofthedatafieldwherethedataiswrittenintheUfile.
length
Thisisthelengthofthedatafield.
Remark
IntheclientapplicationconfigurationforNIPOCAPIandNIPOCATI,thesettingScaleInitValue=n
positionsthecursorinascalequestionattheboxindicatedbyn.Withoutthissettingthedefaultpositionis
theboxinthemiddle.Ifn=0nocursorwillbedisplayed.
Example
*QUESTION 71 *SCALE 101L1 *LEFT "Poor taste" *RIGHT "Good taste"
What do you think of the taste of Heineken beer?

Result:

Page247

CommandIndex

SeeAlso
*LEFT...............................................................170
*LINE...............................................................171
*MAX ..............................................................178
*MIN ...............................................................182
*REPEAT(questionoption).............................234
*RIGHT ............................................................240
*SCALE(in*FORMquestion) ..........................249
*SCALERANGE.................................................252

Page248

CommandIndex

*SCALE(in*FORMquestion)
Purpose
Definesahorizontalgridquestion.
Syntax
*SCALE <pos>L<length> n1 n2
Description
Thiscommandmustbeusedincombinationwitha*FORMquestiontocreateagridofoneormorerows.
Thesekindsofquestionsusecheckboxestomarktheanswersonscreeninsteadofusingcodes.Withthe
*SCALE commandyoucancreatehorizontalgrids,eithersinglecodedormultiplecodedusing*MULTI.
Tocreateverticalgrids,see*GRID.
Arguments
pos
ThisisthestartofthedatafieldwherethedataiswrittenintheUfile.
length
Thisisthelengthofthedatafield.
n1
Thisisanumberorexpressionthatindicatesthenumberofcheckboxes.
n2
Thisisthespacingbetweeneachcheckbox.Onlyavailableinagrid.Negativevaluesresultinaverticalgrid.
Remarks
Expressionsarenotallowedfor*SCALEin*FORMquestions.
InNIPOCAWI,thevaluen2isoverruledbythecolumnwidthasdefinedbythe*TABcommand,but
mustbespecifiedregardless.
Use*TABand[Tab]tospacescales:
Toaligncolumntexts(headers)abovethescale,tabpositionsmustbedefinedwiththe*TABcommand
beforea*FORM*SCALEquestion.Foreachcolumninthescaleatabmustbedefined.Thescalesare
alwaysdistributedevenlybetweenthefirstandthelasttabitisnotpossibletovarythegapsbetween
columns.Ifthelasttabisnotat100%,thelastcolumntextandthe*SCALEmustbefollowedby
[Tab][Space]tofillthelastinvisiblecolumn.Usestylesheets(CSS)tocentertextsinNIPOCAWI.
*TAB 30, 40, 50, 60, 70
*QUESTION 1 *FORM
Question text
Column 1
Column 2
1:Scale 1

*SCALE 61L1 4 1

2:Scale 1

*SCALE 62L1 4 1

3:Scale 1

*SCALE 63L1 4 1

Column 3

Column 4

Notethattabsareusedtoseparatecolumnheadersandcodetextsandtheir*SCALEstatements.Boththe
headerrowandthecoderowsendwithatabspace.

Page249

CommandIndex

Example1
*TAB 35, 45, 55, 65, 75, 85
*QUESTION 2 *FORM
How do you rate the taste of the following beers:
Very poor
1:Heineken

*SCALE 67L1 5 6

2:Amstel

*SCALE 68L1 5 6

3:Grolsch

*SCALE 69L1 5 6

4:Carlsberg

*SCALE 70L1 5 6

5:Tuborg

*SCALE 71L1 5 6

Very good

Again,tabsareusedtoseparatecolumnheaders(aspaceeachforthemiddlethree)andcodetextsand
their*SCALEstatements.Boththeheaderrowandthecoderowsendwithatabspace.
Result:

Example2
*QUESTION 882 *FORM
What did you think of the service at the following gas stations?
Esso
1:Very good
Good
Average
Poor
Very poor
No opinion

Mobil Oil
Shell
*SCALE L1 6 -1 *SCALE L1 6 -1

*SCALE L1 6 -1

Verticalscalesareusedhere,whichiswhy3*SCALEstatementsareplacedonasinglerow.

Page250

CommandIndex

Result:

Example3
*TAB 35, 45, 55, 65, 75, 85
*QUESTION 2 *FORM
Which features would you attribute to these beers?
Dark

Strong Sweet

Bitter Clear

1:Heineken

*SCALE 67L5 5 6 *MULTI

2:Amstel

*SCALE 68L5 5 6 *MULTI

3:Grolsch

*SCALE 69L5 5 6 *MULTI

4:Carlsberg[Tab]
5:Tuborg

*SCALE 70L5 5 6 *MULTI

[Tab]*SCALE 71L5 5 6 *MULTI

Result:

SeeAlso
*ALPHA(in*FORMquestion) ...........................96
*FORM ............................................................132
*GRID(in*FORMquestion)............................141
*MULTI............................................................186
*NUMBER(in*FORMquestion) .....................206
*SCALERANGE.................................................252
*TAB................................................................279

Page251

CommandIndex

*SCALERANGE
Purpose
Definesthevaluesfora*SCALEquestion.
Syntax
*SCALERANGE [n]
or
*SCALERANGE [n1;n2;n3;...]
or
*SCALERANGE [n1 TO n2;...]
or
*SCALERANGE
Description
Thiscommanddefinesthevaluesthatwillbeusedfora*SCALEquestion.Bydefaultclickingthefirstbox
fromtheleftsavesvalue1,clickingthesecondboxfromtheleftsavesvalue2,etcetera.Thevaluessaved
froma*SCALEcanbechangedusing*SCALERANGE.Thescalerangeissetforall*SCALEquestions.
Arguments
[n]
Specifiestheoffsetfortheboxvalues.Thefirstboxwillgetvaluen,thesecondwillgetvaluen+1,third
n+2,etcetera.
[n1;n2;n3]
Specifiestheboxvaluesseparatedbysemicolons.Valuesmustbeintegersandmaybecontainnegative
valuesaswell.TheNIPOODINDevelopersyntaxcheckchecksifnovaluesareusedmorethanonce.When
moreboxesareusedthanvaluesspecified,thesystemautomaticallyusesthedefaultvalueofthoseboxes.
[n1 TO n2]
Specifiesarangeofvalues.Allvaluesinbetweenareused.
Whennoargumentisspecified,thedefaultboxvalueswillbeused.Use*SCALERANGEwithoutargument
toresetboxvalues.

Page252

CommandIndex

Remark
Itispossibletousemorethanone*SCALERANGEinthesameNIPOODINquestionnaire.However,
fromamethodologicalpointofview,thisisnotrecommended.
*SCALERANGEshouldnotbeusedincombinationwitha*SCALE *MULTIina*FORMquestion.
Youcannotusedescendingscaleranges.
Whenavalueisnotaninteger(ifdecimalsareused),thevalueistruncated(thedigitsafterthedecimal
pointareignored).
Itisnotrecommendedtouseexpressionsorvariablestosetthe*SCALERANGE.Ifyoudo,makesure
anyvariablevaluesaredeterminedbeforesettingthescalerange.Otherwise,theyareconsidered0and
thefollowingerrorappears:"Error: 'SCALERANGE' , illegal argument".Makesureyou
checktherouting(*GOTO,*IF,*BACK,*CUT,etc.)inyourquestionnaire,topreventyoufrom
unexpectedlyjumpingovera*SCALERANGE,asthiswouldmakeanalysisofthedataimpossible(as
youdonotknowwhattheboxvaluesrepresent).
Ifaboxvalueisusedmorethanonce,theNIPOODINDevelopersyntaxcheckpresentsawarning
message"Warning: Duplicate Code: n"ifthisisthecase.
Ifthe*SCALERANGE specifiesfewervaluesthanboxesareused,thedefaultboxvaluewillbeused.
Thismaybeavaluethatwasalreadyusedinyour*SCALERANGE specification.Itisnotpossibleto
differentiatebetweenthese2boxes.Thesyntaxcheckgiveswarningmessage"Warning: number
of boxes in SCALE (n) exceeds number of values specified in SCALERANGE
(m)"ifthisisthecase.
In*SCALERANGEyoumayspecifynegativeboxvalues.WhenexportingthequestionnairetoNIPO
Diana,makesurethatyoudonotexportthescalequestionswiththeoption'Createcodesforscale
questions'switchedon,asNIPODianadoesnotsupportnegativecodevalues.Exportthescale
questionsasvaluesonly.InIBMSPSSPCandTripleSusingnegativecodevaluesaresupported(check
yourIBMSPSSdocumentationonhowtousethesescales).
Example1
*SCALERANGE [ 0 ; 1 ; 2 ; 3 ; 4 ]
*QUESTION 1 *FORM
How do you rate the taste of the following beers:
0

1:Heineken

*SCALE 61L1 5 10

2:Amstel

*SCALE 62L1 5 10

3:Grolsch

*SCALE 63L1 5 10

4:Carlsberg

*SCALE 64L1 5 10

5:Tuborg

*SCALE 65L1 5 10

Theleftmostgridboxsavesvalue0,thesecondboxsavevalue1,thethirdvalue2,thefourth3andthe
rightmostboxsavesvalue4.Notethattabsareusedtoseparatecolumnheadersandcodelabelsand
*SCALEstatements,andthateachrowendswithatabspacecombination.

Page253

CommandIndex

Example2
*SCALERANGE [-2 TO 2 ; 9]
*QUESTION 2 *FORM
How do you rate the taste of the following beers:
Very poor taste
Don't know
-2

-1

Poor taste

Neutral Good taste

1:Heineken

*SCALE 66L2 6 10

2:Amstel

*SCALE 68L2 6 10

3:Grolsch

*SCALE 70L2 6 10

4:Carlsberg

*SCALE 72L2 6 10

5:Tuborg

*SCALE 74L2 6 10

Very poor taste

Theleftmostboxontheleftsavesvalue2,thesecondboxsavesvalue1,thethirdvalue0,thefourth1,
thefifth2andtherightmostboxsaves9.Notethattabsareusedtoseparatecolumnheadersandcode
labelsand*SCALEstatements,andthateachrowendswithatabspacecombination.
Result:

Notethatthevaluesabovetheboxesinthisexamplearepartofthequestiontext.Theyhaveno
significancefortheboxvalue.
Example3
*SCALERANGE [0]
*QUESTION 3 *SCALE L1 *MAX 5

Inascaleof5boxes,thefollowingboxvalueswillbeused:leftmostboxvalue0;secondbox1,thirdbox:2;
thefourth3andtherightmostboxvalue4.Thisisthesameas*SCALERANGE [0;1;2;3;4]or
*SCALERANGE [0 to 4].
Example4
*SCALERANGE [1;3;5]
*QUESTION 6 *SCALE L1

Inascaleof4boxes,thefollowingboxvaluesareused:leftmostbox1,secondbox3;thirdbox5andthe
4th(rightmost)boxvalue4asitwouldhavebeenitsdefaultvalue.

Page254

CommandIndex

SeeAlso
*SCALE(in*FORMquestion) ..........................249
*SCALE(questiontype)...................................247

Page255

CommandIndex

*SHOWDOCUMENT
System
NIPOCAWIonly
Purpose
Showadocumentduringanonlineinterview.
Syntax
*SHOWDOCUMENT "URL [,frame]"
Description
Thiscommandisusedtoshowawebsiteduringanonlineinterview.
Arguments
URL
ThisistheURL(address)ofawebsitetobeshown.
frame
ThisisoptionalthenameoftheframeinwhichtoopentheURL.Theframemusthavebeendefinedinthe
NIPOODINTemplate.Ifnoframewasspecified,anewbrowserwindowisopened.
Remark
The*SHOWDOCUMENTcommandisignoredNIPOCATI,NIPOCAPI,NIPOCASIandNIPOCATIstandalone.
Example
*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

Page256

CommandIndex

*SIZE
System
NIPOCATI/NIPOCAPIonly
Purpose
Determinesthesizeoftheopenendedanswerboxin*OPENand*OPEN*BMPquestionsandthesizeof
checkboxesina*SCALEor*GRIDquestion.
Syntax
*SIZE x y
*SIZE expression1 [expression2]

Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandmustbespecifiedafterthiscommand
onthesameline.Incaseofan*OPENquestionitdefinesthesizeoftheanswer(textorbitmap)box,in
caseofa*SCALE,*GRIDor*FORMquestionitdefinesthesizeofthecheckboxes.
InNIPOCATI,youcansetthewidthandtheheightoffullyopenendedanswertextandbitmap(*OPEN
*BMP)boxes.Thesizeofasemiopenendedanswerbox(whichusesadialogbox)cannotbealteredusing
*SIZE.
InNIPOCAPI,youcanuse*SIZEtosetthewidthandheightoffullyandsemiopenendedtextanswer
boxes.Howeverforafullyopenendedbitmap(*OPEN *BMP)answerboxyoucanonlysettheheight;the
widthparameterisignored.Forsemiopenendedbitmapanswerboxesyoucansetboththewidthandthe
height.
ThedefaultheightforafullyopenendedbitmapanswerinNIPOCAPIissettohalftheapplicationwindow.
InbothNIPOCATIandNIPOCAPI,NIPOODINenforcesaminimumsizefortheopenendedanswerboxes.
Valuesbelowtheminimumaresettotheminimum.
Arguments
x
Thehorizontalsizeoftheappropriateobject.Thesizeisspecifiedintenthsofpoints(1pointis
approximately1/72ofaninch).Maybespecifiedasanexpression.
y
Theverticalsizeoftheappropriateobject.Thesizeisspecifiedintenthsofpoints(1pointisapproximately
1/72ofaninch).Maybespecifiedasanexpression.
Ifonlyoneparameterisprovided,thefollowingrulesapply:
Inafullyopenendedbitmapanswer(*OPEN *BMP)inNIPOCAPI,usingasingleparametersetsthe
heightoftheinputbox.Thewidthoftheinputboxisalwayssettothewidthoftheapplicationwindow.
Notethatthisdoesnotapplytotextopenendedanswerboxes.
Inallothercases,asingleparametersetsthewidthoftheopenendedanswerboxonly.
Example1
*QUESTION 1 *OPEN L11 *MULTI *SIZE 3000 1000
What reasons did you have to sell your car?

Page257

CommandIndex

Result:

Example2
*TAB 40,50,60,70,80,90
*QUESTION 1 *FORM *SIZE 200 200
Please indicate how much you agree or disagree with the following statements:
agree

disagree

1: Coca Cola is tasteful

*SCALE L1 5 10

2: Coca Cola is expensive

*SCALE L1 5 10

3: Coca Cola is modern *SCALE L1 5 10

Result:

Example3
*QUESTION 1 *OPEN L11 *MULTI *SIZE 1500
What reasons did you have to sell your car?

Page258

CommandIndex

ResultinNIPOCAPI:

SeeAlso
*BMP...............................................................104
*CODES ...........................................................109
*FORM ............................................................132
*GRID(in*FORMquestion)............................141
*OPEN(codesoption).....................................210
*OPEN(questiontype)....................................208
*SCALE(in*FORMquestion) ..........................249

Page259

CommandIndex

*SKIP
System
NIPOCAPIonly
Purpose
Skipsaquestionnaireinacluster.
Syntax
*SKIP "name"
Description
ThiscommandisusedtoskipaquestionnaireinaclusterinNIPOCAPI.Nodataisstoredforthatspecific
questionnaire.Usethiscommandforinstancetoskiparegionalquestionnaireoraquestionnairefora
specifictargetgroup.Thiscommandismostlyusedintheapreliminaryscreeninginthefirstquestionnaire
ofacluster.Ifthecallneedstobemadeinthequestionnaireitself,use*ABORTinstead.
Arguments
name
Thisisthenameofaquestionnairetobeskipped(excludingtheQ).Ifthefileismissingornotdefinedinthe
clusterthecommandisignored.
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"

SeeAlso
*ABORT.............................................................92
*APPOINT..........................................................97
*CUT ...............................................................116
*END ...............................................................121
*ENDNGB........................................................123
*ENDST ...........................................................124

Page260

CommandIndex

*SQLADD
System
NIPOCATIandNIPOCAWIonly
Purpose
Createnewdatabaserecord.
Syntax
*SQLADD count var1,var2, "SELECT field1,field2, FROM TableName"
Description
Usethe*SQLADDcommandinaNIPOODINquestionnairetocreatenewrecordsinadatabasetable.This
maybeacustomtable,thecurrentSampletable,oraSampletableforanothersurvey.Ifthe*SQLADD
commandisexecutedsuccessfullythevariablecountcontainsthenumberofrecordsthathavebeen
addedinthetable.
SeeAdvancedUseof*SQLADDCommand(onpage303)formoredetailsonworkingwith*SQLADD.
Arguments
count
Thisavariablethatstorestheresultofthecommand,whichisthenumberofrecordsthatweresuccessfully
addedtotheSQLtable.Canbeusedtoseeifthequerywasexecutedsuccessfully.Morethanonerecord
maybeaddedifanyofthepassedvariableswasanarraytypevariable.Thesmallestarraysizedefineshow
manyrecordsmaybeadded.Ifcountissmallerthanthatsmallestarray,oneormorerecordscouldnotbe
added.Likelycausesareprimarykeyviolations,incompatibledatatypesetcetera.Anerrorpreventsthe
systemfromaddingmorearrayvaluesfromthe*SQLADDstatement.
var1,var2, ...
Inputvariablesorvaluesthataretobeinsertedinthenewrecord(s).Forundopurposesthesemustinclude
theprimarykey(s)forthetable,forundopurposes.Thenumberofvariablesshouldmatchthenumberof
fieldsintheSELECTstatement.Arraytypevariablesmustbespecifiedwithoutarrayindexes.
field1, field2, ...
Fieldsintowhichthevariablesaretobeinserted.Theseshouldatleastincludeallprimarykeyfield(s).Asa
consequencethetablemustuseaprimarykey.Theorderinwhichthefieldsarespecifiedistheorderin
whichtheirvaluesareinserted,andthenumberoffieldsshouldmatchthenumberofvariables:var1goes
intofield1,var2intofield2andsoforth.
TableName
Nameofthetabletocreaterecordsin.ThedatabaseODBCname(DSN)isconfiguredinthesurvey
configurationfile,usuallyaspartofthesurveyconfiguration.Asasurveycanuseonlyonedatabase
reference,thisisusuallythesamedatabasethatcontainsthesurveysSampletable.Thetablemaybethe
currentSampletable,thesampleofanothersurveyoranyothertableinthesamedatabase.

Page261

CommandIndex

Remark
ThisfunctionrequirestheuseofadatabaseserverconnectedtotheNIPOFieldworkSystem.
Goingbackintothequestionnaireoveran*SQLADDstatementwillundoit,unlesstherecordwas
lockedbyanotherprocess.Youmayspecifya*NOTBACKcommandintheNIPOODINquestionnaireif
undoingisnotappropriate.
Thevariablesmustbespecifiedwiththe*VARS,*TEXTVARSor*SAMPLEDATAcommandfirst.
Thefieldsmustexistinthetable.
Thetablemusthaveaprimarykey.
*SQLADDmaynotbeusedonaview,sinceviewsdonothaveaprimarykey.
*SQLADDmaynotbeusedonatablewithanautomaticprimarykey,since*SQLADDdeterminesits
ownkey.
Contrarytothe*NEXTRECORDcommand,youmustspecifyavalidrecordnumber(key)forthetable.
Thenumberofvariablesmustmatchthenumberoffields.
Expressionsarenotsupported.Usethe*PUTcommandfirsttoevaluateexpressions.
ThesyntaxcheckintheNIPOODINDeveloperwillnotcheckifthecontentsofthevariablesthatyou
specifiedfitinthefields.Inotherwords,youmustensurethevariablesmatchthefieldtypesofthe
database.Textsthatdonotfitacharacterfieldaretruncated.
Youmaychangethecontentsofsystemfields(systemvariables)inSampletables.Thereisnovalidity
checkduringthe*SQLADDcommand,exceptforconstraintsofthefields,soensureyouusevalid
systemvalues.Inparticular,theInterviewNumberfieldshouldbesettoavalueintherange1
99999999,theStatusfieldto18andtheResponseCodefieldto099.
Ifthereisatypemismatchbetweenthevariablevalueandthefieldtype,anerrorisreportedandthe
recordisnotadded.
Forreference,thefieldtypeTinyIntmaybeusedforvaluesbetweenandincluding0and255;the
typeSmallIntmaybeusedforvaluesbetweenandincluding32768and+32767;thefieldtype
Integermayfitvaluesbetween214783648and214783647andthetypeFloatingmaycontain
anyvalueofupto15digits,withprecisionused.
Example1
*VARS Count,NewNumber
*TEXTVARS Name,Email,Telephone
*PUT
*PUT
*PUT
*PUT

NewNumber [ 9001 ]
Name "NIPO Software Helpdesk"
Email "Helpdesk@niposoftware.com"
Telephone "00 31 20 5225 980"

*SQLADD Count NewNumber,Name,Email,Telephone


"SELECT RecordNumber,Name,Email,Telephone
FROM Contacts"

AnewrecordiscreatedintheContactstablewithRecordNumber9001andthevariablesaresavedin
theName,EmailandTelephonefieldsforthisrecord.Allotherfieldsfromthistableeitherremain
emptyorreceivetheirinitialvalueassetintheconstraintsforthistable.
Example2
*VARS NewNumber,Count
*TEXTVARS Name,Address,City,Country,TelephoneNumber
*QUESTION 1 *FORM
Type the contents for your new record

Page262

CommandIndex

1:
2:
3:
4:

Name *ALPHA 69L45 *SAVE Name


Address
*ALPHA 114L35 *SAVE Address
City *ALPHA 149L35 *SAVE City
Country
*ALPHA 184L35 *SAVE Country

5: TelephoneNumber

*ALPHA 219L17 *SAVE TelephoneNumber

*PUT NewNumber [TTInterviewNumber+50000000]


*SQLADD Count NewNumber,Name,Address,City,Country,TelephoneNumber \
"SELECT InterviewNumber,DisplayField1,DisplayField2, \
DisplayField3,DisplayField4,TelephoneNumber \
FROM SampleA1234"
*QUESTION 2 *IF [ Count = 1 ]
Successfully added new record.
*END

ThesystemaddsanewsamplerecordtothetableofsurveySampleA1234.Avalueof50000000isadded
totheInterviewNumberandusedastheprimarykeyforthenewrecord.Thismethodmaycreatenew,
nonexistentprimarykeyswithoutcausingaprimarykeyviolation.
Example3
*VARS NewNumber, Count, Maxnumber
*TEXTVARS Name, Address, City, Country, TelephoneNumber
*QUESTION 1 *FORM
Type the contents for your new record
1: Name *ALPHA
2: Address

69L45 *SAVE Name


*ALPHA 114L35 *SAVE Address

3: City *ALPHA 149L35 *SAVE City


4: Country

*ALPHA 184L35 *SAVE Country

5: TelephoneNumber

*ALPHA 219L17 *SAVE TelephoneNumber

*** First retrieve the highest InterviewNumber so far


*SQLGET Count MaxNumber \
"SELECT InterviewNumber FROM SampleSqlAdd2 \
WHERE InterviewNumber = \
(Select MAX(InterviewNumber) FROM SampleSqladd2)"
*PUT NewNumber [ MaxNumber + 1 ]
*SQLADD Count NewNumber,Name,Address,City,Country,TelephoneNumber \
"SELECT InterviewNumber,DisplayField1,DisplayField2, \
DisplayField3,DisplayField4,TelephoneNumber \
FROM SampleSqlAdd2"
*QUESTION 2 *IF [Count = 1]
Successfully added new record.
*END

ThischecksforthehighestusedInterviewNumberwith*SQLGET,addsoneandthenusesthisvalueto
createthenewrecord.

Page263

CommandIndex

Example4
*VARS FamilyNumber, FamilyMemberNumber[9], FamilySize, Count
*TEXTVARS Name[9]
*QUESTION 1 *FORM
1:FamilyNumber:
2:FamilySize:

*NUMBER 61L6 *MIN 1 *MAX 999999 *SAVE FamilyNumber


*NUMBER 67L1 *SAVE FamilySize *MIN 1 *MAX 9

*QUESTION 1001 *CODES 68L9 *MULTI


*REPEAT 9
*IF [?R <= FamilySize] *INCLUDE Q1001 [?R] \
*PUT FamilyMemberNumber[?R] [(FamilyNumber * 100) + ?R]
*ENDREP
*QUESTION 2 *FORM *CONTROL Q1001 W
Names of family members
1:
2:
3:
4:
5:
6:
7:
8:
9:

First person:
Second person:
Third person:
Fourth person:
Fifth person:
Sixth person:
Seventh person:
Eighth person:
Ninth person:

*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA

77L35
112L35
147L35
182L35
217L35
252L35
287L35
322L35
357L35

*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE

Name[1]
Name[2]
Name[3]
Name[4]
Name[5]
Name[6]
Name[7]
Name[8]
Name[9]

*SQLADD Count FamilyMemberNumber,Name \


"SELECT PanelMemberNumber,Name FROM TestPanelmembers"
*QUESTION 3 *IF [Count = FamilySize]
Successfully added *? Count records out of *? FamilySize members.

Thesystemaddsatmaximum9recordswiththenamesofpanelmembersintheTestPanelmembers
table.Thesystemusesthe6digitFamilyNumberandaddsa2digitnumberforeachfamilymemberto
createaunique8digitPanelMemberNumber.
Whenfewerthan9familymemberswerespecified,thesystemreportsawarningmessagetothefieldwork
manager.Howeverthiserrormaybeignored..
Note:
ThevariablenameFamilyMemberNumber[9]andthedatabasefieldname
PanelMemberNumberdonotneedtocarrythesamename.

SeeAlso
*NEXTRECORD................................................ 195
*SQLGET ......................................................... 265
*SQLPUT......................................................... 268

Page264

CommandIndex

*SQLGET
System
NIPOCATIandNIPOCAWIonly
Purpose
Retrievesavalueortextfromadatabase.
Syntax
*SQLGET count var[,var...] "SQL statement"
Description
Thiscommandretrievesavariablefromadatabase.Ifmorethan1variableisusedthefirstvariablewillget
thevalueofthefirstfieldinthedatabaserecord,thesecondvariablegetsthesecondfieldetcetera.The
variablecanalsobeanarray.Inthatcase,iftheSQLstatementreturnsmorethan1record,thefirstrecord
willbecopiedfromthefirstelementofvar,thesecondrecordfromthesecondelementofvaretcetera.
Tobeabletouse*SQLGET,theNIPOFieldworkSystemmustbeconfiguredtouseadatabase.
Arguments
count
AnumericvariablethatwillcontainthenumberofrecordsretrievedbytheMSSQLstatement.Thiscannot
beanarrayvariable.
var
AvariablethatwillreceivetheresultoftheSQLstatement.Thismaybeanarrayvariable,butshouldbe
specifiedwithouttheindex.
"SQL statement"
AnSQLstatement.OnlySELECTstatementsintheformat"SELECT ... FROM ... WHERE ..."
areallowed.

Page265

CommandIndex

Remark
NIPOODINwillnotsyntaxchecktheSQLstatement.AsfarasNIPOODINisconcerneditisjustatext
stringwhichmeansthatyoucansubstitutevariableswiththe*?command.Ifthereisanerrorwhile
executingtheSQLstatementthisisreportedtothefieldworkmanager.Theinterviewcontinueswith
countsettozero.
VariablenamesintheNIPOODINquestionnairedonotneedtobeequaltothefieldnamesinthe
databasetable.
ItisadvisedtomatchthenumberofresultvariablestothenumberoffieldsreturnedbytheSQL
statement.TheorderinwhichfieldsarelistedintheSELECTstatementisthesameorderforstorage
usedbythedefinedvariables.
IfnorecordisfoundmatchingtheWHEREstatementoroneormoredatabasefieldsintheSQL
statementaremissing,thecountvariablewillbezero.
IfmorethanonerecordisfoundmatchingtheWHEREstatementandthevarisdefinedasanarray,the
arrayindexesofthevariablesareusedtostoresubsequentrecords.Thenumberofmatchingrecords
willbestoredinthecount.
Ifmorethanonematchingrecordisfound,butvarwasnotdefinedasanarrayvariable,thesystem
retrievesallmatchingrecordsbutcanstoreonlythelastfoundinformation.Thevariablecount
containsthenumberofrecordsfound.Notethattheorderinwhichrecordsarefoundisnotalwaysthe
(ascending)recordnumbers.
Ifmorethanonematchingrecordisfound,butthearrayvariablewasdefinedwithinsufficientindexes,
thesystemonlyretrievespartoftherecords.
AftertheWHEREstatementanyvalidSQLsyntaxexpressionisallowed.Usebracketstosetpriority
rules.
SQLstatementsmayonlyrefertotableswithintheasingledatabase.Whenreferringtootherdatabases
onthesameserver,theSQLstatementreturnszerorecords.
SQLstatementsmayrefertoonlyonetableatthetime,sojoinedqueriesarenotallowed.When
referringtoseveraltablesinasingle*SQLGETstatement,thestatementreturnszerorecords.If
informationfrommorethanonetableisrequired,considerusingmorethanone*SQLGETstatement.
FieldnameswithinthetablemaynotcontainspacesorothercharactersthatarenotintherangesAZ,
azand09.
TheWHEREstatementdoesacasesensitivesearchbydefault.Thismayonlybedisabledinthedatabase
configuration.
Note:
Requiresareferencetothedatabasename(DSNnameontheNIPOCATI/WebMaster)inthe
surveyconfigurationfile.Thisreferenceisbydefaultincludedwhenasampletableiscreated.
WhenretrievingfieldsfromSampletables,keepinmindthatSampletablesareprefixedwith
Sample(forexample,theSampletableofsurveyA1234iscalledSampleA1234).
Ifyouneedtoretrieveinformationfromthesamplerecordcurrentlyinuse,itisrecommendedto
use*SAMPLEDATAtodirectlyaccessfields.
Example1
InthedatabasetableNamestheIDisstoredinthefieldUserIDandthenameisstoredinthefield
Name.
SurveyconfigurationfileA1234.INI:
[Config]
RespondentDatabase=NIPOFieldworkSystem

Page266

CommandIndex

Questionnaire
*VARS CNT,NAME,USERID
*QUESTION 1 *NUMBER L8 *SAVE USERID
What is your ID number?
*SQLGET CNT NAME "SELECT Name FROM Names WHERE ID='*?USERID'"
*PAGE
According to our database your name is *?NAME.

Example2
RetrievefieldsBrandandTypefromdatabasetableProductswith*SQLGET.Thescriptassumeseach
brandcanhaveupto5types,andapreviouslydefinedlistofcomputerbrands(notincludedinthisscript).
*TEXTVARS CNT,BRAND,TYPE[5]
*VARS PRICE[5]
*QUESTION 1 *ALPHA L50 *SAVE BRAND *LIST "Computer brands"
What is the brand of your computer?
*FORMAT 3.2
*SQLGET CNT TYPE,PRICE "SELECT Type,Price FROM ProductTable WHERE Brand='*?BRAND'"
*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 *?BRAND computer:
Type:
1:
2:
3:
4:
5:

*?TYPE[1]
*?TYPE[2]
*?TYPE[3]
*?TYPE[4]
*?TYPE[5]

Price
*?PRICE[1]
*?PRICE[2]
*?PRICE[3]
*?PRICE[4]
*?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] ]

SeeAlso
*MOVA............................................................184
*MOVU ...........................................................185
*NEXTRECORD ................................................195
*SAMPLEDATA ................................................244
*SQLADD.........................................................261
*SQLPUT .........................................................268

Page267

CommandIndex

*SQLPUT
System
NIPOCATI/NIPOCAWIonly.
Purpose
Storesoneormorevaluesortextsinadatabasetablerecord.
Syntax
*SQLPUT count var[,var...] "SQL statement"
Description
Storesvariableinanexistingdatabasetablerecord.Ifmorethan1variableisusedfirstvariablewillbe
storedinthefirstfield,thesecondinthesecondfieldetcetera.
Arguments
count
AnumericvariablethatwillcontainthenumberofrecordsupdatedbytheSQLstatement.Thisshouldnot
beanarrayvariable.
var
Oneormorevariablescontainingthedatatobestoredinthetablerecord(s).Variablesmaybearraysif
theSQLstatementretrievesmorethanonerecord,theindexedvaluesofthesearraysareusedtofillthe
records.
"SQL statement"
AnSQLstatement.OnlySELECTstatementsintheformat"SELECT ... FROM ... WHERE ..."
areallowed.ItisnotpossibletouseanUPDATEquery.
Note:
Requiresareferencetothedatabasename(DSNnameontheNIPOCATI/WebMaster)inthe
surveyconfigurationfile.Thisreferenceisbydefaultincludedwhenasampletableiscreated.
DonotattempttoupdaterecordswithintheSampletableofarunningsurvey,includingthe
questionnaire'sownSampletable.Recordsofsuchtablesmaybelocked,causingtheupdatetofail.
Ifyouneedtoupdateinformationinthesamplerecordcurrentlyinuse,itisrecommendedtouse
*SAMPLEDATAtodirectlyaccessfields.

Page268

CommandIndex

Remark
Thiscommanddoesnotcreatenewrecordsitonlyupdatesexistingrecords.
NIPOODINwillnotsyntaxchecktheSQLstatement.AsfarasNIPOODINisconcerneditisjustatext
stringwhichmeansthatyoucansubstitutevariableswiththe*?command.Ifthereisanerrorwhile
executingtheSQLstatementthisisreportedtothefieldworkmanager.Theinterviewcontinueswith
countsettozero.
VariablenamesintheNIPOODINquestionnairedonotneedtobeequaltothefieldnamesinthe
databasetable.
ItisrequiredtomatchthenumberofinputvariablestothenumberoffieldsreturnedbytheSQL
statement.TheorderinwhichfieldsarelistedintheSELECTstatementisthesameorderforstorage
usedbythedefinedvariables.
IfnorecordisfoundmatchingtheWHEREstatementoroneormoredatabasefieldsintheSQL
statementaremissing,thecountvariablewillbezero.
IfmorethanonerecordisfoundmatchingtheWHEREstatementandthevarisdefinedasanarray,the
arrayindexesofthevariablesareusedtofillsubsequentrecords.Thenumberofmatchingrecordswill
bestoredinthecount.Ifthearraysaretoosmalltofittheselection,onlypartoftheselectionisfilled;
ifthearraysaretoolargetofitthenumberoffoundrecords,onlypartofthearraysarestored.Note
thattheorderinwhichrecordsarefoundisnotalwaysthe(ascending)recordnumbers.
AftertheWHEREstatementanyvalidSQLsyntaxexpressionisallowed.Usebracketstosetpriority
rules.
SQLstatementsmayonlyrefertotableswithintheasingledatabase.Whenreferringtootherdatabases
onthesameserver,theSQLstatementreturnszerorecordsandtheupdatefails.
SQLstatementsmayrefertoonlyonetableatthetime,sojoinedqueriesarenotallowed.When
referringtoseveraltablesinasingle*SQLPUTstatement,thestatementreturnszerorecords.If
informationmustbestoredinmorethanonetable,considerusingmorethanone*SQLPUTstatement.
FieldnameswithinthetablemaynotcontainspacesorothercharactersthatarenotintherangesAZ,
azand09.
TheWHEREstatementdoesacasesensitivesearchbydefault.Thismayonlybedisabledinthedatabase
configuration.
Example
ThedatabasetableNamescontainsaprimarykeythatmatchestheIDusedintheSampletable.The
respondent'snamemustbestoredinthefieldName.ItisassumedthatthetableNamesalreadycontains
thematchingrespondentIDs.
*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) has been updated in our database.

SeeAlso
*MOVA............................................................184
*MOVU ...........................................................185
*SAMPLEDATA ................................................244
*SQLADD.........................................................261
*SQLGET..........................................................265

Page269

CommandIndex

*STOPAUTO
Purpose
Stoptheautomaticarrangingofanswercodesintocolumns.
Syntax
*STOPAUTO
Description
Thiscommandisalwaysusedincombinationwithacodedefinitionandmustbespecifiedafterthiscodeon
thesameline.Iftheanswercodesareautomaticallyarrangedintocolumnsbymeansof*AUTOthenthis
codeandallfollowingcodeswillnotbearrangedintocolumnsbutwillbedisplayedunderneath.
Note:
*NOCONhasamatchingresult.

Page270

CommandIndex

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
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

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
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

Page271

CommandIndex

Result:

SeeAlso
*AUTO...............................................................98
*NOCON..........................................................199
*NOHIDE .........................................................201

Page272

CommandIndex

*STOPRANDOM
Purpose
Stopsrandomizationofanswercodes.
Syntax
*STOPRANDOM
Description
Thiscommandisalwaysusedafteracodedefinitionandmustbespecifiedafterthiscodeonthesameline.
Iftheanswercodesaredisplayedinrandomorderbymeansof*RANDOM*ROTor*INVthenthiscode
andallfollowingcodesarenotrandomizedbutdisplayedinregularorder.
Note:
*NOCONhasamatchingresult.
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

Inthisexamplecodes19aredisplayedinrandomorder,whilecodes10and11arealwaysdisplayedatthe
bottomofthecodelist.
SeeAlso
*INV ................................................................163
*NOCON..........................................................199
*NOHIDE .........................................................201
*RANDOM.......................................................226
*ROT ...............................................................241
*STOPAUTO ....................................................270

Page273

CommandIndex

*STRAT
Purpose
Stratificationonoutput.
Syntax
*STRAT <n|[expression]>
Description
Withthiscommandacheckcanbemadetoseeifacertainstratumhasreacheditslimit.Thestratification
criteriaareputintheTfile/Sampletablerecordduringtheinterview,socalledstratificationonoutput.If
thestratumlimitisreached,thequestionnaireiscontinuedwiththequestionwiththequestionnumber
indicatedbytheargument.
Arguments
n|expression
Apositiveintegerthatspecifiesanexistingquestionnumber.
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 anymore questions for you.
Thank you for your co-operation.
*ENDNGB

Inthisexample,theanswerofquestion2istransferredtotheTfile/Sampletablerecordandthe
stratificationcellsarecheckedtoseeifthequotawasreached.Ifso,ajumptoquestion99ismade.Itis
assumedthestratificationfile(Sfile)checksforstratumlimitsusingposition201.
SeeAlso
*ABORT.............................................................92
*CUT ...............................................................116
*END ...............................................................121
*ENDNGB........................................................123
*ENDST ...........................................................124
*NONRESP ......................................................203

Page274

CommandIndex

*SUBROUTINE...*ENDSUB
Purpose
Definesasubroutine.
Syntax
*SUBROUTINE name
<commands>
*ENDSUB
Description
Definesthestartofasubroutine.Thiscommandhastobeatthebeginningofaline.Thiscommandis
alwaysusedincombinationwith*ENDSUB(endsubroutine).Thesubroutinecanbejumpedtoatanytime.
Asubroutineconsistsofasetofcommandsandquestionsthatthesystemconsidersasaspecial
component.Whenasubroutineiscalledinthequestionnairethesystemexecutesthecommandsinthe
subroutine.Itisasifthecommandsinthesubroutineareinsertedwherethesubroutinewascalled.The
answerfieldsinasubroutinewillbeconsideredrelative.
Whenasubroutineiscalledthesystemusesthepositioninthe*FIELDparameterbelongingto*GOSUB
asthestartingpointtodeterminewheretheanswershavetobeput.Asubroutineisconsideredaseparate
componentofthequestionnaire.Itshouldbeplacedsomewhereinthequestionnairebeforethefirstcallto
thesubroutine.
Inasubroutineyoucancallsubroutinesrecursivelywithamaximumdepthlimitedbythecomputer
memoryandthe99999datapositionsavailableforNIPOODIN.
Subroutinescanalsobecalledaftera*NEWcommand,whenplacedinthefirstsubquestionnaires.
Arguments
name
Thenameofthesubroutine.
Remarks
Itisnotallowedtojumpoutofasubroutinebymeansofthe*GOTOcommand.Toendsubroutine
execution,use*RETURNinstead.Atleastone*RETURNmustbedefined.
Example
*TEXTVARS BRAND
*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
*GOSUB
Mobil

*GOSUB
*GOSUB
*GOSUB
OPINION
*GOSUB

OPINION
OPINION
OPINION
OPINION

Page275

CommandIndex

SeeAlso
*FIELD .............................................................127
*GOSUB ..........................................................137
*RETURN.........................................................239

Page276

CommandIndex

*SWILANG
Purpose
Switchestoanother(predefined)language.
Syntax
*SWILANG "[name]"
Description
Withthiscommanditispossibletoswitchtoanotherlanguageduringtheinterview.Thecommandhasthe
sameeffectaschoosingthelanguagefromtheLanguagemenuintheNIPOCATIClientandtheNIPOCAPI
Client.Thenameinthesyntaxhastomatchthenameofthelanguagesection.
Arguments
name
ThisisthenameofthelanguagesectionthatNIPOODINrefersto.Toswitchtothedefaultlanguageyou
canomitaname.
Remark
Thedoublequotesaroundthesectionnamearemandatory.
InNIPOSYS.INIthefollowingsettingapplies:SwilangDisablesLanguageSwitch = n.When
turningthissettingon(n=1),theLanguagemenuisdisabledsothattheinterviewercannotswitch
languages.Default=0(languageswitchenabled).
Thedefaultlanguage,containingtheactualquestionnairelogic,isalwaysconsideredEnglishevenifit
isn't.WhenyoursourcequestionnaireisnotinEnglish,butEnglishisoneofthetranslations,usefor
example*LANGUAGE "UK"and*SWILANG "UK".

Page277

CommandIndex

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
*LANGUAGE "German"
*QUESTION 2
Haben Sie einen Hund?
1: Ja
2: Nein
*LANGUAGE "French"
*QUESTION 2
Avez vous un chien?
1: Oui
2: Non

SeeAlso
*LANGUAGE....................................................166

Page278

CommandIndex

*TAB
Purpose
Setsthetabpositions.
Syntax
*TAB <n>[,n2,...]
Description
Thiscommandcanbeusedtospecifythetabwidth.Thetabwidthisdeterminedbypercentagesofthe
Window'swidthinNIPOCATI.InNIPOCAWIandNIPOCAPI,Thetabpositionsareconvertedtocolumnsin
thebrowserwindow.
IntheNIPOCAPIClientonly,the*TABcommandcanbeusedtolayoutcodelistsusing*AUTOtoformatthe
numberofcolumns.
Arguments
n
Thisisapositiveintegerthatindicatesthetabwidth.
Example1
*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

Notethattabsareusedbehindallcodelabels.
Result:

Page279

CommandIndex

Example2
*TAB 40,50,60,70,80,90
*QUESTION 1 *FORM
How do you rate ....
very poor
know/ no answer

poor

1:Statement 1 *SCALE L1 6
2:Statement 2 *SCALE L1 6
3:Statement 3 *SCALE L1 6
4:Very long statements may
*SCALE L1 6 10

neither poor

nor good

good

very good

don't

10
10
10
be placed in one line, because the TAB will force a linewrap

Notethattabsareusedbetweenheadingtextsandbehindallcodelabels.
Result

Note:
Thevalue10in*SCALEisignored:thesystemcalculatesthescaledistanceusingthe*TAB
command.Notethatthedistancebetweenthescalesisalwaysequal.*TABdefinitionsabove100
areignored.
InNIPOCAPI,usingstylesheetsitisalsopossibletocenterthescaleboxesunderthetext.

SeeAlso
*AUTO .............................................................. 98
*FORM ........................................................... 132

Page280

CommandIndex

*TABLE
Purpose
EnablesexportinformationforhierarchicaldatafortheNIPODSCforSPSSDimensionsinterface.
Syntax
*TABLE ["iteration name"]
Description
ThiscommandappliestotheNIPODiana/NvisionScriptexportonly,butisignoredineitherpackage.It
addsacommentline(COM)tothevariabledefinitionwhichtellstheNIPODSCforSPSSDimensions
interfacethatthe*FORMquestionor*REPEATblockmustbeusedforahierarchicaldatarepresentation.
Thiscommandcanbeusedintwoways:
1. Ona*FORMquestiondefinition.Nolabelneedstobespecified.Hierarchicaldataofthefieldsofa
*FORMquestioncanonlybecreatedifallfieldsinthe*FORMquestionareofthesametypeandsize
(forexample,all*NUMBERsofsize2,all*SCALEsofsize1,asingle*GRIDetcetera).
2. Withina*REPEATblock.The*TABLEcommandisspecifiedinadvanceofthefirstquestioninthe
repeatlookanddefinesanameforthecurrentiteration.
Arguments
"iteration name"
Forusein*REPEATblocksonly,definesalabelforthecurrentiteration.
Example1:*FORMquestion
*QUESTION 4 *FORM *TABLE *VCONTROL Q1 W *LABEL "Scale"
Vertical control
Column 1
Column 2
Column 3
1:*GRID 73L24 6.4 4.8 *MULTI

Column 4

ThiscreatesacommentlinethattellstheNIPODSCforSPSSDimensionstolayoutthegridinahierarchical
datastructure.
Example2:*REPEATblock
*REPEAT
*REPNUM
*REPNUM
*REPNUM
*REPNUM

4
1
2
3
4

*FIELD
: *PUT
: *PUT
: *PUT
: *PUT

101L24
TXT "Iteration
TXT "Iteration
TXT "Iteration
TXT "Iteration

A"
B"
C"
D"

*TABLE "X *? TXT"


*QUESTION 5 *CODES 1L1
Are you:
1: Male
2: Female
*QUESTION 7 *FORM *TABLE *LABEL "Age"
1:Your age:
*NUMBER 3L2
s:Your partner' age:
*NUMBER 5L2
*ENDREP

ThiscreatesacommentlinethattellstheNIPODSCforSPSSDimensionstolayouttherepeatblockina
hierarchicaldatastructure.

Page281

CommandIndex

SeeAlso
*LABEL ............................................................165
*VAR ...............................................................285

Page282

CommandIndex

*TEXTVARS
Purpose
Definesoneormoretextvariablesorarrays.
Syntax
*TEXTVARS <name>[,name2,...]
or
*TEXTVARS <name[size]>[,name2[size2],...]
Description
Definestextvariablesoronedimensionaltextarrays.Thiscommandhastobeatthebeginningoftheline.
Thesetextvariablesorarrayscanbeusedthroughouttheentirequestionnairetostoredataorretrieve
data.Intextvariablesorarraysallalphanumericaldatacanbestored.Atextvariableorarrayinitiallyis
empty.
Note:
FortechnicalreasonsitisnotpossibletousevariableswhichnamestartwithanL.
Systemvariablesdonotneedtobedefined.
Arguments
name
Thenameofthevariableorarray.Multiplevariablesorarrayscanbecreatedwithasingle*TEXTVARS
commandbyincludingadditionalvariableorarraynamesseparatedbycommas(Name2,Name3,andso
on).
size
Specifiesthesizeofthearraytobecreated.Onlyonedimensionalarraysaresupported.Thevariablewill
containthespecifiedamountofrows:youhavecreatedsizevariableswiththesamename.
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]

SeeAlso
*? ......................................................................89
*PUT................................................................222
*SAMPLEDATA ................................................244
*SAVE(codesoption)......................................246
*SAVE(questionoption) .................................245
*VARS..............................................................287

Page283

CommandIndex

*USELIST
Purpose
Useanswercodesfromalist.
Syntax
*USELIST <n|[expression]|"name">
Description
Thiscommandisalwaysusedincombinationwithaclosedquestionandusesalistasasubstitutefor(apart
of)acodelist.Thisissimilartothe*LISTcommandexceptthat*USELISThastobeusedas(partof)a
codelistwhile*LISThastobeusedasaquestionoption.Morethanone*USELISTmaybeusedina
singlequestion.
Arguments
n|expression
Thisisapositiveintegerorexpressionthatindicatesanexistinglist.
name
Thisisthenameofanexistinglist.
Remark
Thiscommandcanonlybeusedinthecontextofclosedcodedquestions.
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

Inthisexample,thefirstfivecodescomefromapredefinedcodelist.
SeeAlso
*LIST(definition).............................................173
*LIST(questionoption)...................................175

Page284

CommandIndex

*VAR
Purpose
DefinesavariablenameforexporttoNIPODIANA/NvisionScriptvariables,IBMSPSS,etcetera.
Syntax
*VAR <name>
Description
Thiscommandisalwaysusedincombinationwith*QUESTIONandaquestiontypedefinitionandmustbe
specifiedafterthesecommandsonthesameline.NormallyvariablenamesintheNIPODiana/Nvision
ScriptvariablefilearebasedonthequestionnumbersinyourNIPOODINquestionnaire.The*VAR
commandgivesthepossibilitytocreateyourownvariablenamesduringtheexporttoNIPODiana/Nvision
Script,IBMSPSS,etcetera.
Arguments
name
Anameofmaximum12characters.Thevariableshouldnotcontainspacesandshouldnotstartwitha
number.
Remark
Thevariablenamedefinestheexportvariablenameofthequestionintheexport.Thisisnotthesameas
thevariablescreatedwithinyourNIPOODINquestionnairewiththe*VARSand*TEXTVARScommands.
ThevariablenamesdonothavetobeuniqueintheNIPOODINquestionnaire,butobviouslyyouranalysis
toolwillnotbeabletodifferentiatevariableswiththesamename.TheNIPOODINDevelopersyntaxcheck
producesaWarning: Duplicate variable namemessageifavariablenameisnotunique.This
warninghasnoimpactonrunningthequestionnaire,andnamesmaybechangedwithoutconsequencesat
alatertime.
Variablenameswithina*REPEATblockaresuffixedwitharepeatnumber.Variablenameswithina
*GOSUBaresuffixedwithanumberindicatingthenumberofcallstheroutinewascalleduntilthen.Insome
exports,multiplecodedvariablesareexportedasmultipledichotomyvariables,wherethevariablenameis
suffixedwithacodelabelindexnumber.
Example
*QUESTION 1 *CODES L1 *VAR Gender
Int. type the respondents gender
1:Male
2:Female
*QUESTION 2 *NUMBER L2 *VAR Age
Could you please tell me your age?

ExporttoNIPODiana/NvisionScriptcreatesthefollowingvariables:
*Gender *SNG 61L1: Int. type the respondents gender
1:Male
2:Female
*Age 62L2: Could you please tell me your age?

ExporttoIBMSPSScreatesthefollowingvariables:
VARIABLE LABELS
Gender 'Int. type the respondents gender'
Age 'Could you please tell me your age?'

Page285

CommandIndex

SeeAlso
*LABEL ............................................................165
*TABLE ............................................................281

Page286

CommandIndex

*VARS
Purpose
Definesoneormorenumericvariablesorarrays.
Syntax
*VARS <name>[,name2,...]
or
*VARS <name[size]>[,name2[size2],...]
Description
Definesnumericvariablesoronedimensionalnumberarrays.Thiscommandmustbespeciifedatthe
beginningofaline.Numericvariablesorarrayscanbeusedthroughouttheentirequestionnairetostore
dataorretrievedata.Innumericvariablesorarraysallalphanumericaldatacanbestored.Anumeric
variableorarrayinitiallyisempty.
Arguments
name
Thenameofthevariableorarray.Multiplevariablesorarrayscanbecreatedwithasingle*VARS
commandbyincludingadditionalvariableorarraynamesseparatedbycommas(name2,name3,andso
on).
size
Specifiesthesizeofthearraytobecreated.Thevariablecanstoreuptosizevalues.
Remarks
NIPOODINhas10systemvariables,0uptoandincluding9,whichdonotneedtobedefined.Contrary
toallothervariablesinNIPOODIN,variable9willnotbeclearedatthestartofanewinterview.
Onlyonedimensionalarraysaresupported.
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.

SeeAlso
*? ......................................................................89
*PUT................................................................222
*SAMPLEDATA ................................................244
*SAVE(questionoption) .................................245
*TEXTVARS......................................................283

Page287

CommandIndex

*VCONTROL
Purpose
Makesthedisplayofcolumnsandtextsinagridquestiondependentonanswerstoapreviousquestion.
Syntax
*VCONTROL <Qn> <W|N>
Description
Thiscommandisalwaysusedincombinationwitha*FORM*GRIDquestionandhastobeonthesameline
asthequestiondefinition.Thiscommandcontrolsthedisplayofanswercolumnsandtextsina*GRID
questiondependentonanswerstoapreviousquestion.Thispreviousquestionisreferredtobymeansof
Qn.
Arguments
Qn
Thereferencetothecontrolquestionwherenisthenumberofthequestion.
W
Onlyanswercodesthatwerementionedinthecontrolquestionarebeingdisplayed.
N
Onlyanswercodesthatwerenotmentionedinthecontrolquestionarebeingdisplayed.
Remarks
Makesurethatthecontrolquestionandthecurrentquestionhavematchingsetsofanswercodes.
Codesthataresuppressedasaresultofthiscommand,cannotbepartoftheanswer.Whenallcodes
aresuppressedthequestionisskipped.
Thecolumnheadertextsabovethegridcolumnshavetobepositionedbyusingtabs.
INNIPOCATIandNIPOCAPI,thecontrolledcolumnsareremovedfromthescreenandtherestofthe
columnswillshifttothelefttofillthegaps.
InNIPOCAWI,thecontrolledcolumnsarenotremovedbutdisabled(checkboxesaredisplayedingray
andcannotbeselected).

Example1
*QUESTION 1 *CODES 68L5 *MULTI
Which of the following Dutch beer brands did you ever taste?
1:
2:
3:
4:
5:

Heineken Beer
Amstel Beer
Grolsch Beer
Bavaria Beer
Leeuw Beer

*TAB 20, 30, 40, 50, 60, 70


*QUESTION 2 *FORM *VCONTROL Q1 W
How would you rate the taste of these beer brands?
*FONT 1 Heineken Beer
Very poor
Poor
Average
Good
Very good

Amstel Beer

Grolsch Beer

Bavaria Beer

Leeuw Beer

*FONT 0

1:*GRID 71L5 5.2 5.10

Notethattherearetabsbetweencolumntextsaswellasinfrontofthe*GRIDcode.Alllineswithtextand
inatabspacecombination.

Page288

CommandIndex

ResultintheNIPOCATIClientwhenselectingHeineken,GrolschandBavariainQ1:

ResultintheNIPOCAWIwhenselectingHeineken,GrolschandBavariainQ1:

Page289

CommandIndex

Example2
*QUESTION 1 *CODES 61L5 *MULTI
Beer brands
1:
2:
3:
4:
5:

Heineken Beer}
Amstel Beer
Grolsch Beer
Bavaria Beer
Leeuw Beer

*TAB 30, 40, 50, 60, 70, 80, 90, 100


*QUESTION 4 *FORM *VCONTROL Q1 W
Statements (multiple grid)
Heineken Beer
1:Value for money

Amstel Beer

Grolsch Beer

Bavaria Beer

Leeuw Beer

*GRID 66L20 4.2 5.5 *MULTI

Good product
Must have this product
None of these statements apply for this product

ResultinNIPOWebClientwhenselectingHeineken,Amstel,andLeeuwinquestion1:

SeeAlso
*CONTROL ......................................................112
*GRID(in*FORMquestion)............................141

Page290

CommandIndex

*WAITCR
System
NIPOCAPIClientonly.
Purpose
Onquestionsusing*NON,setstheminimumwaitingtimebeforeanonresponsemaybegiven.
Syntax
*WAITCR <n|[expression]>
Description
Onquestionsusing*NON,setstheminimumwaitingtimebeforeanonresponsemaybegiven.Beforethe
waitingtimeelapses,theinterviewer/respondentcannotpresstheENTERkeytoproceed.However,the
interviewmaybecontinuedwithoutwaitingwhenanyotheranswerisgiven.
Arguments
n|expression
Thisisapositiveintegerthatspecifiesthenumberofunitsof1/18second.
Remarks
Defaultvalueis0(nowaittime).
Example
*WAITCR 54
*Q 10 *OPEN L99 *MULTI *NON
Do you have any remarks with regard to the service offered?

Inthisexample,ittakes3secondsbeforetheinterviewcanbecontinuedwithoutgivinganyanswer.
SeeAlso
*BUT................................................................106
*NON ..............................................................202

Page291

CommandIndex

*WAITPLAY
Purpose
Waitsformultimediafilestofinish.
Syntax
*WAITPLAY
Description
Duringplaybackofamultimediafiletheinterviewdoesnotstop;playbackoccurssimultaneously.Withthis
commandhowever,itispossibletoforceawaitingtimeuntiltheplaybackhasfinished.
Remarks
Allmultimediafilesrecognizedbythemultimediainterfacecanbeplayed.Toplaysoundfragments,a
soundcardisrequired.
Ifanimagefile(suchasJPGorGIF)isusedin*PLAY,*WAITPLAYpausesforapproximately25seconds.
Example
*PLAY "letitbe.wav"
*WAITPLAY
*QUESTION 1 *CODES 102
Do you recognize this song?
1: yes
2: no

SeeAlso
*DELAY............................................................118
*PLAY ..............................................................219

Page292

CommandIndex

*WRITE
Purpose
Writesdatatoafile.
Syntax
*WRITE <Qn|var> ["filename"]
Description
Withthiscommanddatacanbestoredintoafilefromadatafieldorvariableindicatedbythefirst
argument.Ifthefilenameisomitteddataisstoredinthelastfileusedtostoredata.Thefileconsistsofa
singlerecord.Thecontentsoftherecordconsistofoneormorevalueswhichareeithernumbersortext.
NIPOODINtakescareofproperlystoringvaluesonebyoneinconsecutivecallsto*WRITE.Itisnot
requiredtobeawareofthefileformatcreatedbyNIPOODINunlessthedataisaccessedorchangedbyan
externalapplication.
Fileformatfor*READand*WRITEforeachvalue
HeaderIdentifier

Size

Value

.Singleposition
containinga'D'

Decimalvalueof
4digits
indicatingthe
sizeofthevalue.

Anystringof
charactersofwhich
thesizeisdetermined
intheheader.

Forexample,whenthevalues123456andthetext"NIPOODINScript"arestoredinasinglefile,itwould
containthestring"D0006123456D0016NIPO ODIN Script".
Arguments
Qn
Thequestionreferenceofthedatafieldthathastobestored.
var
Avariablethatholdsthedatathathastobestored.
filename
Thefilenameofthefiletostoretheinformationin.
Remarks
Duringaninterviewyoucannotgobackovera*WRITE withfilename,youcanonlygobackovera
*WRITEwithoutfilename.
Youcannotuse*WRITEindifferentlyincombinationwith*READ:atanytimeonlyonefileisassumed
open.Any*READor*WRITEthatspecifiesafilenameautomaticallyclosesthepreviousfile.
Filesareautomaticallyclosedforwritingwhentheinterviewisterminated.
Example
*TEXTVARS txt[2]
*PUT txt[1] "my text"
*PUT txt[2] "my second text"
*WRITE txt[1] "myfile"
*WRITE txt[2]

SeeAlso
*READ .............................................................230

Page293

AdvancedScripting
AdvancedUseof*NEXTRECORDCommand
TheNIPOCATI/WebMasternowsupportsinterviewingmultiplerespondentsonthesametelephonic
contact.Thiswayyoucanforinstanceinterviewallfamilymemberswithinthesamehouseholdorinterview
severalemployeeswithinthesamecompany,withasinglephonecall.
Foreachextrarespondent(forexample,familymember)aseparatenewrecordiscreatedintheSample
table.Whensomefamilymembersarenotavailableatthatmoment,youcanmakeappointmentsonthese
records.
IntheNIPOODINScriptLanguagethecommand*NEXTRECORDisavailableforthispurpose.Withthis
commandyoucanaddrecordsand/orupdaterecordsinyourSampletableandsubsequentlyinterview
multiplerespondentsonthesametelephonecontact.

ScenariosUsing*NEXTRECORD
Tousethe*NEXTRECORDcommand,threescenariosarepresentedhere.Eachscenariodescribeshowto
dealwiththeuseoforcreationofinterviewnumberswithinthesample.
Scenario1:UsingSystemdefinedInterviewNumbers
Thisscenarioappliesthefollowingdirectives:

Westartthesurveywithhouseholdrecords(eachhouseholdaseparaterecord).
Forthefirstrespondentinthehouseholdweaskthefamilysizeandthenamesofallfamilymembers.
Foreachextrarespondentinthefamilyanewfamilymemberrecordiscreated.
Thesystemdefinestheinterviewnumberstobeusedforthesenewrecords.
Whenthesecond,third,etceterafamilymemberareinterviewed,thescreenerquestionsaboutfamily
sizeareskipped.
Foreachextrafamilymemberanewrecordiscreatedinthedatafile.

ExtraSampletablefieldsforscenario1
InterviewNumber

DisplayField1

DisplayField2

AskHousehold

FamilySize

Int

Varchar(45)

Varchar(35)

Int

Int

00000001

Newhouseholdrecord

Family#1

00000002

Newhouseholdrecord

Family#2

00000003

Newhouseholdrecord

Family#3

Page295

AdvancedScripting

ExampleNIPOODINquestionnairefor*NEXTRECORD:scenario1
*SAMPLEDATA TTDisplayField1, TTDisplayField2
*SAMPLEDATA AskHousehold, FamilySize, TTInterviewNumber
*TEXTVARS Name[9],NewNumber
*TAB 30
*************************************************
**** Ask household situation only first time ****
*************************************************
*IF [AskHousehold <> 1] *GOTO 3
*QUESTION 1 *NUMBER 61L1 *SAVE FamilySize
How many family members are in this household?
*QUESTION 1001 *CODES 62L9 *MULTI *DUMMY
*REPEAT 9
*IF [?R <= Q1] *INCLUDE Q1001 [?R]
*ENDREP
*QUESTION 2 *FORM *CONTROL Q1001 W
What are the names of your family members?
1:
2:
3:
4:
5:
6:
7:
8:
9:

1st
2nd
3rd
4th
5th
6th
7th
8th
9th

person
person
person
person
person
person
person
person
person

*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA

71L35
106L35
141L35
176L35
211L35
246L35
281L35
316L35
351L35

*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE

Name[1]
Name[2]
Name[3]
Name[4]
Name[5]
Name[6]
Name[7]
Name[8]
Name[9]

*PUT TTDisplayField1 '*?Name[1]'


*PUT AskHousehold [0]
*REPEAT 9 *CONTROL Q1001 W
*** make sure that the NewNumber variable is reset
*** before each call to *NEXTRECORD!
*PUT NewNumber [0]
*IF [?R > 1] *NEXTRECORD NewNumber "TTDisplayField1=*?Name[?R], \
FamilySize=*?FamilySize, AskHousehold=*?AskHousehold"
*ENDREP
******************************************************
*** Questions for all family members *****************
******************************************************
*QUESTION 3 *CODES 386L1
Does *?TTDisplayField1 have his/her own mobile telephone?
1: Yes
2: No
*QUESTION 4 *OPEN 387L1 *IF [Q3,1]
Who is the provider of that mobile telephone?
*QUESTION 9999
These were all questions for *?TTDisplayField1.
If any persons left in the household, the interview is restarted for the next.
*END

ThefieldAskHouseHoldisusedtoskipthescreeningquestionsiffurtherhouseholdmembersare
interviewed.

Page296

AdvancedScripting

IfthevalueofNewNumberissetto0,the*NEXTRECORDcommandcreatesarecordandautomatically
assignsanunusedInterviewerNumbervalue.Foranyvalueintherange199999999, itattemptsto
createarecordwiththatInterviewNumbervalue.MakesurethattheNewNumbervariableis
initializedinthe*REPEATloopeverytime.Ifyouforgettoinitializeitwithzero,itwouldattempttoeither
createorupdateconsecutiverecordswiththegivenvalue,whichresultsinaruntimeerrormessage
"Error in *NEXTRECORD: Sample record [n] is not valid for interviewing".A
failedattempttocreateorupdatearecordreturnsthevalue1forNewNumber.
NotethattheInterviewNumbervaluescreatedbythesystemarenotlinkedtotheoriginalfamily
memberrecords.Ifyourequirealinkbetweenthesevalues,itishighlyrecommendedtosaveafamily
memberIDwiththesamplerecords.
Scenario2:InterviewNumbersBasedonHouseholdInterviewNumber
Thisscenarioappliesthefollowingdirectives:

Westartthesurveywithhouseholdrecords(eachhouseholdaseparaterecord).
Inthequestionnairethefamilysizeandthenamesofallfamilymembersareasked.
Thefirstrespondentsupplieshispersonaldatainthehouseholdrecord.
Foreachextrarespondentanewfamilymemberrecordiscreated.
Theinterviewnumbersarebasedonthehouseholdnumber.Inourexample,thelast4digitsofall
householdnumbersare0000a1isaddedforeachfamilymember).
Wheninterviewingthesecond,third,etceterafamilymember,thescreeningquestionsaboutfamily
compositionareskipped.
Foreachextrafamilymemberanewrecordiscreatedinthedatafile.
ExampleSampletableforscenario2

InterviewNumber

DisplayField1

DisplayField2

AskHousehold

FamilySize

Int

Varchar(45)

Varchar(35)

Int

Int

10010000

Newhouseholdrecord

Family#1

10020000

Newhouseholdrecord

Family#2

10030000

Newhouseholdrecord

Family#3

Page297

AdvancedScripting

ExampleNIPOODINquestionnairefor*NEXTRECORD:scenario2
*SAMPLEDATA TTDisplayField1, TTDisplayField2
*SAMPLEDATA AskHousehold, FamilySize, TTInterviewNumber
*TEXTVARS Name[9],NewNumber, TempNumber
*TAB 30
*IF [AskHousehold <> 1] *GOTO 3
*QUESTION 1 *NUMBER 61L1 *SAVE FamilySize
How many family members are there in this household?
*QUESTION 1001 *CODES 62L9 *MULTI *DUMMY
*REPEAT 9
*IF [?R <= Q1] *INCLUDE Q1001 [?R]
*ENDREP
*QUESTION 2 *FORM *CONTROL Q1001 W
What are the names of your family members?
1:
2:
3:
4:
5:
6:
7:
8:
9:

1st
2nd
3rd
4th
5th
6th
7th
8th
9th

person
person
person
person
person
person
person
person
person

*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA

71L35
106L35
141L35
176L35
211L35
246L35
281L35
316L35
351L35

*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE

Name[1]
Name[2]
Name[3]
Name[4]
Name[5]
Name[6]
Name[7]
Name[8]
Name[9]

*PUT TTDisplayField1 '*?Name[1]'


*PUT AskHousehold [0]
*PUT NewNumber [TTInterviewNumber]
*REPEAT 9 *CONTROL Q1001 W
*IF [?R > 1] *PUT NewNumber [ NewNumber + 1 ] \
*PUT TempNumber [ NewNumber ] \
*NEXTRECORD TempNumber "TTDisplayField1=*?Name[?R], \
FamilySize=*?FamilySize, AskHousehold=*?AskHousehold"
*ENDREP
*QUESTION 3 *CODES 386L1
Does *?TTDisplayField1 have his/her own mobile telephone?
1: Yes
2: No
*QUESTION 4 *OPEN 387L1 *IF [Q3,1]
Who is the provider of that mobile telephone?
*QUESTION 9999
That's all questions for *?TTDisplayField1.
The next person in this household will be interviewed now.
*END

ThefieldAskHouseHoldisusedtoskipthescreeningquestionsiffurtherhouseholdmembersare
interviewed.
IfthevalueofNewNumberissetto0,the*NEXTRECORDcommandcreatesarecordandautomatically
assignsanunusedInterviewerNumbervalue.Foranyvalueintherange199999999, itattemptsto
createarecordwiththatInterviewNumbervalue.MakesurethattheNewNumbervariableis
initializedinthe*REPEATloopeverytime.Ifyouforgettoinitializeitwithzero,itwouldattempttoeither
createorupdateconsecutiverecordswiththegivenvalue,whichresultsinaruntimeerrormessage
"Error in *NEXTRECORD: Sample record [n] is not valid for interviewing".A
failedattempttocreateorupdatearecordreturnsthevalue1forNewNumber.
MakesureuniqueInterviewNumbervaluesarecreatedusingNewNumber,whicharenotyetusedin
theSampletable.Iftherecordnumberalreadyexists,thesystemwillattempttoupdatetheexistingrecord.

Page298

AdvancedScripting

ExampleSampletableafterscenario2
InterviewNumber

DisplayField1

DisplayField2

AskHousehold

FamilySize

Int

Varchar(45)

Varchar(35)

Int

Int

10010000

John

Family#1

10020000

Mick

Family#2

10030000

Bruce

Family#3

10010001

Paul

Family#1

10010002

George

Family#1

10010003

Ringo

Family#1

10020001

Keith

Family#2

10020002

Charlie

Family#2

Scenario3:UsingaPresetInactiveInterviewNumberforEachRespondent
Thisscenarioappliesthefollowingdirectives:

Westartthesurveywithaseparaterecordforeachfamilymember.
Wealreadyknowthefamilysizeandthenamesofallfamilymembers.
ThefirstfamilymemberStatusforeachhouseholdissetinitiallyto0(NIPOCATIactive).
TheStatusforthefollowuprecords(otherfamilymembers)areinitiallysetto5(Waiting).
Thefirstrespondentcan'activate'otherfamilymembers.

ExampleSampletableforscenario3
Interview
Number

Household
Number

Family
Member
Number

Status

DisplayField1

DisplayField2

Household

Family
Size

Int

Int

Int

Int

Varchar(45)

Varchar(35)

Int

Int

60010001

6001

John

Family#1

60010002

6001

Paul

Family#1

60010003

6001

George

Family#1

60010004

6001

Ringo

Family#1

60020001

6002

Mick

Family#2

60020002

6002

Keith

Family#2

60020003

6002

Charlie

Family#2

60030001

6003

Bruce

Family#3

InthisscenarioitisimportantthatthefamilymemberrecordsareinitializedinwithStatusvalue5
(Waiting).Ifnot,theyareavailablefordistributiontoanyotherinterviewerandwillnotbeavailablewith
the*NEXTRECORDcommand.
TheFieldworkManagermayinitializesamplerecordstotheWaitingstatus.Inaddition,theStatusvalue
canalsobepresetdirectlyontheSampletabletoimportbeforethesurveyisstarted.Alternatively,records
maybesettoaninactivestatusbyhavingtheminitializedforasNIPOCAWIavailable.

Page299

AdvancedScripting

ExampleNIPOODINquestionnairefor*NEXTRECORD:scenario3
*SAMPLEDATA TTDisplayField1, TTDisplayField2, TTDisplayField3
*SAMPLEDATA AskHousehold, FamilySize, TTInterviewNumber
*SAMPLEDATA HouseholdNumber, Household, FamilyMemberNumber
*VARS NewNumber, TempNumber
*IF [ Household <> 1 ] *GOTO 3
*QUESTION 1001 *CODES 62L9 *MULTI *DUMMY
*REPEAT 9
*IF [?R <= FamilySize ] *INCLUDE Q1001 [?R]
*ENDREP
*** The InterviewNumbers will be based on the 4-digit household number.
*PUT NewNumber [HouseholdNumber * 10000 + 1]
*REPEAT 9 *CONTROL Q1001 W
*IF [?R > 1] *PUT NewNumber [ NewNumber + 1 ] \
*PUT TempNumber [ NewNumber ] \
*NEXTRECORD TempNumber ""
*ENDREP
*QUESTION 3 *CODES 386L1
Does *?TTDisplayField1 have his/her own mobile telephone?
1: Yes
2: No
*QUESTION 4 *OPEN 387L1 *IF [ Q3,1 ]
Who is the provider of that mobile telephone?
*QUESTION 9999
That's all.
The next person in this household, if any left, will be interviewed now.
*END

Makesurethatanexisting,uniquenumberintheNewNumbervariableisgeneratedinthe*REPEATloop
eachtime.Ifyoutrytoupdatearecordforthesecondtime,thesystemhasalreadyclaimedtherecordand
willreporttheruntimeerrormessage"Error in *NEXTRECORD: Sample record -1 is not
valid for interviewing".
Example|ExampleSampletableafterscenario3
Interview
Number

Household
Number

Family
Member
Number

Status

DisplayField1

DisplayField2

Household

Family
Size

Int

Int

Int

Int

Varchar(45)

Varchar(35)

Int

Int

60010001

6001

John

Family#1

60010002

6001

Paul

Family#1

60010003

6001

George

Family#1

60010004

6001

Ringo

Family#1

60020001

6002

Mick

Family#2

60020002

6002

Keith

Family#2

60020003

6002

Charlie

Family#2

60030001

6003

Bruce

Family#3

ReturnCodesfor*NEXTRECORD
Iftheexecutionofthe*NEXTRECORDfails,thevariablewillcontaina(negative)returncodevalue.

Page300

AdvancedScripting

TheFieldworkManagerisalertedwithamessage.Noruntimeerrorisproduced,theinterviewcan
continueasnormal.However,theNIPOODINscriptwritermayusethisreturncodetodisplayawarningto
theinterviewer,ifrequired,orchooseanalternateroutingthroughthescript.
ReturnCodeValuesfor*NEXTRECORD
ReturnCode

Description

Samplerecordisclaimedbythesystem.EithertheNIPOFMSortheNIPOCATI/WebMasterhasclaimedthisrecordfor
use.Ineithercase,itcannotcurrentlybeaccessedforinterviewing.
Therelatederrormessageis"Error in *NEXTRECORD: sample record <interview number> is
not valid for interviewing. Error in survey <survey>".

Samplerecordcontainsadefinitiveresponsecode(refusal,completedsuccessfully,etcetera).
Anexistingrecordmayonlycontainnondefinitiveresponsecodes.Therelatederrormessageis"Error in
*NEXTRECORD: sample record <interview number> is not valid for interviewing.
Error in survey <survey> ".

ThereisnoSampletablepresentforthesurvey.Thisisablockingerrorthesurveywillhaltinanerrorstatus.The
relatederrormessageis"Error in *NEXTRECORD: no sample table present. Error in survey
<survey>".

TheconfiguredInterviewNumbervalueisnotcorrect.Forexampleheinterviewnumberenteredisnegative.It
mustbeanintegerwithvalue0to99999999.Therelatederrormessageis"Error in *NEXTRECORD: sample
record <interview number> is not valid for interviewing. Error in survey
<survey>".

WorkstationcouldnotcontactNIPOCATI/WebMaster.AconnectionwiththeNIPOCATI/WebMasterisrequiredfor
thiscommandtoexecutecorrectly.Theinterviewhaltsattheendofthecontact.

Systemerror.Thesamplerecordcouldnotbecreatedoraccessed.ThisusuallyindicatesanMSSQLDatabaseproblem.
Therelatederrormessageis "Database error in <database>. Error in *NEXTRECORD: sample
record <interview number> is not valid for interviewing. Error in survey
<survey>".

7/unchanged

Commandisnotexecutedinthecorrectchannel:*NEXTRECORDisonlysupportedforNIPOCATI.

Notethatthe*NEXTRECORDcommandhasnoeffectontheSampletableifanyoftheerrorsoccurred.

ErrorWhenReadingNextRecord
Ifthesystemtriestocontinuewiththenextrecordandthatrecordisnolongeravailableoraccessible,the
interviewerispresentedwithanerrormessage.
'Interviewcannotcontinuewithnextperson'message

Thissituationmayoccurif
TheconnectionbetweentheNIPOCATIClientandtheNIPOCATI/WebMasterhasbeenlost;
TheconnectionbetweentheNIPOCATI/WebMasterandtheMSSQLserverhasbeenlost;
TheSamplerecordhasbeenchangedordeletedfromtheSampletablebyanotherapplication.The
NIPOFMScannotdeleterecordsthatarecreatedwith*NEXTRECORDandclaimedbytheNIPOCATI/
WebMaster.

Page301

AdvancedScripting

InterruptingtheTelephonicContact
Ifthetelephoniccontactisinterruptedwhilenotallofthecreatedrecordsinthequeuewerehandled,the
remainingrecordsofthisqueuewillbeavailabletothesystemandmaybedistributedtoother
interviewers.Thiswillforinstancehappenincasetheinterviewerchoosestodoanyofthefollowing
actions:
ClosetheNIPOCATIClientapplication
Switchtoadifferentsurvey
Takeabreak.

RestartingtheInterviewSetsNewRecordstoSystemError
WhencreatingorupdatingSamplerecordswiththe*NEXTRECORDcommand,theserecordsarequeued
tobeloadednextaftercompletionofthecurrentinterviewsothatinterviewingmaycontinuewithout
disconnectingthetelephoneline.
Whentheinterviewerrestartsaninterviewafterthe*NEXTRECORDcommandwasexecuted,therecords
thatwereaddedtotheSampletablebythecurrentrecordwillbesettosystemerror(ResponseCode20,
Status2)andwillberemovedfromthequeue.
Recordsthatwerecreatedorupdatedbyapreviousrecord(beforeusingthecurrentrecord)willremainin
thequeue.Inotherwords,restartingtheactiverecordwillonlyaffecttherecordswhichwerecreated
duringtheinterviewoftheactiverecord.
Forexample,personAinacompanygivesthenameofcolleagueBandcolleagueCinthatsamecompany.B
andCwillbeinterviewedinthesametelephonesession,eachofthemmaygivethenamesofnew
colleagues.PersonBgivesthenameofDandE.IfBrestartstheinterviewafterthenewrecordsforDandE
werecreated,theserespondentsarenotcontacted.ButC(thatwascreatedbyA)isstillcontacted.

Using*NEXTRECORDinCombinationwithStratification
Therecordwhichisspecifiedinthe*NEXTRECORDcommandisnotcheckedforstratificationlimitsduring
thecurrentcontact.Thismeansthataftertheexecutionofthecommand,therecordisclaimedforthe
interviewandwillbehandedouttotheinterviewereveniftherecordfitstoastratificationcellofwhich
thelimitwasalreadyreached.Usethe*STRATcommandinthequestionnaireifthestratificationneedsto
beappliedanyway.
ThecolumnOutofthestratificationoverviewintheNIPOCATI/WebManagershowsthetotalnumberof
claimedrecordsofallinterviewers.Sinceeachinterviewermayclaimmultiplerecords,thisnumbermaybe
higherthanthetotalnumberofinterviewers.

HidedialogInterviewWillContinuewithNextPerson
IntheNIPOSYS.INIoftheNIPOCATIClientyoumayconfigurewhetherthefollowingdialogwillappear
ornotafteraninterviewiscompleted,beforeanewrecordwillbestartedonthesametelephonecontact:
'Interviewwillcontinuewithnextperson'dialog

ConfigurationforNIPOSYS.INI:
[Odqes]
ShowContinueNextSample=1 | 0

Page302

AdvancedScripting

Showorhidethedialog'Interviewwillcontinuewithnextperson'and'Interviewcannotcontinuewithnext
person'.Bydefault,italwaysshowsthedialog.

ChangeTextinDialogInterviewwillcontinuewithnextperson
ChangethetextthatwillbeusedinthedialogintheNIPOSYS.INIoftheNIPOCATIClient.
ChangedialogtextinNIPOSYS.INI:
[OdQesText]
Text_73="Interview will continue with next person"
Text_74="Interview cannot continue with next person"

Advanceduseof*SQLADDCommand
With*SQLADDyoucancreatenewrecordsinadatabasetable.ThismaybethecurrentSampletable,the
Sampleforanothersurveyoranyothertablewithinthesamedatabase.
*SQLADDcanbeseenasanextensionofthecommands*SQLGET,*SQLPUTand*NEXTRECORD:
Thecommand*SQLGETcanretrievedatafromanydatabasetable.
Thecommand*SQLPUTcanupdateexistingrecordsinanydatabasetable.
Thecommand*NEXTRECORDcanwritenewrecordsinthecurrentSampletable,thatcan
automaticallybeusedbytheNIPOCATI/WebMastertointerviewmultiplerespondentsonthesame
telephonecontact.
Thecommand*SQLADDcanwritenewrecordsinanydatabasetable.

Scenariosfor*SQLADD
Tousethe*SQLADDcommand,wepresentfourscenarios.
Scenario1:StoreNewRecordinTable(NottheSampleTable)
Thisscenarioappliesthefollowingdirectives:

Page303

AdvancedScripting

TheNIPOFieldworkSystemdatabasecontainsacustomtableTestSqladd1,createdusingthe
MicrosoftSQLServerManagementStudio.
ThistablehasaprimarykeycalledRecordNumber.
Thistablecontainssomecustomfieldsthataregoingtobeprovidedwithvaluesfromthescript:
Exampletablefor*SQLADD:scenario1
Fieldname

Fieldtype

Constraints

Field1

varchar(50)

Field2

varchar10

Integer1

int

Integer2

smallint

32768to32767

Integer3

tinyint

0to255

Floating

floating

ExampleNIPOODINquestionnairefor*SQLADD:scenario1
*VARS RecordNumber, Integer1, Integer2, Integer3, Floating, Count
*TEXTVARS Field1, Field2
*QUESTION 1 *FORM
Type the contents for your new record
1:
2:
3:
4:
5:
6:
7:

RecordNumber
*NUMBER
Field1 (max 50 pos) *ALPHA
Field2 (max 10 pos) *ALPHA
Integer1 (int)
*NUMBER
Integer2 (smallint) *NUMBER
Integer3 (tinyint) *NUMBER
Floating (use decimals)

61L8
*SAVE
69L50
*SAVE
119L10
*SAVE
129L11
*SAVE
140L6
*SAVE
146L4
*SAVE
*NUMBER 150L10.5

RecordNumber
Field1
Field2
Integer1
Integer2
Integer3
*SAVE Floating

*SQLADD Count \
RecordNumber,Field1,Field2,Integer1,Integer2,Integer3,Floating \
"SELECT \
RecordNumber,Field1,Field2,Integer1,Integer2,Integer3,Floating \
FROM TestSqlAdd1"
*QUESTION 2 *IF [Count >= 1]
Writing a new record was successful
*QUESTION 3 *IF [Count = 0]
Writing a new record was NOT successful
*END

ThiswillcreatenewrecordsinthetableTestSqladd1.ThetableisnotaccessiblethroughNIPOSoftware
applicationsotherthanthrough*SQLGETcalls.Anyattempttocreaterecordnumberthatalreadyexistsin
thetableresultsin*SQLADDtofail.AnerrorisreportedtotheFieldworkManager.Onanyerror,the
questionnaireisresumedatquestion3.
SQLhasnorangelimitonprimarykeys,thereforeitisperfectlypossiblesocreaterecordnumberswith
negativevaluesorvaluesover99999999,whichareoutsideoftheInterviewNumberrange.Thescript
doesnotcheckforvalidinputvalues.
For*SQLADDtowork,aSampletableisnotrequired.However,tobeabletousethe*SQLADDcommand
adatabasereferencemustbemadeinthesurveyconfigurationfilewithsetting
RespondentDatabase=<DSN>signifyingavalidDSNontheNIPOCATI/WebMaster.Thedatabase
usernameandpasswordoftheNIPOFieldworkSystemareusedtoattempttoaccessthisdatabase.
WhenyouuseaSampletableonthesurvey,thenewtablemustbeinthesamedatabaseasyoucannot
specifyanotherDSN.Theownerofthedatabasetableisnotrelevant.Howeverthedatabaseuser(theNIPO
FieldworkSystem)musthavesufficientrightstocreatenewrecordsinthetable.

Page304

AdvancedScripting

Scenario2:StoreNewRecordinCurrentSampleTable
Thisscenarioappliesthefollowingdirectives:
WehaveasurveycalledSqladd2,usingaSampletableSampleSqladd2.
Inthissurveyweaskrespondentsiftheyknowanyoneelsewhomightbewillingtocooperateinthis
survey.
Thesurveyusesthe*SQLADDcommandtoaddanewrecordintheSampletable.
Thenewlycreatedrecordsmaybedistributeddirectlytoanyinterviewer.
ExampleNIPOODINquestionnairefor*SQLADD:scenario2
*VARS NewNumber, Count, MaxNumber
*TEXTVARS Name, Address, City, Country, DisplayFields, TelephoneNumber
*VARS NewStatus, NewResponseCode
*QUESTION 1 *CODES 61L1
Can you give us the name and address of someone else who might be willing to co-operate in
this survey?
1: Yes, knows someone else
2: No, doesn't know anyone who would co-operate.
*QUESTION 2 *FORM
Type name and address for this person
1:
2:
3:
4:
5:

Name *ALPHA 62L45


Address
*ALPHA
City *ALPHA 142L35
Country
*ALPHA
TelephoneNumber

*SAVE Name
107L35 *SAVE Address
*SAVE City
177L35 *SAVE Country
*ALPHA 212L17 *SAVE TelephoneNumber

*** Retrieve the highest interview number so far


*SQLGET Count MaxNumber \
"SELECT InterviewNumber FROM SampleSqlAdd2
WHERE InterviewNumber =
(Select MAX(InterviewNumber) FROM SampleSqladd2)"
*** Add 1 to the highest number and use this as InterviewNumber
*PUT NewNumber [MaxNumber + 1]
*** Initialize the Status and ResponseCode for the new record
*PUT NewStatus [0]
*PUT NewResponseCode [0]
*PUT DisplayFields [4]
*** Now write a new record in the Sample table
*SQLADD Count NewNumber,Name,Address,City,Country,TelephoneNumber,\
DisplayFields,NewStatus,NewResponseCode \
"SELECT InterviewNumber,DisplayField1,DisplayField2,\
DisplayField3,DisplayField4,TelephoneNumber,\
ShowDisplayFields,Status,ResponseCode \
FROM SampleSqlAdd2"
*QUESTION 3 *IF [Count >= 1]
Writing a new record was successful
*QUESTION 4 *IF [Count = 0]
Writing a new record failed
*QUESTION 9999
That's all
*END

Youmayevenmakeappointmentsforyournewrecords.Notethattheformatforthe
AppointmentTimefieldis"YYYYMMDD HHmm",regardlessofthedate/timeformatconfiguredforuse
atthedatabaseserver.

Page305

AdvancedScripting

ExampleNIPOODINquestionnairefor*SQLADD:scenario2b
*PUT NewAppointmentTime "*?Year*?Month*?Day *?Hour*?Minutes"
*PUT NewStatus [ 4 ]
*PUT NewResponseCode [ 6 ]
*SQLADD Count NewNumber,Name,Address,City,Country,DisplayFields,\
TelephoneNumber,NewStatus,NewResponseCode,\
NewAppointmentTime\
"SELECT InterviewNumber,DisplayField1,DisplayField2,\
DisplayField3,DisplayField4,ShowDisplayFields,\
TelephoneNumber,Status,ResponseCode,\
AppointmentTime \
FROM SampleSqlAdd2"

DonotforgettoinitializethefieldsStatusandResponseCodeinthenewsurvey.Recordsareonlybe
distributedtointerviewerswhentheyhaveavalidandnondefinitiveStatusandResponseCode.
MakesurethatyouretrievethehighestInterviewNumbersofarjustbeforeattemptingtocreateanew
record.Ifyouretrievethenumberearlierinthisquestionnaire,anotherrecordmighthavebeenadded
duringanotherinterviewinthemeantime.
DonotusethesystemvariablesTTDisplayField1,TTDisplayField2,TTDisplayField3,
TTDisplayField4andTTTelephoneNumbertostorethenameandaddressforthenew
respondents.ThesewouldbesavedinthecurrentSamplerecordaswell.
SQLhasnorangelimitonprimarykeys,thereforeitisperfectlypossiblesocreaterecordnumberswith
negativevaluesorvaluesover99999999,whichareoutsideoftheInterviewNumberrange.Thesame
appliestotheStatusfield(0or4)andtheResponseCodefield,whichbesetwithanindefinite
responsecode.Thescriptdoesnotcheckforvalidinputvalues.Alternatively,configureconstraintsonthe
Sampletablebutbeadvisedthatthe*SQLADDcommandwillthensimplyfailonanattempttoadda
recordwithoutofboundsvalueswiththemessage"Database error in
<database>(<owner>.<tablename>) : INSERT statement conflicted with COLUMN
CHECK constraint '<field>'. The conflict occurred in database
<database>', table '<tablename>', column '<field>'. The statement has
been terminated.".
Scenario3:StoreNewRecordinAnotherSampleTable
Thisscenarioappliesthefollowingdirectives:

Page306

AdvancedScripting

WehaveasurveycalledSqladd3,usingaSampletablecalledSampleSqladd3.
WehavecreatedasecondSampletablecalledSampleSqladd4.
Inthefirstsurveyweaskiftherespondentiswillingtocooperatewithoursecondsurvey.
Thefirstsurveyusesthe*SQLADDcommandtowritetheaddressinformationfromthefirstsurveyinto
theSampletableforthesecondsurvey.
The*SAMPLEDATAcommandisusedtoretrievealladdressinformationfromtheSamplerecordinthe
firstsurvey,tobereusedforthenewSamplerecordinthesecondsurvey.
Thenewlycreatedrecordsinthesecondsurveymaybedistributeddirectlytoanotherinterviewer
workingonthesecondsurvey.
ExampleNIPOODINquestionnairefor*SQLADD: scenario3

*SAMPLEDATA TTInterviewNumber,TTDisplayField1,TTDisplayField2
*SAMPLEDATA TTDisplayField3,TTDisplayField4,TTShowDisplayFields
*SAMPLEDATA TTTelephoneNumber,TTRespEmail,TTAppointmentName
*VARS NewStatus,NewResponseCode, Count
*PUT NewStatus [ 0 ]
*PUT NewResponseCode [ 0 ]
*QUESTION 1 *CODES 79L1
Do you want to participate in another survey?
1: Yes
2: No *GOTO 9999
*SQLADD Count TTInterviewNumber,TTDisplayField1,TTDisplayField2,\
TTDisplayField3,TTDisplayField4,TTShowDisplayFields,\
TTTelephoneNumber,TTRespEmail,TTAppointmentName,\
NewStatus,NewResponseCode \
"SELECT InterviewNumber,DisplayField1,DisplayField2,\
DisplayField3,DisplayField4,TTShowDisplayFields,\
TelephoneNumber,Email,AppointmentName,\
Status,ResponseCode \
FROM
SampleSqlAdd4"
*QUESTION 2 *IF [Count >= 1]
Writing a new record was successful
*QUESTION 3 *IF [Count = 0]}
Writing a new record failed
*QUESTION 9999
That's all
*END

Youmayevenmakeappointmentsforyournewsurvey.NotethattheformatfortheAppointmentTime
fieldis"YYYYMMDD HHmm",regardlessofthedate/timeformatusedbytheMSSQLserver.
ExampleNIPOODINquestionnairefor*SQLADD:scenario3b
*PUT NewAppointmentTime "*?Year*?Month*?Day *?Hour*?Minutes"
*PUT NewStatus [ 4 ]
*PUT NewResponseCode [ 6 ]
*SQLADD Count TTInterviewNumber,TTDisplayField1,TTDisplayField2,\
TTDisplayField3,TTDisplayField4,TTShowDisplayFields,\
TTTelephoneNumber,TTRespEmail,\
TTAppointmentName,NewAppointmentTime,\
NewStatus,NewResponseCode \
"SELECT InterviewNumber,DisplayField1,DisplayField2,\
DisplayField3,DisplayField4,,ShowDisplayFields,\
TelephoneNumber,Email,\
AppointmentName,AppointmentTime,\
Status,ResponseCode \
FROM SampleSqlAdd4"

DonotforgettoinitializethefieldsStatusandResponseCodeinthenewsurvey.Recordswillonlybe
distributedtointerviewerswhentheyhaveavalidandnondefinitiveStatusandResponseCode.

Page307

AdvancedScripting

InthisexampleweusedtheSamplerecordsofonesurveytocreatenewSamplerecordsinanothersurvey.
Ifwechangedthecontentsofanyofthefields,thiswouldbechangedinboththeoldandthenewsurvey.
ThisiswhyweusedthevariablesNewStatus,NewResponseCodeandNewAppointmentTime
ratherthanTTAvailabilityCode,TTStatusCodeandTTAppointmentTime,becauseyouare
obviouslynotallowedtochangethesefieldsinarunningsurvey.
SQLhasnorangelimitonprimarykeys,thereforeitisperfectlypossiblesocreaterecordnumberswith
negativevaluesorvaluesover99999999,whichareoutsideoftheInterviewNumberrange.Thesame
appliestotheStatusfield(0or4)andtheResponseCodefield,whichbesetwithanindefinite
responsecode.Thescriptdoesnotcheckforvalidinputvalues.Alternatively,configureconstraintsonthe
Sampletablebutbeadvisedthatthe*SQLADDcommandwillthensimplyfailonanattempttoadda
recordwithoutofboundsvalueswiththemessage"Database error in
<database>(<owner>.<tablename>) : INSERT statement conflicted with COLUMN
CHECK constraint '<field>'. The conflict occurred in database
<database>', table '<tablename>', column '<field>'. The statement has
been terminated.".
Scenario4:StoreSeveralRecordsinaTable(VariableswithArrays)
Thisscenarioappliesthefollowingdirectives:

Page308

AdvancedScripting

WehaveasurveycalledSqladd5.
WehavecreatedtablecalledTestPanelmembers.
TheprimarykeyforthistableistheintegerfieldPanelMemberNumber,thathasaconstraintof1to
99999999.
Inthesurveyweaskforthenamesofallfamilymembers.Thesenameswillbesavedinthe
TestPanelmemberstable,eachfamilymemberinanewrecord.
Weusearrayvariablessomaximum9recordswillbesavedinonethe*SQLADDcommand.
ExampleNIPOODINquestionnairefor*SQLADD: scenario4
*VARS FamilyNumber, FamilyMemberNumber[9], FamilySize, Count
*TEXTVARS Name[9]
*QUESTION 1 *FORM
1:FamilyNumber:
*NUMBER 61L6 *MIN 1 *MAX 999999 *SAVE FamilyNumber
2:FamilySize: *NUMBER 67L1 *SAVE FamilySize *MIN 1 *MAX 9
*QUESTION 1001 *CODES 68L9 *MULTI
*REPEAT 9
*IF [?R <= FamilySize] *INCLUDE Q1001 [?R] \
*PUT FamilyMemberNumber[?R] [(FamilyNumber * 100) + ?R]
*ENDREP
*QUESTION 2 *FORM *CONTROL Q1001 W
Names of family members
1:
2:
3:
4:
5:
6:
7:
8:
9:

First person:
Second person:
Third person:
Fourth person:
Fifth person:
Sixth person:
Seventh person:
Eighth person:
Ninth person:

*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA
*ALPHA

77L35
112L35
147L35
182L35
217L35
252L35
287L35
322L35
357L35

*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE
*SAVE

Name[1]
Name[2]
Name[3]
Name[4]
Name[5]
Name[6]
Name[7]
Name[8]
Name[9]

*SQLADD Count FamilyMemberNumber,Name \


"SELECT PanelMemberNumber,Name \
FROM TestPanelmembers"
*QUESTION 3 *IF [Count = FamilySize]
Writing a new records was successful *?Count times
*QUESTION 4 *IF [Count = 0]
Writing new records failed
*QUESTION 5 *IF [Count >= 1 & Count <> FamilySize]
Writing some new records failed. Only *?Count records were created
*QUESTION 6
That's all
*END

Inthisexamplewecanwritemaximum9recordsper*SQLADDcommand,asthearrayshaveanindexof9.
Butobviouslynotallfamilieshave9familymembers.Wesolvedthisbysettingthe
FamilyMemberNumberonlyforexistingfamilymembers.Butthismeansthe*SQLADDcommandmay
reportanerrortotheFieldworkMaangerforeachfamilysmallerthan9.Theseerrorsmaybeignored.
Thesolutionforthesemessages,thatmayconfuseyourfieldworkmanagers,wouldbenottousearray
variablesandtocreatea*REPEATloopandonlyexecutethe*SQLADDcommandasoftenasyouhave
familymembers.

Page309

AdvancedScripting

ExampleNIPOODINquestionnairefor*SQLADD:scenario4b
*VARS FamilyNumber, FamilyMemberNumber, FamilySize, Count
*TEXTVARS Name,Person
*QUESTION 1 *FORM
1:FamilyNumber:
2:FamilySize:

*NUMBER 61L6 *MIN 1 *MAX 999999 *SAVE FamilyNumber


*NUMBER 67L1 *SAVE FamilySize *MIN 1 *MAX 9

*QUESTION 1001 *CODES 68L9 *MULTI *DUMMY


1: First person
2: Second person
3: Third person
4: Fourth person
5: Fifth person
6: Sixth person
7: Seventh person
8: Eighth person
9: Ninth person
*REPEAT 9
*IF [ ?R > FamilySize ] *END
*PUT Person Q1001,?R
*PUT FamilyMemberNumber [(FamilyNumber * 100) + ?R]
*QUESTION 2 *FORM
Name of
1:*?Person:

*ALPHA

77L35 *SAVE Name

*SQLADD Count FamilyMemberNumber,Name \


"SELECT PanelMemberNumber,Name \
FROM TestPanelmembers"
*ENDREP
*QUESTION 6
That's all
*END

Scenario5:AddNewRespondentsinNIPOCAWISurveyAndEmailThemDirectly
Thisscenarioappliesthefollowingdirectives:
WehaveasurveycalledSqladd6.
RespondentareinterviewedinNIPOCAWI.
Inthissurveyweaskrespondents,iftheyknowanyoneelsewhomightbewillingtocooperatewiththis
survey.
WewillcheckiftheEmailaddresswasnotalreadypresentintheSampletable.
Wewillretrievethehighestinterviewnumbersofartocreateanewrecord.
WewillsetthefieldSwitchedintheSurveytableto1.TheNIPOFieldworkSystemthenautomatically
sendsanEmailtothenewrespondent(usingthecoldhandoverfromNIPOCATI)
Amaximum10respondentscanbeaddedinthissurvey.

Page310

AdvancedScripting

ExampleNIPOODINquestionnairefor*SQLADD: scenario5

Page311

AdvancedScripting

*VARS NewNumber, MaxNumber


*VARS Count, Count2, Count3, Count4
*TEXTVARS Name, EmailAddress, CheckName
*VARS NewStatus, NewResponseCode, Switched
*** In DisplayField1 the name of the respondent is stored
*** In DisplayField4 the person who gave us this name is stored
*SAMPLEDATA TTDisplayField1, TTDisplayField4
***** The actual questions for the survey:
*QUESTION 1 *CODES 61L1
Your name was given to us by: *?TTDisplayField4
Do you like co-operating with on-line surveys?
1:
2:
3:
4:

Yes, I like it very much


Yes, I like it
No, I do not like it
No, I dislike it very much

9: Don't know \ no opinion


*REPEAT 10 *FIELD 62L820
*** Reset all counters
*PUT Count [0]
*PUT Count2 [0]
*PUT Count3 [0]
*PUT Count4 [0]
*** Ask for new respondent
*** Jump out of the REPEAT-loop if no other person
*QUESTION 2 *CODES 1L1
Can you give us the name and Email-address for someone else who might be willing to cooperate in this survey?
1: Yes, knows someone else
2: No, doesn't know anyone else who would co-operate *END
*QUESTION 3 *FORM
Type name and address for this person
1: Name *ALPHA 2L45 *SAVE Name
2: Email
*ALPHA 47L35 *SAVE EmailAddress
*** Check if the Email-address does not already exist in the Sample
*SQLGET Count4 CheckName "SELECT DisplayField1 FROM SampleSqladd6 \
WHERE (Email='*?EmailAddress')"
*** If the Email-address already exists,
*** give the respondent the choice what to do next.
*QUESTION 4 *CODES 82L1 *IF [Count4 >= 1]
The Email-address *? EmailAddress, that you just gave us, is already present in our
database.
It belongs to *? CheckName.
1:
2:
3:
4:

Continue, send him/her a second mail


Continue, this person is someone else, using the same Email-address
Go back to change the Email-address *BACK 3
Don't sent a mail to *?Name *GOTO 2

*** Retrieve the highest interview number so far


*** Note that you may not use MAX(InterviewNumber) in the SELECT
*** but you may use it in the WHERE clause.
*SQLGET Count MaxNumber "SELECT InterviewNumber FROM SampleSqlAdd6 \
WHERE InterviewNumber = \
(Select MAX(InterviewNumber) FROM SampleSqladd6)"

Page312

AdvancedScripting

*** Add 1 to the highest number and use this as InterviewNumber


*** for the new record
*PUT NewNumber [MaxNumber + 1]
***
***
***
***
***

Initialize the Status and ResponseCode for the new record to


'Switched to web, not yet sent'.
The ResponseCode '41' should be configured as 'SWITCH'
via the NIPO CATI/Web Manager.
Make sure that you create and configure a switch Email-text in advance.

*PUT NewStatus [7]


*PUT NewResponseCode [41]
*PUT Switched [1]
*** Now write a new record in the Sample table
*** Save the new name in DisplayField1
*** Save the name of the current respondent in DisplayField4
*SQLADD Count2 NewNumber,EmailAddress,Name,\
TTDisplayField1,NewStatus,NewResponseCode \
"SELECT InterviewNumber,Email,DisplayField1,\
DisplayField4,Status,ResponseCode \
FROM SampleSqlAdd6"
*** Do not allow going back after the record has been added,
*** as an Email will be sent immediately
*NOTBACK
*** Now set the field Switched in the Survey table,
*** to let NIPO FMS send the Email
*SQLPUT Count3 Switched "SELECT Switched FROM Survey
WHERE (SurveyName='Sqladd6')"
*** Show if record was added successfully in the Sample table
*QUESTION 5 *IF [Count2 >= 1]
Writing new record *?NewNumber was successful.
*?Name will receive an Email shortly on his/her Email-address: *?EmailAddress
*** Show if record could not be added in the Sample
*QUESTION 6 *IF [Count2 = 0]
Writing a new record failed (*?NewNumber already exists?)
*ENDREP
*QUESTION 9999
That's all
*END

ErrorsUsing*SQLADD
ThefollowingerrorscannotbedetectedbyasyntaxcheckintheNIPOODINDeveloper,andwillresultin
runtimeerrorsduringexecution:

Page313

AdvancedScripting

1. Usingadatabasetablefieldnamethatdoesnotexistreports"[Error] Database field


[Field] not found."
2. Usingatablewithoutaprimarykeymakes*SQLADDreports"[Error] Cannot add record
to [Table], table has no key.
3. Puttingavaluethatistoolargetofitinanint,smallintortinyintatruntimeandtherecord
isnotcreated.Theissuereports"[ERROR] Database error in [Database]: Numeric
value out of range.
The allowed range for fieldtype smallint is -32768 to +32767; the
range for tinyint is 0 to 255; the range for Int depends on the
constraints that are set in SQL."
ThefollowingerrorscannotbedetectedbyasyntaxcheckintheNIPOODINDeveloper,andwillnotresult
inruntimeerrorsduringexecution:
1. Usingmorevariablesthanfieldnamesormorefieldnamesthanvariablesisignored.Theresult
valuesorfieldsareleftempty.
2. Textistruncatedifitdoesnotfitavarcharfield.
3. Storingtextinanintegerfieldwillstorevaluezero(0).
4. Puttingavalueinavarcharstoresthevalueastextratherthananumber.Theformatdependson
the*FORMATcommand.
5. Thetablenamemaybespecifiedwithorwithouttheowner(e.g.,TestSqlAddor
MyName.TestSqlAddordbo.TestSqlAdd).Buteventhewrongowner(e.g.
NonExisting.TestSqlAdd)maybeused,astheownerissetbyNIPOCATI/WebMaster.

ErrorsMessagesUsing*SQLADD
Aftertheexecutionofthe*SQLADD,thevariableCountcontainsthenumberofsuccessfullyadded
records.AnerrormessageisreportedNoruntimeerrorisproducedandtheinterviewcancontinue
normally.HoweverNIPOODINscriptwritercanusethisvariableCounttodisplayawarningifrequired.
Errormessagesfor*SQLADD
Errorcode

Description

Recordnumberwiththesameprimarykeyisalreadyusedindatabasetable.Therelatederrormessageis
"Database error in <Database>(<dbo>.<Tablename>) : Violation of PRIMARY KEY.
Cannot insert duplicate key in object '<Tablename>'. The statement has been
terminated."

RecordnumberdoesnotmeetconstraintsthathavebeensetintheSQLtable.Therelatederrormessageis
"Database error in <Database>(<dbo>.<Tablename>) : INSERT statement
conflicted with COLUMN CHECK constraint '<constraintname>'. The conflict
occurred in database '<database>', table '<Tablename>', column '<Column
name>'. The statement has been terminated."

Databasefieldisnotfoundintable.Therelatederrormessageis"Database field <fieldname> not


found."

DSNisnotfound.Ifusinganotherdatabase,anODBClinkshouldbecreatedontheNIPOCATI/Webmaster.The
relatederrormessageis"Database error in <Database>: Data source name not found
and no default driver specified."

Insufficientrighttoinsertrecords.Therelatederrormessageis"[ERROR] Database error in


<Database>(<owner>.<Tablename>) : INSERT permission denied on object
'<Tablename>', database '<Database>', owner '<user>'."

Page314

AdvancedScripting

GoingBackOver*SQLADDRemovesAddedRecords
Contrarytothe*NEXTRECORDcommand,theinterviewercangobackinthequestionnaireafteran
*SQLADDisexecutedandthisremovestherecordsthatwerejustcreated,exceptwhenarecordis
currentlyclaimedbyanotherprocess(forexamplewhenitiseditedinNIPOFMSorclaimedforinterviewing
byNIPOCATIorNIPOCAWI).
Thesystemdoesnotcheckiftherecordsthatareremovedareunchanged.Forexampletheymayhave
beeneditedandchangedwiththeNIPOFMSand/orhaveasuccessfulinterviewperformedbyanother
interviewer.Thesystemonlycheckswhetherrecordsareclaimedforusebeforeremovingthem.
Youmayspecifya*NOTBACKcommandintheNIPOODINquestionnaireifgoingbackisnotdesired.

RestartingtheInterviewDoesNotRemoveNewRecords
Restartingtheinterviewdoesnotremoverecordsthatwerecreatedduringtheinterview.Youmayremove
themenuitemRestartviatheMenuSpecsettingontheNIPOCATIClient,ifgoingbackisnotdesired.Use
theBackbuttonifrecordsneedtoberemoved.

InstructionModeorTestModeMayCreateNewRecords
WhentheNIPOCATIClientisstartedinInstructionmode(using/Aintheshortcut)orinTestmode(using
/Tintheshortcutorpress<Test>ontheinterviewernumberdialog),the*SQLADDcommandisexecuted
asnormalandrecordsmaybecreated.NotehoweverthatbothInstructionmodeandTestmodealwaysuse
thesameInterviewNumbervalueintherunningsurvey,soany*SQLADDcommandthatbasesthe
newrecordnumberontheinterviewnumbermightcause*SQLADDtofailwithaduplicatekey.

ReusingSampleRecordsfromTfileThatWereAlready
Completed
InsomecasesitisrequiredtoreuseNIPOCATIsamplerecordsthathavealreadybeensettoadefinite
responsecode.Forexample,insomecasesfieldworkmaydecidetoretryrefusalsbecausethereisa
considerablelackofsample,orbecausethequestionnaireneedstoberedoneforanumberofrespondents.
ReusingsamplerecordsinasurveyusingaSampletableisamatterofreinitializingthesamplerecords.The
FieldworkManagercantakecareofthis.
ReusingInterviewNumbersinasurveyusingaTfileworksslightlydifferently.Youwouldexpectittobe
sufficientenoughtosettheresponsecodeto0,butthisisnottheonlyplacewherethestatusofarecordis
kept.TheDfile(abinaryfilecontainingtheSuspendImagesoftheinterview)alsocontainstheresponse
information.Anyattempttouseareinitializedsamplerecordwillresultinanerror"Record already
completed in Suspend Image"atsurveystart.Thishappensforanyrecordwheretheinterview
hasprogressedbeyondtheintroductionscreen.
Inthissectionanumberofapproachesarepresentedtodealwiththisissue.

Stratification
WhenstratificationcellshavechangedandtelephonenumberswithResponseCode21havetobereused,
therearetwooptions:

Page315

AdvancedScripting

Ifthestratificationwasoninput(dataalreadyavailableintheTfilebeforestartingtheinterview),the
previousresponsecodemaybeused.NoDrecordwascreated,sonoproblemwithduplicatesarise.
Ifthestratificationisonoutput(datathatwascollectedinthequestionnaireand*STRATwasused),
respondentshavealreadybeencontactedandtoldthattheywerenotinyourtargetgroup(andaD
recordwascreatedwiththatrouting).Ifyouinitializethesenumbers,theinterviewnumberhastobe
changedtoo.

ChangeInterviewNumber
Whenrefusalshavetobedialedagain,initializetheResponseCode(position1819),butalsochangethe
InterviewNumber,forexamplebyplacingthevalue9inposition52L1.Thiswaythenumberswillbe
consideredasnewInterviewNumbers.

Morethan5Contacts
Releasingnumberswithmorethan5contactscanmucheasierbedonebychangingthemaximumnumber
ofcontacts(forthissurvey)intheNIPOCATI/WebManager.IntheSURVEY.INIfileaddthefollowing
setting:
[Config]
MAXCON=10

Theminimumnumberofcontactsis3.Alternatively,resetposition2021intheTfileto0butkeepinmind
thatthisresultsinamismatchbetweenthenumberofcontactsreportedintheTfileandthenumberof
contactsfoundintheCfile.

SystemErrors
IfTrecordshavearesponsecode20(systemerror)theyshouldonlybeinitializedwhenyoufoundthe
causeofthesystemerror.IfthesystemerrorwascausedbycommunicationproblemsbetweentheNIPO
CATI/WebMasterandtheNIPOCATIClient,usetheRECINT32.EXEtooltorecovertheinterviewsfrom
theinterviewerworkstationortheRecoverdirectoryontheNIPOCATI/WebMastercomputer.

CreateaNewSurvey
IfaTfileshouldbeusedforrecallsurveyoramonthlypanelsurvey,youshouldnotusethesamesurvey
name,butcreateanewsurvey(B1234BinsteadofB1234A).Ormakeabackupofthecompletedirectory
andthenremoveallfiles,exceptfortheQuestionnaireandtheTfile.

AlreadyCompletedCode
ThechecksforInterviewNumberswithadefiniteresponsecodeintheDfileisexecutedwhenloadinga
survey.Fieldworksupervisorcancheckthemessagesanddecideiffieldworkforthesurveyshouldbe
startedornot.
Bydefault,TrecordswithamatchingcompletedDrecordaresettocode20(SystemError).TheTrecordis
rejectedandcannotbeusedforinterviewing.
Tochangethisbehavior,thefollowingsettingcanbespecifiedintheSURVEY.INIfile:
AlreadyCompletedCode=nn
ForallInterviewNumbervaluesforwhichadefiniteresponsecodeisfoundintheDfile,theDfile
recordinformationisignored.Theresponsecodeischangedtothecodespecifiedbythe
AlreadyCompletedCode.Thismaybe:

Page316

AdvancedScripting

Adefiniteresponsecode(forexampleresponsecodes04,05,08to17and20oracustomdefinite
responsecode).TheTrecordwillnotbeused.
Code0.TheTrecordisusedagain,buttheinterviewstartsatthebeginningofthequestionnaire.
Anyavailablecode.(forexampleresponsecodes01,02,03,06and07oracustomavailableresponse
code).Theinterviewwillresumeatthesamequestionwhereitwasinterrupted.
Exampleusingadefiniteresponsecode
AlreadyCompletedCode=35
RESPC35T=Already completed interview in D-file
RESPC35=STOP

Inthiscase,theTrecordswithadefiniteresponseintheDrecordarereported,rejectedandsetto
responsecode35.
Exampleusinganindefiniteresponsecode
AlreadyCompletedCode=36
RESPC36T=Already completed interview in D-file may be used again
RESPC36=AVAIL

Inthiscase,theTrecordswithadefiniteresponsecodeintheDrecordarereportedbutsettoresponse
code36.Therespondentsmaybecontactedagainandtheinterviewresumesatthequestionwherethey
werelastinterrupted.
Example3usingresponsecode0
AlreadyCompletedCode=0

Inthiscase,theTrecordswithadefiniteresponsecodeintheDrecordarereportedbutsettoresponse
code0.Therespondentsmaybecontactedagainandtheinterviewisstartedfromthebeginning.

DeleteDfile
Inallcaseswhereyoualreadystartedfieldwork,withoutrealizingthattheinterviewnumberswere
duplicates,amoredrasticmeasurecanbeused:deletetheDfile.Allinterviewswillstartatthebeginning
ofthequestionnaire,includingappointmentsthatweremadeduringtheinterviewandforwhichinterview
datahasalreadybeencollected.
Thesystemchecksforduplicateinterviewnumbers.Itdoesnotcheckduplicatetelephonenumbers.Inthe
NIPOFMSitispossibletocheckandremoveduplicatetelephonenumbers,whenusingaSampletable
insteadofaTfile.
WhenusingSampletableinsteadofTfile,youcaninitializetheSuspendImagefortherecordsthatshould
bereused.ButiftheSuspendImageisnotcleared,thesamerulesapply.
ReusingaTfileorSampletablerecordwiththeAlreadyCompletedCodesetting,willnotremovethe
datarecordfromtheUandtheOfile,sothesameinterviewnumbermightbeusedtwice.Makesurethat
youhavetoremoveduplicatesbeforestartingtheanalysis.

JumptoQuestionResponseCode
YoucanconfigurearesponsecodetofirstjumptoaspecificquestionintheNIPOODINquestionnaire,by
addinga*GOTOcommandinthespecificationinthesurveyconfigurationfile.Thisquestionblockinthe
NIPOODINquestionnaireshouldbeclosedwithanotherresponsecode(*END,*ENDST,*CUT,etcetera),
asthenonresponselistwillbeunavailable.
ResponsecodetojumptospecificquestionfirstinSurvey.INI
[Config]
RESPC41T=Terminate interview *GOTO 9001
RESPC41=1,AVAIL

Page317

AdvancedScripting

ResponsecodehandlinginSurveyQ
*QUESTION 9001 *CODES 101L1
Before actually terminating the interview, may I ask you for your age?
1: 18-44
2: 45-64
3: 65+
*QUESTION 9002
Thank you very much.
*ENDST 42

SettingtheCodePage
IfaquestionnaireshouldbedisplayedinaspecificCodePagethiscanbespecifiedinthesurvey
configurationfile.OpenthefileSURVEY.INI.Editthefileasfollows:
[Files]
Q=""SURVEYQ:CP""

WhereSURVEYQisthefilenameofthesurveyandCPisthenumberrepresentingthecodepage,for
example:
[Files]
Q=""A1234Q:1282""

NIPOConjointMeasurement
Note:
NIPOConjointMeasurementissupportedforNIPOCAWIonly.
NIPOConjointMeasurementisawayofdoingresearch,thatputstheresearcherinapositiontofollowthe
weighingprocessofrespondents,whenbuyingproductsorservices.Thisprocessofweighingisbeing
'staged'.Collectingthedatainthismanner,theimportanceofcertainfeatures,whenchoosingaproductor
service,canbedeterminedmuchmorepreciseincomparisonwith'standard'methodsofmarketresearch.
TheresultofNIPOConjointMeasurementwillbeaclearinsightacertainfeaturehasfortherespondent
whenpurchasingaproductorservice.
NIPOConjointMeasurementespeciallyisanimportanttoolwhendevelopingnewproductstodeterminein
advancewhichspecificfeaturesoftheproductaremoreandwhicharelessessential.Italsocanplayarole
atrecruitmentandselectioninvestigations,toknowwhichapplicants,havingacertainsetoffeatures,have
moreprobabilitytogetthejob.
FurtheranalysisofNIPOConjointMeasurementdatacanbedoneinthestatisticalpackageofyourchoice.
Thetheoryofconjointanalysisassumesthatthevalueofaproductfortherespondent,thesocalledutility,
canbesplitupinseveralpartutilities,foreveryfeatureofthatproductaseparatepartutility.Traditionally
aconjointmeasurementsurveyconsistsoftheshowingofabatchofcardstotherespondent,eachofthem
containing2profiles:profilesare2differentdescriptionsofaproduct.Therespondentisthentoorder
thesecards;giventheorderedcardsthe(relative)importanceofeachfeatureandevenofeachlevel
withinthatfeaturecanbedetermined.
Buthavingproductswithforexample5features,eachofthemhavingonaverage4levels,thisledto
enormouspracticalproblemsbecauseofthelargenumberofpossiblecombinations.Onesolutionwasto
showeachrespondentonlyasubsetofthetotalnumberofcardsandtodotheconjointanalysisatan
aggregatelevelonly,ratherthanatanindividuallevel.

Page318

AdvancedScripting

TheuseofpersonalcomputersinthefieldworkhasenlargedwidelythepossibleapplicationsofNIPO
ConjointMeasurement.Nowacomputermaybeusedtodopresentandaccumulateduringtheinterview,
soitisnolongernecessarytogothroughthewholesetofcards.Fornow,atanymomentduringthe
interviewwhenconstructingnewprofiles,theanswersgivensofarbytherespondentcanbeusedto
consideronlythosefeatures/levelsthataremostrelevanttothisrespondent.Inthiswayitispossibleto
determinerelativeimportance(partutilities)foreachlevel,andforeachrespondent.
IntheNIPOConjointMeasurementwithintheNIPOFieldworkSystemtherespondentisfirstaskedto
mentionunacceptablelevels:thelevelstherespondentwouldneveragreeto,forexamplechewinggum
containingsugar.Theselevelswillnolongerappearintheinterviewoneisallowedtoacceptalllevels.The
numbersoftheseunacceptedlevelsarenotstoredintheUfile,buttheircorrespondingutilitieswillhavea
specificnegativevalue,sotheymayberecognizedafterwards.
Thentherespondenthastoordertheremaininglevelsaccordingtohispreference:nowthewholelisthas
tobeputinanhierarchicalorderthefirstandthelastchoicewillbestoredintheanswerfile.
Afterthistherespondenthastomarktheimportanceofthedifferencesbetweenthefirstandthelast
choice,inotherwords:istheorderinthelevelsallthesametotherespondentordothesedifferences
matter.Thisimportancefactor(onascalefrom1to4)isalsostoredintheUfile.
Inthesocalledmainparttheprofilesareconstructedandshowntotherespondent:therespondenthasto
lookattwodescriptionsofaproductthathavetotalutilityasequalaspossible,anddecidetowhatextend
oneofthetwocorrespondstohis/herpreference(movingacursorblocktotheleftortotherightona
scalefrom1to9).Atleast2andatmost5featuresappearonthescreentogether,andthisnumberof
screenfeaturesisincreasedslowlyfrom2totheactualnumberoffeatures(orto5,thisdependsonwhatis
reachedfirst).Afterananswerhasbeengivenutilitiesofallacceptedlevelswillbereestimated,andthe
nextprofileisbeingconstructedbasedontheseutilityvalues.
Thenumberofprofilequestionsdependsonthenumberofacceptedlevels.
Basedontheanswerstothesequestionsfinalutilityvaluesforalllevelsareestimated;allthesevalueswill
becorrectedafterthefinalpartandwillbestoredintheUfile.(Storingalltheprofileinformationwould
costtoomuchroom).
Inthefinalpart3questionsfollowabouttheprobabilityofpurchasingaproduct:theproductwiththe
smallestsumofutilityvaluesofalllevelsisshownfirst,andtherespondentisaskedtogivetheprobability
topurchasethatproduct;inthethirdquestiontherespondentisshowntheproductwiththehighestsum
ofallutilityvaluesandalsothequestionistoentertheprobabilitytopurchasethatproduct.Butin
betweentherewasthesecondquestionwithaproductwithsumofutilityvaluessomewherebetweenthe
firstandthethirdconcept.These3answersshouldbeincreasing,providedtherespondentisanswering
consistently.
Thentworegressioncoefficients(aandb)andacorrelationcoefficientareestimatedthese3coefficients
arestoredintheUfile.Theregressioncoefficientsareusedtocorrecttheutilityvalues.

Page319

AdvancedScripting

OverviewofsupportedcommandsinNIPOConjointMeasurement
SupportedCommandsinNIPOConjointMeasurement
Command

Syntax

Meaning

*CONJ

*CONJ <position>L<length>

StartNIPOConjointMeasurementmodule.

....
*ENDCONJ
*ENDCONJ

*CONJ <position>L<length>

EndNIPOConjointMeasurementmodule.

....
*ENDCONJ
CONJTXT[n]

*PUT CONJTXT[n] "text"

DefinitionofhelpscreenstobeusedwithinNIPO
ConjointMeasurement.Thesemustbespecified
beforestartingthe*CONJsection.

*LIST

*LIST <n|"name">

Listspecification:

*CONJ nLm

n=numberofthelist

...

"name"=nameofthelistbetweenquotes.

*ENDCONJ

Thelistsmustbedefinedbeforethe*CONJ
statement.

*CONJ nLm

Uselistasspecified,where:

*LIST <n|"name"|expression>

n=numberofthepredefinedlist

...

"name"=nameofthelistbetweenquotes.

*ENDCONJ

expression=expressionthatwillleadtoapredefined
list.
Iftheexpressioncomesbackwithanumberthatisnot
apredefinedlist,thesurveystopsinerrorstatus.The
listshavetobedefinedfirst,beforethe*CONJ
statement.

*CONJ

Numberoflevelsthatmustremainacceptable.

*LIST <n> *MIN <n>

Ifthenumberisequaltothenumberoflevelsforthat
feature,thequestionaboutunacceptablelevelswill
beskipped.Mustbespecifiedonthesamelineasthe
*LISTstatement.

*LIST

*MIN

...
*ENDCONJ
*IF

*CONJ nLm
*LIST x
*LIST y
*IF [ expression ]

Filtertobeusedforbothprofilesandthelast3
calibrationquestions.
The*IFstatementshouldbespecifiedinthe*CONJ
block.Onlyone*IFmaybespecifiedper*CONJ.

...
*ENDCONJ
*LEFT

*RIGHT

*CONJ nLm *LEFT "text"

Texttobeusedatthelefthandpoleofthescale.

...
*ENDCONJ

The*LEFTstatementmustbespecifiedonthesame
lineasthe*CONJstatement.

*CONJ nLm *RIGHT "text"

Texttobeusedattherighthandpoleofthescale

...

The*RIGHTstatementmustbespecifiedonthe
samelineasthe*CONJstatement.

*ENDCONJ
*AUTO

*CONJ nLm
*LIST <n> *AUTO
...
*ENDCONJ

Page320

Automaticallyorderthelevelsofthefeaturein
descendingorder.Thefirstcodehasthehighest
preference.Thequestionaboutorderingthelevelsis
skippedifthisfeatureisused.The*AUTOstatement
mustbespecifiedonthesamelineasthe*LIST
statementandcannotbecombinedwiththe*INV
statementonthesamefeature.

AdvancedScripting

Command

Syntax

Meaning

*CONJ

*CONJ <position>L<length>

StartNIPOConjointMeasurementmodule.

....
*ENDCONJ
*INV

*CONJ nLm
*LIST <n> *INV
...
*ENDCONJ

*ROT

*CONJ nLm
*LIST <n> *ROT
...
*ENDCONJ

*PICT (within
*LIST n
list definition) 1: text *PICT <n|"name">
2: text *PICT <m|"name">

Automaticallyorderthelevelsofthefeaturein
ascendingorder.Thelastcodehasthehighest
preference.Thequestionaboutorderingthelevelsis
skippedifthisfeatureisused.The*INVstatement
mustbespecifiedonthesamelineasthe*LIST
statementandcannotbecombinedwiththe*AUTO
statementonthesamefeature.
Rotatethescaleonthescreen.Codesaredisplayed
nexttoeachotherinsteadofundereachother.
The*ROTstatementmustbespecifiedonthesame
lineasthe*LISTstatement.
Withinthe*LISTdefinitionyoumayspecifypictures
oneachcode.Thetextisfollowedbythepicturefrom
thepicturelibraryorwiththespecifiedfilename.

*CONJ nLm
...
*ENDCONJ
*PICT (within
*CONJ)

*NP

*LIST n

Whenusingaspecificcombinationoflevels,display
thepictureasspecifiedabovetheleveltexts,where:

*LIST m

n,marelistnumbers

*PICT [?An,p & ?Am,r ...] x

p,qarelevelnumbersforlistn

*PICT [?An,q & ?Am,s ...] y

r,sarelevelnumbersforlistm

*ENDCONJ

x,yarepicturenumbersinthepicturelibrary.

*CONJ nLm

Preventsthepresentationofthelevelpicturesthat
arealreadypresentedinacombinedpicture.By
defaultalllevelpicturesincludingapossible
combinationpicturearepresented.

*CONJ nLm

*LIST n
*LIST m
*PICT [?An,p & ?Am,r ...] x
*PICT [?An,q & ?Am,s ...] y
*NP
*ENDCONJ

StartmoduleNIPOConjointMeasurement
NIPOConjointMeasurementdefinition
*CONJ <position>L<length>
...
*ENDCONJ

Thiscommandmarksthebeginningofamoduleconjointanalysiswithinaquestionnaire.Thecommand
mustbeputatthebeginningofaline;itisusedalwaystogetherwiththecommand*ENDCONJ
(terminationoftheconjointmodule).Definitionofthefeaturestodotheconjointanalysiswithhastobe
doneusingthecommand*LIST.
Afeatureisforexamplethecolorofaproduct,andwithinafeaturealevelthenisforexamplered(orblue,
...).
ThemoduleforNIPOConjointMeasurementinODINconsistsof3parts.

Page321

AdvancedScripting

Intheintroductoryparttherespondentisbeingaskedtoeliminateanylevelsthatareunacceptabletohim
/her;theremaininglevelsthenneedtobeorderedbytherespondentfromthefirstchoicetothelast
choiceandfinallytherespondenthastostatebyanumberhowimportantthedifferencebetweenfirstand
lastchoicewas(forexamplethe2choicesarenearlyequalinpreferencesothedifferenceisnotimportant,
ortheyareverywideapartinpreferenceandthedifferenceisimportant).
Inthemainparttherespondentisshownanumberofsetsof2'profiles',aprofilebeingadescriptionofa
product:therespondenthastostatebymeansofascalequestionwhichofthe2profileshasthe
preference,andtowhatextend.Basedontheanswersgivensofar,utilitieswillbedeterminedforalllevels.
Withinthispartthecommands*LEFTand*RIGHTmaybeusedtodefinethetextstoappearontheleft
and/orrightsideofthescale.Whennotextsaredefinedhere,thelastdefinedtextsfor*LEFTand/or
*RIGHTareusedagain.Otherwisethedefaulttextsareused.
Inthelastparttherespondentisshown3profiles,ofwhichtotalutilityrises,andhe/sheisaskedtogivea
percentagetoreflecttheprobabilitytobuythatproduct.
Usingthoselast3answersregressioncoefficientsandacorrelationcoefficientisestimated,andallutilities
willberescaled.All3coefficientsandtherescaledutilitieswillbestoredintheanswerfile(theUfile).

DefiningTextScreens
AlltextwithintheConjointMeasurementmoduleisdefinedusingthearrayCONJTXT[n]whichcontains
50textvariables,inwhicheachindexreferstoaparticularsectionofthedisplayedtext.Thiswayyoucan
customizetheConjointonscreentexts.ThesetextarraysshouldbesetbeforestartingtheNIPOConjoint
Measurementmodule.

ReferenceToaFeature
Allfeaturesarereferencedusinga*LISTcommand:
*LIST <n|expression|"name">
Thiscommandisareferencetoapreviouslydefinedlistwithlevelsofafeature.Whenanexpressionis
given,itwillbeevaluatedfirstandtheresultwillbeusedaslistnumber.

Filters
Thecommand*IFcanbeusedtospecifyalogicalexpression.Withthiscommanditispossibletoexclude
certaincombinationsoflevels(withinthesameprofileorbetween2profiles),ortothecontrary,levelscan
bedefined(whichmeansthatcertainlevelsalwayshavetoappeartogether).
*IF <[expression]>
Thiscommandcanbeinsertedonlyoncebetween*CONJand*ENDCONJ,buttheexpressionitselfcanrun
overseverallines.Furthermoreitispossibletoinsertreferencesintheexpressionwhichrefertoquestions
outsidetheConjointmodule.
Twolistsareidentifiedinthecomparison,andtheyarereferencedasAlistandBlist.Itisnotofany
importancewhethertheyappearonthescreenontheleftortheright.Directlyafterthelistreferencethe
numberofthedescriptionofthelistarespecified.Forexample,?A2referstolist2,and?B"price",3
referstothethirdcodeofthelistcalledprice.
Themeaningofafilterexpressionlike*IF [#(?A2,4 & ?B"price",3)]is:code4fromlist2(at
onesideofthescreen)andcode3fromthelistcalled"price"(attheothersideofthescreen)maynot
appearatthesametime.

Page322

AdvancedScripting

Theuseofthecommand*IFisinprincipalexcluding,whichmeansitpreventstheappearanceoftwo
levelsatthesametimeonthescreen.Ifusedforincluding,whichmeanstwolevelsalwayshavetoappear
onscreentogether,ithastobedefinedfor"left"andfor"right":
*IF [ ( ?A2,1 & ?A3,1 ) \ ( ?B2,1 & ?B3,1 ) ]
Thisfilterspecifiesthatlevel1offeature2andlevel1offeature3mustalwaysappeartogether,forboth
sidesofthescreen.

CONJTXT[n]TextArray
CONJTXT[n]arrayvalues
Arrayindex

AppearsinNIPOConjointMeasurement

Defaulttext

Feature

Feature:

29

Generalintroductionand

none

introductiontextforquestionsaboutunacceptableitems
10

Questiontextaboutunacceptablequestions

EnterthelevelsthatareUNACCEPTABLEtoyou.

1119

Introductiontextforquestionsaboutrotation

20

Questiontextrotationquestions

Orderthelevelsbelowaccordingtoyourpreference.

2125

Introductiontextforquestionsaboutrelativeimportance

none

26

Codetextsforquestionsaboutrelativeimportance

totallyunimportant,thereishardlyanydifferencein
preference.

27

Codetextsforquestionsaboutrelativeimportance

notsoimportant,thereisaslightpreferenceforlevelA.

28

Codetextsforquestionsaboutrelativeimportance

important,Iwouldrathernotchooseaproductwithlevel
B.

29

Codetextsforquestionsaboutrelativeimportance

veryimportant,Iwouldneverchooseaproductwithlevel
B.

30

Questiontextrelativeimportancequestions

Howimportantisthedifferencebetweenthelevelsshown
below?

3139

Introductiontextforprofilequestions

none

40

Questiontextprofilequestions

MovetheblocktoenteryourpreferenceforLEFTorRIGHT.

41upto49

Intro.textforquestionsaboutprobabilityofbuying

none

50

Questiontextprobabilityofbuyingquestions

none

FiltersinNIPOConjointMeasurement
Theprofileontheonesideofthescreenisreferredtoas?A,theprofileontheothersideofthescreenis
referredtoa?B.
ThefilterwithinNIPOConjointMeasurementisinprincipalexcluding,whichmeansitpreventsthe
appearanceoftwolevelsatthesametimeonthescreen.Ifusedasincluding,iftwolevelsalwayshaveto
appearonscreentogether,bothsideshavetobedefined(seebelow).
Notethatheparameters?Aand?Bdonotrefertoleftorrightsideofthescreen!Usuallyinnegativefilters
the?Bisonlyusedwhenyoudonotwishtocomparetwolevelsofthesamefeature(forinstancewhen
twobrandnamesareactuallythesamebrand(forexamplePhilipsversusWhirlpool)orproduct(e.g.Opel
AgilaandSuzukiWagonR+arethesamecarproducedunderadifferentname).Seealsoexample3.
Example1
*IF [ # (?A1,1 & ?A2,2) ]

Page323

AdvancedScripting

Level1offeature1shouldnotappeartogetherwithlevel2offeature2withinoneprofile.
Example2
*IF [ # (?A"BRAND",1 & ?A"PRICE",1,2,3) ]
Level1offeatureBRANDshouldnotappeartogetherwithlevel1,2or3offeaturePRICEwithinoneprofile.
Example3
*IF [ # (?A"BRAND",1 & ?B"BRAND",2) ]
Level1offeatureBRANDshouldnotappearoppositetolevel2offeatureBRANDinoppositeprofiles.
Example4
*IF [ ?A1,1 & ?A2,2 ]
Level1offeature1shouldalwaysappeartogetherwithlevel2offeature2.Thisfilterisincomplete,asit
mightappearontheothersideofthescreen!
Example5
*IF [ (?A"BRAND",1 & ?A"PRICE",1,2,3) \ (?B"BRAND",1 & ?B"PRICE",1,2,3)]
Level1offeatureBRANDshouldalwaysappeartogetherwithlevel1,2or3offeaturePRICE.Thiscounts
forbothsidesofthescreen.
HowdoesfilteringinNIPOConjointMeasurementactuallywork?
Foreachcomparetestbetweenasetoftwoprofiles,thesystemfirstpicksanumberoflevelsrandomly,
thenselectstwoprofilesoutofthemthatareutilitybalanced,thenlookswhetherthecombinationoflevels
alreadyhavebeenpresented,andthentriesifitisallowedaccordingtothefilterconditions.Ifa
combinationhasalreadybeenpresented,ortheprofilesarenotcompliantwiththefilterthisprocedureis
repeated.After25triesthecombinationrepeatcheckisignored,after50triesthefilterisignored.
Thisimpliesthatifthefilteristoodemanding,youmightendupthatthefilterwillbeignoredtotallyand/
ortwoprofilesmightbepresentedtwice.
Theadvantageofthisprocedureistherandompick.However,incombinationwiththecomplexfilter
possibilitiesitmakestheprocessunpredictablefortheresearcher.Questioniswhetherthis"search"
functionstillworksaccordingtothe"specifications"orusersexpectations.
Inpracticetheutilitybalancefunctionsupportsthefilterfunctionindirectly.Thefilterfunctionisaimedto
blockunrealisticprofilesandmostofthetimethisfunctionwillproducesuchrealisticprofiles.Inteststhat
arenotaimedtomimictheserespondents,butmerelytocheckthefilterfunction,thissupportwillnotbe
noticeable.
LimitationsontheUseofFilterswithinNIPOConjointMeasurement
Firstofall,whencreatingfiltersintheNIPOConjointMeasurement,itisimportanttoemphasizethat
ConjointMeasurementisabouthypotheticalorvirtualproducts.
Theuseofhypotheticalproductsisanecessityforindependentlyestimatingtheeffects(weightsand
importances).Afilterharmsthisindependence.Itmakesthoseeffectsconfounded,blendedormixed.The
filter'sinfluenceshouldthereforebereducedtoaminimum.
Inpracticeitmeansthatafilterwillblockonlyalimitednumberoflevelcombinations.Forexampleina
conjointsurveyonhouseswiththeattributessurfaceofgroundfloor(50m2,70m2or90m2)andnumberof
bedrooms(1,3or5),thecombinationof50m2and5bedroomsand90m2and1bedroommaybefiltered
out,butnomore.Otherwisetheparameterinfluenceswillbemixed.

Page324

AdvancedScripting

Asaguideline:donotfilteroutmorethen1levelinalistof3.For4levelsthereisalsoamaximumof1,for
5levelattributesamaximumoftwolevelscanbefilteredout,for6alsoonly2,7approximately3etcetera.
Themoreattributesareinvolvedthebiggerthemixeffectwillbe.
Moreover,ifafilterbecomeslarger,andthenumberofpossiblecombinationsdecreases,thesystemis
morelikelytoshownonpreferredcombinationsanyway.Andifthefilteristoocomplex,thefilterwillbe
ignoredcompletely.
Furthermore,thereareotherwaystopreventimpossiblecombinationfromshowing,forexampleby
combiningtheimpossiblecombinationsinoneattribute.Intheexampleoftheconjointonhouses,make
oneattributewith7levels:50m21bedroom,70m21bedroom,50m22bedrooms,70m22bedrooms,
90m22bedrooms,70m23bedrooms,90m23bedrooms.
Itisrecommendedthatpricesarenotincludedaspartoftheleveldescriptionsofmorethenoneattribute.
Theutilityvaluesshouldaidthedecisiontoperceivedvalueratherthanguidearespondenttowardsa
logicallyconsistentcost.Thisisbecausetheintentionofconjointistoestimateutilityforacertainlevel,not
forthatlevelandaprice.Theinclusionwouldcomplicatethemeasurementsinthesensethatitmixestwo
levels.Thecomplicationisnotonlyfortheanalystbutalsofortherespondents:theyhavetoaddupallthe
differentprices.

ExampleNIPOConjointMeasurement
ThisexampledealswithanintercontinentalflighttoBangkok.Theproducthasseveralfeatures:typeof
connection,airline,price,etcetera.Foreveryfeatureseverallevelscanbedefined:fortypeofconnection
nonstop,1stopandmakingatransfer;forairlineKLM,ChinaAirlines,etcetera.
Product:flighttoBangkok:FeaturesandLevels
Features

Levels

Connectiontype Price

Airline

Serviceonboard

Pre/postflightservice

nonstop

1350,

KLM

extralegroom

.35,discountonparkingfeesat
airportofdeparture

direct

1200,

ChinaAirlines

goodmeals

.15,discountonKLMExpress

transfer

1050,

Garuda

friendlystaff

taxfreevoucherof
.15,perpersonvalidatairport
ofdeparture

900,

SingaporeAirlines

broadselectionoffilms/ .25,discountontaxifareto
music
airportofdeparture

750,

ThaiAirways

freenewspapers

600,

Malaysian

discountof.15,perpersonon
travelinsurance

EvaAir

discountvouchertothevalueof
.35,onhirecaratdestination

Sothereare5features,totallycontaining27levels.
AtthestartoftheConjointsectioneveryfeatureisshown,andtherespondentisaskedtomark
unacceptablelevelsforeachfeature.Examplesofthesewouldbeapriceof.1350,atransfer,etcetera.
Theremaininglevelsthenhavetobeorderedhierarchicallybytherespondent.Theexceptiontothisisthe
Pricefeature,whichmaybeorderedautomaticallyaswemayassumetherespondentfavorslowerpricing.
Finallytheimportanceofthedifferencebetweenthefirstandthelastlevelasorderedbytherespondentis
asked.

Page325

AdvancedScripting

Thentheprofileswillbeconstructed,initiallyhaving2features(forexampleairlineandprice),ofwhich2
levelsareshown(forexampleKLMandGaruda,and.1350,and.1050,).Thenumberoffeatureslisted
onthescreenincreasesslowlyasprofileafterprofileisshown;ofeachfeatureonly2levelsareshown.The
respondentmusttomarkhis/herpreferenceforoneofthetwoprofilesonascalefrom1to9.

Page326

AdvancedScripting

ExampleNIPOConjointScript
ExampleNIPOODINQuestionnaireforNIPOConjoint

Page327

AdvancedScripting

*FONT 5SUBJECT: AIRLINE SERVICES


(Conjoint measurement)

*FONT 1Demo NIPO Conjoint Measurement in NIPO CAWI.


Copyright NIPO Software.
*FONT
*FONT
*FONT
*FONT
*FONT
*FONT

0
1
2
3
4
5

"Swift
"Swift
"Swift
"Swift
"Swift
"Swift

12
12
12
12
12
20

(0 0
Bold
Bold
Bold
Bold
Bold

128)"
(0 0 128)"
(128 64 255)"
(0 128 0)"
(0 0 128)"
(0 0 128)"

*QUESTION 66666
In This questionnaire you will be asked to make a profile of your ideal flight to the Far
East. You will see NIPO's version of the adaptive conjoint analysis method.
First you will be asked to indicate which service aspects of the airline you find
unacceptable.
Then the remaining aspects must be ranked in the order of preference, after which you are
asked to indicate the relative importance of a selected set of service aspects.
Finally the service aspects are combined by the program to service packages and proposed to
you. You can give your opinion by means of an optical scale. The best three packages are
then rated using a continuous scale.
** First the lists (= characteristics) with levels
** You can either give the lists a name (between quotes)
** or a number between 1 and 9.
*LIST "Company"
1: Lufthansa
2: China Airlines
3: Garuda
4: Singapore Airlines
5: Thai Airways
6: Malaysian
7: Eva Air
*LIST "Type of connection"
1: non-stop
2: direct (1 stopover\same aircraft)
3: transfer (stopover to different aircraft)
*LIST "Price"
1: 1350
2: 1200
3: 1050
4: 900
5: 750
6: 600
*LIST "Discounts"
1: 35 discount on
2: 15 discount on
3: tax-free voucher
4: 25 discount on
5: discount voucher
6: discount of 15

parking fees at airport of departure


Lufthansa Express
of 15 valid at the airport of departure
taxi fare to airport of departure
to the value of 35 on hire car at destination
per person on travel insurance

*LIST "Extras"
1: extra legroom
2: good meals
3: friendly staff
4: broad selection of films\music
5: free newspapers (English\German)
** Start of the main questionnaire
** The introductory screens for conjoint measurement follow

Page328

AdvancedScripting

** For the meaning of each screen see the ODIN-manual.


*PUT CONJTXT[1] "Feature: "
*PUT CONJTXT[2] "
With your help we would like to establish what you consider to be important when choosing
an airline, should you wish to fly from Frankfurt to Bangkok for your holiday and travel on
from there.
We offer you possibilities that you would in reality be able to choose from. The program
enables you to make comparisons that you would in reality also make.

"
*PUT CONJTXT[3] \
"
The trip concerned is a holiday by air to the Far East. The choice to be made actually only
concerns the flight to Bangkok. Not, therefore, the whole package.
So try to imagine that you are busy choosing a flight to Bangkok.

"

*PUT CONJTXT[4] \
"
You can select the alternatives by mouse to make a choice. Try to imagine you are making a
REAL choice, that you are REALLY looking for the best alternative for yourself for a flight
to Bangkok.

"

*PUT CONJTXT[5] \
"
First we present a number of alternatives regarding various aspects of the flight. Your
initial task is to determine which of these alternatives are absolutely UNACCEPTABLE to
you.
Options ruled out do not reappear, so be careful not to rule out too much (You would not do
that in a real situation either). For each feature at least two alternatives must be left.
For the features 'Price' and 'Company' four alternatives must be left.

"

*PUT CONJTXT[11] \
"
You have indicated which alternatives you found to be absolutely unacceptable.
We would now like you to indicate your preference regarding a number of aspects of the
holiday flight to Bankok.
We ask you to select your first preference in respect of each aspect (for example: inflight service).
Subsequently select your second choice et cetera.
You will notice that you do not have to rank the price (we assume that you'll answer that
you prefer the cheapest possibility), nor the connection type (we assume you'll prefer to
fly non-stop).

"

Page329

AdvancedScripting

*PUT CONJTXT[21] \
"
It is now interesting to establish how heavily you lean towards a particular alternative.
You have indicated where your preference lies.
We now ask you to indicate how important you consider the difference between two
alternatives. In this way we obtain ever greater insight into the kind of holiday flight
you are looking for.

"

*PUT CONJTXT[31] \
"
On the basis of your choices so far, the computer is able to present profiles of flights
where you will be shown combinations.
In this way you will be steered into making subtle choices. The intention is that you weigh
up the different flights as carefully as possible.
All prices shown are for return flights from Frankfurt to Bangkok!

"

*PUT CONJTXT[32] \
"
Some more explanation: in the next questions you will see descriptions of two flights, one
in a box on the left and one on the right. You will also see an optical scale which you can
select using the mouse.
If you consider the flight shown on the left-hand side to be more pleasant or better for
yourself, you select the scale to the left. The more you select to the left, the better you
like the left option. If you consider the flight shown on the right-hand side to be more
pleasant or better for yourself, you select to the right. The more you select to the right,
the better you like the right option.
"
*PUT CONJTXT[41] \
"
This is the final part of the interview. Together we have reviewed a great many
possibilities.
Three profiles of flights have now been calculated by the computer and will be presented to
you in the next questions.
You will most probably find the first flight a less than attractive proposition and be
unlikely to choose it in reality. The second should be more to your liking, and the third
is most likely to comply with your ideal.

"
** The question texts follow.
*PUT CONJTXT[10] \
"Choose each alternative which is UNACCEPTABLE to you. Make sure at least two alternatives
must be left (four for Company and Price).
Choose [OK] if all (other) alternatives are acceptable."

*PUT CONJTXT[20] \
"Now put the alternatives in order of your preference. First select the alternative you
prefer most, then select your second preference, etc."

Page330

AdvancedScripting

*PUT CONJTXT[30] \
"How important do you consider the difference between the alternatives below? Please choose
an answer from the scale below."
*PUT CONJTXT[26] \
"Not important at all"
*PUT CONJTXT[27] \
"Important to some degree (I would not base my decision on this)"
*PUT CONJTXT[28] \
"Very important (B would have to be very good in other respects)"
*PUT CONJTXT[29] \
"Extremely important (I would hardly ever accept B)"

*PUT CONJTXT[40] \
"Position the scale below to indicate your preference."
*PUT CONJTXT[50] \
"How likely is it that you will choose the flight shown below? Answer by typing in a
percentage, where 100 means very likely, 0 means very unlikely.
Type in a number from 0 to 100, then choose [OK]."

** the conjoint task itself follows


*CONJ L300
*LIST "Company" *MIN 4
*LIST "Type of connection" *AUTO
*LIST "Price" *INV *MIN 4
*LIST "Discounts"
*LIST "Extras"
*ENDCONJ
**
**
**
**

End of conjoint measurement module


After you close the conjoint measurement module you can only go back
to the beginning of the conjoint measurement module. So you can't just
change the answer of the last questions. Therefore a *NOTBACK is used here.

*NOTBACK
*QUESTION 3
These were all the questions.
Thank you kindly for your cooperation.
*END

DatapositionsinNIPOConjointMeasurement
TheNIPOConjointMeasurementstoresdataintheUfile.Thelengthofthedatafieldisdependingonthe
numberoffeaturesandthenumberoflevelsperfeature.Thelengthperfirstandlastchoiceofanfeatureis
dependingonthehighestcodenumberinthelist(forexampleifthehighestcodeis9ituses1position,ifit
is24ituses2positions,etcetera.Theratingofimportanceperfeatureisstoredinoneposition.Foreach
levelinafeature7positionsareused.Finally3times7positionsareusedforIntercept,Slopeand
Correlation.

Page331

AdvancedScripting

ExamplequestionnairetocalculatenumberofpositionsrequiredforNIPOConjointMeasurement
*LIST 1
1: A
2: B
3: C
4: D
*LIST 2
1: K
3: L
2: M
*LIST 3
11: P
12: Q
13: R
14: S
15: T
*CONJ 61L116
*LIST 1
*LIST 2
*LIST 3
*ENDCONJ

Note:
Codesinalistdonothavetostartwith1(seelist3above)norhavetobeinascendingorder(seelist
2above).Thesystemsetspositionsaccordingtotheorderinthelistandonlyreservespositionsfor
thenumberofcodesthatareusedratherthanthehighestcodenumber.Filtersarebasedonthe
codenumber,notontheorderinthelist.

Page332

AdvancedScripting

NumberofpositionsrequiredforNIPOConjointMeasurement
Description

Length

Inexample

foreachfeature

Exampleposition

Firstchoicefeature1

dependingonhighestnumberinLIST

LIST1

61L1

Lastchoicefeature1

dependingonhighestnumberinLIST

LIST1

62L1

Ratingfeature1

1position

LIST1

63L1

foreachleveloffeature1
Level1offeature1

7positions

64L3.4

Level2offeature1

7positions

71L3.4

Level3offeature1

7positions

78L3.4

Level4offeature1

7positions

85L3.4

...

Firstchoicefeature2

dependingonhighestnumberinLIST

LIST2

92L1

Lastchoicefeature2

dependingonhighestnumberinLIST

LIST2

93L1

Ratingfeature2

1position

LIST2

94L1

foreachleveloffeature2

Level1offeature2

7positions

95L3.4

Level2offeature2

7positions

102L3.4

Level3offeature2

7positions

109L3.4

...

Firstchoicefeature3

dependingonhighestnumberinLIST

LIST3

116L2

Lastchoicefeature3

dependingonhighestnumberinLIST

LIST3

118L2

Ratingfeature3

1position

LIST3

120L1

foreachleveloffeature3

Level1offeature3

7positions

121L3.4

Level2offeature3

7positions

128L3.4

Level3offeature3

7positions

135L3.4

Level4offeature3

7positions

142L3.4

Level5offeature3

7positions

149L3.4

...

allotherfeatures

...

Intercept

7positions**

156L3.4

Slope

7positions**

163L3.4

Correlation

7positions**

170L1.6

**unacceptedlevels:999999

Page333

AdvancedScripting

LimitationsofNIPOConjointMeasurement
LimitationsofNIPOConjointMeasurement
Item

Limit

minimumnumberoffeatures

maximumnumberoffeatures

none

minimumnumberoflevelsforeachfeature

maximumnumberoflevelsforeachfeature

none

minimumnumberofscreenfeatures

(=numberoffeaturestoappeartogetheronthescreen)
maximumnumberofscreenfeatures

(=numberoffeaturestoappeartogetheronthescreen)
minimumnumberofprofilequestions

(dependingonnumberoflevelsandfeatures)
maximumnumberofprofilequestions

50

MultibyteCharacterFields(MBCSFieldsSetting)
Note:
ThissectionisonlyrelevantforNIPOSoftwareuserswhorequiremultibytecharactersinnon
Unicodedatafiles
WiththesettingMBCSFieldsintheSURVEY.INIfileyoucanconfigurefieldsthatshouldcontainMulti
bytecharacters,suchasChinese,Japanese,Korean,Hebrew,Arabic,withouthavingtosavefilesinUnicode.
ThiswayyoucanuseyournonUnicodeanalysistool,butarestillabletostoretextfrommultibyte
languagesindatafiles.
TheNIPOCATI/WebMasterreceivesUandOfiledatafromtheNIPOCATIClientsand/orWebClientin
theUnicodeformat.Bydefault,theNIPOCATI/WebMasterconvertsthesefilestoanonUnicode(ASCII)
formatusingtheconfiguredcodepage,assumingtheconfigurationwasnotsettostoreasUnicodefile.
Some(mostlyAsian)codepagesusemultibytecharacters.Asinglecharactermaybestoredinone,twoor
3bytes.Textfilesstorethesecharactersrunlength.Thismeansthattwolineswithanequalamountof
charactersmayneedadifferentamountofactualbytes(positions)tostorethetext.
Duringconversiontotheconfiguredcodepage,multibytecharacterencodingintheUfilecancausedata
tobehorizontallyshifted.Thishappensin*ALPHAdatafieldswhenenteringmultibytecharactersonly.If
thesecontaincharactersofvaryingbytelength,subsequentdatafieldsarenotproperlyalignedtothedata
positionsspecifiedintheQfile.Theproblemdoesnotoccurwithcharactersfromasinglebyteencoding
(theknownwesternASCIIrange).
ThesettingMBCSFieldsintheSURVEY.INIfilesolvesthisproblem.
Considerthefollowingscript:
*Q 10 *ALPHA 61L15
What is your name?
*Q 20 *NUMBER 76L3 *MIN 16
What is your age?
*Q 30 *CODES 80L99 *MULTI
Multiple coded question

Page334

AdvancedScripting

Inasinglebytecharacterset(SBCS)suchasinWestEuropeanlanguages,theinterviewermayenteratext
ofupto15characters.AfterconversionfromUnicodetotheconfiguredcodepage,theUfilerecordmay
looklikethis:
pos

61
|
..00000Martin Rijks

76 80
| |
021000000000000...

RunningthesamequestionnaireintheNIPOFieldworkSystemusingamultiplebytecharacterset(MBCS)
suchasJapanese,theinterviewerisstillallowedtoenteratextofupto15characters.Forstoragehowever
eachcharactermayneedmorethanoneposition,theexactlengthdependingonthenumberofbytes
requiredpercharacter.Thecodepageconversionisunawareofthedatalength.Thepositionsmayendup
likethisintheUfile(hypotheticalassumption):
pos

61
|

76
|

86 89
| |

..00000 021000000000000...

Whilethetextconsistsofonly10characters,mostcharactersusemorethan1byte
tostorethecharacterinaMBCS.Theresultlengthofthedatavariesdependingonwhichcharactersare
used.Thelengthoftheresultoftheconversionisnotthesameasthelengthoftheinitialtextthatwas
enteredbytheinterviewer.
Inshort:ThelengthofeachUrecordinnumberofbytesisdeterminedbythecharactersitconsistsof.
Thus,thecontentdeterminesthelength.Inaworstcasescenario,norecordhasthesamelength.Thedata
onpositionafteran*ALPHAfield,willvary.
SimplystoringdatainUnicodeformatwouldsolvethisissueaseachcharacterinUTF16occupiesthesame
amountofbytes(a15characterfieldwouldalwaysbeconvertedtoa30bytetext).However,some
customersneedtosticktothenonUnicodeformatbecausetheirdataanalysisproductsdonotsupport
Unicode.Customersthatusemultibytecharactercodepagesneedasolutiontoproperlystorethe
*ALPHAinput,withoutcausingthedatatoshiftpositions.
Thesolutiontothisistwofold:theNIPOODINScriptwriterneedstoreservedummypositionsintheQfile,
afterthe*ALPHAfield,intowhichtheNIPOCATI/WebMastermayextendtheMBCSintheUfile.Second,
theNIPOCATI/WebMasterneedstobetoldexplicitlywhichpositionsmaycontainmultibytecharacters
sothatthesefieldsmaybeproperlyformattedandspacedduringcodepageconversion.Thisisdoneby
specifyingthepositionsinthesurveyconfigurationfile:
SurveyconfigurationfilesettingforMBCSfields
[Config]
MBCSFields=posLlen[,posLlen, ...]

ThissettingchangestoNIPOCATI/WebMasterstorageofUfiledata,inparticulartheconversionfrom
(internallyused)UnicodetoMBCSfileformat.

Scenario:*ALPHAforMBCSStorage
Foreach*ALPHAfieldofaquestionnaireforMBCSoutput,theNIPOODINscriptwriterneedstotakethe
followingsteps:

Page335

AdvancedScripting

1. Determinethelengthoftherequiredmaximumamountofactualcharactersthatmaybeentered(by
theinterviewer/bythewebrespondent).Setthisaslengthoftheactualinput*ALPHAfield.
2. Determinethemaximumpossibleamountofrequiredbytesfordatastorage.Agoodconventionfor
thisistomultiplythelengthofthe*ALPHAfieldwith3(themaximumamountofbytesper
characterinmostMBCS(multibytelanguages)).
3. Createadummy*ALPHAquestion.Thepositionsofthisdummymustimmediatelysucceedthe
positionsofthepreviouslydefined*ALPHAquestion.
4. Thelengthforthedummyshouldequaltheresultofthecalculationat2minusthelengthofthe
original*ALPHAfield.Fewerpositionsmaybeused,butwillresultintruncatedtext.Usingmore
positionsisrecommended.
Shortcutmethodforsteps14:
Thedefinitionofasuccessive(dummy)*ALPHAfieldcanbeavoidedbydefiningan*ALPHAfieldand
multiplyingitslengthby3.Thisresultsinenoughstoragespacetostoreanansweroftheoriginallyintended
length.Nodummyneedstobecreated,andtheMBCSFieldssettingonlyneedstorefertoasingle
*ALPHAfield.Moreover,anexporteddatafile(definition)containsavariablereferenceforthecomplete
field;dummyusagerequiresareferencetothecompletefield.Thedisadvantageisthatthemaximum
amountofcharacterstobeinsertedbytheNIPOCATIInterviewerorwebrespondentcannotbecontrolled.
Thelengthofthe*ALPHAfieldexplicitlydecidesthemaximumamountofinputcharacters.Asaresult,
excessdatamaybetruncatedandtheanswermaybeincomplete.
1. ConfigurethesetofpositionsoccupiedforthisMBCSfieldinthesurveyconfigurationfile.The
followingsection,settingandformatareused:

[Config]
MBCSFields=posLlen[,posLlen, ...]

Multiplefieldsmaybespecified,separatedbycommas.Thepositionindicatesthestartpositionof
theoriginal*ALPHAfieldwhereasthelengthspecifiesthetotallengthofbytes(notcharacters)that
maybewritten.Incaseofstep14thelengthwillbeofthetwofieldstogether.

Foromnibussurveys,thefollowingsettingnamesexist:

MBCSFieldsforthemain(first)surveyoftheomnibusasdescribedabove
MBCSFieldsNNforunnamedsubsurveys(nameisnotknown)oftheomnibus,whereNNis0199
and01isthefirstsubsurvey.
MBCSFieldsSURVEYwhereSURVEYisreplacedwiththenameofthesubsurvey.
2. Thesystemtruncatestheinputofthefirst*ALPHAfieldintothepositionsspecifiedbythe
MBCSFieldsvalue,leftaligned.Trailingspacesareinsertedafterthetexttofillthefieldspecified
byMBCSFields.
TherawUfileisMBCSencodedwithfixedpositions.ThisdatacanimmediatelybeusedforNIPODiana
output.TheNIPOODINDeveloper32bitexportsfortheseMBCSfilesareflawlessaslongasthedata
formatisretained.Howeverwhenthedataformatisnotretained,thepositioningofdataduringexport
mayresultinshiftedpositionsagainbecausetheexport,too,usesUnicodeinternally.Inthiscase,the
followingstepsarerequired:

Page336

AdvancedScripting

1. NIPOODINscriptwriterusestheODINDeveloper32bittoexportdatatoNIPODiana/NvisionScript
asthedataformatisalwaysretained.
2. OnthebasisoftheexportedVARandDATfiles,NIPOODINscriptwriterusesNIPODiana/Nvision
ScripttocreateanexportfortherequiredproductsuchasIBMSPSS,Quantum,etcetera.
YoumustspecifytheMBCSFieldssettingforeach*ALPHAfieldthatyouwanttostoreasmultibyte.Itis
theNIPOODINscriptdeveloper'sresponsibilitythatthefieldlengthissufficient.Forinstance,typing10
ChineseorJapanese(doublebyte)charactersrequiresa*ALPHA L10field,buttheMBCSFieldsmust
be20positions(eachdoublebytecharacterisstoredin2positions).IftheMBCSFieldsisshorterthan
twicethe*ALPHAfield,theChinesetextistruncated.
Youcannot'combine'fields.Forexample,MBCSFields=101L30,131L30,161L30cannotbe
combinedasMBCSFields=101L90.
ThereisnovaliditychecktoseeiftheMBCSfieldsreallymatch*ALPHAfieldsdefinedinthequestionnaire.
Thismeansthatdatamaybeoverwrittenortruncated,orthattheMBCSFieldsdefinitionpointstothe
wrongpositions.
ThisfunctionalitynotonlyappliestotheNIPOCATIClient,butalsototheSTRANDtoolandtheNIPOCATI
Standalonesystem.Thismeansthatyoumightcorrecterrorsbychangingthesurveyconfigurationfile
accordinglyandexportingthedatathroughtheNIPOStrandTool(STRAND.EXE).
ThisfeatureshouldonlybeusedbyexpertNIPOODINScriptwriters.Forthisreasonthesettingisnot
accessibletotheFieldworkManager,unlesstheyeditthesurveyconfigurationfiledirectly.
Tobeabletoconvertmultibytecharacterscorrectly,youmustalsospecifythecodepagethattheNIPO
CATI/WebMastershouldusefortheconversionofyourmultibytecharactersinthesurvey.INIfile:
SurveyconfigurationofquestionnaireA1234usingcodepage932
[Files]
Q=""A1234Q:932""

ThecodepagenumbershouldbesupportedbytheNIPOCATI/WebMastercomputer.ChecktheControl
Panel>RegionalandLanguageSettings/RegionalOptions>Advancedsettingsforsupportedcodepages.

ExampleUsingAdobeFlashinNIPOCAWIandNIPOCAPI
ThissectiondescribeshowtodisplayAdobeFlashcontentandcaptureitsoutputinthedataofaNIPOODIN
questionnaireinNIPOCAPIandNIPOCAWI.
ThebasicideatotransferinformationbetweentheFlashapplicationandtheODINscriptistomakeuseof
JavaScriptonthepages.TheFlashapplicationshouldbecreatedinawaythatitattheendoftheuser
interactionmakesacalltoapredefinedJavaScriptfunctionwiththeresultingvaluesoftheFlash
application.TheJavaScriptfunctionreceivesthesevaluesandwillpassthemtothecorrespondingfields
generatedbytheNIPOODINquestionnaire.
TheJavaScriptfunctionsandtheFlashapplicationcanbeincludedintheNIPOODINtemplateforthe
specificquestionwheretheFlashapplicationisused.TheNIPOODINquestioncanbedesignedasa*FORM
questionwiththeregularfields(*ALPHAor*NUMBER)tostorethevalues.Dependingontheselected
questiontype,thenecessaryJavaScriptmayneedchangestoactuallyfillintheanswerintotherightfields
onthepage.Thesefieldsshouldhowevernotbeactuallyshownonthepage,soCSSisusedtohidethese
fieldsonthepage.Thismeansthefieldswillnotbevisible,buttheywillexistintheHTMLpage,andassuch
canbeupdatedbytheJavaScriptfunction.
DependingonthetypeofdatatosendfromFlashtotheJavaScriptfunction,itmaybenecessaryto
explicitlyformatthedataasanarrayinFlash(insteadofpassingastring)tomakesureJavaScriptalso
recognizesthedataasanarray.

Page337

AdvancedScripting

ThissectionprovidesanexampleonhowJavaScriptmaybeusedtocreatethelinkbetweentheFlash
applicationandtheHTMLgeneratedbytheNIPOODINscript.ItdoesnotexplainhowtheactualFlash
applicationshouldbecreated.

NIPOODINTemplateUsingAdobeFlash
TheNIPOODINtemplatedefinestheHTMLpageinwhichtheNIPOODINquestionisshown.Forthespecific
questionwheretheFlashapplicationisused,thereneedstobeaseparateODINtemplate.Thistemplate
containsthefullHTMLpagelayoutincludingtheJavaScriptfunctionintheheadersectionoftheHTML
page.
ExampleNIPOODINTemplatefile
<html>
<head><title>NIPO Software Flash example</title>
<script type="text/javascript">
function SendDataToJS(FlashAnswer){
//
alert(FlashAnswer);
document.getElementsByName('odinanswer0')[0].value = FlashAnswer[0];
document.getElementsByName('odinanswer1')[0].value = FlashAnswer[1];
document.getElementById("odinbuttonOK").style.visibility = "visible";
}
</script>
</head>
<body><div id="ODINSERVLETINSERTIONPOINT"></div>
</body>
</html>

NIPOODINQuestionnaireUsingAdobeFlash
TheNIPOODINquestionnairedefinesthespecificquestion,whereweuseinlineHTMLtosetspecific
controlsonitemsoftheHTMLpagewhichshouldnotbeshown.Thequestionnumbermustmatchthe
templateasdefinedinthepreviousparagraph.
TheHTMLgeneratedbytheNIPOFieldworkSystemshouldbetotallyhiddentopreventinteractionbythe
user.ThesefieldswillbefilledinbytheJavaScriptfunctions.Forthisreasontheactualfields,thecategory
texts,theclearbuttonandthebackbuttonshouldbehidden.OncetheAdobeFlashapplicationhas
activatedtheJavaScriptfunction,theJavaScriptfunctionwillenabletheOKbuttonsotherespondentcan
proceed.
PleasenotethatthefontnumberasgeneratedintheHTMLdoesnotmatchthefontnumberintheNIPO
ODINsyntax,butisrenumberedbasedonthetotalnumberofdefinedfonts.Intheexamplebelowyoucan
seethat*FONT 99isdefined,whereasthestyleforodinfontnumber-1shouldbesettohidden.
Betweenthe<OBJECT>tagsyouwillneedtospecifytheAdobeFlashSWFfile.
ExampleNIPOODINQuestionnaire
*FONT 0 "10 verdana"
*FONT 99 "10 verdana (255 255 255,255 255 255)"
*Q 10 *FORM
<<<!<OBJECT> DEFINE YOUR SWF
<<<!<style>.odinnumeric
<<<!<style>.odinalpha
<<<!<style>.odinfontnumber-1
<<<!<style>.odinbuttonCLEAR
<<<!<style>.odinbuttonOK

HERE </OBJECT> !>>>


{visibility:hidden; display: none;}</style>!>>>
{visibility:hidden; display: none;}</style>!>>>
{visibility:hidden; display: none;}</style>!>>>
{visibility:hidden; display: none;}</style>!>>>
{visibility:hidden }</style>!>>>

*FONT 99
1: example numerical field *NUMBER L4
2: example alphanumerical field *ALPHA L4
*NOTBACK

Page338

AdvancedScripting

AdobeFlashApplication
Ascanbedeductedfromthepreviousparagraphs,theAdobeFlashapplicationmustmakeacalltothe
JavaScriptfunctionSendDataToJS():
SendDataToJS([123,'ABC']);
Inthepreviousexamplesweassumedaquestionwhere2itemswereneeded,sothecalltothefunction
shouldprovideanarrayofelements.Iflessormoreitemsareused,allitemsneedtobeadjusted
accordingly.
RefertoyourAdobeFlashdocumentationforActionScript2orActionScript3forinformationonhowto
callJavascriptfunctionsfromwithinAdobeFlash.

AdditionalRemarks
TheexamplesshowninthisdocumentaretheveryminimalthingsneededtouseanAdobeFlash
applicationwithoutputtobeusedinthescript.Itisrecommendedtouse*NOTBACKinthescripttomake
suretherespondentwillnotbeforcedtostarttheAdobeFlashapplicationagain.
ChangestotheJavaScriptcanbemadetocheckifthevaluesreturnedbytheAdobeFlashapplicationare
correctaccordingtotheNIPOODINquestion.ItisevenpossibletocreateJavaScriptfunctionswhichcheck
previouslyfilledinanswersandsendthemtoaAdobeFlashapplication,whichwouldallowgoingbackand
forthinthequestionnaire,butthiswillrequiresomeadditionalcodeandamethodtopassinformationto
theAdobeFlashapplication.

Page339

FileStructuresandDatabaseTables
DataFiles
WiththeexceptionoftheBfile(bitmapopenanswers),theDfile(suspendimages)andthePfile(Picture
Library),allfilesinNIPOODINareeitherinASCII/ANSIformat,formattedaccordingtotheCodePageused
bythecentralsystem,orinUnicode.Allfileshaveafixedfilestructure.Thesestructuresaredescribedin
thissection.

ClosedAnswersFile(Ufile)
Theclosedanswersfile(Ufile)containstheanswerstoallclosedquestions.Foreachinterview
(respondent)onerecord(line)iswritteninthefile.Thelengthoftherecordsisfixed,anddependingonthe
highestpositionusedintheNIPOODINquestionnaire.Thefirstpositions(fields)ineachrecordarereserved
forthesystem.
Recorddescriptionoftheclosedanswersfile
Position

length

Description

18

interviewnumber

910

subquestionnairenumber

1115

interviewtimeinseconds

1619

numberofscreensshown

20

interruptindication:
1=interviewbrokenoff
2=appointmentmade

2128

interviewernumber

2940

12

dateandtimelastcontact

41

0(zero)

4248

ODIN/OdDemonversionnumber

4953

Idletime

5455

Weeknumber
(CASIonly)

5657

Weekversionnumber
(CASIonly)

5859

Uniquefamilymembernumber
(CASIonly)

60

Channel:
1=CATI
2=CAWI(Web)
3=CAPI
4=CASI(Panel)

61...

answers

Page341

FileStructuresandDatabaseTables

Openanswersfile(Ofile)
Theopenendedanswersfile(Ofile)containstheanswerstoallopenendedandsemiopenquestions.For
eachopenanswerthatisactuallyaskedtotherespondent,onerecord(line)iswritteninthefilesoseveral
recordsisstoredforeachinterview(respondent).Theamountofrecordsdependsontheroutingandthe
numberofopenendedquestionsinthequestionnaire.Thelengthoftherecordsisunfixed,andcanbeas
longastheopenanswerthatwasentered.Thefirstpositions(fields)ineachrecordarereservedforthe
system.
Recorddescriptionoftheopenanswersfile(defaultformat)
position

Length

Description

18

interviewnumber

910

subquestionnairenumber

1115

startingpositionanswerfieldinUfile

1618

lengthreservedanswerfieldinUfile

19...

(dependingon1618)

correspondinganswercodenumber(orblank)

(dependingon19,etc.)

textofopenanswer

Incaseswheretheamountofpositionsusedforasingleopenendedanswerislargerthan999,theOfile
recordformatisextended:
Recorddescriptionoftheopenanswersfile(extendedformat)
position

Length

Description

18

interviewnumber

910

subquestionnairenumber

11

Contains*toindicatetherecordisextended

1221

10

startingpositionanswerfieldinUfile

2231

10

lengthreservedanswerfieldinUfile

32...

(dependingon2231)

correspondinganswercodenumber(orblank)

(dependingon32,etc.)

textofopenanswer

NotethattheextendedOfileformatmayberecognizedbyastarinposition11.

StoringdatainUnicode
BydefaultthedataisstoredinplainASCII.WhenUnicodedatafilesareneededforseparatesurveys,this
canbeconfiguredinthefilesurveyconfigurationfile:
[Config]
UnicodeData=Y

Ifadatafileisalreadypresent,thissettingisignored:filesarestoredintheformatthefilewasoriginally
createdin.
When*ALPHAisusedinaquestionnaireandtherespondentusesaUnicodelanguage(i.e.aUnicode
charactersetisused),theUfilemustbewritteninUnicode.
When*OPENisusedinaquestionnaireandtherespondentusesaUnicodelanguage(i.e.aUnicode
charactersetisused),theOfilemustbewritteninUnicode.

Page342

FileStructuresandDatabaseTables

TelephoneFile(Tfile)
TheSamplefile(telephonefileorTfile)isthefilecontainingtelephonenumbersandaddressesofthe
(targeted)respondentsforNIPOCATI.

Thefollowingrulesapplytotelephonefiles:
Eachrespondentisstoredinaseparaterecord.
Therecordlengthofallrecordsshouldbethesame(noemptylines)
Theminimumrecordlengthis135positions.
Priortouse,positions1819and2021mustbesettoavalue(0000foraregularavailablerecord).
TfilesdonotsupportUnicode.

Recorddescriptionofthetelephonefile
Position

length

Description

117

17

Telephonenumber(areacodeandsubscribersnumber)

1819

Responsecode.SeeOverviewOfResponseCodes(onpage353)fordetails.

2021

Numberofcontacts

2223

Responsecodeoflastcontact

2435

12

Dateandtimeoflastcontact

3643

Interviewernumberoflastcontact

4445

Responsecodeoflastbutonecontact

4647

Responsecodeofsecondlastcontact

4849

Responsecodeofthirdlastcontact

5051

Responsecodeoffourthlastcontact

5259

Interviewnumber

6071

12

AppointedtimeorredialtimeintheformatYYYYMMDDhhmm

72101

30

Nameofappointedrespondent

102

Indicationtoshowsecondtelephonenumber
(1=showsecondtelephonenumber
2=usesecondtelephonenumberbydefault)

103119

17

Secondtelephonenumber(areacodeandsubscribersnumber)

120127

Timeintervalforcontactingrespondent

128133

Reservedforfutureuse

134

Indicateswhetherthe2 telephonenumberwasdialedinsteadofthefirst

nd

1=secondnumberwasused
135

Numberofaddressfieldstobeshownonscreen
(1=showfirstfieldonly,
2=showfirstandsecondfield,etc.)

136180

45

Firstaddressfield

(forexamplename)

181215

35

Secondaddressfield(forexamplestreetandnumber)

216250

35

Thirdaddressfield (forexamplezipcodeandresidence)

251285

35

Fourthaddressfield(forexampledepartment,country)

286...

Availableforotherdata

ForOmnibussurveys,thefileformatissomewhatdifferentstartingfromposition251:

Page343

FileStructuresandDatabaseTables

RecorddescriptionofthetelephonefileincaseofOmnibus
Position

length

Description

251490

240

StratificationdataforeachsubsurveyinaCATIomnibus
(20positionspersubsurvey,maximum12subsurveys)

251257

Nameoffirstsubsurvey

258

Containsa1iffirstsubsurveyissuccessful

259270

12

Freeforstratificationfirstsubsurvey

271500
501

Samefor2nd,3rdetceterasubsurveys

Availableforotherdata

Ifrequired,interviewnumbersmaybecreatedinadvance.Thesenumberswillbeusedasinterviewnumber
inalldatafilesbelongingtothesurvey.Makesurethenumbersareuniquevalues.Ifaninterviewnumberis
notuniqueitisskipped.Interviewnumbersneedtoconsistsof8digits(leadingzerosarerequired).

ContactFile(Cfile)
Forallcontactattempts,arecordisstoredinthecontactfile(Cfile).

Page344

FileStructuresandDatabaseTables

RecorddescriptionoftheContactfile
Position

length

Description

18

Interviewernumber

916

Dateofcontact(orcontactattempt)(format:YYYYMMDD)

1720

Timeofcontact(orcontactattempt)(format:uumm)

2128

Interviewnumber

2930

Responsecode(spacemeansnosamplefileavailable).SeeOverviewOfResponseCodes(onpage
353)fordetails.

3132

Contactnumber

3338

Totaltimeinseconds.
ThetotaltimebetweenthemomenttheNIPOCATI/WebMastersendsasamplerecordtothe
interviewerworkstationuntilafterfinallyreceivingthesamplerecordbackagainfromthe
workstation.Thisincludesinterviewtime,introductiontimeandedittime,
butexcludeswaitingtime.

3944

Introductiontimeinseconds
TimebetweenthemomenttheNIPOCATI/WebMastersendsasamplerecordtotheinterviewer
workstationandtheinterviewerpressingStartorconfirminganonresponseontheintroduction
screen.
(Alsoincludedinthetotaltime)

4550

Areacode(thefirst6digitsoftelephonenumber).

5156

Telephonetimeinseconds.Thisiseither:
Theaccumulatedstopwatchtime.ThestopwatchistoggledbytheinterviewerbypressingF10
duringtheinterview.Thestopwatchstopsautomaticallyattheendoftheinterview(before
editingopenendedanswers).Thisfeaturemustbeenabledinthesurveyconfiguration.Theactual
telephonecontact(call)timewiththerespondent(onlyavailableifusingadialer,asreportedby
thedialer).Notethatthetelephonetimemaydifferfromthetotaltime.

5760

Numberofscreensshowntointerviewer.Notethatwhentheinterviewergoesbackinthe
questionnaireandfollowsanotherrouting,thenumberofscreenwillbereset.

6166

Editopentimeinseconds.Thisisthetimeittooktheinterviewertoedittheopenendedanswers
attheendoftheinterview(alsoincludedintotaltime).

6772

Waitingtime,inseconds.TimespentbytheNIPOCATI/WebMastertosearchanewsample
recordandthedialerinpower/predictivemode(ifany)tomakecallattempts(waitingtimemay
besignificantlyhigher).

7379

Omnibussurveyname,ifquestionnaireispartofanomnibussurvey.

8081

Channel:
01=CATI
02=CAWI(Web)
03=CAPI
04=CASI(Panel)

8293

12

AppointmentTime(ifonewasmade)

Note:
InanomnibusaseparaterecordwillbewrittenintheContact.Logfileforeachsubquestionnaire,
withtheinterviewtimeandthenumberofscreensforthatspecificsubquestionnaire.Butonlyone
Cfilewillbecreatedforanomnibus,containingtheaccumulatedinterviewtimeandnumberof
screensforallsubquestionnaires.

Page345

FileStructuresandDatabaseTables

Stratificationfile(Sfile)
Astratificationfile(Sfile)isusedtodividethesampleintoseveralstrataorsubsamples,inwhichalimited
numberofinterviewsmustberealized.StratificationisonlypossibleifaTfileorSampletableisused.Each
stratummustbedefinedinoneseparaterecordwiththefollowingformat:
stratum field offset: characteristic (limit) description
SeeStratification(Quota)fordetailsaboutstratification.

Databasetables
Sampletable(SeparateTableforEachSurvey)
BydefaultforeachsurveyintheNIPOFieldworkSystemaseparateSampletableisused.Thedefaultname
fortheSampletableisSampleName,whereNameisthesurveyname(forinstance:theSampletablefor
surveyA1234iscalledSampleA1234).TheSampletablecanalsobeanASCIIfile(Tfile),seeTelephone
File(Tfile)(onpage343)fordetails.

Page346

FileStructuresandDatabaseTables

FieldnamesintheSampletable(separatetableforeachsurvey)
Fieldname

PosinT
file

Description

Type

Length

NOTNULL

AppointmentName

72L30

Nameofrespondentthatwillbe
calledatappointmenttime

nvar

30

Timetheappointmentshouldbe
redistributed

date

AppointmentTime

60L12

char

time

CallIntervalBegin

Addressshouldneverbedistributed Var
beforethistime
Char
(4digits,where1500standsfor3
oclockintheafternoon)

CallIntervalEnd

Addressshouldneverbedistributed Var
afterthistime
Char
(4digits,where2100standsfor9
oclockintheevening)

Channel

Channel,

int

Dateandtimeoflastcontact
(attempt).

Date

Firstaddressinformationfield(for
examplename)

nvar

Secondaddressinformationfield
(forexampleaddress)

nvar

Thirdaddressinformationfield(for
exampletown)

nvar

where:
1=CATI
2=CAWI(Web)
3=CAPI
4=CASI(Panel)
99=Samplerecordsentas
anonymouswebinterview.
ContactTime

DisplayField1

DisplayField2

DisplayField3

DisplayField4

24L12
136L45
181L35
216L35
251L35

Email

Time
45

35

35

Fourthaddressinformationfield(for nvar
examplecountry,zipcodeetcetera) char

35

EmailaddressforCAWIrecords

50

215

char

char

char

var
char

ExtraData

GroupID

286

Leftforcompatibilitywithsurveys
usingTfiles.Onlyavailableif
configuredintheNIPOCATI/Web
Master.

Var
Char

UseGroupIdtodistributecertain Var
addressesonlytocertain
Char
interviewers,forinstancetomatch
thelanguageoftherespondentand
theinterviewer.

Page347

FileStructuresandDatabaseTables

Fieldname

PosinT
file

Description

Type

Theuniqueidentifier,thatiscreated var
foreachrespondentintheSample char
table,whensendinganon
anonymousmail(blankfor
annymoussurveys).

ID

Length

NOTNULL

50

TheIDshouldbeunique,notonly
withintheSampletable,butalso
withintheEmailManagemenent
table.Canautomaticallybe
generatedbytheFieldwork
Manager.
Indicator2ndNumber

120L1

Lastdialednumber:

int

1=secondnumber
blank=only1numberavailable/no
contact
Channelusedwheninitially
importingthesamplerecord,

InitialChannel

Int

where:
1=CATI
2=CAWI(Web)
3=CAPI
4=CASI(Panel)
InterviewerNumber

36L8

Interviewernumberofthe
interviewerofthelastcontact
attempt.

int

52L8

Uniqueidentifierwithinthesample
andallrelateddatafiles

int

NOT NULL

Languageofrespondent

var

InterviewNumber
Language

char
(forsendingmailand/ormulti
languagequestionnaires).Thisfield
isalsoautomaticallyupdatedbythe
questionnaire(a.o.the*LANGUAGE
scriptcommand).
1

20L2

Numberofcontactattempts,
includingnotathome,
appointments,suspended
interviews,etcetera.

int

NOT NULL

ResponseCode

18L2

2digitresponsecode.SeeOverview int
OfResponseCodes(onpage353)
fordetails.

NOT NULL

SecondPhoneNumber

103L17

17

NumberOfContacts

Alternativephonenumber

Var
Char

ShowDisplayFields

135

Numberofdisplayfieldstoshow
0=Nodisplayfields
1=ShowonlyDisplayField1
2=ShowDisplayField1+

DisplayField2

3=ShowDisplayField1+

DisplayField2+

DisplayField3

4=Showalldisplayfields

Page348

int

FileStructuresandDatabaseTables

Fieldname

PosinT
file

Description

Type

Length

NOTNULL

ShowSecondPhoneNumber

102L1

0=Hidesecondphonenumber

int

int

NOT NULL

1=Showsecondphonenumber
2=Usesecondphonenumberby
default
4

Status,where

Status

0=Available(CATI)
1=Available(Web)
2=Notsuccessful/Refusal
3=Completed
4=CATIappointment
5=CATIwaiting(previouslyWWin
ResponseCodefield)
6=Out,distributedforNIPOCATI
andNIPOCAWI
7=SwitchedtoNIPOCAWI(butnot
yetsent)
8=laimedbyNIPOFMSClientfor
editing
Image
SuspendImage,containingallthe
answersandtheroutingofprevious
sessions.

SuspendImage

SystemData

22L2

The5previousresponsecodes

10

Int
Interviewernumbertobeused
wheninterviewerrequestedto
followuptheinterview.Onlyusedif
SameInterviewerAppointmentwas
switchedonforthissurvey.

TelephonenumberforCATIrecords

17

10

Var
Char

44L2
46L2
48L2
50L2
TargetInterviewer

TelephoneNumber

1L17

Var
Char

TimeDifference

Timedifferenceinminutesbetween Var
respondentandthecallcenter.
Char

Note:
Foranonymoussurveysorinvitationstosurveysonananonymousbasis,anewsamplerecordis
createdforeverynewentry.NotethatAnonymoussurveysmaybetriggeredindefinitely.

UsingCustomSampleTableFields
NewcustomfieldsmaybecreatedbytheFieldworkManagerusingtheNIPOFMSonly.

Page349

FileStructuresandDatabaseTables

AllfieldsthatarecreatedbytheFieldworkManagercanberetrievedintheNIPOODINquestionnaireusing
the*SAMPLEDATAcommand.Definethefieldnameswith*SAMPLEDATAasvariablesinyour
questionnaireandthevariablewillbefilledautomaticallywiththecontentsofthedatabasefield(ifany)
whenstartingtheinterview.Whentheinterviewisended(eitherbyappointment,suspensionorby
completion)thedatabasefieldisupdatedwiththecurrentcontentsofthevariable.Notethatsampletable
fieldsareonlyupdateduponterminationneverduringtheinterview.Whenusingthe*STRATcommand
withinaNIPOODINquestionnaire,checksallfieldsinthedatabasedefinedby*SAMPLEDATAasifalready
updated.
UsingSystemFieldsintheSampleTable
AllsystemfieldsintheSampletablesmayonlybereferredtobytheirsystemnames,notbytheiractual
fieldnames.Anyattempttoaccessthembytheactualfieldnameresultsinanerrormessage.
SettingnamesandFieldnamesinSampletable
FieldnameinSampletable

FieldnameinNIPOODINScript

AppointmentName

TTAppointmentName

AppointmentTime

TTAppointmentTime

CallIntervalBegin

TTCallIntervalBegin

CallIntervalEnd

TTCallIntervalEnd

Channel

TTChannel

ContactTime

TTContactTime

DisplayField1

TTDisplayField1

DisplayField2

TTDisplayField2

DisplayField3

TTDisplayField3

DisplayField4

TTDisplayField4

Email

TTRespEmail

ExtraData

TTExtraData

GroupID

TTGroupID

ID

TTID

Indicator2ndNumber

TTIndicator2ndNumber

InterviewerNumber

TTInterviewerNumber

InterviewNumber

TTInterviewNumber

Language

TTLanguage

NumberOfContacts

TTNumberOfContacts

ResponseCode

TTStatusCode

SecondPhoneNumber

TTSecondPhoneNumber

ShowDisplayFields

TTShowDisplayFields

ShowSecondPhoneNumber

TTShowSecondPhoneNumber

Status

TTAvailabilityCode

SystemData

TTSystemData

TargetInterviewer

TTTargetInterviewer

TelephoneNumber

TTTelephoneNumber

TimeDifference

TTTimeDifference

Page350

FileStructuresandDatabaseTables

Note:
ThefieldsID,Status,SystemData,Language,ChannelandResponseCodearesystem
fieldsandmaybereadbutmaynotbechangedbytheNIPOODINquestionnaire.TheLanguage
fieldisautomaticallyupdatedwhenswitchingbetween*LANGUAGEsections.TheResponseCode
fieldisindirectlymanagedbythecommands*NONRESP,*ABORT,*CUT,*END,*APPOINTand
*ENDNGB.

OmnibusorSubSampleTable(SeparateTableforEachSurvey)
Separatetableforeachomnibussurvey,onlyincombinationwithSampletable.ForusewithintheNIPO
FieldworkSystemonly.
ThedefaultnamefortheomnibusorsubsampletableisSubName,whereNameisthesurveyname(for
instance:theomnibustableforsurveyA1234iscalledSubA1234).
InthistabletheNIPOFieldworkSystemstoresthestratificationdataforeachsubsurveyinanomnibus.
FieldnamesintheOmnibusTable
Fieldname

InterviewNumber

Description

Type

Minimum
length

NOTNULL

Interviewnumber

Integer

NOT NULL

Subquestionnairename

Text

Subquestionnairestatus:

Integer

12

(ReferstoarecordintheSampletable)
QuestionnaireName
Success

1=successful
otherisunsuccessful
STData

Extradatafieldtostorestratificationfieldsfor varchar
subquestionnaires.Onlyavailableif
configuredattheNIPOCATI/WebMaster.

UsingCustomOmnibusTableFields
NewcustomfieldsmaybecreatedbytheFieldworkManagerusingtheNIPOFMSonly.
AllfieldsthatarecreatedbytheFieldworkManagercanberetrievedintheNIPOODINquestionnaireusing
the*SAMPLEDATAcommand.Definethefieldnameswith*SAMPLEDATAasvariablesinyour
questionnaireandthevariablewillbefilledautomaticallywiththecontentsofthedatabasefield(ifany)
whenstartingtheinterview.Whentheinterviewisended(eitherbyappointment,suspensionorby
completion)thedatabasefieldisupdatedwiththecurrentcontentsofthevariable.Notethatsampletable
fieldsareonlyupdateduponterminationneverduringtheinterview.Whenusingthe*STRATcommand
withinaNIPOODINquestionnaire,checksallfieldsinthedatabasedefinedby*SAMPLEDATAasifalready
updated.
UsingSystemFieldsintheOmnibusTable
AllsystemfieldsintheOmnibustablesmayonlybereferredtobytheirsystemnames,notbytheiractual
fieldnames.Anyattempttoaccessthembytheactualfieldnameresultsinanerrormessage.

Page351

FileStructuresandDatabaseTables

SettingnamesandFieldnamesinOmnibustable
SettingnameinNIPOCAPIMaster

FieldnameinSampletable

STSuccess

Success

STQuestionnaireName

QuestionnaireName

STInterviewNumber

InterviewNumber

STData

Data

NIPOCAPIClientAddressTable
InNIPOODINusingtheNIPOCAPISystemyoucanrefertodatabasefieldsintheaddresstableusing
*SAMPLEDATAinexactlythesamemanneraswiththeNIPOFieldworkSystem.However,thefieldnames
usedwithinNIPOODINarealittledifferentthanthenamesusedwithinthedatabasefielditself.Belowisan
overviewofthefieldmappings.
Notes:
IntheNIPOCAPIClienttheuseofaddressfileshasbecomeobsolete.Positionreferencesnowmap
directlytoaddressfieldsinthedatabase.Positionshavebeenlistedforbackwardscompatibility
purposes.Notethatifyoutrytostoreinformationinpositionsoverlappingtwofields,thedatawill
betruncated.
Inadditiontothefieldslistedhere,*SAMPLEDATAmayalsoreferencecustomfieldsthathavebeen
addedtotheAddresstableintheNIPOCAPISystem.ConsultyourNIPOCAPISystemadministrator
fordetails.
AddressfieldmappingsintheNIPOCAPISystem
DatabasefieldinNIPOCAPIClient

Position

Fieldreferenceusing*SAMPLEDATA

TTAddressNumber

5L8

AddressNumber

TTAppointmentTime

734L12

AppointmentTimeStamp

TTClusterNumber

1L4

ClusterNumber

TTDisplayField1

147L30

Name

TTDisplayField2

177L30

Address

TTDisplayField3

215L30

Town

TTDisplayField4

117L30

AddressComment

TTInterviewerNumber

19L8

InterviewerID

TTMainStatus

17L2

AddressStatus

TTNumberOfContacts

691L2

ContactCount

TTTelephoneNumber

253L17

TelephoneNumber

TTZipCode1

207L8

Zipcode1

TTZipCode2

245L8

Zipcode2

Page352

FileStructuresandDatabaseTables

Status,ResponseCodes,TerminateCodes
StatusFieldinSurveyTable
OverviewofStatusfieldinSurveytable
Code

Description

Inactive.SurveycannotbestartedbyNIPOCATI/WebMaster.

Active:SurveycanbestartedbyNIPOCATI/WebMaster.

Running:SurveyhasbeenstartedbyNIPOCATI/WebMaster.

Pause:SurveyisabouttobereloadedbyNIPOCATI/WebMaster.

StatusfieldinSampleTable
OverviewofStatusfieldinSampletable
Value

Description

Available(CATI)

Available(Web)

Notsuccessful/Refusal

Completed

CATIappointment

CATIwaiting

Out,distributedtoCATI/WebClient

ChannelandInitialChannelFieldinSampleTable
OverviewofChannel/InitialChannelfieldinSampletable
Code

Description

CATI

CAWI(Web)

CAPI

CASI(Panel)

99

Samplerecordsentasanonymouswebinterview

OverviewofResponseCodes
Thefollowingoverviewshowsthedefaultresponsecodes.ResponsecodescanbesetintheNIPOCATI/
WebMasterconfigurationorintheSurveyconfigurationfile.Apartfromthedescription,responsecodes
00,1830and9199cannotbechanged.

Page353

FileStructuresandDatabaseTables

Defaultresponsecodes
Responsecode Remark

00

SYS

01

Textshownonthescreen

Specification

Initial/notused
Notathome

Callbacktimein
minutes(NIPOCATI
only)

AVAIL

240

Noanswer
02

Answerdevice

AVAIL

240

03

Busy

AVAIL

60

04

Informationtone

STOP

05

Nohouseatthisaddress/moved

STOP

APPOINT

appointmenttime

Wrongtelephonenumber
06

Makeanappointment

(15minutes)
07

Definiteappointment

APPOINT

appointmenttime
(15minutes)

08

Refusal

REFUSAL

09

#S

Refusal(busy)

REFUSAL

10

#S

Refusal(notbytelephone)

REFUSAL

11

#F

Refusal(ill/notpresent)

REFUSAL

12

#S

Refusal(noapproval)

REFUSAL

13

Nocompanyatthisaddress

STOP

14

Inactivecompany

STOP

15

Companyterminated

STOP

Outsidetargetgroup

STOP

16
17

#S

Alreadyquestioned

STOP

18

SYS

Successful

WRITE

19

SYS

*ENDNGB(inquestionnaire)

WRITE

20

SYS

Systemerror

(orcurrentlyrunning)
21

SYS

Stratificationmaximumreached

22

SYS

*ABORT (inquestionnaire)

23

SYS

Interviewbrokenoff

Tobehandledbyspecialinterviewer

24
25

SYS

Blockedbyblacklist

26

SYS

Duplicateinterviewnumber

27

SYS

Usedbyothersurvey

28

SYS

Abandonedcall

240

29

SYS

Interviewsuspended(NIPOCAWIonly)

30

Interviewernotime

Freeforuse,tobeconfiguredintheSurvey
configuration.

Successful(NIPOCAPIonly)

Reservedforsystem.

31to90
90
9195

Page354

SYS

FileStructuresandDatabaseTables

Responsecode Remark

Textshownonthescreen

Specification

Callbacktimein
minutes(NIPOCATI
only)

96

SYS

Interviewtobecontinued

98

SYS

Systemerror(NIPOCAPIonly)

99

SYS

Initial,alreadysenttointerviewerworkstation

(NIPOCAPIonly)

SpecificationofResponseCodes
ExplanationRemarkandSpecificationcolumn
Indication

Meansresponsecode...

SYS

Cannotbechanged,thesearesystemresponsecodesthatcannotbeshownonthescreen.

#F

Willnotleadtoafinalresponsecode,soaddresswillreappear

#S

Defaultnotshownonthescreen

Isafixedappointmentcode,onlythetextmaybealtered

Onlyshownincaseofbusinessaddress

Cannotbeshownonthescreen,theinterviewerhowevermayenterthiscode

APPOINT

Appointmentscreenwillpopup

AVAIL

Addressstillavailableforinterviewing

REFUSAL

Interviewmarkedasrefusal,notavailableforinterviewing

STOP

Interviewnotavailableforinterviewing

SWITCH

SwitchfromNIPOCATIClienttoWebClient

WRITE

Interviewisstored

TerminateCodes
IntheWebClientthesystemusesTerminateCodevaluestorelocaterespondents,basedonthe
ResponseCodevalue.Negativecodenumbersareusedforthesystemcodes.

Page355

FileStructuresandDatabaseTables

OverviewofTerminatecodes
Responsecode

Description

1 - 99

ResponsecodevalueasstoredbyNIPOODINquestionnaire.

Defaultrelocation,iftheterminatecodewasnotspecifiedinRelocations
tableforthissurvey.

-1

Alreadydone/interviewwasalreadycompleted

-2

Errorinquestionnaire/RuntimeError

-3

JavaAppletError/NIPOOdinServletError

-4

Currentlynotused

-5

Mastererror

-6

Currentlynotused

-7

Licenceerror(morewebconnectionsthanNIPOSoftwarelicenceallows)

-8

Onlyoneinterviewatatimeallowed,interviewended
(RespondentopensnewWindowinBrowserduringNIPOWebInterviewing).

-9

Currentlynotused

-10

Switchsurvey

-11

Pause

-12

InvalidanswerornoreactionfromNIPOODINDemon

-13

Noaddressesavailabletowriteresponsedata

Page356

OverviewofCommandsandSystem
Variables
ListingofCommandsperSystem

Page357

OverviewofCommandsandSystemVariables

Command

NIPOCATI
Stand

NIPOCATI NIPOCAPI

NIPO
CAWI

Alone
**

*?

*ABORT

*ADDRESS

*ALPHA(questiontype)

*ALPHA(in*FORMquestion)

*APPOINT
*AUTO

*AUTO(in*CONJ)

*BACK

*BMP

*BUT

*CENTRE

*CODES

*CONJ ... *ENDCONJ

*CONTROL

*COPY

*COUNT

*CUT

*DATE

*DELAY

*DTIME

*DUMMY

*END

*END(in*REPEATloop)

*ENDNGB

*ENDST

*EXCLUDE

*FIELD

*FONT

*FORM

*FORMAT

*GOSUB

*GOTO

*GRID

*GROUP

*HEADING

*HELP(definition)

*HELP(questionoption)

*IF

Page358

OverviewofCommandsandSystemVariables

Command

NIPOCATI
Stand

NIPOCATI NIPOCAPI

NIPO
CAWI

Alone
**

*IF(questionoption)

*IF(in*CONJ)

*INCLUDE

*INFO

*INIT

*INSTRUC
*INTRO

*INV

*INV(in*CONJ)

*LABEL

*LANGUAGE

*LEFT

*LEFT(in*CONJ)

*LINE

*LIST

*LIST(questionoption)

*LIST(in*CONJ)

*MAX

*MERGE

*MIN

*MIN(in*CONJ)

*MOVA

*MOVU

*MULTI

*NCLS

*NEW

*NEWCOLUMN

*NEXT

*NEXTRECORD

*NMUL

*NOCON

*NOENTER

*NOHIDE

*NON

*NONRESP

*NOTBACK

*NP(in*CONJ)

*NUMBER(questiontype)

Page359

OverviewofCommandsandSystemVariables

Command

NIPOCATI
Stand

NIPOCATI NIPOCAPI

NIPO
CAWI

Alone
**

*NUMBER(in*FORMquestion)

*OPEN(questiontype)

*OPEN (codesoption)

*ORDER

*PAGE

*PICT(questionoption)

*PICT(codesoption)

*PICT(in*CONJ)

*PLAY

*PNW

*PUT

*QUESTION

*RANDOM

*RANGE

*READ

*REC

*REPEAT(questionoption)

*REPEAT ...*ENDREP

*REPNUM

*RETURN

*RIGHT

*RIGHT(in*CONJ)

*ROT

*ROT(in*CONJ)

*RUN

*SAMPLEDATA

*SAVE

*SCALE(questiontype)

*SCALE (in*FORMquestion)

*SCALERANGE

*SHOWDOCUMENT
*SIZE

*SKIP
*SQLADD

*SQLGET

*SQLPUT

*STOPAUTO

*STOPRANDOM

Page360

OverviewofCommandsandSystemVariables

Command

NIPOCATI
Stand

NIPOCATI NIPOCAPI

NIPO
CAWI

Alone
**

*STRAT

*SUBROUTINE ... *ENDSUB

*SWILANG

*TAB

*TABLE

*TEXTVARS

*TIME

*USELIST

*VAR

*VARS

*VCONTROL

*WAITCR
*WAITPLAY

*WRITE

<<<!...!>>>

ListingofSystemVariablesperChannel
ForafulldescriptionofthesevariablesseeSystemVariablesfordetails.

Page361

OverviewofCommandsandSystemVariables

Systemvariable

NIPOCATIStand
Alone

NIPOCATI

NIPOCAPI

NIPOCAWI

?R

_CAPI_

_CASI_

_CATI_

_CAWI_

_CHANNEL

_ISCAPI

_ISCASI

_ISCATI

_ISCAWI

0-9

AGENTNAME

BROWSERUSERAGENT
CMDLINE
CONJTXT[n]
INPUTDATA

JAVASCRIPTSUPPORTED
LANGUAGE

PRETEL

RUNTYPE

STOPWATCH[1]

STOPWATCH[2]

STOPWATCH[3]

Page362

TheNIPOHTMLGenerator
TheHTMLGeneratorcanbeusedtolayoutyourNIPOODINquestionnaireinNIPOCAWIandNIPOCAPI,
usingtemplatesandstylesheets.TheNIPOHTMLGeneratorisadynamicgenerator,whichtranslatesthe
NIPOODINquestionnairescriptquestionbyquestionintoHTMLcode.TheNIPOHTMLGeneratortranslates
thevisualpartofaNIPONIPOODINscriptintoHTMLcode.ThismeansthatHTMLisgenerated"onthefly".
Eachquestionwillgothroughthegeneratoreverytimeitisdue.Thus,thegenerationofHTMLisdonelive.
ThegeneratedHTMLprovidesalmostallfunctionalityavailableforNIPOCATI,withafewexceptions.
However,typicallyaquestionnairecanbedevelopedusingtheNIPOODINScriptingLanguage,andmay
transparentlybeusedforNIPOCATI,NIPOCAWIandNIPOCAPI.
TheNIPOHTMLGeneratorisintegratedintheNIPOOdinServletthatisimplementedontheNIPOWeb
Server,intheNIPOCAPIClientandintheNIPOODINDeveloper,enablingaPreviewortestrunofNIPO
CAWIandNIPOCAPIquestionnaires.
ThischapterexplainsthistranslationandshowsyouhowtolayoutyourNIPOODINquestionnaires.
Note:
Inordertounderstandandusethefullstrengthofthesystem,experienceandknowledgeofHTML
andCSSisrequired.

SupportedHTMLstandards
AllHTMLgeneratedbytheNIPOHTMLGeneratorcompliestotheW3CHTML4.01standard.
Thismeansthatthefollowingbrowsersaresupported:

MicrosoftInternetExplorer(IE)5.5andabove.
Netscape6andabove.
Opera7.1andabove
Mozilla1.5andabove.

ObviouslythisonlyappliestothestandardgeneratedHTMLcode.ItdoesnotapplytoanyItdoesnotapply
tothecodeusedinthetemplatesandtheCSSfilessincetheNIPOHTMLGeneratoristransparentforcode
inbothfiles.

ApplyingDesigntoaSurvey
StylingintheNIPOHTMLGeneratorisdoneontwolevels:
1. TheTemplatesareHTMLpagesofyourowndesigninwhichthequestionnairerunsembedded.You
simplydefinetheentrypointforinsertion,andtheNIPOHTMLGeneratorcreatesthefullHTML
outputaccordingly.
2. TheCSSstylesheetscontrolthelookandfeelofallelementswithinthequestionnaire.Apredefined
setofclassesandselectorsareavailableforthispurpose.Thesearedescribedinthischapter.
IfnotemplatesandCSSstylingisapplied,thefactorydefaultsareused.Andtheyareveryboringindeed.

Page363

TheNIPOHTMLGenerator

DefaultandCustomTemplatesandStylesheets
Byusingtemplatesandstylesheets(CSS),itiseasytoworkwithastandardizedlayoutforevery
questionnaire,butatthesametime,itispossibletocustomizethelookofasurveycompletely,oreven
changethelookofonespecificquestionwithinaspecificsurvey.
ThelinkedtemplatesandCSSfilescanbesubdividedintofourgroups:
1. Defaulttemplates(applytoallsurveys)
2. Surveyspecifictemplates
3. DefaultCSSfiles(applytoallsurveys)
4. SurveyspecificCSSfiles
Templatesandstylesheetscanbesurveyspecific,subsurveyspecific,languagespecific,typespecific,
numberspecific,andcombinationsofthesecharacteristics.IncaseofasurveyspecifictemplateorCSS,the
subdirectorywiththenameofthesurveyintheTemplateDirectoryisscanned.Ifnoneisfound,theDefault
subdirectoryoftheCSSdirectoryisscanned.Ifthisisalsonotfound,thesystemdefaultwillbeused.
TheformatoftheTemplatefilenameis:
{SURVEY}[.S-{SUBSURVEY}][.L-{LANGUAGE}][.QNumber-{QuestionNumber}|.QType{QuestionType}].odintemplate.
Parametersbetweenaccoladesareoptional.
ForSUBSURVEYbothsubsurveyname(incaseofOmnibussurvey)andsubsurveynumber(when
using*NEWinaNIPOODINquestionnaire)arechecked.Thesearemutuallyexclusive.
ForLANGUAGEthelanguagenameasusedbytheNIPOODINquestionnaireischecked.
QuestionTypeisoneofthefollowing:
{Page|Codes|Numeric|Alpha|Open|List|Form|Scale|Line}
QuestionNumberisthequestionnumberasdefinedinthequestionnaire.Specialnumbersare-1for
unknownquestionnumbers(likeintroscreen,*PAGE,*HELP,etcetera),-2forappointmentscreens
and-3fornonresponselists.

OrderofCheckingOdintemplateFiles
ThesystemcheckallavailableNIPOODINtemplatefilesinthefollowingorderandwillstopsearchingwhen
itfindstheclosestmatchingOdintemplatefile.

Page364

TheNIPOHTMLGenerator

Orderofcheckingodintemplatesfromfirsttolast
Order

Odintemplate

{SURVEY}.S-{SUBSURVEY}.L-{LANGUAGE}.QNumber-{QuestionNumber}.odintemplate

{SURVEY}.S-{SUBSURVEY}.L-{LANGUAGE}.QType-{QuestionType}.odintemplate

{SURVEY}.S-{SUBSURVEY}.QNumber-{QuestionNumber}.odintemplate

{SURVEY}.S-{SUBSURVEY}.QType-{QuestionType}.odintemplate

{SURVEY}.L-{LANGUAGE}.QNumber-{QuestionNumber}.odintemplate

{SURVEY}.L-{LANGUAGE}.QType-{QuestionType}.odintemplate

{SURVEY}.QNumber-{QuestionNumber}.odintemplate

{SURVEY}.QType-{QuestionType}.odintemplate

{SURVEY}.S-{SUBSURVEY}.L-{LANGUAGE}.odintemplate

10

{SURVEY}.S-{SUBSURVEY}.odintemplate

11

{SURVEY}.L-{LANGUAGE}.odintemplate

12

{SURVEY}.odintemplate

13

Default.S-{SUBSURVEY}.L-{LANGUAGE}.QNumber-{QuestionNumber}.odintemplate

14

Default.S-{SUBSURVEY}.L-{LANGUAGE}.QType-{QuestionType}.odintemplate

15

Default.S-{SUBSURVEY}.QNumber-{QuestionNumber}.odintemplate

16

Default.S-{SUBSURVEY}.QType-{QuestionType}.odintemplate

17

Default.L-{LANGUAGE}.QNumber-{QuestionNumber}.odintemplate

18

Default.L-{LANGUAGE}.QType-{QuestionType}.odintemplate

19

Default.QNumber-{QuestionNumber}.odintemplate

20

Default.QType-{QuestionType}.odintemplate

21

Default.S-{SUBSURVEY}.L-{LANGUAGE}.odintemplate

22

Default.S-{SUBSURVEY}.odintemplate

23

Default.L-{LANGUAGE}.odintemplate

24

Default.odintemplate

25

Systemdefaults

Note:
ForinformationonQType,seeQuestionTypes(onpage367).
Contrarytostylesheets,thesystemloadtheclosestmatchingOdinTemplatefilethatitcanfind,
ratherthanaccumulatingallmatchingfiles.However,styleselectorsmaybechangedintemplatesas
wellasinstylesheets,soastyleintheOdinTemplatemaybeoverruledbythestylethatwas
specifiedinastylesheet.

ExampleofUsingOdintemplateFiles
Assumethefollowingtemplatefilesinuse:

Page365

TheNIPOHTMLGenerator

Default\Default.odintemplate
Default\Default.QType-Open.odintemplate
A1234\A1234.odintemplate
A1234\A1234.L-English.odintemplate
A1234\A1234.QNumber-1.odintemplate
A1234\A1234.L-English.QNumber-1.odintemplate

For*QUESTION 1 *OPEN L1inthisexampleonlythethelasttemplatefileisloaded.Allother


templatesareignored.

OrderofCheckingStylesheets
Thesystemloadsallavailablestylesheetsinthefollowingorder(andoverloadsalreadyloadedstylesby
newstyles):
Orderofcheckingstylesheetsfromfirsttolast
Order

Stylesheet

default.css

default.L-{LANGUAGE}.css

default.S-{SUBSURVEY}.css

default.S-{SUBSURVEY}.L-{LANGUAGE}.css

default.QType-{QuestionType}.css

default.QNumber-{QuestionNumber}.css

default.L-{LANGUAGE}.QType-{QuestionType}.css

default.L-{LANGUAGE}.QNumber-{QuestionNumber}.css

default.S-{SUBSURVEY}.QType-{QuestionType}.css

10

default.S-{SUBSURVEY}.QNumber-{QuestionNumber}.css

11

default.S-{SUBSURVEY}.L-{LANGUAGE}.QType-{QuestionType}.css

12

default.S-{SUBSURVEY}.L-{LANGUAGE}.QNumber-{QuestionNumber}.css

13

{SURVEY}.css

14

{SURVEY}.L-{LANGUAGE}.css

15

{SURVEY}.S-{SUBSURVEY}.css

16

{SURVEY}.S-{SUBSURVEY}.L-{LANGUAGE}.css

17

{SURVEY}.QType-{QuestionType}.css

18

{SURVEY}.QNumber-{QuestionNumber}.css

19

{SURVEY}.L-{LANGUAGE}.QType-{QuestionType}.css

20

{SURVEY}.L-{LANGUAGE}.QNumber-{QuestionNumber}.css

21

{SURVEY}.S-{SUBSURVEY}.QType-{QuestionType}.css

22

{SURVEY}.S-{SUBSURVEY}.QNumber-{QuestionNumber}.css

23

{SURVEY}.S-{SUBSURVEY}.L-{LANGUAGE}.QType-{QuestionType}.css

24

{SURVEY}.S-{SUBSURVEY}.L-{LANGUAGE}.QNumber-{QuestionNumber}.css

Note:
ForinformationonQType,seeQuestionTypes(onpage367).Stylesheetnamesarecasesensitive.
Thisisnormalbehaviorinanyweboperatedenvironment.

Page366

TheNIPOHTMLGenerator

ContrarytoOdinTemplatesthebrowserwillloadthestylesheetsoneafteranother.I.e.specificstyle
selectorsmaybedefinedmorethenonce,wherethelastdefinitionwillbeexecuted.

ExampleofUsingStylesheets
Assumethestylesheetsinuseonyourwebserver:
Default\Default.CSS
Default\Default.QType-Open.CSS
A1234\A1234.CSS}
A1234\A1234.L-English.CSS
A1234\A1234.QNumber-1.CSS
A1234\A1234.L-English.QNumber-1.CSS

InthisexampleforsurveyA1234:*QUESTION 1 *OPEN L1allthestylesheetsareloadedintheorder


fromtoptobottom.Ifstylesheetscontainattributesforthesamelayoutselectorsthelastselectorisused.
Note:
ElementsintheHTMLpagemaybechangedbyseverallayoutselectors.

QuestionTypes
AvailableQuestiontypes
Type

Odincommand

QType-Alpha

*ALPHA

QType-Codes

*CODES
*CODES with *LIST

QType-CONJCodes

codesquestionswithin
*CONJ *ENDCONJ

QType-CONJNumeric

numericquestionswithin
*CONJ *ENDCONJ

QType-CONJScale

scalequestionswithin
*CONJ *ENDCONJ

QType-Form

*FORM with *ALPHA

QType-Line

*LINE

QType-List

*NUMBER with *LIST


*ALPHA with *LIST

QType-Numeric

*NUMBER

QType-Open

*OPEN

QType-Page

*PAGE
*PNW
*QUESTIONwithouttype
*HELP

QType-Scale

*SCALE

Page367

TheNIPOHTMLGenerator

ExampleofGeneratedHTMLPage
TheNIPOHTMLGeneratortranslatestheNIPOODINQuestionnaireintoHTMLpagesquestionbyquestion.
YoucanchecktheHTMLsourcebyrightmouseclickingandthenViewsourceinyourBrowserorinthe
CAWIpreviewintheNIPOODINDeveloper5.05.
ExampleNIPOODINQuestion
*QUESTION 1 *CODES 61L1
Gender:
1: Man
2: Woman

Page368

TheNIPOHTMLGenerator

ExampleHTMLpagegeneratedbyNIPOHTMLGenerator

Page369

TheNIPOHTMLGenerator

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="Generator" content="NIPO Software OdinServlet 1.02.001, build 148">
<title>NIPO Software Web Interview System</title>
<script type="text/javascript" src="odinservletscript/odinutils.js">
<!--ignored-->
</script>
<script type="text/javascript" src="odinservletscript/odinbuttons.js">
<!--ignored-->
</script>
<script type="text/javascript" src="odinservletscript/odinquestions.js">
<!--ignored-->
</script>
<script type="text/javascript" src="odinservletscript/odincodesquestion.js">
<!--ignored-->
</script>
<style type="text/css">
<!-.odinfontnumber-0 {
font-size: 10pt;
font-family: "Verdana";
}
.odinfontnumber-1 {
font-weight: bold;
font-size: 10pt;
font-family: "Verdana";
}
.odinfontnumber-2 {
font-style: italic;
font-size: 10pt;
font-family: "Verdana";
}
.odinfontnumber-3 {
color: #0000d2;
font-size: 10pt;
font-family: "Verdana";
}
.odinfontnumber-4 {
color: #d20000;
font-size: 10pt;
font-family: "Verdana";
}
-->
</style>
<style type="text/css">
<!-.odinerroritem {
border-width: 1;
border-color: #ff0000;
border-style: dotted;
}
.odinerrormessages {
width: 100.0%;
}
.odinerrormessage {
color: #ff0000;
}
.odinerrormessage:link {
text-decoration: none;
}
.odinerrormessage:visited {
text-decoration: none;
}
.odinerrormessage:active {
text-decoration: none;
}
.odinerrormessage:hover {
text-decoration: underline;
}
-->
</style>
<style type="text/css">

Page370

TheNIPOHTMLGenerator

<!-.odincodelist-column {
vertical-align: top;
}
.odincategorycheckcolumn {
vertical-align: top;
}
.odincategorylabel {
vertical-align: top;
}
-->
</style>
<style type="text/css">
<!-.odinprogress-completed {
width: 0%;
}
.odinprogress-remaining {
width: 100%;
}
.odinprogress-completed-vertical {
height: 0%;
}
.odinprogress-remaining-vertical {
height: 100%;
}
-->
</style>
<script type="text/javascript">
<!-//================================================
// general initialisation for questions
//================================================
function OdinServletInit() {
if (document.getElementById) {
document.getElementById("odinjavascriptsupport").value = 'true';
initialiseCodesQuestion();
}
}
//-->
</script>
</head>
<body leftmargin="5" topmargin="5" marginheight="5" class="grayGradient" marginwidth="5"
bgcolor="#eeeeee">
<style type="text/css">
TD {
font-family: Arial, Helvetica;
font-size: 9pt;
height: 9px;
}

</style>
<center>
<img src="TemplateRelatedFiles/Default/bovenbalk3.gif">
<table border="0" width="772" cellpadding="1" cellspacing="0" bgcolor="#999999">}
<tbody>
<tr>
<td>
<table border="0" width="772" cellpadding="10" cellspacing="0"
bgcolor="#ffffff">
<tbody>
<tr>
<td>
<div id="ODINSERVLETINSERTIONPOINT">
<table width="100.0%" cellpadding="0" cellspacing="0" class="odinfontnumber-0 odinquestion"
id="odinquestionUS10aHJlZToz">
<tbody>
<tr>
<td dir="ltr" align="left">
<div class="odinerrormessages-holder"></div>
</td>
</tr>

Page371

TheNIPOHTMLGenerator

<tr>
<td>
<form method="post" action="http://172.31.6.87:8080/OdinServlet/Interview"
id="odinquestioninputform">
<div class="odincurrentquestion" dir="ltr" align="left">
<table width="100.0%" cellpadding="0" cellspacing="0">
<colgroup>
<col width="25.0%">
<col width="75.0%">
</colgroup>
<tbody>
<tr>
<td class="odintabstop-0" colspan="2"><span class="odinfontnumber-0">Gender
?</span></td>
</tr>
<tr>
<td class="odintabstop-0" colspan="2"><span class="odinfontnumber-0"
style="visibility: hidden; ">&nbsp;</span></td>
</tr>
<tr>
<td class="odintabstop-0 odinquestioninput" colspan="2">
<table class="odincodelist odincodelist2 odincodelist-single odincodelist-max2"
width="100.0%" cellpadding="0" cellspacing="0">
<colgroup>
<col width="100.0%">
</colgroup>
<tbody>
<tr>
<td class="odincodelist-column">
<table cellpadding="0" cellspacing="0" class="odincategory odincategory1
odincategory-odd odincategory-placement1 odincategory-placement-odd odincategory-single"
id="odincategory1-holder" onmouseout="return OdinOnCategoryHolderMouseOut(event, this,
'odincategory1');" onmouseover="return OdinOnCategoryHolderMouseOver(event, this,
'odincategory1');" onclick="return OdinOnCategoryHolderClick(event, this,
'odincategory1');" ondblclick="return OdinOnCategoryHolderDblClick(event, this,
'odincategory1');">
<tbody>
<tr>
<td class="odincategorycheckcolumn">
<input type="radio" name="odinanswer0" value="1"
class="odincategorychecksingle" id="odincategory1" onclick="return
OdinOnCategoryClick(event, this);">
</td>
<td class="odincategorylabelcolumn">
<table cellpadding="0" cellspacing="0" id="odincategorylabel1">
<tbody>
<tr>
<td class="odincategorylabel">
<label for="odincategory1"><span class="odinfontnumber-0">
Man
<br>
</span></label>
</td>
</tr>
</tbody>
</table>
</td>
<td class="odincategorymarkcolumn"></td>
</tr>
</tbody>
</table>
<table cellpadding="0" cellspacing="0" class="odincategory odincategory2
odincategory-even odincategory-placement2 odincategory-placement-even odincategory-single"
id="odincategory2-holder" onmouseout="return OdinOnCategoryHolderMouseOut(event, this,
'odincategory2');" onmouseover="return OdinOnCategoryHolderMouseOver(event, this,
'odincategory2');" onclick="return OdinOnCategoryHolderClick(event, this,
'odincategory2');" ondblclick="return OdinOnCategoryHolderDblClick(event, this,
'odincategory2');">
<tbody>
<tr>
<td class="odincategorycheckcolumn">
<input type="radio" name="odinanswer0" value="2"
class="odincategorychecksingle" id="odincategory2" onclick="return
OdinOnCategoryClick(event, this);">

Page372

TheNIPOHTMLGenerator

</td>
<td class="odincategorylabelcolumn">
<table cellpadding="0" cellspacing="0" id="odincategorylabel2">
<tbody>
<tr>
<td class="odincategorylabel">
<label for="odincategory2"><span class="odinfontnumber-0">
Woman

<br>

</span></label>
</td>
</tr>
</tbody>
</table>
</td>
<td class="odincategorymarkcolumn"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td class="odintabstop-0" colspan="2"><span class="odinfontnumber-0"
style="visibility: hidden; ">&nbsp;</span></td>
</tr>
<tr>
<td class="odintabstop-0"><img src="odinservletscript/odinservlet-spacer.gif"
alt=""></td>
<td class="odintabstop-1 odintabstop-last odintabstop-nonzero"><img
src="odinservletscript/odinservlet-spacer.gif" alt=""></td>
</tr>
</tbody>
</table>
</div>
<input type="hidden" name="odininterviewid" id="odininterviewid"
value="00000007">
<input type="hidden" name="odinquestionid" id="odinquestionid"
value="US10aHJlZToz">
<input type="hidden" name="startsurvey" id="startsurvey" value="Demo">
<input type="hidden" name="odinusejavascriptanswer" id="odinusejavascriptanswer"
value="false">
<input type="hidden" name="odinjavascriptsupport" id="odinjavascriptsupport"
value="true">
<input type="hidden" name="ValidationErrors" id="ValidationErrors" value="Unknown
error with code 0An answer is requiredInvalid answer: {0}Answer must be in range {0}Too few
categories, minimum is {0}Too many categories, maximum is {0}Maximum number of decimals is
{0}All levels must be orderedAn answer must be specifiedUnknown code: {0}Duplicate code:
{0}This category cannot be selected together with other categoriesAppointment not within
constraints{0} is not a numberSystem error, illegal formatNavigation error. Do not use BACK
button on browser, but use buttons on interview instead.">
<input type="hidden" name="odinscriptbasepath" id="odinscriptbasepath"
value="odinservletscript">
<input type="hidden" name="odinjavascriptmaximum" id="odinjavascriptmaximum"
value="9.000000000000002">
<input type="hidden" name="odinjavascriptminimum" id="odinjavascriptminimum"
value="0.0">
<input type="hidden" name="odinjavascriptnon" id="odinjavascriptnon"
value="false">
<input type="hidden" name="odinjavascriptanswer" id="odinjavascriptanswer"
value="">
<input type="hidden" name="showcategoryorder" id="showcategoryorder"
value="false">
<div class="odinbuttonpanel" dir="ltr" align="left">
<input type="submit" name="odinbuttonBACK" class="odinbutton odinbuttonBACK
odinbuttonnormal odinbuttonBACKnormal" id="odinbuttonBACK" accesskey="B" value="Back"
disabled onclick="return OdinButtonClick(event, this);" onmousedown="return
OdinButtonMouseDown(event, this);" onmouseup="return OdinButtonMouseUp(event, this);"
onmouseover="return OdinButtonMouseOver(event, this);" onmouseout="return
OdinButtonMouseOut(event, this);" onfocus="return OdinButtonFocus(event, this);"
onblur="return OdinButtonBlur(event, this);">

Page373

TheNIPOHTMLGenerator

<input type="submit" name="odinbuttonOK" class="odinbutton odinbuttonOK odinbuttonnormal


odinbuttonOKnormal" id="odinbuttonOK" value="OK" onclick="return OdinButtonClick(event,
this);" onmousedown="return OdinButtonMouseDown(event, this);" onmouseup="return
OdinButtonMouseUp(event, this);" onmouseover="return OdinButtonMouseOver(event, this);"
onmouseout="return OdinButtonMouseOut(event, this);" onfocus="return OdinButtonFocus(event,
this);" onblur="return OdinButtonBlur(event, this);">
<input type="submit" name="odinbuttonCLEAR" class="odinbutton odinbuttonCLEAR
odinbuttonnormal odinbuttonCLEARnormal" id="odinbuttonCLEAR" accesskey="l" value="Clear"
onclick="return OdinButtonClick(event, this);" onmousedown="return
OdinButtonMouseDown(event, this);" onmouseup="return OdinButtonMouseUp(event, this);"
onmouseover="return OdinButtonMouseOver(event, this);" onmouseout="return
OdinButtonMouseOut(event, this);" onfocus="return OdinButtonFocus(event, this);"
onblur="return OdinButtonBlur(event, this);">
<input type="submit" name="odinbuttonHELP" class="odinbutton odinbuttonHELP
odinbuttonnormal odinbuttonHELPnormal" id="odinbuttonHELP" accesskey="H" value="Help"
onclick="return OdinButtonClick(event, this);" onmousedown="return
OdinButtonMouseDown(event, this);" onmouseup="return OdinButtonMouseUp(event, this);"
onmouseover="return OdinButtonMouseOver(event, this);" onmouseout="return
OdinButtonMouseOut(event, this);" onfocus="return OdinButtonFocus(event, this);"
onblur="return OdinButtonBlur(event, this);">
</div>
</form>
</td>
</tr>
<tr>
<td>
<div style="text-align: right; font-family: Verdana; font-size: 9px;">
<span style="color: #000000;">Powered by NIPO </span><span style="font-style:
italic; color: #002084;">Software</span>
</div>
</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
<!-// call OdinServletInit on JavaScript enabled browsers.
OdinServletInit();
//-->
</script>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</center>
</body>
</html>

WorkingWithTemplates
TemplatefilesareinfacttemplateHTMLfiles.Theymustobeythefollowingrules:

Page374

TemplatesareplainHTMLfileswithinsertionpointstowhereNIPOODINspecificitemsareplaced.
ThetemplateneedstobeformattedaccordingtotheHTML4DTDstandardforthebestresult.
TheHTMLgeneratedbytheNIPOHTMLGeneratorisconformtheHTML4.01Strict.
Atemplatefilemusthavetheextensionodintemplate.
Atemplateneedstohaveatleasta<head>anda<body>tagwithintheHTMLpage.

TheNIPOHTMLGenerator

TemplateTags
TheNIPOHTMLGeneratortranslatesthequestionintoHTMLcodeandparsesthiscodeintotheTemplate.
WhenthisgeneratedHTMLcodeisparsedintothetemplatefile,theparserlooksforadditionaltagsthatit
canuseaspointsofinsertion.Itlooksforthefollowingtags:
1. The<head>tag
2. The<body>tag
3. Theinsertionpoint:<div id='ODINSERVLETINSERTIONPOINT'></div>
Thesethreetagsareusedinthefollowingway:Firsttheparserwillscanforthe<head>tagwhereitcan
(optionally)insertlinkstocommonCSSfilesbasedonthecurrentsurveyand/orquestionsettings.Thenit
scansthe<body>tagforthe<div>tagcontainingtheODINSERVLETINSERTIONPOINT(case
sensitive)asitsidandinsertsthequestionnaireinterfacethere.Ifthistagisnotfound,thequestionnaire
interfaceisinsertedatthe<body>tag.
Ifnotemplatecanbefound,anemptyHTMLfileiscreatedbythesystem.
Bareminimumexampleofabasictemplate
<html>
<head>
<title>Example template</title>
</head>
<body>
<div id='ODINSERVLETINSERTIONPOINT'></div>
</body>
</html>

Besidesdeterminingwheretheinterviewwillbeinserted,theparseralsoscansfor:
<DIV ID="ODINPROGRESSCOMPLETEDTEXT">and<DIV
ID="ODINPROGRESSREMAININGTEXT">.Theseinsertionpointscanbeusedtobuildaprogress
meterwithatextindicationoftheprogress.
<DIV ID="ODINSHOWDOCUMENTPOINT">istheelementwherethecommand*SHOWDOCUMENT
canopenitslink.
<DIV ID="ODINMMFILEINSERTIONPOINT">istheelementwheremultimediastartedwith
*PLAYareplaced.
<DIV ID="ODINCONJOINTPROGRESS">istheelementwherethetextprofile[n]of[m]inNIPO
Conjointisplaced(NIPOCAWIonly).
<DIV ID="POWEREDBYNIPOSOFTWARE">istheelementwheretheNIPOSoftwarecopyrightlineis
placed.
Allothertagsinthetemplatefileareignored.ThisallowsthetemplatetoanystylingaswellasJavaScript.
Note:
UnlikeXML,HTMLdoesnotallowemptytagslike<div />,soacompletetagsetwillhavetobe
presentinthetemplatefile.

InterviewProgressEstimation
Thetags<DIV ID="ODINPROGRESSCOMPLETEDTEXT">and<DIV
ID="ODINPROGRESSREMAININGTEXT>representpercentagesofcompletedandremainingquestions
respectively.Thefollowingapplies:

Page375

TheNIPOHTMLGenerator

All*DUMMYquestionsareignoredforprogressestimations.
Nullevaluatingfilterquestionsandquestionswithouttextarecountedforprogressestimations.These
canthereforebeusedtoinvisiblyinfluencetheprogressbar.
Estimationsaremadeforthenumberofquestionspresentedthrough*REPEATand*GOSUBblocks.
Theprogressbarcanalwaysjumpforwarddisproportionatelyasitissubjecttoquestionnairerouting
andfiltering.
Bydesign,theprogressbarneveractuallyreaches100%eventhoughroundingmaycauseitto
occasionallyhit100%onverylargequestionnaires.Therelocationpageisconsideredtobethe'100%
page'.Youcanoptionallyincludeacompletedprogressbaronthispage.

UsingJavaScriptinanOdintemplateFile
Ifrequired,youmayuseJavaScriptinsideanodintemplatefiletoallowrunningcustomscriptsona
question.However,youarestronglyadvisedtoalwaysplaceinlineJavaScriptbetweencommenttags:
UsinginlineJavaScriptinanodintemplatefile
<!-...[Your JavaScript scripts]
-->

SinceodintemplatefilesareprocessedbytheNIPOHTMLGenerator,thebrackets<and>areinterpreted
asstartandendofHTMLtags.Sincethesebracketsmayalsobeusedinexpressions,theymaybreakupthe
templateprocessing.PlacinginlineJavaScriptincommentsavoidsthis.

OdintemplateExample
Exampleodintemplatefile
<HTML>
<HEAD><TITLE>NIPO Software Webdemo</TITLE>
</HEAD>
<BODY bgColor=#eeeeee leftMargin=5 topMargin=5 MARGINHEIGHT="5" MARGINWIDTH="5">
<CENTER>
<img src="http://www.web-survey.com/TemplateRelatedFiles/NipoSoftware.gif">
<TABLE cellSpacing=0 cellPadding=1 width=772 bgColor=#999999 border=0>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=10 width=772 bgColor=#ffffff border=0>
<TR>
<TD>
<DIV ID="ODINSERVLETINSERTIONPOINT"></DIV>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>

WorkingwithCSS
ThefollowingparagraphscovertheCSSselectorsembeddedintheHTMLcodegeneratedbytheNIPO
HTMLGenerator.Itisessentialtoknowandunderstandthefunctionalityoftheseselectorsinordertogain
fullcontroloverthelayout.

Page376

TheNIPOHTMLGenerator

CSSFileDetails
Thefirstelementinsertedinthetemplateisa<table>tagthatholdsalltheothergeneratedelements.
Thistablegetstheclassselectorsodinfontnumber-0andodinquestionwhileitalsogetsanidwith
valueodinquestion-{question-identifier}wherequestion-identifierconsistsof
surveyname,subsurveyidentifierifapplicable,andquestionnumber.This<table>alsohasthe
followingattributesset;widthwithvalue100%,cellpadding,withvalue0andcellspacingwith
value0.
Insidethis<table>isa<tbody>withoutanyselectors,insidewhicharetwo<tr>tags,alsowithout
selectors.Thesetwo<tr>tagsbothcontainasingle<td>tag.These<td>tagsbothhaveadir
attributewithavalueofeitherrtlorltrandanalignattributewithavalueofeitherrightorleft.
Bothofthesevaluesaredeterminedbythecurrentsurvey'sBiDisetting;rtlandrightforbi
directionalreadingandltrandleftinallothercases.
Thefirstofthementioned<td>tagscontaina<div>tagwithaclassselector
odinpreviousquestion.This<div>isemptyunlessa*NCLSwasusedprevioustothecurrent
question,inwhichcaseitcontainsarepresentationofthepreviousscreen(s).
Thesecond<td>tagcontainsa<form>tag,insidewhichisa<div>tagwithaclassselector
odincurrentquesionandwhichcontainsthegeneratedHTMLforthecurrentquestion.
Finallythe<form>tagcontainsanother<div>tagwithaclassselectorodinbuttonpanelcontaining
an<input>tagforeachbuttonthatneedstobedisplayedonscreen.

CharacteristicsforQuestionElements
Ofeachquestionelementthefollowingcharacteristicscanbemanipulated:
1. Fonttype
2. Fontsize
3. Color
4. Horizontalposition(leftaligned,centered,rightaligned)
5. Verticalposition(top,centered,bottom)
6. Buttonsize
7. Buttonskin
8. Buttonbehavior
9. Buttonlocation
Inordertoreachsuchanelaboratedcontroloverthelayoutofthequestion,alargenumberofselectorsare
placedwithinthegeneratedHTMLcode.Theseselectorscanbedividedintothreegroups:
1. Defaultselectors.Theseareattributesgeneratedwitheachquestion.
2. Questionselectors.Theseareattributesrelatedtothetypeofquestion.
3. Independentselectors.Theseareattributesthathavenolinktothetypeofquestionorareseparate
fromthedefaultattributes.
Inaddition,asequenceofattributeselectorsiscreated.Forexample,acodequestionwith4optionswill
resultin:

Page377

TheNIPOHTMLGenerator

1. Anattributeforeachindividualoption(1to4)
2. Ageneralattributeforalloptions
3. Anattributeforallevenoptions(2and4)
4. Anattributeforalloddoptions(1and3)
5. Anattributeforthefirstoption(1)
6. Anattributeforthelastoption(4)
Alltheseplacedselectorsallowyoutoalterthelayoutofthequestionineverypossibleway.Ifyouliketo
changecolorperoption,addanindentoranyotherrequirement,itcanbecreatedwiththeseselectors.
Note:
TheNIPOHTMLGeneratordoesnotsyntaxchecktheattributesandpropertiesinCSSfiles.

QuestionElementsExample
ExampleNIPOCAWIPreview

Intheexampleabovethefollowingquestionelementsmaybestyled:

Page378

TheNIPOHTMLGenerator

Thequestiontext"WhatbrandofVCR'sdoyouhave"and"Note:morethenonebrandallowed"
Answercode1Philips
Answercode2Sony
Answercode3Blaupunkt
OddanswercodesPhilips,Blaupunkt,Hitachi,JVCandOther
EvenanswercodesSony,Akai,Samsung,MitshubishiandDon'tknow
Answercode*OPENOther
Answercode*NMULDon'tknow
All*MULTIanswercodes(notincludingDon'tknow)
Theentirebuttonpanel
TheBackbutton.
TheOKbutton
TheClearbutton

CSSforQuestions
Everyquestion,independentofthetype,ismadeupofa<table>insidethe<div
class="odincurrentquestion">tag.Thistabledoesn'thaveanyselectors,butdoeshavethe
followingattributes;widthwithvalue100%,cellpaddingwithvalue0andcellspacingwithvalue
0.
Insidethis<table>tagisa<tbody>tagwithoutanyselectorsorattributes.Thecontentsofthis
<tbody>tagdependsentirelyonthedefinitionofthecurrentquestioninsidethequestionnaire,buthere
areafewpointers;everylineoftext(identifiedbyaCR/LFinthescript)isrepresentedbya<tr>tag
withoutanyselectors.Individualpiecesoftextonthesamelinecanbeseparatedbytabs.Foreachtab
characterencounteredanewtablecellisdefinedusinga<td>tagwithaclassselectordependingonthe
currenttabsettingsandtabcount.
DefaultQuestionSelectors
Defaultquestionselectors
Selector

Function

odinquestion

GeneralAttributegeneratedwitheveryNIPOODINquestion

odinpreviousquestions

GeneralAttributegeneratedwitheveryNIPOODINquestion.Onlyappliesif*NCLSis
usedintheNIPOODINscript

odincurrentquestion

GeneralAttributegeneratedwitheveryNIPOODINquestion

*CONJQuestionSelectors(NIPOConjointMeasurement)
TheNIPOConjointMeasurementwillasktomakecomparisonsbetweenprofiles.Thefirstquestionsinthe
NIPOConjointMeasurementaretreatedasnormal*CODESquestions.

Page379

TheNIPOHTMLGenerator

*CONJquestionselectors
Selector

Function

odinconjointcomparerow

Genericattributeforallfeaturerowsinaconjointcomparison.

odinconjointcomparerowN

AttributeforrowNinaconjointcomparison.

odinconjointprofilecompare

odinconjointprofileitem

odinconjointprofileitem-A

odinconjointprofileitem-AN

odinconjointprofileitem-B

odinconjointprofileitem-BN

odinconjointprofileitem-buffer

odinconjointprofileitem-last

odinconjointprofileitemN

odinconjointprogress

odinconjointprogress-N

odinconjointprogress-NofM

odinconjointprogress-percent-N

Page380

TheNIPOHTMLGenerator

*CODESQuestionSelectors
*CODESquestionselectors
Selector

Function

odincodelist

Herethecodeliststarts.Thisselectorappliestoeverythingwithinthetable

odincodelist-column

Generalattributeofallcodelistcolumns

odincodelist-columnN

SpecificcodelistcolumnattributewhereNisthecolumnrangingfrom0to
numberofcolumns1.

odincodelist-single

Generalattributeofallcodelistsofsinglecodedquestions

odincodelist-multi

Generalattributeofallcodelistsofmultiplecodedquestions

odincodelist-maxN

odincategory

Generalattributeofallcodecategories

odincategoryN

SpecificcodecategoryattributewhereNisthecodecategoryrangingfrom0to
numberofcategories1.

odincategory-even

Specificevencodecategoryattribute

odincategory-odd

Specificoddcodecategoryattribute

odincategory-single

Specificsingleanswercodecategoryattribute

odincategory-multi

Specificmultipleanswercodecategoryattribute

odincategory-open

Specificopencodecategoryattribute

odincategorypicture

Picturethatisbehindacodecategoryina*CODESquestion.

odincategory-checked

Codecategorythatischeckedbyinterviewer/respondent

odincategory-placementN

Ordernumberinwhichthecodecategoryisplaced(whenusing*RANDOM,
*INV,*ROT)

odincategory-placement-even

Evenordernumbersinwhichthecodecategoryisplaced(whenusing
*RANDOM,*INV,*ROT)

odincategory-placement-odd

Oddordernumbersinwhichthecategoryisplaced(whenusing*RANDOM,
*INV,*ROT)

odincategorycheckcolumn

Generalattributeofthecheckboxorradiobuttonofacodecategory

odincategorychecksingle

Attributeofthecheckboxorradiobuttonofacodecategoryinasinglecoded
question

odincategorycheckmulti

Attributeofthecheckboxorradiobuttonofacodecategoryinamultiple
codedquestion

odincategorylabel

Generalattributeofthetextlabelofthecategorycode

odincategorylabelN

Specificattributeofthetextlabelofthecategorycode,whereNisthecategory
codenumber,anumberrangingfrom1tothenumberofcodes

odincategorylabelcolumn

Attributeofthecolumncontainingallcategorycodelabels

*CODES*MULTIQuestionSelectors
*CODES*MULTIquestionselectors
Selector

Function

odincategory-nmul

Attributethatappliestothe*NMULcodecategory

odincategory-multi

Attributethatappliestoall*MULTIcodecategories

Page381

TheNIPOHTMLGenerator

*NUMBERQuestionSelectors
*NUMBERquestionselectors
Selector

Function

odinquestioninput

Attributeforthe<TD>containingthenumericinputfield

odinnumeric

Attributeforthenumericinputfield

*ALPHAQuestionSelectors
*ALPHAquestionselectors
Selector

Function

odinquestioninput

Attributeforthe<TD>containingthealphanumericinputfield

odinalpha

Attributeforthealphanumericinputfield

*LISTquestionselectors
Whena*LISTisusedincombinationwith*NUMBERor*ALPHA,thebrowserpresentseitheratype
aheadfunction(forlonglists)oradropdownbox(25orlessitemsinthelist).
A*LISTincombinationwitha*CODESquestionusestheregular*CodesQuestionSelectors(onpage
381).
*LISTquestionselectors
Selector

Function

odinlist

Attributesappliestotheentirelist

odinlist-dropdown

Attributeappearonlywithlistsmallerthen20items

odinlistX

AttributereferstolistofXitems

odinquestioninput

Attributeforthe<TD>containingthelist

odinlistitem

Genericattributeforalllistitems

odinlistitemN

AttributeforitemNfromthelist,whereNisavaluebetween0and
thenumberofitems1.

Page382

TheNIPOHTMLGenerator

*FORM*NUMBERand*FORM*ALPHAQuestionSelectors
*FORM*NUMBERand*FORM*ALPHAquestionselectors
Selector

Function

odinformelement

Attributeappliestoeveryformelementwithinthetable

odinnumeric

Attributeforallnumericfields

odinalpha

Attributeforallalphanumericinputfields

odinquestioninput

Attributeforthe<TD>containingtheinputfield

odinnumericN

AttributeforthespecificinputfieldN,whereNisavaluebetween0andthenumberof
fields1.

odinalphaN

AttributeforthespecificalphanumericinputfieldN,whereNisavaluebetween0and
thenumberoffields1.

*SCALEquestionselectors
*SCALEquestionselectors
Selector

Function

odinscale

Attributethatappliestoeveryelementwithinthetable

odinscaleholder

Attributethatappliestothetablewhereeveryselectableelementwithinthescale
questionisplaced

odinscalecell

Attributethatappliestoeveryscalecell

odinscalecell-odd

Attributethatappliestoeveryoddscalecell

odinscalecell-even

Attributethatappliestoeveryevenscalecell

odinscalecell-min

Attributethatappliestothescalecellwiththelowestvalue

odinscalecellN

AttributethatappliestoscalecellN

odinscalecell-less

Attributethatappliestotheeveryscalecellwithavaluelessthatthemiddle

odinscalecell-middle

Attributethatappliestotheeveryscalecellwiththemiddlevalue

odinscalecell-more

Attributethatappliestotheeveryscalecellwithavaluemorethatthemiddle

odinscalecell-max

Attributethatappliestothescalecellwiththehighestvalue

odinscaleitem

Attributeforthecontainerinwhichthescaleisplaced

scaletext-textleft

Attributefortheleftendtextofthescaleasdefinedwith*SCALE

scaletext-textright

Attributefortherightendtextofthescaleasdefinedwith*SCALE

odinscale-normal

Attributeforascalecellwhenenabledbutnotselected

odinscale-disabled

Attributeforascalecellthatisdisabled

odinscale-selected

Attributeforascalecellthatisselected(marked)

Page383

TheNIPOHTMLGenerator

*FORM*SCALEQuestionSelectors
*FORM*SCALEquestionselectors

Page384

Selector

Function

odinscale

Attributethatappliestoeveryelementwithinthetable

odinformelement

Attributethatappliestoeveryformelementwithinthe
table

odinformelement-N

AttributethatappliestoformelementN

odinscaleholder

Thisattributeappliestothetablewhereeveryselectable
elementwithinthescalequestionisplaced

odinscalecell

Attributethatappliestoeveryscalecell

odinscalecell-odd

Attributethatappliestoeveryoddscalecell

odinscalecell-even

Attributethatappliestoeveryevenscalecell

odinscalecell-min

Attributethatappliestothescalecellwiththelowest
value

odinscalecellN

AttributethatappliestoscalecellN

odinscalecell-less

Attributethatappliestotheeveryscalecellwithavalue
lessthatthemiddle

odinscalecell-middle

Attributethatappliestotheeveryscalecellwiththe
middlevalue

odinscalecell-more

Attributethatappliestotheeveryscalecellwithavalue
morethatthemiddle

odinscalecell-max

Attributethatappliestothescalecellwiththehighest
value

odinformelement-above-placementN

Attributethatappliestotheheadingjustaboveascalecell
(notethatheadingsmaybeplacedbetween*SCALE
rows).

odinformelement-above-placement-even

Attributethatappliestotheeveryevenheadingjust
aboveascalecell.

odinformelement-above-placement-odd

Attributethatappliestotheeveryoddheadingjustabove
ascalecell.

odinformelement-above-N-M

AttributethatappliestocolumnNofrowM.

odinformelementbefore

Genericattributethatappliestothetextjustinfrontof
the*SCALE.

odinformelementbefore-N

AttributethatappliestothetextjustinfrontoftheNth
code.

odinformelementbefore-even

Attributethatappliestothetextjustinfrontofeven
codes.

odinformelementbefore-odd

Attributethatappliestothetextjustinfrontofodd
codes.

odinformelementbefore-placement-N

AttributethatappliestothetextjustinfrontoftheNth
*SCALEonthescreen.

odinformelementbefore-placement-even

Attributethatappliestothetextjustinfrontofevery
even*SCALEonthescreen.

odinformelementbefore-placement-odd

Attributethatappliestothetextjustinfrontofeveryodd
*SCALEonthescreen.

odinformelementbefore-placement-first

Attributethatappliestothetextjustinfrontofthefirst
*SCALEonthescreen.

odinformelementplacement-first

Attributethatappliestothefirst*SCALEonthescreen.

TheNIPOHTMLGenerator

odinformelement-above-placement-first

Attributethatappliestothefirstcode.

odinscale-normal

odinformelementbefore-placement-last

Attributethatappliestothelast*SCALEonthescreen.

odinformelementplacement-last

Attributethatappliestothelastcode.

*FORM*GRIDQuestionSelectors
*FORM*GRIDquestionselectors
Selector

Function

odingrid

Completegridofa*FORM*GRIDquestion

odingridcell

Cellwithinagridofa*FORM*GRIDquestion

odingridcolumn

Columnwithinagridofa*FORM*GRIDquestion

odingridcolumnholder

Holderofacolumnwithinagridofa*FORM*GRIDquestion

odingridcolumnspace

Spacebetweencolumnswithinagridofa*FORM*GRIDquestion

odingridrowspacing

Spacebetweenrowswithinagridofa*FORM*GRIDquestion

CSSforButtons
Buttonsthatneedtobedisplayedonscreentaketheformofan<input>tagwiththeclassselectors
odinbuttonandodinbutton{mnemonic}where{mnemonic}isreplacedbyauniqueidentifierfor
thebutton(seethetablebelow).These<input>tagsallareoftypesubmit.
Thevalueattributecontainsthecaptionofthebutton,whiletheidattributecontains
odinbutton{menmonic}.Ifthedefinedcaptioncontainsanampersand(&),thecharacterfollowingthe
firstampersandisconvertedtoformthevalueoftheaccesskeyattributetocreateakeyboardshortcut.

Page385

TheNIPOHTMLGenerator

Buttonsselectors
Selector

Desciption

odinbuttonpanel

Locationofthebuttons

odinbutton

Genericinputforeverybutton.

odinbuttonOK

OKButton

odinbuttonBACK

BackButton

odinbuttonSTART

StartButton

odinbuttonCLOSE

CloseButton

odinbuttonHELP

HelpButton

odinbuttonDONTKNOW

Don'tknowButton(in*QUESTION*SCALE*NON)

odinbuttonNEXT

NextButton(in*HELPpages)

odinbuttonPREV

PreviousButton(in*HELPpages)

odinbuttonSUSPEND

SuspendButton

odinbuttonQBUT0

Firstquestiondefinedbutton(*BUT)

odinbuttonQBUT1

Secondquestiondefinedbutton(onsamequestion)

odinbuttonQBUT2

Thirdquestiondefinedbutton(onsamequestion)

odinbuttonQBUT3

Fourthquestiondefinedbutton(onsamequestion)

odinbuttonQBUT4

Fifthquestiondefinedbutton(onsamequestion)

CSSforTabs
Tabsettingscanbedefinedbyusingthe*TABcommandintheNIPOODINscript.Thevaluesofthetab
commandareusedtodeterminethewidthsofthecellsinthequestiontext.Forexample,*TAB 50,60
resultinatablewiththreepredefinedcolumns,wherethefirstcolumnwouldhaveawidthof50%,the
secondwouldhaveawidthof10%(6050)andthelastcolumnswouldbetheremaindercolumnandhavea
widthof40%(10060).
Giventhetabsettingsabovethefirstpieceoftext(uptothefirsttabcharacter)onalinewouldbeplaced
ina<td>tagwithaclassselectorodintabstop-0.Thenextpieceoftextwouldbeplacedinanother
<td>tagwithaclassselectorodintabstop-1.Theremainingpiecesoftextwouldbeplacedinthelast
cell,whichwouldhaveaselectorodintabstop-2.
The<style>taggeneratedinsidethe<head>tagwouldlooklikethis:
NIPOODINscript:*TAB
*TAB 50,60

Exampletaggeneratedinsidethe<Head>tagusing*TAB
<colgroup>
<col width="50.0%">
<col width="10.0%">
<col width="40.0%">
</colgroup>

Ifmoretabsareencounteredonalineanadditional<table>tagisgeneratedinsidethecurrent<td>
tag.Insidethis<table>willbea<tbody>and<tr>tag,allwithoutanyselectors.Insidethis<tr>tag
willbeanadditional<td>tagwithaclassselectorodintabstop-extra,forwhichnoinlinestyle
sheetdefinitionwillbegenerated.

Page386

TheNIPOHTMLGenerator

Tabstopselectors
Selector

Description

odintabstop-extra

Extratabstopsforthosedefinedwiththe*TABcommand.

odintabstop-last

Lasttabstop.

odintabstop-N

TabstopnumberN.Tabstartnumberingatzero.

odintabstop-nonzero

Alltabstops,excludingthefirst(numberzero).

CSSforFonts
Everytimea*FONTcommandisencounteredinthescript,thecurrentfontischangedanda<span>tag
isaddedwithaclassselectorodinfontnumber-{fontnumber}where{fontnumber}isreplaced
withanincrementalnumberstartingwithzero.Ifnofontsaredefinedinthescriptalltextwillbeenclosed
witha<span class="odinfontnumber-0">tag,toindicatethedefaultfont.
Optionallyaninlinestylesheetdefinitioncanbegeneratedtoreflectthefontdefinitionfromthe
questionnairescript.
Note:
Changingthefont,fontsizeandfonttypecanbedonebyusing*FONTcommandintheNIPOODIN
questionnaire.When*FONTisusedinthequestionnaire,donotchangethefontviaCSS.
NIPOODINscriptcommand*FONT
*FONT 0 "10 Arial"
*FONT 1 "10 Arial BOLD"
*FONT 9 "10 Arial Italic"

Exampleinlinestylesheetdefinition
<style>
<!-.odinfontnumber-0 {
color: #000000;
background-color: #FFFFFF;
font-size: 10pt;
font-family: "Arial";
}
.odinfontnumber-1 {
color: #000000;
background-color: #FFFFFF;
font-weight: bold;
font-size: 10pt;
font-family: "Arial";
}
.odinfontnumber-2 {
color: #000000;
background-color: #FFFFFF;
font-style: italic;
font-size: 10pt;
font-family: "Arial";
}-->
</style>

Ifyouchoosenottogeneratetheinlinestylesheetdefinition,thisprovidesanexcellentmeanstoapplya
commonhousestyleacrossquestionnaires.

Page387

TheNIPOHTMLGenerator

Fontselectors
Selector

Description

odinfontnumber-N

fontfortextthatischangedbythe*FONTcommandintheNIPOODINquestionnaire
whereNisthefontnumber.

CSSforProgressBar
Fortheprogressbarsomeadditionaltagsareautomaticallygeneratedwithinthe<head>tagofthe
template.Theseconsistofasingle<style>tagwithvaluesforfourindividualCSSclassselectors.These
selectorsareodinprogress-completed,odinprogress-remaining,odinprogresscompleted-verticalandodinprogress-remaining-vertical.
Thefollowing(partial)exampleshowsthecompletetagasitwouldbegeneratedforaninterviewthathas
beencompletedfor41%.
ExampleoftagwithODINProgressbar
<style>
<!-.odinprogress-completed {
width: 41%;
}
.odinprogress-remaining {
width: 59%;
}
.odinprogress-completed-vertical {
height: 41%;
}
.odinprogress-remaining-vertical {
height: 59%;
}
-->
</style>

AndthiswouldapplytothefollowingHTMLcode:
ResultinHTMLcode
<table border="0" cellspacing="0" cellpadding="1" width="100%">
<tr>
<td height="20" align="center">
<table border="1" cellspacing="0"
cellpadding="0"
width="25%" bgcolor="#c88a00">
<tr>
<td style="height: 20px;" class="odinprogress-completed"
bgcolor="#666666"></td>
<td class="odinprogress-remaining" bgcolor="#f1b200"></td>
</tr>
</table>
</td>
</tr>
</table>

Theselectorsodinprogress-completedandodinprogress-remainingaremeanttobeused
forhorizontalprogressindicators,whileodinprogress-completed-verticaland
odinprogress-remaining-verticalaremeantforverticalindicators.

Page388

TheNIPOHTMLGenerator

Progressbarselectors
Selector

Description

odinprogress-completed

partoftheprogressbarthatshowshowmuchisalreadycompleted

odinprogress-completed-vertical

partoftheprogressbarthatshowshowmuchisalreadycompleted
(vertical)

odinprogress-remaining

partoftheprogressbarthatshowshowmuchisremaining

odinprogress-remaining-vertical

partoftheprogressbarthatshowshowmuchisremaining(vertical)

SelectorsinNIPOCAWI(AlphabeticalOverview)
TherearesubtledifferencesbetweennamesofselectorsinNIPOCAWIandNIPOCAPI.Tofindoutthe
nameofaparticularselector,runapreviewintheNIPOODINDeveloperandrightclickonthepage,then
selectViewsource.Theitemortextyouwanttochangecanbefoundwithalltheselectorsthatyoucan
useintheCSS.

Page389

TheNIPOHTMLGenerator

SelectorsinNIPOCAWI(alphabeticoverview)

Page390

Selector

Appliesto

HTMLtag

checkcolumn

General

labelcolumn

General

markcolumn

General

odinalpha

*FORM

Input

odinalpha

*NUMBERor
*ALPHA

Input

odinalphaN

*FORM

Input

odinbutton

Buttons

Input

odinbuttonBACK

Buttons

Input

odinbuttonCLOSE

Buttons

Input

odinbuttonDONTKNOW

Buttons

Input

odinbuttonHELP

Buttons

Input

odinbuttonNEXT

Buttons

Input

odinbuttonOK

Buttons

Input

odinbuttonpanel

Buttons

Div

odinbuttonPREV

Buttons

Input

odinbuttonQBUT0

Buttons

Input

odinbuttonQBUT1

Buttons

Input

odinbuttonQBUT2

Buttons

Input

odinbuttonQBUT3

Buttons

Input

odinbuttonQBUT4

Buttons

Input

odinbuttonSTART

Buttons

Input

odinbuttonSUSPEND

Buttons

Input

odincategory

*CODES

TD

odincategory-checked

*CODES

TD

odincategorycheckcolumn

*CODES

TD

odincategorycheckmulti

*CODES

TD

odincategory-even

*CODES

TD

odincategorylabel

*CODES

TD

odincategorylabelN

*CODES

TD

odincategorymarkcolumn

*CODES

TD

odincategory-multi

*CODES *MULTI TD

odincategoryN

*CODES

odincategory-nmul

*CODES *MULTI TD

odincategory-odd

*CODES

TD

odincategory-open

*CODES

TD

odincategorypicture

Table

odincategorypicture

*CODES

Table

odincategory-single

*CODES

TD

TD

odincodelist

*CODES

TD

odincodelistN

*CODES

TD

TheNIPOHTMLGenerator

Selector

Appliesto

HTMLtag

checkcolumn

General

odincodelist-column

*CODES

TD

odincodelist-columnN

*CODES

TD

odincodelist-maxN

*CODES

TD

odincodelist-multi

*CODES

TD

odincodelist-single

*CODES

TD

odinconjointcomparerow

Conjoint
measurement

TD

odinconjointcomparerowN

Conjoint
measurement

TD

odinconjointprofilecompare

Conjoint
measurement

TD

odinconjointprofileitem

Conjoint
measurement

TD

odinconjointprofileitem-A

Conjoint
measurement

TD

odinconjointprofileitem-AN

Conjoint
measurement

TD

odinconjointprofileitem-B

Conjoint
measurement

TD

odinconjointprofileitem-BN

Conjoint
measurement

TD

odinconjointprofileitem-buffer

Conjoint
measurement

TD

odinconjointprofileitem-last

Conjoint
measurement

TD

odinconjointprofileitemN

Conjoint
measurement

TD

odinconjointprogress

Conjoint
measurement

TD

odinconjointprogress-N

Conjoint
measurement

TD

odinconjointprogress-NofM

Conjoint
measurement

TD

odinconjointprogress-percent-N

Conjoint
measurement

TD

odincurrentquestion

General

Div

odinerroritem

General

odinerroritemX

General

odinerrormessage

General

odinerrormessage:active

General

odinerrormessage:hover

General

odinerrormessage:link

General

odinerrormessage:visited

General

odinerrormessages

General

odinfontnumber-X

*FONT

odinformelement

*FORM

Table

Page391

TheNIPOHTMLGenerator

Page392

Selector

Appliesto

HTMLtag

checkcolumn

General

odinformelementbefore

*FORM

Table

odinformelementholder

*FORM

Table

odinformelementplacement-odd

*FORM

TD

odinformelementplacement-even

*FORM

TD

odingrid

*FORM *GRID

TD

odingridcell

*FORM *GRID

TD

odingridcolumn

*FORM *GRID

TD

odingridcolumncontrolled

*CONTROL

odingridcolumnholder

*FORM *GRID

TD

odingridcolumnspace

*FORM *GRID

TD

odingridrowspacing

*FORM *GRID

TD

odinline-left

*LINE

TD

odinline-right

*LINE

TD

odinlist

*LIST

Select

odinlist-dropdown

*LIST

Select

odinlistitem

*LIST

Option

odinlistitemN

*LIST

Option

odinlist-list

*LIST

Select

odinlistX

*LIST

odinmultimedia

*PLAY

odinnumeric

*FORM

Input

odinnumeric

*NUMBERor
*ALPHA

Input

odinnumericN

*FORM

Input

odinopencategory

*CODES *OPEN

Input

odinopenquestion

*OPEN

Input

odinpicture

*PICT

odinpreviousquestions

general

Div

odinprogress-completed

progressbar

odinprogress-completed -vertical

progressbar

odinprogress-remaining

progressbar

odinprogress-remaining -vertical

progressbar

odinquestion

general

Table

odinquestionidlabel

general

Input

odinquestioninput

*ALPHA

Input

odinquestioninput

*FORM

Input

odinquestioninput

*LIST

Input

odinquestioninput

*NUMBER

Input

odinscale

*FORM *SCALE

TD

odinscalecell

*FORM *SCALE

TD

odinscalecell-even

*FORM *SCALE

TD

odinscalecell-less

*FORM *SCALE

TD

TheNIPOHTMLGenerator

Selector

Appliesto

HTMLtag

checkcolumn

General

odinscalecell-max

*FORM *SCALE

TD

odinscalecell-middle

*FORM *SCALE

TD

odinscalecell-min

*FORM *SCALE

TD

odinscalecell-more

*FORM *SCALE

TD

odinscalecellN

*FORM *SCALE

TD

odinscalecell-odd

*FORM *SCALE

TD

odinscalecellspacing

*FORM *SCALE

odinscaleholder

*FORM *SCALE

Table

odinscaleitem

*SCALE

*CONJ
scaletext-textleft

*SCALE

*CONJ
scaletext-textright

*SCALE

*CONJ
odinscale-normal

*SCALE

*CONJ
odinscale-disabled

*SCALE

*CONJ
odinscale-selected

*SCALE

*CONJ
odintabstop-extra

*TAB

odintabstop-last

*TAB

odintabstop-N

*TAB

odintabstop-nonzero

*TAB

testsurvey

general

Page393

TheNIPOHTMLGenerator

SelectorsinNIPOCAPI(AlphabeticOverview)
SelectorsinNIPOCAPI(alphabeticaloverview)

Page394

Section

Selector

Alpha

odinalpha

AppointmentScreen

AppointmentCaption

AppointmentScreen

AppointmentDate

AppointmentScreen

AppointmentDescription

AppointmentScreen

AppointmentDialog

AppointmentScreen

AppointmentTime

AppointmentScreen

AppointmentTitle

AppointmentScreen

AppointmentWith

AppointmentScreen

DateSection

AppointmentScreen

TimeSection

AppointmentScreen

WithSection

Category

Category

odincategory

Category

odincategory-{0}", this.category_.Code));

Category

odincategoryCheckColumn

Category

odincategorycolumnholder

Category

odincategorycolumnholder-{0}", ((i % 2) == 0 ?
"even" "odd"));

Category

odincategorycolumnholder-{0}", i);

Category

odincategoryheading

Category

odincategoryhidden

Category

odincategoryLabelColumn

Category

odincategorylist

Category

odincategorylist

Category

odincategoryMarkColumn

Category

odincategoryNumberColumn

Category

odincategoryNumberColumn-hidden

Category

odincategory-selected

Category

odincategorystopauto

Category

opencode

Category

single

Column

odintabstop-{0}", this.tabCount_ - this.tabsLeft

Column

odintabstop-extra

Column

odintabstop-extra-{0}", this.currentColumnCount_
- this.tabCount_ - 1);

Column

odintabstop-last

Column

odintabstop-nonzero

Font

odinfontnumber-{0}", (this.font_ != null) ?


this.font_.Number-1);

FormElementsAlpha

odinalpha

FormElementsAlpha

odinalphaelement

FormElementsAlpha

odinerrorelement

TheNIPOHTMLGenerator

Section

Selector

FormElementsAlpha

odinformelement

FormElementsAlpha

odinformelement{0}", id

FormElementsAlpha

odinhiddenalpha

FormElementsAlpha

odinhiddenalphaelement

FormElementsAlpha

odinhiddenformelement

FormElementsAlpha

odinhiddenformelement{0}" + id

FormElementsGrid

FormElementsGrid

FormElementsGrid

odinformelement

FormElementsGrid

odinformelement{0}", id

FormElementsGrid

odingridcell

FormElementsGrid

odingridcell-{0}-{1}-{2}", this.id_,
this.currentColumn_ + 1, this.currentRow

FormElementsGrid

odingridelement-{0}", this.id

FormElementsGrid

odingridpadding

FormElementsGrid

odinhiddenformelement

FormElementsGrid

odinhiddenformelement{0}", id

FormElementsNumeric

odinerrorelement

FormElementsNumeric

odinformelement

FormElementsNumeric

odinformelement{0}", id

FormElementsNumeric

odinhiddenformelement

FormElementsNumeric

odinhiddenformelement", id

FormElementsNumeric

odinhiddennumeric

FormElementsNumeric

odinhiddennumericelement

FormElementsNumeric

odinnumeric

FormElementsNumeric

odinnumericelement

FormElementsScale

FormElementsScale

odinerrorelement-horizontal

FormElementsScale

odinerrorelement-left

FormElementsScale

odinerrorelement-top

FormElementsScale

odinerrorelement-vertical

FormElementsScale

odinscalecell

FormElementsScale

odinscalecell-{0}-{1}", this.id_,
++this.currentItem

FormElementsScale

odinscaleelement-{0}", this.id

FormElementsScale

odinscalepadding

Hidden

odinerrorelement

Hidden

odinformelementabovehidden

Hidden

odinformelementabovehidden-{0}

Hidden

odinformelementabovehidden-even

Hidden

odinformelementabovehidden-odd

Hidden

odinformelementabovehidden-placement-first

Hidden

odinformelementabovehidden-placement-last

Hidden

odinformelementabove-placement-{0}

Page395

TheNIPOHTMLGenerator

Page396

Section

Selector

Hidden

odinformelementabove-placement-even

Hidden

odinformelementabove-placement-odd

Hidden

odinformelementbeforehidden

Hidden

odinformelementbeforehidden-{0}

Hidden

odinformelementbeforehidden-even

Hidden

odinformelementbeforehidden-odd

Hidden

odinformelementbeforehidden-placement-{0}

Hidden

odinformelementbeforehidden-placement-even

Hidden

odinformelementbeforehidden-placement-first

Hidden

odinformelementbeforehidden-placement-odd

Hidden

odinformelementbefore-placement-last

Hidden

odinformelementholder

Hidden

odinformelementholder{0}", id);

Hidden

odinhiddenformelementholder

Hidden

odinhiddenformelementholder{0}", id);

Hidden

odinformhiddenrow

IntroScreen

odinintro-appointmenttime

IntroScreen

odinintro-appointmentwith

IntroScreen

odinintro-displayfield

IntroScreen

odinintro-displayfield-{0}", i);

IntroScreen

odinintro-phonenumber

IntroScreen

odinintro-phonenumber-{0}", i);

IntroScreen

odinintro-screeninfo

Line

odinline-button-left

Line

odinline-button-left-disabled

Line

odinline-button-right

Line

odinline-button-right-disabled

Line

odinline-ruler

Line

odinline-ruler-fill

Line

odinline-ruler-fillholder

List

List

odinlist

List

odinlistelement

List

odinlistelement

List

odinlistelement

List

odinlistelement-{0}", numberOfItems

List

odinlistelement-{0}", numberOfItems

List

odinlistelement-{0}", numberOfItems

List

odinlistelement-disabled

List

odinlistelement-dropdown

List

odinlistelement-dropdown-{0}", numberOfItems

List

odinlistelement-list

List

odinlistelement-list-{0}", numberOfItems

TheNIPOHTMLGenerator

Section

Selector

List

odinlistitem

List

odinlistitem-{0}", ((this.absoluteIndex_ % 2) ==
0) ? "event" | "odd

List

odinlistitem-nocon

List

odinlistitem-text

Multimedia

Numeric

odinnumeric

Open

odinopen

Picture

QuestionId

odinquestionid

Scale

odinscaleCell

Scale

scale

Scale

scaledisabled

Scale

scalesel

Scale

scaleseldisabled

Text

lefttext

Text

lefttext-holder

Text

righttext

Text

righttext-holder

CSSExamples
TheexamplecontainedwithinthissectionusesasimpleNIPOODINquestionnaire.

Page397

TheNIPOHTMLGenerator

ExampleNIPOODINQuestionnaireUsingStylesheets
ExampleNIPOODINQuestionnaireusingstylesheets

Page398

TheNIPOHTMLGenerator

*QUESTION 1 *CODES L1
Gender:
(without CSS)
1: Male
2: Female
3: Unknown
*QUESTION 10 *CODES L1
Gender:
(with CSS to change color/style of third category)
1: Male
2: Female
3: Unknown
*QUESTION 2 *CODES L10 *MULTI
Closed question with semi-open answers
(without CSS)
1: Brand A
2: Brand B
3: Brand C
9: Other brand *OPEN
*QUESTION 20 *CODES L10 *MULTI
Closed question with semi-open answers
(with CSS to enlarge the open answer box)
1:
2:
3:
9:

Brand
Brand
Brand
Other

A
B
C
brand *OPEN

*QUESTION 3 *OPEN L1
Open question
(without CSS)
*QUESTION 30 *OPEN L1
Open question
(with CSS to enlarge the open answer box)
*TAB 40,50,60,70,80,90,100
*QUESTION 4 *FORM
FORM SCALE question
(without CSS)
Totally disagrees
Disagrees
agrees Don't know / no answer
1: Statement A
*SCALE L1 6
2: Statement B
*SCALE L1 6
3: Statement C
*SCALE L1 6
4: Long statement will be wrapped
*TAB statement *SCALE L1 6 10

Neither disagrees, nor agrees Agrees Totally

10
10
10
automatically within the first column, defined by the

*QUESTION 40 *FORM
FORM SCALE question
(with CSS to center scales)
Totally disagrees
Disagrees
agrees Don't know / no answer
1: Statement A

Neither disagrees, nor agrees Agrees Totally

*SCALE L1 6 10

Page399

TheNIPOHTMLGenerator

2: Statement B
*SCALE L1 6 10
3: Statement C
*SCALE L1 6 10
4: Long statement will be wrapped automatically within the first column, defined by the
*TAB statement *SCALE L1 6 10
*QUESTION 41 *FORM
FORM SCALE question
(with CSS to center scales and scale texts)
Totally disagrees
Disagrees
agrees Don't know / no answer
1: Statement A
*SCALE L1 6
2: Statement B
*SCALE L1 6
3: Statement C
*SCALE L1 6
4: Long statement will be wrapped
*TAB statement *SCALE L1 6 10

Neither disagrees, nor agrees Agrees Totally

10
10
10
automatically within the first column, defined by the

*QUESTION 42 *FORM
FORM SCALE question
(with CSS to center scales and scale texts, make gray lines on even statements)
Totally disagrees
Disagrees
agrees Don't know / no answer
1: Statement A
*SCALE L1 6
2: Statement B
*SCALE L1 6
3: Statement C
*SCALE L1 6
4: Long statement will be wrapped
*TAB statement *SCALE L1 6 10

Neither disagrees, nor agrees Agrees Totally

10
10
10
automatically within the first column, defined by the

*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?
Quality of the brand
Brand is easy to use
Brand offers value for
money (i.e. cheap brand for its quality)
Packaging appeals to me
Best brand
Second best brand
Easiest brand Second easiest brand
Cheapest
brand
Second cheapest brand Brand that appeals best
Brand that appeals second best

1:Brand A
Brand B
Brand C
Brand D
Brand E
Other brand

*GRID 125L8 6.1 8.10

*QUESTION 9999
*END

Note:
Tabshavebeenusedtoseparateheadingtexts.

Page400

TheNIPOHTMLGenerator

Example1:ChangeBackgroundColorofaSelectedCode
Question1withoutstylesheet

StylesheetTestcss.QTypeCodes.css:changebackgroundcolorofselectedcode
.odincategory-checked {
background-color: #D3D3D3;
}

Result:

Example2:BoxSizeforOpenAnswerCode
Question2withoutstylesheet

Page401

TheNIPOHTMLGenerator

Example|StylesheetTestcss.QNumber20.css:boxsizeforopenanswercode
.odinopencategory {
height: 80px;
width: 250px;
}

Result:

Example3:boxSizeforOpenQuestion
Question3withoutstylesheet

StylesheetTestcss.QNumber30.css:boxsizeforopenquestion
.odinopenquestion {
height: 150px;
width: 70%;
}

Page402

TheNIPOHTMLGenerator

Result:

Example4:CenterScales
Question4withoutstylesheet

StylesheetTestcss.QNumber40.csstocenterscales
.odinscalecell {
text-align: center;
}

Result:

Page403

TheNIPOHTMLGenerator

Example5:CenterTextAboveScales
StylesheetTestcss.QNumber41.css:centertextabovescales
.odinscalecell {
text-align: center;
}
.odintabstop-0 {
text-align: left;
}
.odintabstop-1 {
text-align: center;
}
.odintabstop-2 {
text-align: center;
}
.odintabstop-3 {
text-align: center;
}
.odintabstop-4 {
text-align: center;
}
.odintabstop-5 {
text-align: center;
}

Result:

Example6:ColorBackgroundforFirstandThirdStatementGray
StylesheetTestcss.QNumber42.css:colorbackgroundforfirstandthirdstatementgray
.odinscalecell {
text-align: center;
}
.odintabstop-0 {
text-align: left;
}
.odintabstop-nonzero {
text-align: center;
}
}
.odinformelementbefore-placement-odd {
background-color: #D3D3D3;
}
.odinformelementplacement-odd {
background-color: #D3D3D3;
}

Page404

TheNIPOHTMLGenerator

Note:
Inthepreviousexample6numberedodintabstop-nwerespecified,inthisexampleweused
odintabstop-nonzeroforthesameresult.
Result:

Example7:GridUsingVariousStylingOptions
StylesheetTestcss.QNumber62.css:gridusingvariousstylingoptions
.odinscalecell {
text-align: center;
}
.odintabstop-0 {
text-align: left;
}
.odingridcell {
text-align: center
}
.odingridcell-odd {
background-color: #D3D3D3;
}
.odintabstop-nonzero {
text-align: center;
font-weight: bold;
font-style: normal;
}
.odinformelement-above {
text-align: center;
font-weight: normal;
font-style: italic;
}
.odingridcell {
border: solid 1px #000000;
}

Page405

Index
*
*?89
*ABORT .................................................................................92
*ADDRESS .............................................................................93
*ALPHA(in*FORMquestion)................................................96
*ALPHA(QuestionType) .......................................................95
*ALPHAQuestionSelectors ................................................382
*APPOINT..............................................................................97
*AUTO...................................................................................98
*AUTONotSupportedinNIPOCAWI....................................24
*BACK .................................................................................102
*BMP ..................................................................................104
*BUT ...................................................................................106
*CENTRE .............................................................................108
*CENTREDoesNotProperlyCenterHeadingTexts ..............22
*CODES ...............................................................................109
*CODES*MULTIQuestionSelectors ...................................381
*CODESQuestionSelectors ................................................381
*CONJ...*ENDCONJ ...........................................................111
*CONJQuestionSelectors(NIPOConjointMeasurement) .379
*CONTROL ..........................................................................112
*COPY .................................................................................114
*COUNT ..............................................................................115
*CUT ...................................................................................116
*DATE .................................................................................117
*DELAY................................................................................118
*DTIME ...............................................................................119
*DUMMY ............................................................................120
*END ...................................................................................121
*ENDNGB ............................................................................123
*ENDST ...............................................................................124
*EXCLUDE ...........................................................................125
*FIELD .................................................................................127
*FONT(definition) ..............................................................129
*FONT(switching)...............................................................130
*FORM ................................................................................132
*FORM*GRIDQuestionSelectors ......................................385
*FORM*NUMBERand*FORM*ALPHAQuestionSelectors
.......................................................................................383
*FORM*SCALEQuestionSelectors.....................................384
*FORMAT ............................................................................135
*GOSUB ..............................................................................137
*GOTO ................................................................................139
*GRID(in*FORMquestion) ................................................141
*GROUP ..............................................................................146
*HEADING ...........................................................................149
*HELP(definition) ...............................................................151
*HELP(questionoption) .....................................................152
*IF(condition)...*ELSE.......................................................154
*IF(questionoption)...........................................................155
*INCLUDE............................................................................156
*INFO ..................................................................................158
*INIT...*END ......................................................................159
*INITblockisExecutedBeforeSuspendImage.....................24
*INSTRUC ............................................................................161
*INTRO................................................................................162
*INV ....................................................................................163
*LABEL ................................................................................165
*LANGUAGE........................................................................166
*LEFT...................................................................................170
*LINE...................................................................................171

*LIST(definition) ................................................................ 173


*LIST(questionoption) ...................................................... 175
*LISTquestionselectors ..................................................... 382
*MAX.................................................................................. 178
*MERGE.............................................................................. 180
*MIN................................................................................... 182
*MOVA ............................................................................... 184
*MOVU............................................................................... 185
*MULTI ............................................................................... 186
*NCLS ................................................................................. 188
*NEW ................................................................................. 189
*NEWCOLUMN................................................................... 190
*NEXT ................................................................................. 194
*NEXTRECORD.................................................................... 195
*NMUL ............................................................................... 198
*NOCON ............................................................................. 199
*NOENTER.......................................................................... 200
*NOHIDE ............................................................................ 201
*NON.................................................................................. 202
*NONRESP.......................................................................... 203
*NOTBACK.......................................................................... 204
*NUMBER(in*FORMquestion) ......................................... 206
*NUMBER(questiontype).................................................. 205
*NUMBERQuestionSelectors ............................................ 382
*OPEN(codesoption) ........................................................ 210
*OPEN(questiontype) ....................................................... 208
*ORDER .............................................................................. 211
*PAGE................................................................................. 214
*PICT(codesoption) .......................................................... 217
*PICT(questionoption)...................................................... 215
*PLAY.................................................................................. 219
*PLAYNoLongerSupportedAsaQuestionOption.............. 21
*PNW ................................................................................. 220
*PUT ................................................................................... 222
*QUESTION ........................................................................ 224
*RANDOM .......................................................................... 226
*RANGE .............................................................................. 228
*READ................................................................................. 230
*REC ................................................................................... 232
*REPEAT(questionoption)................................................. 234
*REPEAT...*ENDREP.......................................................... 235
*REPNUM ........................................................................... 238
*RETURN ............................................................................ 239
*RIGHT ............................................................................... 240
*ROT................................................................................... 241
*RUN .................................................................................. 242
*SAMPLEDATA.................................................................... 244
*SAVE(codesoption) ......................................................... 246
*SAVE(questionoption)..................................................... 245
*SCALE(in*FORMquestion).............................................. 249
*SCALE(questiontype) ...................................................... 247
*SCALEquestionselectors.................................................. 383
*SCALERANGE .................................................................... 252
*SHOWDOCUMENT............................................................ 256
*SIZE................................................................................... 257
*SKIP................................................................................... 260
*SQLADD ............................................................................ 261
*SQLGET ............................................................................. 265
*SQLPUT............................................................................. 268
*STOPAUTO........................................................................ 270
*STOPRANDOM.................................................................. 273
*STRAT ............................................................................... 274
*SUBROUTINE...*ENDSUB ................................................ 275

Page407

Index

*SWILANG........................................................................... 277
*TAB ................................................................................... 279
*TABLE ................................................................................ 281
*TEXTVARS.......................................................................... 283
*USELIST ............................................................................. 284
*VAR ................................................................................... 285
*VARS ................................................................................. 287
*VCONTROL ........................................................................ 288
*WAITCR ............................................................................. 291
*WAITCRCommandDroppedforNIPOCATIandNIPOCAWI
......................................................................................... 21
*WAITPLAY ......................................................................... 292
*WRITE ............................................................................... 293

<
<<<!!>>> ........................................................................... 88

A
Aboutthismanual .................................................................. 9
AdditionalConfigurationOptions ......................................... 65
AdditionalRemarks............................................................. 339
AdobeFlashApplication ..................................................... 339
AdvancedScripting ............................................................. 295
AdvancedUseof*NEXTRECORDCommand ....................... 295
Advanceduseof*SQLADDCommand ................................ 303
AlreadyCompletedCode...................................................... 316
AnonymousSurveys.............................................................. 86
AnswerCodes ....................................................................... 68
ApplicationConfigurationOptions........................................ 57
ApplyingDesigntoaSurvey................................................ 363
Ascribe ............................................................................ 51,54
AutomaticSyntaxChangeWhenReferencingPositionsinT
files .................................................................................. 82
AutosaveOptions ................................................................. 63

B
Backslashes........................................................................... 80
BrowserUserAgent................................................................ 76

C
ChangeInterviewNumber.................................................. 316
ChangeTextinDialogInterviewwillcontinuewithnext
person........................................................................... 303
ChangesinNIPOODINDeveloper......................................... 18
ChangesinNIPOODINDeveloper5.04................................. 20
ChangesinNIPOODINDeveloper5.05................................. 19
ChangesinNIPOODINDeveloper5.06................................. 19
ChangesinNIPOODINDeveloper5.08................................. 19
ChangesinNIPOODINDeveloper5.10................................. 18
ChangesinNIPOODINDeveloper5.11................................. 18
ChangesinNIPOODINDeveloper5.11.003 .......................... 18
ChangesinNIPOODINDeveloper5.14................................. 18
ChangesinNIPOODINScriptLanguage ................................ 15
ChangesinNIPOODINScriptLanguage5.08 ........................ 16
ChangesinNIPOODINScriptLanguage5.09 ........................ 16
ChangesinNIPOODINScriptLanguage5.10 ........................ 16
ChangesinNIPOODINScriptLanguage5.11 ........................ 16
ChangesinNIPOODINScriptLanguage5.12 ........................ 16
ChangesinNIPOODINScriptLanguage5.13 ........................ 16
ChangesinNIPOODINScriptLanguage5.14 ........................ 15
ChangesinNIPOODINScriptLanguage5.15 ........................ 15
ChangesinNIPOODINScriptLanguage5.15.001 ................. 15
ChangesinNIPOODINScriptLanguage5.16 ........................ 15
ChangingCodeOptions ........................................................ 31
ChangingQuestionOptions .................................................. 28

Page408

ChannelandInitialChannelFieldinSampleTable ..............353
ChannelAwareScripting .......................................................70
ChannelAwareScriptingExample.........................................71
ChannelAwareScriptingVariablesandConstants ................71
CharacteristicsforQuestionElements ................................377
CheckOptions .......................................................................59
CheckRoutingforStratification ............................................38
ClosedAnswersFile(Ufile).................................................341
CodeLabelExportsina*FORMQuestion .............................42
CodingSystemOptions .........................................................59
CommandIndex ....................................................................87
Comment/Uncomment .......................................................38
CommonMistakesinExpressions .........................................79
ConjTxt[n]..............................................................................75
CONJTXT[n]TextArray ........................................................323
ConsequencesofChannelAwareScriptingandSwitchMode
Surveys .............................................................................72
ContactFile(Cfile)..............................................................344
ContactingNIPOSoftwareSales............................................12
ContactingtheNIPOSoftwareHelpdesk ...............................12
ContactingUs ........................................................................12
CopyingPositionsFromaTfileIsLimitedtoFieldLength ....24
CreateaNewSurvey ...........................................................316
CreateCodeNumbersBeforeCodeLabelsandFields...........39
CreateQuestionnairesinUnicode.........................................39
CSSExamples.......................................................................397
CSSFileDetails ....................................................................377
CSSforButtons....................................................................385
CSSforFonts .......................................................................387
CSSforProgressBar ............................................................388
CSSforQuestions ................................................................379
CSSforTabs.........................................................................386

D
DataFields.............................................................................67
DataFiles.............................................................................341
DatapositionsinNIPOConjointMeasurement...................331
Databasetables...................................................................346
DefaultandCustomTemplatesandStylesheets .................364
DefaultQuestionSelectors..................................................379
DefiningTextScreens..........................................................322
DeleteDfile ........................................................................317
DummyDataOptions............................................................61
DuplicateInterviewNumbersinTfilesNoLongerContacted
.........................................................................................25
DutchCommandSetDropped...............................................20
Dutchcommandsetnolongersupported.............................21

E
Erroron*FORMQuestionLanguageSectionMismatch........37
ErrorWhenReadingNextRecord .......................................301
ErrorsMessagesUsing*SQLADD ........................................314
ErrorsUsing*SQLADD.........................................................313
Example1
ChangeBackgroundColorofaSelectedCode..............401
Example2
BoxSizeforOpenAnswerCode ...................................401
Example3
boxSizeforOpenQuestion..........................................402
Example4
CenterScales................................................................403
Example5
CenterTextAboveScales .............................................404
Example6
ColorBackgroundforFirstandThirdStatementGray..404
Example7

Index

GridUsingVariousStylingOptions...............................405
ExampleNIPOConjointMeasurement ...............................325
ExampleNIPOConjointScript .............................................327
ExampleNIPOODINQuestionnaireUsingStylesheets........398
ExampleofGeneratedHTMLPage .....................................368
ExampleofUsingOdintemplateFiles .................................365
ExampleofUsingStylesheets .............................................367
ExampleUsingAdobeFlashinNIPOCAWIandNIPOCAPI .337
ExamplesofExpressions .......................................................78
ExportXFile ..........................................................................54
Exportsof*FORMQuestionswithCodes..............................44
ExpressionOperators............................................................77
Expressions ...........................................................................76

F
FileStructuresandDatabaseTables ...................................341
FilesandTables.....................................................................10
FilesOptions .........................................................................64
Filters ..................................................................................322
FiltersinNIPOConjointMeasurement ...............................323
FindFunctionwithRegularExpressionsandMarkAll...........39
FormFieldReferences ..........................................................79
ForwardSlashesNoLongerSeparateCodeLabels................23

G
General .................................................................................10
GoingBackOver*SQLADDRemovesAddedRecords .........315
GridComposer ......................................................................32

H
HidedialogInterviewWillContinuewithNextPerson .....302
HowdoesfilteringinNIPOConjointMeasurementactually
work? .............................................................................324

I
Images/Sound .......................................................................53
Imports .................................................................................54
InsertingQuestionDefinitions ..............................................28
InstructionModeorTestModeMayCreateNewRecords.315
InterruptingtheTelephonicContact...................................302
InterviewProgressEstimation ............................................375
InterviewSystemOptions .....................................................58
Introduction ............................................................................9

J
JavaScriptSupported .............................................................75
JumptoQuestionResponseCode ......................................317

L
Language...............................................................................76
LimitationsofNIPOConjointMeasurement .......................334
LimitationsontheUseofFilterswithinNIPOConjoint
Measurement ................................................................324
LineSize ................................................................................27
ListingofCommandsperSystem ........................................357
ListingofSystemVariablesperChannel .............................361

M
MenuOptions .......................................................................38
MigratingSurveysFromNIPOODIN4.08..............................20
Morethan5Contacts .........................................................316
MultibyteCharacterFields(MBCSFieldsSetting)...............334

N
NamingConventions ............................................................ 67
NfieldCode......................................................................53,55
NIPOCAPIClientAddressTable.......................................... 352
NIPOConjointMeasurement ............................................. 318
NIPODiana ........................................................................... 40
NIPOODINDeveloperConfiguration.................................... 56
NIPOODINQuestionnaireUsingAdobeFlash .................... 338
NIPOODINTemplateUsingAdobeFlash............................ 338
NonAnonymousSurveys ..................................................... 86

O
ObsoleteCommandNames.................................................. 21
ODINOptions ....................................................................... 57
OdintemplateExample....................................................... 376
OmnibusorSubSampleTable(SeparateTableforEach
Survey)........................................................................... 351
Omnibussurvey,usingSampletablesandOmnibustables.. 85
OpenallQuestionnairesinOmnibusSurvey ........................ 38
Openanswersfile(Ofile)................................................... 342
OpenDataFiles .................................................................... 38
OpenQuestionnaireFile....................................................... 27
OrderCodeNumberExportinNIPODiana........................... 43
OrderofCheckingOdintemplateFiles................................ 364
OrderofCheckingStylesheets............................................ 366
OverviewofCommandsandSystemVariables .................. 357
OverviewofResponseCodes ............................................. 353
OverviewofsupportedcommandsinNIPOConjoint
Measurement ................................................................ 320

P
PopupMenuOptions .......................................................... 27
PreTel ................................................................................... 76
PrintOptions ........................................................................ 62

Q
Quantime ............................................................................. 51
QuestionElementsExample............................................... 378
QuestionPreviewinNIPOCATI/CAWI/CAPI ..................... 27
QuestionTypes................................................................... 367
Questions ............................................................................. 67
QuestionsandAnswers ........................................................ 10

R
RandomCodeNumberExportinNIPODiana....................... 43
ReferenceToaFeature ...................................................... 322
RemoveCommands ............................................................. 38
RepeatNumber .................................................................... 72
RestartingtheInterviewDoesNotRemoveNewRecords . 315
RestartingtheInterviewSetsNewRecordstoSystemError
...................................................................................... 302
ResultsWindowKeepsPreviousSyntaxChecks ................... 37
ReturnCodesfor*NEXTRECORD........................................ 300
ReusingSampleRecordsfromTfileThatWereAlready
Completed ..................................................................... 315

S
Sampletable(SeparateTableforEachSurvey) .................. 346
Scenario
*ALPHAforMBCSStorage........................................... 335
Scenario1
StoreNewRecordinTable(NottheSampleTable)..... 303
UsingSystemdefinedInterviewNumbers .................. 295
Scenario2

Page409

Index

InterviewNumbersBasedonHouseholdInterview
Number................................................................. 297
StoreNewRecordinCurrentSampleTable................. 305
Scenario3
StoreNewRecordinAnotherSampleTable ................ 306
UsingaPresetInactiveInterviewNumberforEach
Respondent........................................................... 299
Scenario4
StoreSeveralRecordsinaTable(VariableswithArrays)
.............................................................................. 308
Scenario5
AddNewRespondentsinNIPOCAWISurveyAndEmail
ThemDirectly........................................................ 310
Scenariosfor*SQLADD ....................................................... 303
ScenariosUsing*NEXTRECORD .......................................... 295
ScriptCommandTemplate ................................................... 75
SelectingAnotherCharacterSetinthe*FONTCommand .... 24
SelectorsinNIPOCAPI(AlphabeticOverview).................... 394
SelectorsinNIPOCAWI(AlphabeticalOverview) ............... 389
SelfModifyingScriptNoLongerSupported.......................... 22
SettingtheCodePage......................................................... 318
ShowVariables ..................................................................... 38
SoftwareCompatibility ........................................................... 9
SpecificationofResponseCodes ........................................ 355
SPSSPortable........................................................................ 47
SPSSPC ................................................................................. 49
StartEditorinWorkbookMode............................................ 39
StartmoduleNIPOConjointMeasurement ........................ 321
StatusfieldinSampleTable................................................ 353
StatusFieldinSurveyTable ................................................ 353
Status,ResponseCodes,TerminateCodes ......................... 353
Stopwatch[1] ........................................................................ 74
Stopwatch[1]andStopwatch[2]NotSupportedinNIPOCAPI
andNIPOCAWI ................................................................ 25
Stopwatch[2] ........................................................................ 74
Stopwatch[3] ........................................................................ 74
StoringdatainUnicode ...................................................... 342
Stratification ....................................................................... 315
Stratification(Quota) ............................................................ 80
Stratificationfile(Sfile) ...................................................... 346
Stratificationfile(Sfile)forNIPOCAWI................................ 86
Stratificationfile(Sfile)whenusingSampletable ............... 83
Stratificationfiles(Sfiles)forOmnibusSurveys(UsingTfiles)
......................................................................................... 84
SupportedHTMLstandards ................................................ 363
SurveysstartedfromaURL................................................... 86
SyntaxcheckforOmnibusSurveys ....................................... 37
SyntaxChecking .................................................................... 35
SyntaxHighlighting ............................................................... 57
SystemErrors...................................................................... 316
SystemVariables................................................................... 70
SystemVariables09............................................................. 73

T
TelephoneFile(Tfile) ......................................................... 343
TemplateTags..................................................................... 374
TemplatedRelatedFilesFolderConfiguration........................ 56
TerminateCodes................................................................. 355
Terminology.......................................................................... 10
TestRunQuestionnaireinNIPOCATI/CAPI/CAWI ............ 37
TheNIPOHTMLGenerator ................................................. 363
TheNIPOODINDeveloper .................................................... 40
TheScriptEditorWindow ..................................................... 27
Timers ................................................................................... 74
TimersExample..................................................................... 74
ToggleDisplayingTabsandSpaces ....................................... 27
TripleSXML.......................................................................... 45
TypographicalConventions................................................... 11

Page410

U
UndeclaredVariablesareCreatedwhenFixinga
Questionnaire...................................................................37
Using*NEXTRECORDinCombinationwithStratification ....302
UsingCodeNumbersina*FORMQuestion ..........................25
UsingCustomOmnibusTableFields ...................................351
UsingCustomSampleTableFields ......................................349
UsingJavaScriptinanOdintemplateFile ............................376
UsingSystemFieldsintheOmnibusTable ..........................351
UsingSystemFieldsintheSampleTable.............................350
UsingtheNIPOODINDeveloper ...........................................27
UsingtheNIPOODINScriptLanguage...................................67

V
Variables ...............................................................................68
VersionHistory......................................................................15
VerticalLineQuestionNotSupportedinNIPOCAPIandNIPO
CAWI.................................................................................21

W
WarningMessagefor*CODESQuestionWithoutCode
Categories ........................................................................37
WarningMessageforUnfixedQuestions ..............................37
WorkingwithCSS ................................................................376
WorkingWithTemplates.....................................................374

Y
YourFeedbackonthisGuide.................................................13

This manual is intended for the NIPO ODIN Script writers.


The following topics are discussed within these pages:
The NIPO ODIN Script Language, the NIPO Software
scripting solution for questionnaires in the NIPO CATI,
NIPO CAPI and NIPO CAWI environments.
The NIPO ODIN Developer, the application for
designing NIPO ODIN scripts, testing the questionnaire
in various channels, and exporting the data to a
statistical analysis software of choice.
The NIPO HTML Generator, the styling guide for NIPO
CATI and NIPO CAPI surveys.

your challenge | our solution

NIPO Software
Grote Bickersstraat 74
1013 KS Amsterdam
The Netherlands
http://www.niposoftware.com
info@niposoftware.com

Вам также может понравиться