%define;csv_line3(xx,yy,zz) ;%xx.index; ;%family.index; ;%xx.first_name_key_val; ;%xx.surname_key_val; ;%xx.occ; ;%if;(sosa_in_list != "")%sosa_in_list;%end; ;%ancestor.anc_sosa; ;yy.%child_cnt;xzz%nn; ;%xx.sex; ;%consanguinity; ;%xx.first_name; ;%xx.surname; ;%birth_date.prec; ;%birth_date.year; ;%birth_date.month; ;%birth_date.day; ;%xx.birth_place; ;%death_date.prec; ;%death_date.year; ;%death_date.month; ;%death_date.day; ;%xx.death_place; %if;(has_parents) ;%father.first_name;;%father.surname;;%father_age_at_birth; ;%mother.first_name;;%mother.surname;;%mother_age_at_birth; %else;;;;;;;%end; ;%family_cnt; ;%marriage_date.prec; ;%marriage_date.year; ;%marriage_date.month; ;%marriage_date.day; ;%marriage_place; ;%first_name; ;%surname; ;%first_name_key_val; ;%surname_key_val; ;%occ; %nn; %end; %define;csv_line2() ;%family_cnt; ;%marriage_date.prec; ;%marriage_date.year; ;%marriage_date.month; ;%marriage_date.day; ;%marriage_place; ;%spouse.first_name; ;%spouse.surname; ;%spouse.first_name_key_val; ;%spouse.surname_key_val; ;%spouse.occ; %end; %define;csv_line1(yy) ;%index; ;%family.index; ;%first_name_key_val; ;%surname_key_val; ;%occ; ;%if;(sosa_in_list != "")%sosa_in_list;%end; ;%ancestor.anc_sosa; ;yy.%child_cnt; ;%sex; ;%consanguinity; ;%first_name; ;%surname; ;%birth_date.prec; ;%birth_date.year; ;%birth_date.month; ;%birth_date.day; ;%birth_place; ;%death_date.prec; ;%death_date.year; ;%death_date.month; ;%death_date.day; ;%death_place; %if;(has_parents) ;%father.first_name;;%father.surname;;%father_age_at_birth; ;%mother.first_name;;%mother.surname;;%mother_age_at_birth; %else;;;;;;;%end; %nn; %end; %define;csv_line(yy,zz) %foreach;child; %if;(child.has_families) %foreach;child.family; %incr_count;%count; %apply;csv_line1("yy.zz") %apply;csv_line2() %if;(spouse.sosa_in_list = "") %incr_count;%count; %apply;csv_line3("spouse","yy.zz",family_cnt) %end; %if;(evar.cousins="on" and child.has_families and child.sosa_in_list = "") %apply;csv_line("yy.zz",child_cnt) %end; %end; %else; %incr_count;%count; %apply;csv_line1("yy.zz")%nn; ;;; %end; %end; %end; %( csv display full %)

[number]%nn; ;index%nn; ;index_family%nn; ;first_name_key_val%nn; ;surname_key_val%nn; ;occ%nn; ;[Sosa]%nn; ;[Sosa]_[father/mother]0%nn; ;[child/children]0_[number]%nn; ;[sex]%nn; ;[consanguinity]%nn; ;[first name/first names]0%nn; ;[surname/surnames]0%nn; ;[birth]_[precision]%nn; ;[birth]_[year/month/day]0%nn; ;[birth]_[year/month/day]1%nn; ;[birth]_[year/month/day]2%nn; ;[birth]_[place]%nn; ;[death]_[precision]%nn; ;[death]_[year/month/day]0%nn; ;[death]_[year/month/day]1%nn; ;[death]_[year/month/day]2%nn; ;[death]_[place]%nn; ;[father/mother]0_[first name/first names]0%nn; ;[father/mother]0_[surname/surnames]0%nn; ;[father/mother]0_[age]%nn; ;[father/mother]1_[first name/first names]0%nn; ;[father/mother]1_[surname/surnames]0%nn; ;[father/mother]1_[age]%nn; ;[family/families]0_[number]%nn; ;[marriage/marriages]0_[precision]%nn; ;[marriage/marriages]0_[year/month/day]0%nn; ;[marriage/marriages]0_[year/month/day]1%nn; ;[marriage/marriages]0_[year/month/day]2%nn; ;[marriage/marriages]0_[place]%nn; ;[marriage/marriages]0_[first name/first names]0%nn; ;[marriage/marriages]0_[surname/surnames]0%nn; ;[marriage/marriages]0_first_name_key_val%nn; ;[marriage/marriages]0_surname_key_val%nn; ;[marriage/marriages]0_occ%nn; %reset_count; %foreach;ancestor_level(l_v) %if;(level != 1 and evar.only != "on" or level = l_v) %foreach;ancestor; %if;(ancestor.same = "" and ancestor.is_male) %foreach;ancestor.family; %apply;csv_line("","") %end; %elseif;(ancestor.same = "" and ancestor.is_female and ancestor.nb_families > 1) %foreach;ancestor.family; %if;(spouse.index != ancestor.spouse.index) %apply;csv_line("","") %end; %end; %end; %end; %end; %end;