* Program....: TEST_SUBMEMBERS.PRG * Version....: 1.0 * Author.....: DD * Date.......: 24.Mai 2002 * Notice.....: Copyright (c) 2002 * Frank Dietrich Datentechnik * Leo-Baeck-Str. 22 * 14165 Berlin * PHONE : +49-30-845 777-0 * FAX : +49-30-845 777-19 * CIS : 100322,333 * e-mail: frank.dietrich@dd-tech.de, All Rights Reserved. * Compiler...: Visual FoxPro 07.00.0000.9465 für Windows * Abstract...: Test for snowball-like member-structure * Changes....: #define cc_NoMember "-" if used("MEMBERS") use in MEMBERS endif create Cursor MEMBERS (INTRODUCER c(10), MEMBER c(10)) insert into MEMBERS values ("A", "B") insert into MEMBERS values ("A", "C") insert into MEMBERS values ("B", "D") insert into MEMBERS values ("B", "E") insert into MEMBERS values ("B", "F") insert into MEMBERS values ("C", cc_NoMember) insert into MEMBERS values ("D", cc_NoMember) insert into MEMBERS values ("E", cc_NoMember) insert into MEMBERS values ("F", cc_NoMember) select distinct INTRODUCER, subMembers(INTRODUCER) ; from MEMBERS *========================================================= * * FUNCTION: SubMembers * *========================================================= FUNCTION SubMembers * Created...........: 24.Mai 2002, 13:01 Uhr * Changed...........: * Description.......: Get the subMembers of a parent-Member * Calling Samples...: ? subMembers(<ExpC>) * Parameters........: tc_MemberID * Returns...........: numeric lparameters tc_MemberID local ln_RetVal, ln_i local array la_Dummy[1] *-- select MEMBER, SubMembers(MEMBER) from MEMBERS; *-- where INTRODUCER = tc_MemberID; *-- and MEMBER # cc_NoMember; *-- into array la_Dummy select MEMBER from MEMBERS; where INTRODUCER = tc_MemberID; and MEMBER # cc_NoMember; into array la_Dummy ln_RetVal = _tally if ln_RetVal > 0 for ln_i = 1 to alen(la_Dummy) ln_RetVal = ln_RetVal + SubMembers(la_Dummy[ln_i]) endfor &&* ln_i = 1 to alen(la_Dummy,1] endif return ln_RetVal return *-- eof SubMembersI am assuming You are the table You presented this morning (sorry I gave You just about the