*--Left treeview -Policy Exceptions -Policy # Matches But Not Insurance Co -SMITH*RAYMOND -403329281 && policy number the user clicks on to process *--Right treeview -Policy Number Matches -SMITH*RAYMOND -403329281 && this item should be selected by defaultAny ideas? Right now the right treeview is not even automatically expanded, but I can change that easily.
*** ActiveX Control Event *** LPARAMETERS NODE * this loNode is being selected by the user NODE.ensurevisible THISFORM.tree1text = NODE.TEXT THISFORM.tree1key = NODE.KEY PRIVATE lnpos, llonrecord llonrecord = .F. lnpos=0 IF LEN(THISFORM.tree1key)>= 7 .AND. UPPER(LEFT(THISFORM.tree1key,7))="IVANS_P" lnpos = INT(VAL(RIGHT(THISFORM.tree1key,LEN(THISFORM.tree1key)-AT(':',THISFORM.tree1key)))) SELE IVANS_P IF RECCOUNT('IVANS_P') >= lnpos GOTO lnpos STORE IVANS_P.po_insco TO THISFORM.tinsco STORE IVANS_P.po_name TO THISFORM.tname STORE IVANS_P.po_pol TO THISFORM.tpolicy STORE IVANS_P.po_eff TO THISFORM.teffdate STORE lnpos TO THISFORM.trecno STORE IVANS_P.nreason TO THISFORM.treason IF !EOF('IVANS_i') .AND. IVANS_i.cguid = IVANS_P.cguid STORE IVANS_i.po_ssn TO THISFORM.tssn ELSE STORE '' TO THISFORM.tssn ENDIF llonrecord = .T. ELSE STORE 0 TO THISFORM.tinsco STORE '' TO THISFORM.tname STORE '' TO THISFORM.tssn STORE '' TO THISFORM.tpolicy STORE {} TO THISFORM.teffdate STORE 0 TO THISFORM.trecno STORE 0 TO THISFORM.treason llonrecord = .F. ENDIF ELSE STORE 0 TO THISFORM.tinsco STORE '' TO THISFORM.tname STORE '' TO THISFORM.tssn STORE '' TO THISFORM.tpolicy STORE {} TO THISFORM.teffdate STORE 0 TO THISFORM.trecno STORE 0 TO THISFORM.treason llonrecord = .F. * WAIT WINDOW "You selected "+thisform.tree1text+" whose key is: "+thisform.tree1key NOWAIT ENDIF IF llonrecord && current selected treeview item matches record pointer in table IF LEN(ALLTRIM(IVANS_i.po_ssn))=9 mssn=LEFT(ALLTRIM(IVANS_i.po_ssn),3)+"-"+SUBSTR(ALLTRIM(IVANS_i.po_ssn),4,2)+"-"+RIGHT(ALLTRIM(IVANS_i.po_ssn),4) ELSE mssn=IVANS_i.po_ssn ENDIF THISFORM.labelssn.CAPTION=mssn THISFORM.labeladdr.CAPTION=IVANS_i.po_addr1 THISFORM.labelcity.CAPTION=ALLTRIM(IVANS_i.po_city)+", "+IVANS_i.po_state+" "+IVANS_i.po_zip THISFORM.labeltype.CAPTION=IVANS_P.po_type THISFORM.labeleff.CAPTION=DTOC(IVANS_P.po_eff) DO CASE CASE IVANS_P.po_status="REI" THISFORM.labelstatus.CAPTION="REI - Reinstated" CASE IVANS_P.po_status="REN" THISFORM.labelstatus.CAPTION="REN - Renewed" CASE IVANS_P.po_status="CXP" THISFORM.labelstatus.CAPTION="CXP - Cancelled" CASE IVANS_P.po_status="NB" THISFORM.labelstatus.CAPTION="NB - New Business" OTHERWISE THISFORM.labelstatus.CAPTION="??? - Policy Change" ENDCASE THISFORM.labelterm.CAPTION=ALLTRIM(STR(IVANS_P.po_term)) THISFORM.labelprem.CAPTION="$"+LTRIM(TRANS(IVANS_P.po_prem,"9,999,999.99")) THISFORM.labelcarrier.caption=ALLTRIM(STR(IVANS_p.po_insco)) THISFORM.labelcarrnam.caption=com_name(IVANS_p.po_insco) THISFORM.shapeinfo1.zorder(1) ELSE THISFORM.shapeinfo1.zorder(0) THISFORM.shapeinfo2.zorder(0) ENDIF THISFORM.FILLTREE2 && populate the right treeview with matching policy numbers or names RETURNform's filltree2 method:
PARAMETERS searchname, searchssn, searchpolicy IF TYPE('searchname')="L" searchname = '' ENDIF IF TYPE('searchssn')="L" searchssn = '' ENDIF IF TYPE('searchpolicy')="L" searchpolicy = '' ENDIF #DEFINE tvwFirst 0 && The Node is placed before all other nodes at the same level of the node named in relative. #DEFINE tvwLast 1 && The Node is placed after all other nodes at the same level of the node named in relative. Any Node added subsequently may be placed after one added as Last. #DEFINE tvwNext 2 && (Default) The Node is placed after the node named in relative. #DEFINE tvwPrevious 3 && The Node is placed before the node named in relative. #DEFINE tvwChild 4 && The Node becomes a child node of the node named in relative.#DEFINE tvwFirst 0 #DEFINE cnLOG_PIXELS_X 88 #DEFINE cnLOG_PIXELS_Y 90 #DEFINE cnTWIPS_PER_INCH 1440 PRIVATE onode, mstartkey, tnode, mparentkey, mchildkey mparentkey='' mchildkey='' mtopkey='' WAIT WINDOW "Locating matching insureds and policies..Please be patient." NOWAIT WITH THIS.Tree2.nodes DO CASE ****->>>>This case statement runs CASE THISFORM.filldefault .AND. EMPTY(searchname) .AND. !THISFORM.viewall .clear IF TYPE('thisform.trecno')<>"N" .OR. THISFORM.trecno <= 0 THISFORM.cmddefault.REFRESH() RETURN ENDIF SELE IVANS_p GOTO THISFORM.trecno DO CASE CASE IVANS_p.nreason = 1 && ssn match no name match SET ORDER TO TAG PO_SSN IN insured SET ORDER TO TAG sysnum IN policies IF LEN(ALLTRIM(IVANS_i.PO_SSN))=9 mssn=LEFT(ALLTRIM(IVANS_i.PO_SSN),3)+"-"+SUBSTR(ALLTRIM(IVANS_i.PO_SSN),4,2)+"-"+RIGHT(ALLTRIM(IVANS_i.PO_SSN),4) ELSE mssn=IVANS_i.PO_SSN ENDIF tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','Social '+mssn+' Matches') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF SELE insured SCAN FOR ALLTRIM(PO_SSN) = ALLTRIM(IVANS_i.PO_SSN) STORE "I"+ALLTRIM(STR(RECNO('insured'))) TO mparentkey && recno in insured table onode=.ADD('MAIN_KEY_0000',tvwChild,mparentkey, ALLTRIM(insured.po_name)) IF TYPE('onode')="O" onode.expanded = .T. ENDIF SELE policies SCAN FOR po_sysnum=insured.po_sysnum STORE "P"+ALLTRIM(STR(RECNO('policies')))+mparentkey TO mchildkey && recno in policies table cnode=.ADD(mparentkey,tvwChild,mchildkey,ALLTRIM(policies.po_pol)) *!* IF TYPE('cnode')="O" *!* cnode.expanded = .T. *!* ENDIF ENDSCAN ENDSCAN SELE IVANS_p CASE IVANS_p.nreason = 2 && full name match no ssn match SET ORDER TO TAG NAME IN insured SET ORDER TO TAG sysnum IN policies tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','Name '+ALLTRIM(IVANS_i.po_name)+' Matches') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF SELE insured SCAN FOR ALLTRIM(po_name) = ALLTRIM(IVANS_i.po_name) STORE "I"+ALLTRIM(STR(RECNO('insured'))) TO mparentkey && recno in insured table onode=.ADD('MAIN_KEY_0000',tvwChild,mparentkey, ALLTRIM(insured.po_name)) IF TYPE('onode')="O" onode.expanded = .T. ENDIF SELE policies SCAN FOR po_sysnum=insured.po_sysnum STORE "P"+ALLTRIM(STR(RECNO('policies')))+mparentkey TO mchildkey && recno in policies table cnode=.ADD(mparentkey,tvwChild,mchildkey,ALLTRIM(policies.po_pol)) *!* IF TYPE('cnode')="O" *!* cnode.expanded = .T. *!* ENDIF ENDSCAN ENDSCAN SELE IVANS_p CASE IVANS_p.nreason = 3 && no name or ssn match *--Try to find a name that is close searchname=UPPER(LEFT(IVANS_i.po_name,AT("*",IVANS_i.po_name)-1)) SET ORDER TO TAG NAME IN insured SET ORDER TO TAG sysnum IN policies tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','Last Name Matches') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF SELE insured GO TOP xexact = SET("EXACT") SET EXACT OFF SET NEAR ON IF SEEK(UPPER(searchname),'INSURED') SCAN FOR UPPER(LEFT(insured.po_name,LEN(ALLTRIM(searchname))))=UPPER(ALLTRIM(searchname)) STORE "I"+ALLTRIM(STR(RECNO('insured'))) TO mparentkey && recno in insured table onode=.ADD('MAIN_KEY_0000',tvwChild,mparentkey, ALLTRIM(insured.po_name)) IF INDEXSEEK(insured.po_sysnum,.T.,'POLICIES','SYSNUM') SELE policies SCAN WHILE po_sysnum=insured.po_sysnum .AND. !EOF('policies') STORE "P"+ALLTRIM(STR(RECNO('policies')))+mparentkey TO mchildkey && recno in policies table cnode=.ADD(mparentkey,tvwChild,mchildkey,ALLTRIM(policies.po_pol)) ENDSCAN ENDIF SELE insured ENDSCAN ENDIF SET EXACT &xexact SET NEAR OFF searchname='' SELE IVANS_p ****->>>>This case statement runs CASE IVANS_p.nreason = 4 && policy match but different insco or eff date SET ORDER TO TAG sysnum IN insured SET ORDER TO TAG POLNUM IN policies searchpolicy=ALLTRIM(IVANS_p.po_pol) tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','Policy Number Matches') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF SELE policies GO TOP xexact = SET("EXACT") SET EXACT OFF PRIVATE ARRAY NAMEKEYS(1) DIMENSION NAMEKEYS(1) IF INDEXSEEK(ALLTRIM(searchpolicy),.T.,'POLICIES','POLNUM') i = 1 lngnpos = 0 IF TYPE('NAMEKEYS(i)')="U" DIMENSION NAMEKEYS(i) ENDIF IF TYPE('NAMEKEYS(i)')="L" NAMEKEYS(i) = "" ENDIF SCAN FOR ALLTRIM(po_pol)=ALLTRIM(searchpolicy) IF INDEXSEEK(policies.po_sysnum,.T.,'INSURED','SYSNUM') SELE insured STORE "I"+ALLTRIM(STR(RECNO('insured'))) TO mparentkey && recno in insured table SET EXACT ON lngnpos=ASCAN(NAMEKEYS,"I"+ALLTRIM(STR(RECNO('insured'))),-1) SET EXACT OFF IF lngnpos = 0 IF TYPE('NAMEKEYS(i)')="U" DIMENSION NAMEKEYS(i) ENDIF IF TYPE('NAMEKEYS(i)')="L" NAMEKEYS(i) = "" ENDIF NAMEKEYS(i) = mparentkey onode=.ADD('MAIN_KEY_0000',tvwChild,mparentkey, ALLTRIM(insured.po_name)) i = i + 1 ENDIF SELE policies STORE "P"+ALLTRIM(STR(RECNO('policies')))+mparentkey TO mchildkey && recno in policies table cnode=.ADD(mparentkey,tvwChild,mchildkey,ALLTRIM(policies.po_pol)) ENDIF SELE policies ENDSCAN ENDIF SET EXACT &xexact SET NEAR OFF SELE IVANS_p searchpolicy='' ENDCASE CASE THISFORM.viewall = .T. .clear SET ORDER TO TAG NAME IN insured SET ORDER TO TAG sysnum IN policies THISFORM.viewall = .F. tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','All Insureds and Policies') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF SELE insured GO TOP SCAN STORE "I"+ALLTRIM(STR(RECNO('insured'))) TO mparentkey && recno in insured table onode=.ADD('MAIN_KEY_0000',tvwChild,mparentkey, ALLTRIM(insured.po_name)) IF INDEXSEEK(insured.po_sysnum,.T.,'POLICIES','SYSNUM') SELE policies SCAN WHILE po_sysnum=insured.po_sysnum .AND. !EOF('policies') STORE "P"+ALLTRIM(STR(RECNO('policies')))+mparentkey TO mchildkey && recno in policies table cnode=.ADD(mparentkey,tvwChild,mchildkey,ALLTRIM(policies.po_pol)) ENDSCAN ENDIF SELE insured ENDSCAN SELE IVANS_p CASE !EMPTY(searchname) .clear WAIT WINDOW "Searching for Name: "+searchname NOWAIT SET ORDER TO TAG NAME IN insured SET ORDER TO TAG sysnum IN policies tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','Last Name Matches') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF SELE insured GO TOP xexact = SET("EXACT") SET EXACT OFF SET NEAR ON IF SEEK(UPPER(searchname),'INSURED') SCAN FOR UPPER(LEFT(insured.po_name,LEN(ALLTRIM(searchname))))=UPPER(ALLTRIM(searchname)) STORE "I"+ALLTRIM(STR(RECNO('insured'))) TO mparentkey && recno in insured table onode=.ADD('MAIN_KEY_0000',tvwChild,mparentkey, ALLTRIM(insured.po_name)) IF INDEXSEEK(insured.po_sysnum,.T.,'POLICIES','SYSNUM') SELE policies SCAN WHILE po_sysnum=insured.po_sysnum .AND. !EOF('policies') STORE "P"+ALLTRIM(STR(RECNO('policies')))+mparentkey TO mchildkey && recno in policies table cnode=.ADD(mparentkey,tvwChild,mchildkey,ALLTRIM(policies.po_pol)) ENDSCAN ENDIF SELE insured ENDSCAN ENDIF SET EXACT &xexact SET NEAR OFF SELE IVANS_p THISFORM.searchname='' searchname='' CASE !EMPTY(searchssn) .clear WAIT WINDOW "Searching for SSN: "+searchssn NOWAIT SET ORDER TO TAG PO_SSN IN insured SET ORDER TO TAG sysnum IN policies tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','Social Security Matches') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF SELE insured GO TOP xexact = SET("EXACT") SET EXACT OFF SET NEAR ON IF SEEK(ALLTRIM(searchssn),'INSURED') SCAN FOR ALLTRIM(PO_SSN)=ALLTRIM(searchssn) STORE "I"+ALLTRIM(STR(RECNO('insured'))) TO mparentkey && recno in insured table onode=.ADD('MAIN_KEY_0000',tvwChild,mparentkey, ALLTRIM(insured.po_name)) IF INDEXSEEK(insured.po_sysnum,.T.,'POLICIES','SYSNUM') SELE policies SCAN WHILE po_sysnum=insured.po_sysnum .AND. !EOF('policies') STORE "P"+ALLTRIM(STR(RECNO('policies')))+mparentkey TO mchildkey && recno in policies table cnode=.ADD(mparentkey,tvwChild,mchildkey,ALLTRIM(policies.po_pol)) ENDSCAN ENDIF SELE insured ENDSCAN ENDIF SET EXACT &xexact SET NEAR OFF SELE IVANS_p THISFORM.searchssn='' searchssn='' CASE !EMPTY(searchpolicy) .clear WAIT WINDOW "Searching for Policy: "+searchpolicy NOWAIT SET ORDER TO TAG sysnum IN insured SET ORDER TO TAG polnum IN Policies tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','Policy Number Matches') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF SELE policies xexact = SET("EXACT") SET EXACT OFF PRIVATE ARRAY NAMEKEYS(1) DIMENSION NAMEKEYS(1) IF INDEXSEEK(ALLTRIM(searchpolicy),.T.,'POLICIES','POLNUM') i = 1 lngnpos = 0 IF TYPE('NAMEKEYS(i)')="U" DIMENSION NAMEKEYS(i) ENDIF IF TYPE('NAMEKEYS(i)')="L" NAMEKEYS(i) = "" ENDIF SCAN FOR LEFT(po_pol,LEN(ALLTRIM(searchpolicy)))=ALLTRIM(searchpolicy) mrecno=RECNO('policies') IF INDEXSEEK(policies.po_sysnum,.T.,'INSURED','SYSNUM') SELE insured STORE "I"+ALLTRIM(STR(RECNO('insured'))) TO mparentkey && recno in insured table SET EXACT ON lngnpos=ASCAN(NAMEKEYS,"I"+ALLTRIM(STR(RECNO('insured'))),-1) SET EXACT OFF IF lngnpos = 0 IF TYPE('NAMEKEYS(i)')="U" DIMENSION NAMEKEYS(i) ENDIF IF TYPE('NAMEKEYS(i)')="L" NAMEKEYS(i) = "" ENDIF NAMEKEYS(i) = mparentkey onode=.ADD('MAIN_KEY_0000',tvwChild,mparentkey, ALLTRIM(insured.po_name)) i = i + 1 ENDIF SELE policies STORE "P"+ALLTRIM(STR(RECNO('policies')))+mparentkey TO mchildkey && recno in policies table cnode=.ADD(mparentkey,tvwChild,mchildkey,ALLTRIM(policies.po_pol)) SELE policies IF RECNO('policies')<>mrecno GOTO mrecno ENDIF ELSE SELE policies IF RECNO('policies')<>mrecno GOTO mrecno ENDIF ENDIF ENDSCAN ENDIF SET EXACT &xexact SET NEAR OFF SELE IVANS_p THISFORM.searchpolicy='' searchpolicy='' OTHERWISE .clear tnode=.ADD(,tvwFirst,'MAIN_KEY_0000','Possible Policy Matches') STORE 'MAIN_KEY_0000' TO mtopkey IF TYPE('tnode')="O" tnode.expanded = .T. ENDIF ENDCASE IF TYPE('tnode')="O" .AND. TYPE('mtopkey')="C" .AND. !EMPTY(mtopkey) THIS.Tree2.nodes(mtopkey).SELECTED=.T. THIS.Tree2.nodeclick(tnode) ELSE THISFORM.shapeinfo2.zorder(0) ENDIF ENDWITH THISFORM.cmddefault.REFRESH() WAIT WINDOW "Finished!" NOWAIT RETURN RETURN