Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to sum up the member
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00660910
Message ID:
00660945
Vues:
18
>I need to know also how many member are under one member called 'A' such as Member A has two Members. Member B, Member C. But then Member B Has Three Members under him, so Member A Have Member B and three member B's Childs and also member C. The total of Member A Have 5 members under him.
>
>Any suggestion ? Please advise how to search these record? Thanks

Sounds like an insurance-company or a snowball-like-game.

Ok, there are probably better solutions but this will do the job
* 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 SubMembers
I am assuming You are the table You presented this morning (sorry I gave You just about the
same answer as Sergey but I did not see his answer before). And I did some minor adjustments
do have all members - even those who have not recruted anyone - at least once on the left
side. You could create this different but You will need a "all-Members-Register".

I think You should get the idea from that.

HTH

Frank
Regards from Berlin

Frank

Dietrich Datentechnik (Berlin)
Softwarekombinat Teltow (Teltow)

Frank.Dietrich@dd-tech.de
DFPUG # 327
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform