Dynamic Value set defined for age not working for two or more people with same Age from Household Member Roster

Discussions about CSEntry
lmoriba
Posts: 7
Joined: June 10th, 2018, 6:21 pm

Dynamic Value set defined for age not working for two or more people with same Age from Household Member Roster

Postby lmoriba » June 13th, 2018, 12:47 pm

Dear CSPRO Community,
I am seeking for assistance from anyone out there. According to my survey designed, I want to duplicate three variables: HHIDNO, Name and Age which are HL1, HL2 and HL6, respectively from the Household Member Roster to other sections of my survey, say the Education Roster, with various Eligibility criteria. I used the eligibility criteria to define the occurrence control field for the Education Roster. For example the eligibility criteria for the education module based on Age, ie. HL6, included everyone from the Household member roster with age ranges from 7 to 64 years.
I succeeded in bringing HL1, HL2 and HL6 from household member roster to Education Roster using the following programs


PROC ED1
onfocus

// Create the value set for all the Elegibles 7-64 from Demographic_Roster
// for IDNO, Name and Age EDUCATION0N_ROSTER
numeric iRoster1;
numeric nextEntryValueSet = 1;
do iRoster1= 1 while iRoster1<= totocc(HOUSEHOLD_MEMBERS_ROSTER)
if seek(HL6 IN 7:64) then
seek(ED1 = HL1(iRoster1)) = 0
labels(nextEntryValueSet) = HL2(iRoster1);
codes(nextEntryValueSet) = (iRoster1);
nextEntryValueSet = nextEntryValueSet + 1;
//holderName = labels(nextEntryValueSet)
endif;
enddo;
codes(nextEntryValueSet) = notappl;
setvalueset(ED1, codes, labels);
ELEGIBLE = getlabel(ED1, ED1);


For name:
PROC ED2_1

ONFOCUS
$ = GETLABEL(ED1,ED1);

For Age:

Onfocus

numeric iRoster1;
numeric nextEntryValueSet = 1;
do iRoster1= 1 while iRoster1<= totocc(HOUSEHOLD_MEMBERS_ROSTER)
if seek(HL6 IN 7:64) then
seek(ED2_2 = HL6(iRoster1))= 0;
labels(nextEntryValueSet) = HL2(iRoster1);
codes(nextEntryValueSet) = HL6(iRoster1);
nextEntryValueSet = nextEntryValueSet + 1;
//ED2_2 = codes(nextEntryValueSet);
endif;
endif;
enddo;

codes(nextEntryValueSet) = notappl;
setvalueset(ED2_2, codes, labels);
These programs worked when we don’t have any two persons from Household member roster who incidentally happened to have the same age. But should you have any two members with the same age the results for the programs in ED2_2, Age failed to yield any meaningful results, although the ID No and Name still worked ok.

My problem, 1. Am seeking assistance to resolve the problem, If you have some Household members in Household members Roster with the same age.
Problem2. Can you bring the IDNum, Name and Age of eligible Household members from Household Member Roster to Education Roster using different coding and approach from the above? If so, how?

Attached is my survey for your attention and comprehension.
Attachments
GMLFS2018 (1).zip
(754.1 KiB) Downloaded 12 times
Last edited by lmoriba on June 18th, 2018, 6:03 pm, edited 1 time in total.

Gregory Martin
Posts: 997
Joined: December 5th, 2011, 11:27 pm
Location: Washington, DC

Re: Dynamic Valuable set defined for age not working for two or more people with same Age from Household Member Roster

Postby Gregory Martin » June 13th, 2018, 6:24 pm

I have a question about what you are trying to accomplish in this section. Once they select the person in ED1, why are you asking the interviewer to select the age rather than just prefilling it?

If you executed this in the postproc of ED1, it would prefill the age:

ED2_2 = HL6(ED1);

khurshid.arshad
Posts: 313
Joined: July 9th, 2012, 11:32 am
Location: Islamabad, Pakistan
Contact:

Re: Dynamic Valuable set defined for age not working for two or more people with same Age from Household Member Roster

Postby khurshid.arshad » June 13th, 2018, 7:12 pm

Dear

You should use prefill option as Gregory mentioned but as per your requirement please see following codes:

Please try this in ED1

Code: Select all

numeric iRoster1;
   numeric nextEntryValueSet = 1;
   numeric seekdata;

   do iRoster1= curocc() while iRoster1<= totocc(HOUSEHOLD_MEMBERS_ROSTER)
      seekdata=seek( HL6 >=7 and HL6<=46,  @iRoster1 );
      if seekdata>0 then
         labels(nextEntryValueSet) = HL2(seekdata);
         codes(nextEntryValueSet)= HL1(seekdata);
         nextEntryValueSet = nextEntryValueSet + 1;
         //holderName = labels(nextEntryValueSet)
      endif;
   enddo;

   codes(nextEntryValueSet) = notappl;
   setvalueset(ED1, codes, labels);
   //
   //onfocus
   ELEGIBLE = getlabel(ED1, ED1);



and in ED2_2


Code: Select all

Preproc

   numeric iRoster1;
   numeric nextEntryValueSet = 1;
   numeric seekdata;

   do iRoster1= curocc() while iRoster1 <=totocc(HOUSEHOLD_MEMBERS_ROSTER)

   seekdata=seek(  HL6 >=7 and HL6<=46,  @iRoster1 );
      if seekdata>0 then
            labels(nextEntryValueSet) = HL2(seekdata);
            codes(nextEntryValueSet) = HL6(seekdata);
            nextEntryValueSet = nextEntryValueSet + 1;
      
      endif;
   enddo;
   
   codes(nextEntryValueSet) = notappl;
   setvalueset(ED2_2, codes, labels);


Best.
a.

lmoriba
Posts: 7
Joined: June 10th, 2018, 6:21 pm

Re: Dynamic Valuable set defined for age not working for two or more people with same Age from Household Member Roster

Postby lmoriba » June 14th, 2018, 7:05 pm

Dear Gregory and Arshad,

Many thanks for your suggested solutions to my dilemma. In fact both suggestions represented adequate solutions to my problems. They were the solutions I was looking for.
So, I thank you all, once again, for coming to my aid, ASAP.

Regards,

LmJ

khurshid.arshad
Posts: 313
Joined: July 9th, 2012, 11:32 am
Location: Islamabad, Pakistan
Contact:

Re: Dynamic Valuable set defined for age not working for two or more people with same Age from Household Member Roster

Postby khurshid.arshad » June 16th, 2018, 11:57 am

Dear

Please see first three questions in Education and Training section. I have made some changes in the syntax to get pre-filled data from "Name Forms and Household Members Forms.

If it is fine then you can apply in the rest of sections.

Best.
a.
Attachments
GMLFS2018.rar
(640.76 KiB) Downloaded 12 times

lmoriba
Posts: 7
Joined: June 10th, 2018, 6:21 pm

Re: Dynamic Value set defined for age not working for two or more people with same Age from Household Member Roster

Postby lmoriba » June 18th, 2018, 6:06 pm

Many thanks Arshad, I found the coding useful and I decided to use them. So, thank you., once again.


Return to “Entry”