home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / misc1 / dprog12.lzh / DPSORT.PRC < prev    next >
Encoding:
Text File  |  1987-11-01  |  21.0 KB  |  859 lines

  1. PROCEDURE IND
  2. ********************************************************************************
  3. *
  4. * System             : DPSORT  
  5. *
  6. *
  7. * System Description : Sort/Select Criteria                                       
  8. *
  9. *
  10. * Module             : DPSORT.IND
  11. *
  12. *
  13. * Module Description : Build Index if needed
  14. *
  15. *
  16. * Written by         : A. Michael Hearn                                  
  17. *
  18. *
  19. * Copyright (c) 1987 by University Research, Inc                          
  20. *
  21. ********************************************************************************
  22. IF .NOT. File("DPSORT.NDX")
  23.    @24,1 SAY SPACE(78)
  24.    @24,1 SAY "Please wait, file is being Indexed"
  25.    SELECT I
  26.    USE DPSORT
  27.    INDEX ON SORTNAM TO DPSORT
  28.    @24,1 SAY SPACE(78)
  29. ENDIF
  30. USE DPSORT INDEX DPSORT
  31. RETURN
  32.  
  33.  
  34. PROCEDURE FMT
  35. ********************************************************************************
  36. *
  37. * System             : DPSORT  
  38. *
  39. *
  40. * System Description : Sort/Select Criteria                                       
  41. *
  42. *
  43. * Module             : DPSORT.FMT
  44. *
  45. *
  46. * Module Description : Screen Format file
  47. *
  48. *
  49. * Written by         : A. Michael Hearn                                  
  50. *
  51. *
  52. * Copyright (c) 1987 by University Research, Inc                          
  53. *
  54. ********************************************************************************
  55. @4,13 GET MA_SORTNAM PICTURE "!!!!!!!!" 
  56. @4,48 GET MA_SORTNDX PICTURE "!!!!!!!!"
  57. @4,70 GET MA_SORTFRM PICTURE "!!!!!!!!" 
  58. @5,15 GET MA_SORTDES  
  59. @8,2 GET MA_SORTCRI  
  60. @13,30 GET MA_SORTF1 PICTURE "!!!!!!!" 
  61. @13,46 GET MA_SORTO1 PICTURE "!" 
  62. @14,30 GET MA_SORTF2 PICTURE "!!!!!!!" 
  63. @14,46 GET MA_SORTO2 PICTURE "!" 
  64. @15,30 GET MA_SORTF3 PICTURE "!!!!!!!" 
  65. @15,46 GET MA_SORT03 PICTURE "!" 
  66. @16,30 GET MA_SORTF4 PICTURE "!!!!!!!" 
  67. @16,46 GET MA_SORT04 PICTURE "!" 
  68. @17,30 GET MA_SORTF5 PICTURE "!!!!!!!" 
  69. @17,46 GET MA_SORT05 PICTURE "!"
  70. @18,30 GET MA_SORTF6 PICTURE "!!!!!!!" 
  71. @18,46 GET MA_SORTO6 PICTURE "!" 
  72. @19,30 GET MA_SORTF7 PICTURE "!!!!!!!" 
  73. @19,46 GET MA_SORT07 PICTURE "!" 
  74. @20,30 GET MA_SORTF8 PICTURE "!!!!!!!" 
  75. @20,46 GET MA_SORT08 PICTURE "!" 
  76. @21,30 GET MA_SORTF9 PICTURE "!!!!!!!" 
  77. @21,46 GET MA_SORT09 PICTURE "!" 
  78. @22,30 GET MA_SORTF10 PICTURE "!!!!!!!" 
  79. @22,46 GET MA_SORT10 PICTURE "!"
  80. RETURN
  81.  
  82.  
  83.  
  84. PROCEDURE PUB
  85. ********************************************************************************
  86. *
  87. * System             : DPSORT  
  88. *
  89. *
  90. * System Description : Sort/Select Criteria                                       
  91. *
  92. *
  93. * Module             : DPSORT.PUB
  94. *
  95. *
  96. * Module Description : Define Public Fields
  97. *
  98. *
  99. * Written by         : A. Michael Hearn                                  
  100. *
  101. *
  102. * Copyright (c) 1987 by University Research, Inc                          
  103. *
  104. ********************************************************************************
  105. PUBLIC MA_SORTNAM
  106. PUBLIC MA_SORTNDX
  107. PUBLIC MA_SORTFRM
  108. PUBLIC MA_SORTDES
  109. PUBLIC MA_SORTCRI
  110. PUBLIC MA_SORTF1 
  111. PUBLIC MA_SORTO1 
  112. PUBLIC MA_SORTF2 
  113. PUBLIC MA_SORTO2 
  114. PUBLIC MA_SORTF3 
  115. PUBLIC MA_SORT03
  116. PUBLIC MA_SORTF4 
  117. PUBLIC MA_SORT04 
  118. PUBLIC MA_SORTF5 
  119. PUBLIC MA_SORT05 
  120. PUBLIC MA_SORTF6 
  121. PUBLIC MA_SORTO6 
  122. PUBLIC MA_SORTF7 
  123. PUBLIC MA_SORT07 
  124. PUBLIC MA_SORTF8 
  125. PUBLIC MA_SORT08 
  126. PUBLIC MA_SORTF9 
  127. PUBLIC MA_SORT09 
  128. PUBLIC MA_SORTF10
  129. PUBLIC MA_SORT10
  130. RETURN
  131.  
  132.  
  133.  
  134. PROCEDURE CAL
  135. ********************************************************************************
  136. *
  137. * System             : DPSORT  
  138. *
  139. *
  140. * System Description : Sort/Select Criteria                                       
  141. *
  142. *
  143. * Module             : DPSORT.CAL
  144. *
  145. *
  146. * Module Description : Calculate and display Calculated fields
  147. *
  148. *
  149. * Written by         : A. Michael Hearn                                  
  150. *
  151. *
  152. * Copyright (c) 1987 by University Research, Inc                          
  153. *
  154. ********************************************************************************
  155. RETURN
  156.  
  157.  
  158.  
  159. PROCEDURE INT
  160. ********************************************************************************
  161. *
  162. * System             : DPSORT  
  163. *
  164. *
  165. * System Description : Sort/Select Criteria                                       
  166. *
  167. *
  168. * Module             : DPSORT.INT
  169. *
  170. *
  171. * Module Description : Initialize memory fields from Init or empty
  172. *
  173. *
  174. * Written by         : A. Michael Hearn                                  
  175. *
  176. *
  177. * Copyright (c) 1987 by University Research, Inc                          
  178. *
  179. ********************************************************************************
  180. STORE SPACE(8) TO MA_SORTNAM
  181. STORE "SORTWORK" TO MA_SORTNDX
  182. STORE SPACE(8) TO MA_SORTFRM
  183. STORE SPACE(63) TO MA_SORTDES
  184. STORE .T. TO MA_SORTCRI
  185. STORE SPACE(7) TO MA_SORTF1
  186. STORE "A" TO MA_SORTO1
  187. STORE SPACE(7) TO MA_SORTF2
  188. STORE "A" TO MA_SORTO2
  189. STORE SPACE(7) TO MA_SORTF3
  190. STORE "A" TO MA_SORT03
  191. STORE SPACE(7) TO MA_SORTF4
  192. STORE "A" TO MA_SORT04
  193. STORE SPACE(7) TO MA_SORTF5
  194. STORE "A" TO MA_SORT05
  195. STORE SPACE(7) TO MA_SORTF6
  196. STORE "A" TO MA_SORTO6
  197. STORE SPACE(7) TO MA_SORTF7
  198. STORE "A" TO MA_SORT07
  199. STORE SPACE(7) TO MA_SORTF8
  200. STORE "A" TO MA_SORT08
  201. STORE SPACE(7) TO MA_SORTF9
  202. STORE "A" TO MA_SORT09
  203. STORE SPACE(7) TO MA_SORTF10
  204. STORE "A" TO MA_SORT10
  205. RETURN
  206.  
  207.  
  208.  
  209. PROCEDURE STO
  210. ********************************************************************************
  211. *
  212. * System             : DPSORT  
  213. *
  214. *
  215. * System Description : Sort/Select Criteria
  216. *
  217. *
  218. * Module             : DPSORT.STO
  219. *
  220. *
  221. * Module Description : Store file fields to memory variables
  222. *
  223. *
  224. * Written by         : A. Michael Hearn                                  
  225. *
  226. *
  227. * Copyright (c) 1987 by University Research, Inc                          
  228. *
  229. ********************************************************************************
  230. STORE DPSORT -> SORTNAM to MA_SORTNAM
  231. STORE DPSORT -> SORTNDX to MA_SORTNDX
  232. STORE DPSORT -> SORTFRM to MA_SORTFRM
  233. STORE DPSORT -> SORTDES to MA_SORTDES
  234. STORE DPSORT -> SORTCRI to MA_SORTCRI
  235. STORE DPSORT -> SORTF1  to MA_SORTF1 
  236. STORE DPSORT -> SORTO1  to MA_SORTO1 
  237. STORE DPSORT -> SORTF2  to MA_SORTF2 
  238. STORE DPSORT -> SORTO2  to MA_SORTO2
  239. STORE DPSORT -> SORTF3  to MA_SORTF3 
  240. STORE DPSORT -> SORT03  to MA_SORT03 
  241. STORE DPSORT -> SORTF4  to MA_SORTF4 
  242. STORE DPSORT -> SORT04  to MA_SORT04 
  243. STORE DPSORT -> SORTF5  to MA_SORTF5 
  244. STORE DPSORT -> SORT05  to MA_SORT05 
  245. STORE DPSORT -> SORTF6  to MA_SORTF6 
  246. STORE DPSORT -> SORTO6  to MA_SORTO6 
  247. STORE DPSORT -> SORTF7  to MA_SORTF7 
  248. STORE DPSORT -> SORT07  to MA_SORT07 
  249. STORE DPSORT -> SORTF8  to MA_SORTF8 
  250. STORE DPSORT -> SORT08  to MA_SORT08 
  251. STORE DPSORT -> SORTF9  to MA_SORTF9 
  252. STORE DPSORT -> SORT09  to MA_SORT09 
  253. STORE DPSORT -> SORTF10 to MA_SORTF10
  254. STORE DPSORT -> SORT10  to MA_SORT10
  255. RETURN
  256.  
  257.  
  258.  
  259. PROCEDURE REP
  260. ********************************************************************************
  261. *
  262. * System             : DPSORT  
  263. *
  264. *
  265. * System Description : Sort/Select Criteria                                       
  266. *
  267. *
  268. * Module             : DPSORT.REP
  269. *
  270. *
  271. * Module Description : Replace file fields to memory variables
  272. *
  273. *
  274. * Written by         : A. Michael Hearn                                  
  275. *
  276. *
  277. * Copyright (c) 1987 by University Research, Inc
  278. *
  279. ********************************************************************************
  280. REPLACE DPSORT -> SORTNAM WITH MA_SORTNAM
  281. REPLACE DPSORT -> SORTNDX WITH MA_SORTNDX
  282. REPLACE DPSORT -> SORTFRM WITH MA_SORTFRM
  283. REPLACE DPSORT -> SORTDES WITH MA_SORTDES
  284. REPLACE DPSORT -> SORTCRI WITH MA_SORTCRI
  285. REPLACE DPSORT -> SORTF1  WITH MA_SORTF1 
  286. REPLACE DPSORT -> SORTO1  WITH MA_SORTO1 
  287. REPLACE DPSORT -> SORTF2  WITH MA_SORTF2 
  288. REPLACE DPSORT -> SORTO2  WITH MA_SORTO2 
  289. REPLACE DPSORT -> SORTF3  WITH MA_SORTF3 
  290. REPLACE DPSORT -> SORT03  WITH MA_SORT03 
  291. REPLACE DPSORT -> SORTF4  WITH MA_SORTF4 
  292. REPLACE DPSORT -> SORT04  WITH MA_SORT04 
  293. REPLACE DPSORT -> SORTF5  WITH MA_SORTF5 
  294. REPLACE DPSORT -> SORT05  WITH MA_SORT05 
  295. REPLACE DPSORT -> SORTF6  WITH MA_SORTF6 
  296. REPLACE DPSORT -> SORTO6  WITH MA_SORTO6 
  297. REPLACE DPSORT -> SORTF7  WITH MA_SORTF7 
  298. REPLACE DPSORT -> SORT07  WITH MA_SORT07 
  299. REPLACE DPSORT -> SORTF8  WITH MA_SORTF8
  300. REPLACE DPSORT -> SORT08  WITH MA_SORT08 
  301. REPLACE DPSORT -> SORTF9  WITH MA_SORTF9 
  302. REPLACE DPSORT -> SORT09  WITH MA_SORT09 
  303. REPLACE DPSORT -> SORTF10 WITH MA_SORTF10
  304. REPLACE DPSORT -> SORT10  WITH MA_SORT10
  305. RETURN
  306.  
  307.  
  308.  
  309. PROCEDURE REL
  310. ********************************************************************************
  311. *
  312. * System             : DPSORT  
  313. *
  314. *
  315. * System Description : Sort/Select Criteria                                       
  316. *
  317. *
  318. * Module             : DPSORT.REL
  319. *
  320. *
  321. * Module Description : Release Memory variables
  322. *
  323. *
  324. * Written by         : A. Michael Hearn                                  
  325. *
  326. *
  327. * Copyright (c) 1987 by University Research, Inc
  328. *
  329. ********************************************************************************
  330. RELEASE MA_SORTNAM
  331. RELEASE MA_SORTNDX
  332. RELEASE MA_SORTFRM
  333. RELEASE MA_SORTDES
  334. RELEASE MA_SORTCRI
  335. RELEASE MA_SORTF1 
  336. RELEASE MA_SORTO1 
  337. RELEASE MA_SORTF2 
  338. RELEASE MA_SORTO2 
  339. RELEASE MA_SORTF3 
  340. RELEASE MA_SORT03 
  341. RELEASE MA_SORTF4 
  342. RELEASE MA_SORT04 
  343. RELEASE MA_SORTF5 
  344. RELEASE MA_SORT05 
  345. RELEASE MA_SORTF6
  346. RELEASE MA_SORTO6 
  347. RELEASE MA_SORTF7 
  348. RELEASE MA_SORT07 
  349. RELEASE MA_SORTF8 
  350. RELEASE MA_SORT08 
  351. RELEASE MA_SORTF9 
  352. RELEASE MA_SORT09 
  353. RELEASE MA_SORTF10
  354. RELEASE MA_SORT10
  355. RETURN
  356.  
  357.  
  358.  
  359. PROCEDURE ADD
  360. ********************************************************************************
  361. *
  362. * System             : DPSORT  
  363. *
  364. *
  365. * System Description : Sort/Select Criteria                                       
  366. *
  367. *
  368. * Module             : DPSORT.ADD
  369. *
  370. *
  371. * Module Description : Add New Records to file
  372. *
  373. *
  374. * Written by         : A. Michael Hearn                                  
  375. *
  376. *
  377. * Copyright (c) 1987 by University Research, Inc                          
  378. *
  379. ********************************************************************************
  380. STORE .T. TO MH_Loop
  381. STORE " " TO MH_Wait
  382. CALL DPSORT
  383. DO WHILE MH_Loop
  384.    DO INT
  385.    DO FMT
  386.    @24,1 SAY SPACE(78)
  387.    @24,1 SAY "Press Ctrl End without entering data to exit"
  388.    READ
  389.    IF MA_SORTNAM <> " "
  390.        DO VAL
  391.        @24,1 SAY SPACE(79)
  392.        APPEND BLANK
  393.        DO REP
  394.        DO CAL
  395.        @24,1 SAY "Press any key to continue"
  396.        @24,30 GET MH_Wait
  397.        READ
  398.    ELSE
  399.      STORE .F. TO MH_Loop
  400.    ENDIF
  401. ENDDO
  402. RELEASE MH_Loop,MH_Wait
  403. RETURN
  404.  
  405.  
  406.  
  407. PROCEDURE UPD
  408. ********************************************************************************
  409. *
  410. * System             : DPSORT  
  411. *
  412. *
  413. * System Description : Sort/Select Criteria                                       
  414. *
  415. *
  416. * Module             : DPSORT.UPD
  417. *
  418. *
  419. * Module Description : Search,Update,Edit,Find,Print,Examine file
  420. *
  421. *
  422. * Written by         : A. Michael Hearn
  423. *
  424. *
  425. * Copyright (c) 1987 by University Research, Inc                          
  426. *
  427. ********************************************************************************
  428. STORE .T. TO MH_Loop
  429. STORE "N" TO MH_Function
  430. STORE "N" TO MH_Answer
  431. STORE SPACE(70) TO MH_Filt
  432. STORE "Next,Previous,Top,Bottom,Quit,Help,Delete,Edit,More " TO MH_Menu1
  433. STORE "Find,Set filter,pRint,More                          " TO MH_Menu2
  434. STORE MH_Menu1 TO MH_Menu
  435. CALL DPSORT
  436. DO WHILE MH_Loop
  437.    DO STO
  438.    DO DIS
  439.    DO CAL
  440.    @24,1 SAY MH_Menu
  441.    @24,53 GET MH_Function
  442.    IF LEN(TRIM(MH_Filt)) = 0
  443.       @24,55 SAY "    "
  444.    ELSE
  445.       @24,55 SAY "FILT"
  446.    ENDIF
  447.    IF Deleted()
  448.       @24,60 SAY "DEL"
  449.    ELSE
  450.       @24,60 SAY "   "
  451.    ENDIF
  452.    @24,65 SAY Ltrim(Str(RECNO()))+"/"+Ltrim(STR(RECCOUNT()))+"     "
  453.    READ
  454.    DO CASE
  455.       CASE UPPER(MH_Function) = "N"
  456.            IF .NOT. EOF() 
  457.               Skip 1
  458.               IF EOF()
  459.                  Skip -1
  460.               ENDIF
  461.            ENDIF
  462.            LOOP
  463.       CASE UPPER(MH_Function) = "P"
  464.            IF .NOT. BOF()
  465.               SKIP -1
  466.            ENDIF
  467.            LOOP
  468.       CASE UPPER(MH_Function) = "E"
  469.            DO STO
  470.            DO FMT
  471.            READ
  472.            DO VAL
  473.            DO CAL
  474.            DO REP
  475.            LOOP
  476.       CASE UPPER(MH_Function) = "T"
  477.            GOTO TOP
  478.            LOOP
  479.       CASE UPPER(MH_Function) = "B"
  480.            GOTO BOTTOM
  481.            LOOP
  482.       CASE UPPER(MH_Function) = "D"
  483.            STORE "N" TO MH_Answer
  484.            @24,1 SAY SPACE(78)
  485.            IF  DELETED()
  486.                @24,1 SAY "Recall this record?"
  487.            ELSE
  488.                @24,1 SAY "Delete this record?"
  489.            ENDIF
  490.            @24,22 GET MH_Answer
  491.            READ
  492.            IF UPPER(MH_Answer) = "Y"
  493.               IF DELETED()
  494.                  RECALL
  495.               ELSE
  496.                  DELETE
  497.               ENDIF
  498.            ENDIF
  499.            LOOP
  500.       CASE UPPER(MH_Function) = "S"
  501.            STORE "N" TO MH_Answer
  502.            STORE MH_Filt TO MH_FiltH
  503.            @24,1 SAY SPACE(78)
  504.            @24,1 SAY "FILTER: "
  505.            @24,9 GET MH_Filt
  506.            READ
  507.            @24,1 SAY SPACE(78)
  508.            IF MH_Filt <> MH_FiltH
  509.               SET FILTER TO &MH_Filt
  510.               GOTO TOP
  511.               CLEAR
  512.               CALL DPSORT
  513.            ENDIF
  514.            IF EOF()
  515.               @24,1 SAY "Nothing matches filter! Press any key to continue"
  516.               @24,50 GET MH_Answer
  517.               READ
  518.            ENDIF
  519.            LOOP
  520.       CASE UPPER(MH_Function) = "F"
  521.            DO FND
  522.            LOOP
  523.       CASE UPPER(MH_Function) = "M"
  524.            IF MH_Menu1 = MH_Menu
  525.               STORE MH_Menu2 TO MH_Menu
  526.            ELSE
  527.               STORE MH_Menu1 TO MH_Menu
  528.            ENDIF
  529.            LOOP
  530.       CASE UPPER(MH_Function) = "Q"
  531.            STORE .F. TO MH_LOOP
  532.            LOOP
  533.       CASE UPPER(MH_Function) = "T"
  534.            SET DEVICE TO PRINT
  535.            DO DIS
  536.            SET DEVICE TO SCREEN
  537.            LOOP
  538.       CASE UPPER(MH_Function)="H"
  539.            DO HLP WITH 2
  540.            CALL DPMMSORT
  541.            LOOP
  542.    ENDCASE
  543. STORE "N" TO MH_Function
  544. ENDDO
  545. SET FILTER TO
  546. RELEASE MH_Function,MH_Loop,MH_Answer
  547. RETURN
  548.  
  549.  
  550.  
  551. PROCEDURE DIS
  552. ********************************************************************************
  553. *
  554. * System             : DPSORT  
  555. *
  556. *
  557. * System Description : Sort/Select Criteria                                       
  558. *
  559. *
  560. * Module             : DPSORT.DIS
  561. *
  562. *
  563. * Module Description : Display only Format file
  564. *
  565. *
  566. * Written by         : A. Michael Hearn                                  
  567. *
  568. *
  569. * Copyright (c) 1987 by University Research, Inc                          
  570. *
  571. ********************************************************************************
  572. @4,13 SAY MA_SORTNAM PICTURE "!!!!!!!!"
  573. @4,48 SAY MA_SORTNDX PICTURE "!!!!!!!!"
  574. @4,70 SAY MA_SORTFRM PICTURE "!!!!!!!!"
  575. @5,15 SAY MA_SORTDES 
  576. @8,2 SAY MA_SORTCRI 
  577. @13,30 SAY MA_SORTF1 PICTURE "!!!!!!!"
  578. @13,46 SAY MA_SORTO1 PICTURE "!"
  579. @14,30 SAY MA_SORTF2 PICTURE "!!!!!!!"
  580. @14,46 SAY MA_SORTO2 PICTURE "!"
  581. @15,30 SAY MA_SORTF3 PICTURE "!!!!!!!"
  582. @15,46 SAY MA_SORT03 PICTURE "!"
  583. @16,30 SAY MA_SORTF4 PICTURE "!!!!!!!"
  584. @16,46 SAY MA_SORT04 PICTURE "!"
  585. @17,30 SAY MA_SORTF5 PICTURE "!!!!!!!"
  586. @17,46 SAY MA_SORT05 PICTURE "!"
  587. @18,30 SAY MA_SORTF6 PICTURE "!!!!!!!"
  588. @18,46 SAY MA_SORTO6 PICTURE "!"
  589. @19,30 SAY MA_SORTF7 PICTURE "!!!!!!!"
  590. @19,46 SAY MA_SORT07 PICTURE "!"
  591. @20,30 SAY MA_SORTF8 PICTURE "!!!!!!!"
  592. @20,46 SAY MA_SORT08 PICTURE "!"
  593. @21,30 SAY MA_SORTF9 PICTURE "!!!!!!!"
  594. @21,46 SAY MA_SORT09 PICTURE "!"
  595. @22,30 SAY MA_SORTF10 PICTURE "!!!!!!!"
  596. @22,46 SAY MA_SORT10 PICTURE "!"
  597. RETURN
  598.  
  599.  
  600.  
  601. PROCEDURE FND
  602. ********************************************************************************
  603. *
  604. * System             : DPSORT  
  605. *
  606. *
  607. * System Description : Sort/Select Criteria                                       
  608. *
  609. *
  610. * Module             : DPSORT.FND
  611. *
  612. *
  613. * Module Description : Find record by key function
  614. *
  615. *
  616. * Written by         : A. Michael Hearn                                  
  617. *
  618. *
  619. * Copyright (c) 1987 by University Research, Inc
  620. *
  621. ********************************************************************************
  622. STORE " " TO MH_Find
  623. STORE " " TO MH_Answer
  624. STORE 0   TO MH_Rec
  625. @4,13 GET MA_SORTNAM PICTURE "!!!!!!!!"
  626. @4,48 SAY MA_SORTNDX PICTURE "!!!!!!!!"
  627. @4,70 SAY MA_SORTFRM PICTURE "!!!!!!!!"
  628. @5,15 SAY MA_SORTDES 
  629. @8,2 SAY MA_SORTCRI
  630. @13,30 SAY MA_SORTF1 PICTURE "!!!!!!!"
  631. @13,46 SAY MA_SORTO1 PICTURE "!"
  632. @14,30 SAY MA_SORTF2 PICTURE "!!!!!!!"
  633. @14,46 SAY MA_SORTO2 PICTURE "!"
  634. @15,30 SAY MA_SORTF3 PICTURE "!!!!!!!"
  635. @15,46 SAY MA_SORT03 PICTURE "!"
  636. @16,30 SAY MA_SORTF4 PICTURE "!!!!!!!"
  637. @16,46 SAY MA_SORT04 PICTURE "!"
  638. @17,30 SAY MA_SORTF5 PICTURE "!!!!!!!"
  639. @17,46 SAY MA_SORT05 PICTURE "!"
  640. @18,30 SAY MA_SORTF6 PICTURE "!!!!!!!"
  641. @18,46 SAY MA_SORTO6 PICTURE "!"
  642. @19,30 SAY MA_SORTF7 PICTURE "!!!!!!!"
  643. @19,46 SAY MA_SORT07 PICTURE "!"
  644. @20,30 SAY MA_SORTF8 PICTURE "!!!!!!!"
  645. @20,46 SAY MA_SORT08 PICTURE "!"
  646. @21,30 SAY MA_SORTF9 PICTURE "!!!!!!!"
  647. @21,46 SAY MA_SORT09 PICTURE "!"
  648. @22,30 SAY MA_SORTF10 PICTURE "!!!!!!!"
  649. @22,46 SAY MA_SORT10 PICTURE "!"
  650. @24,1 SAY SPACE(78)
  651. @24,1 SAY "Enter data to search for in open fields"
  652. READ
  653. IF TRIM(MA_SORTNAM) # ""
  654.    STORE MA_SORTNAM TO MH_Find
  655.    STORE RECNO() TO MH_Rec
  656.    FIND &MH_Find
  657.    IF EOF()
  658.       GOTO MH_Rec
  659.       @24,1 SAY SPACE(78)
  660.       @24,1 SAY "Record Not Found! Press any key to continue"
  661.       @24,45 GET MH_Answer
  662.       READ
  663.    ENDIF
  664. ENDIF
  665. @24,60 GET MH_Answer
  666. READ
  667. RELEASE MH_Find,MH_Answer,MH_Rec
  668. @24,1 SAY SPACE(78)
  669. RETURN
  670.  
  671.  
  672.  
  673. PROCEDURE VAL
  674. ********************************************************************************
  675. *
  676. * System             : DPSORT  
  677. *
  678. *
  679. * System Description : Sort/Select Criteria                                       
  680. *
  681. *
  682. * Module             : DPSORT.VAL
  683. *
  684. *
  685. * Module Description : Validate data module
  686. *
  687. *
  688. * Written by         : A. Michael Hearn                                  
  689. *
  690. *
  691. * Copyright (c) 1987 by University Research, Inc                          
  692. *
  693. ********************************************************************************
  694. DO WHILE .T.
  695.    DO CASE
  696.    CASE MA_SORTO1 = "A"
  697.         EXIT
  698.    CASE MA_SORTO1 = "D"
  699.         EXIT
  700.    OTHERWISE
  701.        @24,1 SAY SPACE(78)
  702.        @24,1 SAY "Must be: A D "
  703.        @13,46 GET MA_SORTO1 PICTURE "!" 
  704.        READ
  705.    ENDCASE
  706. ENDDO
  707. DO WHILE .T.
  708.    DO CASE
  709.    CASE MA_SORTO2 = "A"
  710.         EXIT
  711.    CASE MA_SORTO2 = "D"
  712.         EXIT
  713.    OTHERWISE
  714.        @24,1 SAY SPACE(78)
  715.        @24,1 SAY "Must be: A D "
  716.        @14,46 GET MA_SORTO2 PICTURE "!" 
  717.        READ
  718.    ENDCASE
  719. ENDDO
  720. DO WHILE .T.
  721.    DO CASE
  722.    CASE MA_SORT03 = "A"
  723.         EXIT
  724.    CASE MA_SORT03 = "D"
  725.         EXIT
  726.    OTHERWISE
  727.        @24,1 SAY SPACE(78)
  728.        @24,1 SAY "Must be: A D "
  729.        @15,46 GET MA_SORT03 PICTURE "!" 
  730.        READ
  731.    ENDCASE
  732. ENDDO
  733. DO WHILE .T.
  734.    DO CASE
  735.    CASE MA_SORT04 = "A"
  736.         EXIT
  737.    CASE MA_SORT04 = "D"
  738.         EXIT
  739.    OTHERWISE
  740.        @24,1 SAY SPACE(78)
  741.        @24,1 SAY "Must be: A D "
  742.        @16,46 GET MA_SORT04 PICTURE "!" 
  743.        READ
  744.    ENDCASE
  745. ENDDO
  746. DO WHILE .T.
  747.    DO CASE
  748.    CASE MA_SORT05 = "A"
  749.         EXIT
  750.    CASE MA_SORT05 = "D"
  751.         EXIT
  752.    OTHERWISE
  753.        @24,1 SAY SPACE(78)
  754.        @24,1 SAY "Must be: A D "
  755.        @17,46 GET MA_SORT05 PICTURE "!" 
  756.        READ
  757.    ENDCASE
  758. ENDDO
  759. DO WHILE .T.
  760.    DO CASE
  761.    CASE MA_SORTO6 = "A"
  762.         EXIT
  763.    CASE MA_SORTO6 = "D"
  764.         EXIT
  765.    OTHERWISE
  766.        @24,1 SAY SPACE(78)
  767.        @24,1 SAY "Must be: A D "
  768.        @18,46 GET MA_SORTO6 PICTURE "!" 
  769.        READ
  770.    ENDCASE
  771. ENDDO
  772. DO WHILE .T.
  773.    DO CASE
  774.    CASE MA_SORT07 = "A"
  775.         EXIT
  776.    CASE MA_SORT07 = "D"
  777.         EXIT
  778.    OTHERWISE
  779.        @24,1 SAY SPACE(78)
  780.        @24,1 SAY "Must be: A D "
  781.        @19,46 GET MA_SORT07 PICTURE "!" 
  782.        READ
  783.    ENDCASE
  784. ENDDO
  785. DO WHILE .T.
  786.    DO CASE
  787.    CASE MA_SORT08 = "A"
  788.         EXIT
  789.    CASE MA_SORT08 = "D"
  790.         EXIT
  791.    OTHERWISE
  792.        @24,1 SAY SPACE(78)
  793.        @24,1 SAY "Must be: A D "
  794.        @20,46 GET MA_SORT08 PICTURE "!" 
  795.        READ
  796.    ENDCASE
  797. ENDDO
  798. DO WHILE .T.
  799.    DO CASE
  800.    CASE MA_SORT09 = "A"
  801.         EXIT
  802.    CASE MA_SORT09 = "D"
  803.         EXIT
  804.    OTHERWISE
  805.        @24,1 SAY SPACE(78)
  806.        @24,1 SAY "Must be: A D "
  807.        @21,46 GET MA_SORT09 PICTURE "!" 
  808.        READ
  809.    ENDCASE
  810. ENDDO
  811. DO WHILE .T.
  812.    DO CASE
  813.    CASE MA_SORT10 = "A"
  814.         EXIT
  815.    CASE MA_SORT10 = "D"
  816.         EXIT
  817.    OTHERWISE
  818.        @24,1 SAY SPACE(78)
  819.        @24,1 SAY "Must be: A D "
  820.        @22,46 GET MA_SORT10 PICTURE "!" 
  821.        READ
  822.    ENDCASE
  823. ENDDO
  824. RETURN
  825.  
  826.  
  827.  
  828. PROCEDURE HLP
  829. ********************************************************************************
  830. *
  831. * System             : DPSORT
  832. *
  833. *
  834. * System Description : Sort/Select Criteria                                       
  835. *
  836. *
  837. * Module             : DPSORT.ADD
  838. *
  839. *
  840. * Module Description : Give general information
  841. *
  842. *
  843. * Written by         : A. Michael Hearn                                  
  844. *
  845. *
  846. * Copyright (c) 1987 by University Research, Inc                          
  847. *
  848. ********************************************************************************
  849. PARAMETERS What
  850. DO CASE
  851. CASE What = 1
  852.      @0,0 SAY "Sorry, No help available"
  853. CASE What = 2
  854.      @0,0 SAY "Sorry, No help available"
  855. OTHERWISE
  856.      @0,0 SAY "LOGIC ERROR IN PROGRAM"
  857. ENDCASE
  858. RETURN
  859.