* ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º 07/14/2003 ADDRSRCH.SPR 16:56:11 º * º º * ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ * º º * º Description: º * º This program was automatically generated by GENSCRN. º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º MS-DOS Window definitions º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * glrow=1 glfontname="Foxfont" glfontsize=9 DEFINE WINDOW addsrch ; FROM INT((SROW()-28)/2),INT((SCOL()-81)/2) ; TO INT((SROW()-28)/2)+27+glRow,INT((SCOL()-81)/2)+80 ; TITLE "ENHANCED ADDRESS SEARCH" FONT (glFontName), (glFontSize) ; NOFLOAT ; NOCLOSE ; SHADOW ; NOMINIMIZE ; COLOR SCHEME 1 * ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º ADDRSRCH/MS-DOS Setup Code - SECTION 2 º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * #REGION 1 IF !USED("INSURED") CREATE TABLE INSURED (po_name c(15), po_sysnum c(10), po_addr1 c(15),; po_addr2 c(15)) SELECT insured append blank replace insured.po_name with "JOHNSON, JOHNNY D" replace insured.po_sysnum WITH "000001" replace insured.po_addr1 WITH "300 Mill Street" replace insured.po_addr2 WITH "PO BOX 900" append blank replace insured.po_name with "SMITH, BEVERLY J" replace insured.po_sysnum WITH "000002" replace insured.po_addr1 WITH "9001 Cherry Point Road" replace insured.po_addr2 WITH "RR3" ENDIF SAVE SCREEN TO Xa CLEAR @1,0 CLEAR TO 22,78 crntalias = ALIAS() m.action = "" m.target_Add = "" SELECT INSURED *sys_id = 0 mpo_sysnum = 0 SET ORDER TO GO TOP DIMENSION keywords(1) keywords = "" PRIVATE addscount maddscount=0 #REGION 1 DEFINE POPUP _10010attm ; PROMPT FIELD IIF(ALIAS()='ADDSRCH',PO_NAME+left(PO_ADDR1,20)+" ³ "+LEFT(po_addr2,20),"") ; SCROLL ; MARGIN ; MARK "" * ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º ADDRSRCH/MS-DOS Screen Layout º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * #REGION 1 IF WVISIBLE("addsrch") ACTIVATE WINDOW addsrch SAME ELSE ACTIVATE WINDOW addsrch NOSHOW ENDIF @ 2,3 SAY "Target Address Information:" ; SIZE 1,27, 0 @ 2,32 GET m.target_Add ; SIZE 1,43 ; DEFAULT " " ; VALID _10010attn() @ 4,32 GET m.action ; PICTURE "@*HN \!Search;\?Exit" ; SIZE 1.25,12,IIF(_DOS, 1, .75) ; DEFAULT 1 ; VALID VALID_MACTION_ADDRSRCH() @ 7,1 GET m.selection ; PICTURE "@&T" ; POPUP _10010attm ; SIZE 12,78 ; DEFAULT " " ; WHEN USED('ADDSRCH').and. RECCOUNT('ADDSRCH')>0 ; COLOR SCHEME 2 @ 6,3 SAY "Name" ; SIZE 1,4, 0 @ 6,33 SAY "Address 1" ; SIZE 1,9, 0 @ 6,56 SAY "Address 2" ; SIZE 1,9, 0 @ 3,3 SAY "Located:" ; SIZE 1,8, 0 @ 3,12 SAY maddscount ; SIZE 1,10 ; PICTURE "@B 99,999,999" @ 20,20 SAY "Use to select entry and press [ENTER]" ; SIZE 1,40, 0 @ 22,2 SAY "Hint: Enter just the street name and house number - this will locate any" ; SIZE 1,72, 0 @ 23,8 SAY "address regardless of being a ST, AVE, STREET, AVENUE or LANE." ; SIZE 1,62, 0 IF NOT WVISIBLE("addsrch") ACTIVATE WINDOW addsrch ENDIF READ CYCLE ; SHOW _10010attw() RELEASE WINDOW addsrch RELEASE POPUPS _10010attm #REGION 0 * ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º ADDRSRCH/MS-DOS Cleanup Code º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * #REGION 1 IF LASTKEY() != 27 IF USED('ADDSRCH') mpo_sysnum = addsrch.po_sysnum ELSE mpo_sysnum = 0 ENDIF ENDIF IF USED('addsrch') USE IN addsrch ENDIF SELECT INSURED IF TYPE('xa')="S" RESTORE SCREEN FROM xa ENDIF **************************** * ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º ADDRSRCH/MS-DOS Supporting Procedures and Functions º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * #REGION 1 FUNCTION haskeys **************************** PARAMETER addr1,addr2 PRIVATE i,hits isvalid = .T. hits=0 FOR i = 1 TO ALEN(keywords) IF keywords(i) $ UPPER(addr1) hits = hits + 1 ENDIF ENDFOR IF hits != ALEN(keywords) AND !EMPTY(addr2) hits = 0 FOR i = 1 TO ALEN(keywords) IF keywords(i) $ UPPER(addr2) hits = hits + 1 ENDIF ENDFOR ENDIF RETURN hits = ALEN(keywords) * ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º _10010ATTN m.target_Add VALID º * º º * º Function Origin: º * º º * º From Platform: MS-DOS º * º From Screen: ADDRSRCH, Record Number: 3 º * º Variable: m.target_Add º * º Called By: VALID Clause º * º Object Type: Field º * º Snippet Number: 1 º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * FUNCTION _10010attn && m.target_Add VALID #REGION 1 i = 0 DIMENSION keywords(1) keywords(1) = '' w_temp = ALLTRIM(m.target_Add) DO WHILE .T. j = AT(" ",w_temp) IF j > 0 i = i + 1 DIMENSION keywords(i) keywords(i) = UPPER(LEFT(w_temp,j-1)) w_temp = SUBSTR(w_temp,j+1) ELSE EXIT ENDIF ENDDO IF !empty(w_temp) i = i + 1 DIMENSION keywords(i) keywords(i) = UPPER(w_temp) ENDIF * ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º VALID_MACTION_ADDRSRCH m.action VALID º * º º * º Function Origin: º * º º * º From Platform: MS-DOS º * º From Screen: ADDRSRCH, Record Number: 4 º * º Variable: m.action º * º Called By: VALID Clause º * º Object Type: Push Button º * º Snippet Number: 2 º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * FUNCTION VALID_MACTION_ADDRSRCH && m.action VALID #REGION 1 IF UPPER(ALLTRIM(m.action)) = 'SEARCH' SELECT INSURED IF USED('addsrch') USE IN addsrch ENDIF WAIT WINDOW NOWAIT 'Scanning Records....' SET SAFETY OFF SELECT INSURED.PO_SYSNUM, INSURED.PO_NAME, INSURED.PO_ADDR1,; INSURED.PO_ADDR2; FROM INSURED; HAVING haskeys(insured.po_addr1,insured.po_addr2); INTO CURSOR ADDSRCH *--TCH 07/14/2003 IF USED('ADDSRCH') IF RECCOUNT('ADDSRCH')=0 maddscount=0 m.action = "" SELECT INSURED IF USED('addsrch') USE IN addsrch ENDIF SET ORDER TO GO TOP mpo_sysnum = 0 WAIT CLEAR _CUROBJ = OBJNUM(target_add) SHOW GETS DO OKAY WITH 'No Records found matching criteria!' _CUROBJ = OBJNUM(m.target_add) ELSE SELECT addsrch maddscount=reccount('addsrch') GO TOP m.selection = "" SHOW GETS SHOW GET maddscount SHOW GET m.selection WAIT CLEAR m.selection = IIF(UPPER(ALLTRIM(ALIAS()))="ADDSRCH",PO_NAME+left(PO_ADDR1,20)+" ³ "+LEFT(po_addr2,20),"") _CUROBJ = OBJNUM(m.selection) KEYBOARD '{HOME}' ENDIF ELSE maddscount=0 m.action = "" SELECT INSURED SET ORDER TO GO TOP mpo_sysnum = 0 WAIT CLEAR _CUROBJ = OBJNUM(target_add) SHOW GETS DO OKAY WITH 'No Records found matching criteria!' _CUROBJ = OBJNUM(m.target_add) ENDIF ELSE CLEAR READ ENDIF * ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· * º º * º _10010ATTW Read Level Show º * º º * º Function Origin: º * º º * º º * º From Platform: MS-DOS º * º From Screen: ADDRSRCH º * º Called By: READ Statement º * º Snippet Number: 3 º * º º * ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ * FUNCTION _10010attw && Read Level Show PRIVATE currwind STORE WOUTPUT() TO currwind * * Show Code from screen: ADDRSRCH * #REGION 1 IF SYS(2016) = "ADDSRCH" OR SYS(2016) = "*" ACTIVATE WINDOW addsrch SAME @ 3,12 SAY maddscount ; SIZE 1,10, 0 ; PICTURE "@B 99,999,999" ENDIF IF NOT EMPTY(currwind) ACTIVATE WINDOW (currwind) SAME ENDIF PROCEDURE OKAY PARAMETER mmessage, mscheme, mtimeout, mtitle IF EMPTY(mmessage) mmessage = "Unknown Message." ENDIF IF EMPTY(mscheme) mscheme = 7 ENDIF IF EMPTY(mtimeout) mtimeout = 0 ENDIF IF EMPTY(mtitle) #IF 'VISUAL' $ UPPER(VERSION()) mtitle = _SCREEN.Caption #ELSE mtitle = "" #ENDIF ENDIF #IF 'VISUAL' $ UPPER(VERSION()) IF ";" $ mmessage mmessage = STRTRAN(mmessage, ';', ' ') ENDIF IF mtimeout > 0 lnResult = MessageBox(mmessage, 64+4096, mtitle, mtimeout * 1000) ELSE lnResult = MessageBox(mmessage, 64+4096, mtitle) ENDIF DO CASE CASE lnresult = -1 && TimeOut lcChoice = "OK" CASE lnresult = 1 && Ok lcChoice = "OK" CASE lnResult = 2 && Cancel lcChoice = "CANCEL" CASE lnResult = 3 && Abort lcChoice = "ABORT" CASE lnResult = 4 && Retry lcChoice = "RETRY" CASE lnResult = 5 && Ignore lcChoice = "IGNORE" CASE lnResult = 6 && Yes lcChoice = "YES" CASE lnResult = 7 && No lcChoice = "NO" OTHERWISE lcChoice = "ESCAPE" ENDCASE RETURN lcChoice = 'OK' #ELSE PRIVATE curntwin,mssglen,messgline2,messgline3,messgline4,mpos,mssgbot,m.choice curntwin = WOUTPUT() messgline2 = "" messgline3 = "" messgline4 = "" mpos = 60 mssgbott = 14 m.printerstat = SET("PRINTER") m.consolestat = SET("CONSOLE") m.curntdevice = SET("DEVICE") SET PRINTER OFF SET CONSOLE ON SET DEVICE TO SCREEN CLEAR TYPEAHEAD * If message is longer than 60 characters, chop it in half. * If message is longer than 120 characters, split it three ways. * If message is longer than 180 characters, split it four ways. IF ";" $ mmessage mpos = AT(";", mmessage) messgline2 = SUBSTR(mmessage,mpos+1) mmessage = LEFT(mmessage,mpos - 1) IF ";" $ messgline2 mpos = AT(";", messgline2) messgline3 = SUBSTR(messgline2,mpos+1) messgline2 = LEFT(messgline2,mpos - 1) IF ";" $ messgline3 mpos = AT(";", messgline3) messgline4 = SUBSTR(messgline3,mpos+1) messgline3 = LEFT(messgline3,mpos - 1) ENDIF ENDIF ELSE DO CASE CASE LEN(mmessage) > 180 mpos = INT(LEN(mmessage)/4) DO WHILE mpos < LEN(mmessage) AND SUBSTR(mmessage,mpos,1) <> " " mpos = mpos + 1 ENDDO messgline2 = SUBSTR(mmessage,mpos+1) mmessage = LEFT(mmessage,mpos - 1) mpos = INT(LEN(messgline2)/3) DO WHILE mpos < LEN(messgline2) AND SUBSTR(messgline2,mpos,1) <> " " mpos = mpos + 1 ENDDO messgline3 = SUBSTR(messgline2,mpos+1) messgline2 = LEFT(messgline2,mpos - 1) mpos = INT(LEN(messgline3)/2) DO WHILE mpos < LEN(messgline3) AND SUBSTR(messgline3,mpos,1) <> " " mpos = mpos + 1 ENDDO messgline4 = SUBSTR(messgline3,mpos+1) messgline3 = LEFT(messgline3,mpos - 1) CASE LEN(mmessage) > 120 mpos = INT(LEN(mmessage)/3) DO WHILE mpos < LEN(mmessage) AND SUBSTR(mmessage,mpos,1) <> " " mpos = mpos + 1 ENDDO messgline2 = SUBSTR(mmessage,mpos+1) mmessage = LEFT(mmessage,mpos - 1) mpos = INT(LEN(messgline2)/2) DO WHILE mpos < LEN(messgline2) AND SUBSTR(messgline2,mpos,1) <> " " mpos = mpos + 1 ENDDO messgline3 = SUBSTR(messgline2,mpos+1) messgline2 = LEFT(messgline2,mpos - 1) CASE LEN(mmessage) > 60 mpos = INT(LEN(mmessage)/2) DO WHILE mpos > 0 AND SUBSTR(mmessage,mpos,1) <> " " mpos = mpos - 1 ENDDO messgline2 = SUBSTR(mmessage,mpos+1) mmessage = LEFT(mmessage,mpos - 1) ENDCASE ENDIF * Get the longest of the two message lines, if there's a second one. mssglen = MAX(LEN(mmessage),LEN(messgline2),LEN(messgline3),LEN(messgline4)) * Make window 1 row taller to allow for second message line. IF !EMPTY(messgline2) mssgbott = mssgbott+1 ENDIF IF !EMPTY(messgline3) mssgbott = mssgbott+1 ENDIF IF !EMPTY(messgline4) mssgbott = mssgbott+1 ENDIF * Window can't be less less than 30 chrs - got to allow for buttons. IF mssglen < 30 mssglen = 30 ENDIF DEFINE WINDOW okay FROM 8,37-INT(mssglen/2) TO mssgbott,41+INT(mssglen/2) ; TITLE mtitle ; SHADOW ; DOUBLE ; FLOAT ; COLOR SCHEME mscheme FONT (glFontName), (glFontSize) ACTIVATE WINDOW okay @ 1,1 SAY mmessage PICTURE "@I "+REPLI("X",WCOLS()-2) IF !EMPTY(messgline2) @ 2,1 SAY messgline2 PICTURE "@I "+REPLI("X",WCOLS()-2) ENDIF IF !EMPTY(messgline3) @ 3,1 SAY messgline3 PICTURE "@I "+REPLI("X",WCOLS()-2) ENDIF IF !EMPTY(messgline4) @ 4,1 SAY messgline4 PICTURE "@I "+REPLI("X",WCOLS()-2) ENDIF m.choice = 1 @ WROWS()-2,INT(WCOLS()/2)-14 GET m.choice ; PICTURE "@*HT Press any key to continue" ; SIZE 1.25,10,WCOLS()-22 ; DEFAULT 0 READ TIMEOUT (mtimeout) RELEASE WINDOW okay IF !EMPTY(curntwin) ACTIVATE WINDOW &curntwin ELSE ACTIVATE SCREEN ENDIF IF m.printerstat = "ON" SET PRINTER ON ELSE SET PRINTER OFF ENDIF IF m.consolestat = "ON" SET CONSOLE ON ELSE SET CONSOLE OFF ENDIF SET DEVICE TO &curntdevice RETURN m.choice = 1 #ENDIF