home *** CD-ROM | disk | FTP | other *** search
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ 12/18/92 APPSRCH.SPR 10:27:17 ║
- * ║ ║
- * ╟─────────────────────────────────────────────────────────╢
- * ║ ║
- * ║ Walter J. Kennamer ║
- * ║ ║
- * ║ Copyright (c) 1992 Microsoft Corp. ║
- * ║ One Microsoft Way ║
- * ║ Redmond, WA 98027 ║
- * ║ ║
- * ║ Description: ║
- * ║ This program was automatically generated by GENSCRN. ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
-
-
- #REGION 0
- REGIONAL m.currarea, m.talkstat, m.compstat
-
- IF SET("TALK") = "ON"
- SET TALK OFF
- m.talkstat = "ON"
- ELSE
- m.talkstat = "OFF"
- ENDIF
- m.compstat = SET("COMPATIBLE")
- SET COMPATIBLE FOXPLUS
-
- m.rborder = SET("READBORDER")
- SET READBORDER ON
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ Windows Window definitions ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
-
- IF NOT WEXIST("_qbp0meoyk")
- DEFINE WINDOW _qbp0meoyk ;
- AT 0.000, 0.000 ;
- SIZE 6.308,50.000 ;
- TITLE " Search for: " ;
- FONT "MS Sans Serif", 8 ;
- STYLE "B" ;
- FLOAT ;
- NOCLOSE ;
- SHADOW ;
- NOMINIMIZE ;
- DOUBLE
- MOVE WINDOW _qbp0meoyk CENTER
- ENDIF
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ APPSRCH/Windows Setup Code - SECTION 2 ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
-
- #REGION 1
- IF TYPE("srchterm") $ "UL" OR EMPTY(m.srchterm)
- m.srchterm = SPACE(60)
- ENDIF
- m.oksrch = 1
- m.fldnum = 0
-
- DIMENSION fldarry(10,4) && default dimensions. AFIELDS will reset if necessary.
- m.fldcnt = AFIELDS(fldarry)
- m.startord = ORDER()
- m.startalias = ALIAS()
-
- m.curord = ORDER()
- IF EMPTY(m.curord)
- SET ORDER TO 1
- m.curord = ORDER()
- ENDIF
-
- FOR i = 1 TO FCOUNT()
- IF FIELDS(i) == m.curord
- m.fldnum = i
- ENDIF
- ENDFOR
-
- IF m.fldnum > 0
- m.fldname = FIELDS(m.fldnum)
- ELSE
- SET ORDER TO 1
- m.fldnum = 1
- m.fldname = FIELDS(1)
- ENDIF
-
- skipvar = .T.
-
- curs_stat = (UPPER(SET("CURSOR")) = "ON")
- SET CURSOR ON
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ APPSRCH/Windows Screen Layout ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
-
- #REGION 1
- IF WVISIBLE("_qbp0meoyk")
- ACTIVATE WINDOW _qbp0meoyk SAME
- ELSE
- ACTIVATE WINDOW _qbp0meoyk NOSHOW
- ENDIF
- @ 3.462,3.000 SAY "In Field:" ;
- SIZE 1.000,7.833, 0.000 ;
- FONT "MS Sans Serif", 8 ;
- STYLE "B"
- @ 1.231,11.333 GET m.srchterm ;
- SIZE 1.000,26.600 ;
- DEFAULT " " ;
- FONT "MS Sans Serif", 8 ;
- PICTURE "@S60" ;
- WHEN _qbp0meq22()
- @ 3.231,11.167 GET fldnum ;
- PICTURE "@^" ;
- FROM fldarry ;
- SIZE 1.538,27.000 ;
- DEFAULT 1 ;
- FONT "MS Sans Serif", 8 ;
- VALID _qbp0meq8l()
- @ 0.692,37.167 GET oksrch ;
- PICTURE "@*VN \!OK;\?Cancel" ;
- SIZE 1.769,10.000,0.462 ;
- DEFAULT 1 ;
- FONT "MS Sans Serif", 8 ;
- STYLE "B" ;
- VALID _qbp0meqgr()
- @ 1.231,3.000 SAY "Find:" ;
- SIZE 1.000,4.833, 0.000 ;
- FONT "MS Sans Serif", 8 ;
- STYLE "BT" ;
- COLOR RGB(0,0,0,255,255,255)
-
- IF NOT WVISIBLE("_qbp0meoyk")
- ACTIVATE WINDOW _qbp0meoyk
- ENDIF
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ WindowsREAD contains clauses from SCREEN appsrch ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
-
- READ CYCLE ;
- ACTIVATE _qbp0mer52() ;
- DEACTIVATE _qbp0mer57() ;
- MODAL
-
- RELEASE WINDOW _qbp0meoyk
-
- #REGION 0
-
- SET READBORDER &rborder
-
- IF m.talkstat = "ON"
- SET TALK ON
- ENDIF
- IF m.compstat = "ON"
- SET COMPATIBLE ON
- ENDIF
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ APPSRCH/Windows Cleanup Code ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
-
- #REGION 1
- IF curs_stat
- SET CURSOR ON
- ELSE
- SET CURSOR OFF
- ENDIF
- skipvar = .F.
-
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ APPSRCH/Windows Supporting Procedures and Functions ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
-
- #REGION 1
- FUNCTION gettag
- *) Returns tag number corresponding to field "fldname", or 0 if there
- *) is not tag with the same name as "fldname."
- parameter fldname
- PRIVATE ALL
- m.fldname = UPPER(ALLTRIM(m.fldname))
- i = 1
- DO WHILE !EMPTY(TAG(i)) AND i < 1000
- IF UPPER(TAG(i)) == m.fldname
- RETURN i
- ENDIF
- i = i + 1
- ENDDO
- RETURN 0
-
-
- PROCEDURE waitmsg
- IF RECCOUNT() > 1000
- WAIT WINDOW "Searching. This may take a few moments." NOWAIT
- ELSE
- WAIT WINDOW "Searching" NOWAIT
- ENDIF
-
-
-
- PROCEDURE doloc
- PARAMETERS term, answer
- * See if the user wants to do a long substring search
-
- IF NOT WEXIST("doloc")
- DEFINE WINDOW doloc ;
- FROM INT((srow()-9)/2),INT((scol()-63)/2) ;
- TO INT((srow()-9)/2)+9,INT((scol()-63)/2)+61 ;
- TITLE "Searching Options" ;
- FLOAT ;
- NOCLOSE ;
- SHADOW ;
- DOUBLE ;
- COLOR SCHEME 5
- ENDIF
-
- answer = .F.
- ACTIVATE WINDOW doloc NOSHOW
-
- @ 6,16 GET locok ;
- PICTURE "@*HT \!\<Search;\?\<Cancel" ;
- SIZE 1.769,12.0,4.0 ;
- DEFAULT 1
- @ 1,1 SAY "FoxApp was not able to find a record matching your search"
- @ 2,1 SAY "term while using a fast searching method. Do you want to"
- @ 3,1 SAY "search for the term with slower but more thorough methods?"
-
- IF NOT WVISIBLE("doloc")
- ACTIVATE WINDOW doloc
- ENDIF
-
- READ CYCLE MODAL
-
- RELEASE WINDOW doloc
- answer = (locok = 1)
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ _QBP0MEQ22 m.srchterm WHEN ║
- * ║ ║
- * ║ Function Origin: ║
- * ║ ║
- * ║ From Platform: Windows ║
- * ║ From Screen: APPSRCH, Record Number: 3 ║
- * ║ Variable: m.srchterm ║
- * ║ Called By: WHEN Clause ║
- * ║ Snippet Number: 1 ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
- FUNCTION _qbp0meq22 && m.srchterm WHEN
- #REGION 1
- m.srchterm = PADR(m.srchterm,60)
- SHOW GETS
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ _QBP0MEQ8L fldnum VALID ║
- * ║ ║
- * ║ Function Origin: ║
- * ║ ║
- * ║ From Platform: Windows ║
- * ║ From Screen: APPSRCH, Record Number: 4 ║
- * ║ Variable: fldnum ║
- * ║ Called By: VALID Clause ║
- * ║ Snippet Number: 2 ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
- FUNCTION _qbp0meq8l && fldnum VALID
- #REGION 1
- m.fldname = FIELDS(m.fldnum)
- tagnum = gettag(m.fldname) && tag number of tag with name fldname
-
- IF tagnum > 0
- SET ORDER TO TAG(m.tagnum)
- ELSE
- SET ORDER TO 0
- ENDIF
- SHOW GETS
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ _QBP0MEQGR oksrch VALID ║
- * ║ ║
- * ║ Function Origin: ║
- * ║ ║
- * ║ From Platform: Windows ║
- * ║ From Screen: APPSRCH, Record Number: 5 ║
- * ║ Variable: oksrch ║
- * ║ Called By: VALID Clause ║
- * ║ Snippet Number: 3 ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
- FUNCTION _qbp0meqgr && oksrch VALID
- #REGION 1
- skipvar = .F.
- IF m.oksrch = 1 AND !EMPTY(m.srchterm)
- m.srchterm = ALLTRIM(m.srchterm)
- WAIT CLEAR
-
- m.tagnum = gettag(m.fldname)
- IF m.tagnum > 0
- SET ORDER TO TAG(m.tagnum)
- ELSE
- DO waitmsg && warn user that this may take a while
- ENDIF
- m.thisrec = RECNO()
- DO CASE
- CASE TYPE("&fldname") $ "CM" && character or memo field
- IF m.tagnum > 0
- SEEK ALLTRIM(m.srchterm)
- IF !FOUND()
- IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
- GOTO m.thisrec
- ENDIF
- answer = .F.
- DO doloc WITH m.srchterm, m.answer && prompt for locate
-
- IF m.answer = .T.
- DO waitmsg
- GOTO TOP
- LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
- ENDIF
- ENDIF
- ELSE
- LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
- ENDIF
- CASE TYPE("&fldname") $ "FN" && floating or numeric
- m.srchterm = CHRTRAN(m.srchterm,'"','')
- m.srchterm = CHRTRAN(m.srchterm,"'","")
- LOCATE FOR VAL(ALLTRIM(m.srchterm)) = &fldname
- CASE TYPE("&fldname") = "D" && date
- m.srchterm = CHRTRAN(m.srchterm,'{}"()','')
- m.srchterm = CHRTRAN(m.srchterm,"'",'')
- m.srchterm = ALLTRIM(m.srchterm)
- LOCATE FOR CTOD(srchterm) = &fldname
- CASE TYPE("&fldname") = "L" && logical
- IF "T" $ UPPER(m.srchterm)
- LOCATE FOR &fldname
- ELSE
- LOCATE FOR !&fldname
- ENDIF
- CASE TYPE("&fldname") = "U" && unknown field type--should't happen
- WAIT WINDOW "Field "+m.fldname+" not found"
- ENDCASE
- IF !FOUND()
- SET CURSOR OFF
- WAIT WINDOW "Not found" NOWAIT
- IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
- GOTO m.thisrec
- ENDIF
- ELSE
- SET CURSOR OFF
- WAIT WINDOW "Found it!" NOWAIT
- CLEAR READ
- ENDIF
- ELSE
- SET ORDER TO (m.startord)
- CLEAR READ
- ENDIF
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ _QBP0MER52 Read Level Activate ║
- * ║ ║
- * ║ Function Origin: ║
- * ║ ║
- * ║ ║
- * ║ From Platform: Windows ║
- * ║ From Screen: APPSRCH ║
- * ║ Called By: READ Statement ║
- * ║ Snippet Number: 4 ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
- FUNCTION _qbp0mer52 && Read Level Activate
- *
- * Activate Code from screen: APPSRCH
- *
- #REGION 1
- SELECT (m.startalias)
-
-
- * ╓─────────────────────────────────────────────────────────╖
- * ║ ║
- * ║ _QBP0MER57 Read Level Deactivate ║
- * ║ ║
- * ║ Function Origin: ║
- * ║ ║
- * ║ ║
- * ║ From Platform: Windows ║
- * ║ From Screen: APPSRCH ║
- * ║ Called By: READ Statement ║
- * ║ Snippet Number: 5 ║
- * ║ ║
- * ╙─────────────────────────────────────────────────────────╜
- *
- FUNCTION _qbp0mer57 && Read Level Deactivate
- *
- * Deactivate Code from screen: APPSRCH
- *
- #REGION 1
- ?? CHR(7)
- RETURN .F.
-