vDb := "names.nsf"; vSvr := @Subset(@DbName;1); vLkpKey := @PickList([Name]:[Single]); vCheck :=@If(vLkpKey="";@Return("");""); vMax := 500; vExp := ""; vCount := 0; vTmp :=""; vRes := ""; vListGet := @DbLookup("":"NoCache";vSvr: vDb; "($VIMGroups)"; vLkpKey; "Members";[FailSilent]); vList := @If(@Elements(vListGet)<1;@Return(@Prompt([Ok];"[Error]";"Group '"+vLkpKey+"' not found"));@Trim(@Unique(vListGet))); @DoWhile( vCount := vCount+1; vThis := vList[1]; vNest := @DbLookup("Notes":"NoCache";vSvr:vDb;"($VIMGroups)"; vThis ; "Members";[FailSilent]); @If( vNest=""; vRes := vRes:vThis; @Elements(vNest)>=1; vList := @Trim(@Unique(vList:vNest)); vRes := @Trim(vRes:vNest) ); vExp := @Trim(@Unique(vExp:vThis)); vList := @Trim(@ReplaceSubstring(vList;vExp;"")); vCheck := @If(vCount>vMax;@Return(@Prompt([Ok];"[Error]";"There is a problem expanding the group (tried " +@Text(vCount)+")"));@Success); vThis != "" & @Elements(vList)>=1 & vCount<=vMax ); vRes := @Name([Abbreviate];vRes); @Prompt([OkCancelList];"[Members]";"These members are in '"+vLkpKey+"' & sub groups";"";@Trim(vRes)); @All