Hi~all
Household survey is representative of one person will answer this question,
the remaining members do have some way to skip that question? Suggestions are appreciated.
| Please login to reply | Page: « < 1 of 1 > » |
| 17 Aug 2010 - 02:05 | 726 |
oversound![]() Joined: 25 Mar 2009 Posts: 9 | Household Survey Question Hi~all Household survey is representative of one person will answer this question,
|
![]() |
| 17 Aug 2010 - 15:48 | 727 |
fwensing![]() Joined: 23 Nov 2008 Posts: 173 | Please explain Hi I am afraid that your question does not make sense to me. Please explain, then I will try to answer. Cheers Fred |
![]() |
| 30 Aug 2010 - 08:20 | 735 |
oversound![]() Joined: 25 Mar 2009 Posts: 9 | Household Survey Question Hi~ all I'm currently doing a survey and I'm looking for some help related on household question. Here are situation. 1. One interviewer will have a list with hole family list with one laptop.
Is there any way to solve this problem? What I need to know is how to skip the secton for rest of familly members and get answers from only one respodent's answers for the section. Thank you. |
![]() |
| 30 Aug 2010 - 12:37 | 736 |
oversound![]() Joined: 25 Mar 2009 Posts: 9 | Household Survey Question Quote oversound:
Hi~ all I'm currently doing a survey and I'm looking for some help related on household question. Here are situation. 1. One interviewer will have a list with whole family list with one laptop.
Is there any way to solve this problem? What I need to know is how to skip the secton for rest of familly members and get answers from only one respodent's answers for the section. Thank you. |
![]() |
| 30 Aug 2010 - 14:51 | 737 |
fwensing![]() Joined: 23 Nov 2008 Posts: 173 | Sample datamodel for you Hi there I have prepared a sample datamodel that attempts to do what you have asked. The most important thing to do is to group your questions into blocks. Once you have done that you can use Array and Table definitions to make the survey work for you. For most surveys you would start by asking some basic demographic questions about each person in the household (this is called the household roster). This part is best done in a table. To make it possible to manage the table my questionnaire starts by asking how many persons live in the household. Once you know that you can control the active rows in the table. Each row of the table consists of a Block of demographic questions. At the end of the household roster I have added a question that asks which of the household members is best to answer the income question. The answers to this question are made up of the names of the persons identified in the household roster. The person survey questions are also placed into a block. To enable each person to receive the questions, that block is then set up as an array. To make the person part of the survey easier to manage I have used the Parallel setting to make the person questions appear as tabs in the questionnaire. This will enable the interviewer to go to whichever person she likes. To make the tabs more relevant for the household I have prepared an Auxfield array called aTabHeading[x] which will contain the names of each person. The person identified for the income questions will have a * appended to their name in the tab. To be able to see these headings in the tabs you will need to adjust the Datamodel Properties, and insert ^aTabHeading[1] into the heading label fields for the first parallel block and ^aTabHeading[2] for the second etc. To enable the person questions to make use of the person names, gender etc I have added parameters to transfer this information from the household roster into the Person block. Parameters are also used to pass in the relevant person number for the person who is to receive the income question(s). You will see that the IF logic within the Person block will then ask the income questions of the identified person. The datamodel is included here:
{*********************************************************************
Module : IncomeSurvey.BLA
Overview :
Sample datamodel for household survey of income stuff.
This datamodel contains a household roster which consists
of a table of demographic questions for each person. This
is followed by a series of questions for each person in the
household. The latter are set up as an array. The Parallel
block setting will show the persons as separate tabs. To see
the person names on the tabs you will need to adjust the Datamodel
Properties Parallel Block settings to use the labels which are
set up for the purpose (name: aTabHeading[1], aTabHeading[2] etc).
This datamodel includes a question that identifies the person
who is to receive the income questions. The person number is passed
into the block of person questions in order to control the logic.
Author : fred.wensing@softscape.net.au
Update History:
Vsn dd/mm/yyyy Person Change
----- ---------- ------ ------
1.001 30/08/2010 Fred -Initial version
*********************************************************************}
DATAMODEL MySurvey "Income survey"
PRIMARY
CaseID
{Parallel block setting - adds a tab for each person}
PARALLEL
Person
{Type definitions used in the datamodel}
TYPE
TPersons = 1..10
TName = STRING[20]
TNameArray = ARRAY[1..10] OF STRING[20]
Tgender = (Male, Female)
TAge = 0..120
TYesNo = (Yes (1) "Yes", No (5) "No")
TContinue = (Continue "Press [1] to continue")
TIncSource = (Wages, Interest, Rent, Dividends, Other)
{Block for case identification}
BLOCK BCaseID
FIELDS
Case_Number "Enter the case number (1000 to 9999)"
/ "Case number"
: 1000..9999
ENDBLOCK
{Block of person demographic details}
BLOCK BDemographic
PARAMETERS
pPersonNumber : TPersons
FIELDS
Name "What is the ^aFirstNext person's name?"
/ "Name"
: TName
Gender "Is that person male or female?"
/ "Gender"
: Tgender
Age "How old is that person?"
/ "Age"
: TAge
AUXFIELDS
aFirstNext : STRING[20]
RULES
IF pPersonNumber=1 THEN
aFirstNext := 'first'
ELSE
aFirstNext := 'next'
ENDIF
Name
Gender
Age
ENDBLOCK
{Household roster - table of up to 10 persons}
TABLE BHousehold
PARAMETERS
pPersons : TPersons
FIELDS
Demographic : ARRAY [1..10] OF BDemographic
LOCALS
X : INTEGER
RULES
FOR X:=1 TO 10 DO
IF X<=pPersons THEN
Demographic[X](X)
ENDIF
ENDDO
ENDTABLE
{Survey questions for each person}
BLOCK BPerson
PARAMETERS
pNumber : TPersons
pName : TName
pGender : Tgender
pIncomePsn : TPersons
FIELDS
Working "Does ^aName do any work in a job, business or farm?"
/ "Working"
: TYesNo
WorkKind "What kind of work does ^aHeShe do?"
/ "Kind"
: STRING[50]
Income_Source "What sources of income does this household have?"
/ "Income sources"
: SET OF TIncSource
Income_Amount "What is the total annual income of this household?"
/ "Total income"
: -999999..999999
AUXFIELDS
aName : TName
aHeShe : STRING[10]
RULES
{Define fill texts for the questions}
aName := pName
IF pGender=Male THEN
aHeShe:='he'
ELSEIF pGender=Female THEN
aHeShe:='she'
ENDIF
{Ask the work questions}
Working
IF Working=Yes THEN
WorkKind
ENDIF
{Only ask income questions of the person whose
pNumber matches the pIncomePsn}
IF pNumber=pIncomePsn THEN
Income_Source
Income_Amount
ENDIF
LAYOUT
BEFORE Working NEWPAGE
ENDBLOCK
{Top level fields - control of survey}
FIELDS
CaseID : BCaseID
Num_Persons "How many persons live in this household?"
/ "Number"
: TPersons
Household : BHousehold
HHEndPoint "Interviewer: This is the end of the household roster section"
/ "End point"
: TContinue
IncomePerson "Which person can answer the income questions?"
/ "Income person"
: (Person1 "^aNameList[1]"
,Person2 "^aNameList[2]"
,Person3 "^aNameList[3]"
,Person4 "^aNameList[4]"
,Person5 "^aNameList[5]"
,Person6 "^aNameList[6]"
,Person7 "^aNameList[7]"
,Person8 "^aNameList[8]"
,Person9 "^aNameList[9]"
,Person10 "^aNameList[10]"
)
Person : ARRAY [1..10] OF BPerson
AUXFIELDS
aTabHeading "Text for tab label" : ARRAY [1..10] OF STRING[40]
aNameList "List of person names" : TNameArray
aIncomePsn "Person number for income questions" : TPersons
LOCALS
X : INTEGER
RULES
{Number of persons in household}
Num_Persons
{Ask the household roster}
Household (Num_Persons)
{End point for household roster}
HHEndPoint
{Fill the array of names for the income person question}
FOR X:=1 TO 10 DO
aNameList[X]:=Household.Demographic[X].Name
ENDDO
{ask the income person question}
IncomePerson
{set the income person number}
aIncomePsn:=ORD(IncomePerson)
{continue}
IF HHEndPoint = Continue THEN
{ask questions of each person}
FOR X:=1 TO 10 DO
IF Household.Demographic[X].Name<>EMPTY THEN
{set the field used to put labels into the parallel tabs}
aTabHeading[X] := Household.Demographic[X].Name
{add a * for the person who is to receive income questions}
IF X=aIncomePsn THEN
aTabHeading[X]:=aTabHeading[X]+' *'
ENDIF
{ask the person questions}
Person[X](X,Household.Demographic[X].Name,Household.Demographic[X].gender,aIncomePsn)
ENDIF
ENDDO
ENDIF
ENDMODEL
Note that my questions all include the Description text. To make these appear on the Form Pane you will need to adjust the Mode library so that the Field Pane definition shows the Description text rather than the field Name. I hope this helps. Fred |
![]() |
| Please login to reply | Page: « < 1 of 1 > » |