home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a056 / 4.ddi / MAIN / YQMIS004.PRG < prev    next >
Encoding:
Text File  |  1993-12-21  |  21.1 KB  |  1,247 lines

  1. *******************************************************
  2. * ╬─╝■├√│╞: YQMIS004
  3. * │╠╨≥╔Φ╝╞: ╤┼╞µ                  
  4. * ▒α│╠╚╒╞┌: 93.12.21   20:49:58
  5. *******************************************************
  6. priv aqwj
  7. set safe off
  8. set date ansi
  9. close data
  10. set color to w/1,,
  11. clear
  12. do smggp with '╟δ  ╔╘  ║≥ !',10,34
  13. set color to w/1,,
  14. sele A
  15. aqwj='GZZK'
  16. sele 8
  17. use GZZK alia h
  18. sele B
  19. use CQQK alia B
  20. index on ╨╒├√ to CQQK
  21. sele C
  22. use GZJB alia C
  23. index on ╣ñ╫╩╝╢▒≡ to GZJB
  24. sele D
  25. use ZWJT alia D
  26. index on ╓░╬± to ZWJT
  27. sele 8
  28. copy stru to olswj.ls
  29. sele 1
  30. use olswj.ls alia a
  31. appe blan
  32. sele A
  33. set rela to ╨╒├√ into B addi
  34. sele A
  35. set rela to ╣ñ╫╩╝╢▒≡ into C addi
  36. sele A
  37. set rela to ╓░╬± into D addi
  38. set proc to YQMIS004
  39. priv ozdm,ogzq,oh,ol,ok,oj,ofz,owyzd
  40. ofz=.f.
  41. ok=-1
  42. oj=.f.
  43. do while .t.
  44. set color to 7/1,1/7,
  45. clear
  46. call hj with '00007924'
  47. @ 2,1 say repl('⌐Ñ',39)
  48. @ 22,1 say repl('⌐Ñ',39)
  49. set dele off
  50. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:         '
  51. @ 23,16 say '^End:═╦│÷ ^Home:╧╘╩╛╣ª─▄▓╦╡Ñ ^PgUp:╜°╚δ╡τ╫╙▒¿▒φ '
  52. @ 5,2 say '                           ═¿╙├╣ñ╫╩┬╝╚δ│╠╩╜'
  53. @ 6,2 say '                       ~~~~~~~~~~~~~~~~~~~~~~~~~'
  54. @ 7,2 say '    ⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖'
  55. @ 8,2 say '    ⌐º╨╒├√:       ⌐º╨╘▒≡:   ⌐º╓░╬±:       ⌐º╣ñ╫╩╝╢▒≡:           ⌐º'
  56. @ 9,2 say '    ⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐Ñ⌐Ñ⌐╫⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧'
  57. @ 10,2 say '    ⌐º╗∙▒╛╣ñ╫╩:         ⌐º╓░╬±╜≥╠∙:         ⌐º╜▒╜≡:             ⌐º'
  58. @ 11,2 say '    ⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧'
  59. @ 12,2 say '    ⌐º╢└╫╙▓╣╠∙:       ⌐º╜╗═¿▓╣╠∙:       ⌐º╙ª╖ó║╧╝╞:             ⌐º'
  60. @ 13,2 say '    ⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐∩⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧'
  61. @ 14,2 say '    ⌐º╚▒╟┌┐█┐ε:       ⌐º╖┐╫Γ:       ⌐º╦«╖╤:       ⌐º╡τ╖╤:       ⌐º'
  62. @ 15,2 say '    ⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧'
  63. @ 16,2 say '    ⌐º╩╡╖ó╜≡╢ε:         ⌐º╡Ñ╬╗:                                 ⌐º'
  64. @ 17,2 say '    ⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐'
  65. set color to w+/1,,
  66. sele 1
  67. @ 1,29 say recc() pict '@B 99999999'
  68. sele 9
  69. use odm.lby inde odm alia i
  70. sele 10
  71. use YQMIS004.olr alia j
  72. priv ozdlx,ofw
  73. wjm=left(sys(16),len(sys(16))-4)
  74. sele 1
  75. goto bott
  76. do xs
  77. sele 10
  78. goto top
  79. set color to w+/1,0/w,
  80. do while .t.
  81.    ozdlx=╫╓╢╬└α╨═
  82.    ozdm=trim(╫╓╢╬├√)
  83.    ogzq=╟°
  84.    ojg=╕─
  85.    oh=╨╨+2
  86.    ol=┴╨+2
  87.    ocd=┤╩╡Σ
  88.    if ozdlx='N'
  89.      if ╔╧╧▐=0.AND.╧┬╧▐=0
  90.         ofw=' '
  91.      else
  92.        ofw='rang '+ltrim(str(╧┬╧▐,19,2))+','+ltrim(str(╔╧╧▐,19,2))
  93.      endif
  94.    else
  95.      ofw=' '
  96.    endif
  97.    sele 1
  98.    if ogzq='A'.and..not.ojg
  99.       @ oh,ol get &ozdm &ofw
  100.       if ocd
  101.          clea get
  102.          ozdmc=ozdm
  103.          do odm
  104.       else
  105.          read
  106.       endif
  107.       ok=read()
  108.       if ok>255
  109.          goto recn()
  110.          do js
  111.       endif
  112.       ok=mod(ok,256)
  113.       @ oh,ol say &ozdm
  114.    endif
  115.    sele 10
  116.    do case
  117.    case ok=4.or.ok=0.or.ok=2
  118.         if .not.bof()
  119.            oj=.f.
  120.            skip -1
  121.         endif
  122.         if bof()
  123.            goto top
  124.            sele 1
  125.            if .not.eof()
  126.               skip -1
  127.            endif
  128.            if bof()
  129.               goto top
  130.            endif
  131.            do xs
  132.         endif
  133.    case ok=1.or.ok=5.or.ok=15
  134.         if .not.eof()
  135.            skip
  136.         endif
  137.         if eof()
  138.            sele 1
  139.            if .not.eof()
  140.            skip
  141.            endif
  142.            if eof()
  143.               do zj
  144.            endif
  145.            do xs
  146.            goto top
  147.         endif
  148.    case ok=6
  149.         oj=.f.
  150.         sele 1
  151.         if .not.bof()
  152.            skip -1
  153.         endif
  154.         if bof()
  155.            goto top
  156.         endif
  157.         do xs
  158.    case ok=7
  159.         sele 1
  160.         if .not.eof()
  161.            skip
  162.         endif
  163.         if eof()
  164.            do zj
  165.         endif
  166.         do xs
  167.    case ok=33
  168.         do cd
  169.    case ok=14.or.ok=12
  170.         do smggp with '┤µ┼╠═╦│÷  ╖┼╞·═╦│÷',10,31
  171.         set color to ,0/w,
  172.         @ 10,31 prom '┤µ┼╠═╦│÷'
  173.         @ 10,41 prom '╖┼╞·═╦│÷'
  174.         menu to ok
  175.         sele 1
  176.         if ok=1
  177.            pack
  178.            use &aqwj alia a
  179.            appe from olswj.ls
  180.         endif
  181.         use
  182.         dele file olswj.ls
  183.         close proc
  184.         close data
  185.         return
  186.    case ok=34
  187.         sele 1
  188.      do brow
  189.         exit
  190.    othe
  191.         if .not.eof()
  192.            skip
  193.         endif
  194.         if eof()
  195.            goto top
  196.            sele 1
  197.            if .not.eof()
  198.               skip
  199.            endif
  200.            if eof()
  201.               goto top
  202.            endif
  203.            do xs
  204.         endif
  205.    endcase
  206.    sele 10
  207. enddo
  208. enddo
  209. return
  210.  
  211. ****************
  212. * ╧╘╩╛╦∙╙╨╫╓╢╬ *
  213. ****************
  214. proc xs
  215. priv ozdm,ogzq,oh,ol
  216. sele 1
  217. set color to w+/1,,
  218. do xsjlh
  219. if dele()
  220.    set color to r+/1,,
  221. else
  222.    set color to w+/1,,
  223. endif
  224. sele 10
  225. goto top
  226. do while .not.eof()
  227.    ozdm=trim(╫╓╢╬├√)
  228.    ogzq=╟°
  229.    oh=╨╨+2
  230.    ol=┴╨+2
  231.    sele 1
  232.    @ oh,ol say &ogzq.->&ozdm
  233.    sele 10
  234.    skip
  235. enddo
  236. goto top
  237. ok=5
  238. return
  239.  
  240. ****************
  241. * ╫╖╝╙╝╟┬╝     *
  242. ****************
  243. proc zj
  244. priv ok,olsbl(128)
  245. dime OLSBL(128)
  246. sele 1
  247. if ofz
  248.    goto bott
  249.    scat to olsbl
  250. endif
  251. if oj
  252.    appe blan
  253.    if ofz
  254.       gath from olsbl
  255.    endif
  256.    @ 1,29 say recc() pict '@B 99999999'
  257. else
  258.    set color to w+/1,,
  259.    @ 21,30 say '╩╟╖±╫╖╝╙╨┬╡─╝╟┬╝?(Y/N)'
  260.    ok=chr(abs(inkey(0)))
  261.    @ 21,30 say '                      '
  262.    if ok$'Yy'
  263.       oj=.t.
  264.       appe blan
  265.       if ofz
  266.          gath from olsbl
  267.       endif
  268.       @ 1,29 say recc() pict '@B 99999999'
  269.    else
  270.       goto bott
  271.    endif
  272. endif
  273. return
  274.  
  275. ****************
  276. *   ┬╝╚δ▓╦╡Ñ   *
  277. ****************
  278. proc cd
  279. priv o,tx(7)
  280. dime tx(7)
  281. sele 1
  282. @ oh,ol get &ozdm
  283. clear get
  284. tx(1)='╝╟┬╝▓┘╫≈'
  285. tx(2)='╫╓╢╬╧▐╓╞'
  286. tx(3)='╔╛│²╝╟┬╝'
  287. tx(4)='╜√╕─╫╓╢╬'
  288. tx(5)='╝ñ╗ε╫╓╢╬'
  289. tx(6)='┤·┬δ╖╜╩╜'
  290. tx(7)='╣½╩╜╝╞╦π'
  291. o=0
  292. do menu with 7
  293. set color to w+/1,,
  294. do case
  295. case o=1
  296.      sele 1
  297.      tx(1)='╬─╝■┐¬═╖'
  298.      tx(2)='╬─╝■╬▓▓┐'
  299.      tx(3)='╓╕╢¿╝╟┬╝'
  300.      tx(4)='╝╟┬╝╕┤╓╞'
  301.      tx(5)='╚í╧√╕┤╓╞'
  302.      tx(6)='▓σ╚δ╝╟┬╝'
  303.      do menu with 6
  304.      set color to w+/1,,
  305.      @ 1,53 say space(26)
  306.      @ 21,0 say space(80)
  307.      call hj with '00007924'
  308.      do case
  309.      case o=1
  310.           goto top
  311.      case o=2
  312.           goto bott
  313.      case o=3
  314.           o=recn()
  315.           @ 1,53 say '╝╟┬╝║┼:' get o rang 1,recc() pict '@B'
  316.           read
  317.           @ 1,53 say space(26)
  318.           goto o
  319.      case o=4
  320.           ofz=.t.
  321.      case o=5
  322.           ofz=.f.
  323.      case o=6
  324.      inse befor blan
  325.      do xs
  326.      sele 1
  327.      set color to w+/1,,
  328.      @ 1,29 say recc() pict '@B 99999999'
  329.      endcase
  330.      do xs
  331.      sele 1
  332. case o=2.and.ozdlx='N'
  333.      set color to w/1,,
  334.      @ 21,1 say space(78)
  335.      sele 10
  336.      @ 21,2 say '╩²╛▌╧┬╧▐:' get ╧┬╧▐
  337.      @ 21,32 say '╩²╛▌╔╧╧▐:' get ╔╧╧▐
  338.      read
  339.      @ 21,1 say space(78)
  340. case o=3
  341.      sele 1
  342.      if dele()
  343.         reca
  344.       else
  345.         dele
  346.       endif
  347.       do xs
  348. case o=4
  349.      sele 10
  350.      repl ╕─ with .t.
  351.      oa=1
  352.      sele 1
  353.      set color to w+/1,,
  354.      @ oh,ol say &ozdm
  355.      ok=5
  356. case o=5
  357.      sele 10
  358.      ol0=recn()
  359.      repl ╕─ with .f. all
  360.      goto ol0
  361. case o=6
  362.      sele 10
  363.      if ╫╓╢╬└α╨═='C'
  364.         repl ┤╩╡Σ with iif(┤╩╡Σ,.f.,.t.)
  365.         oa=1
  366.         sele 1
  367.         set color to w+/1,,
  368.         @ oh,ol say &ozdm
  369.      endif
  370. case o=7
  371.      do gs
  372. endcase
  373. set color to w+/1,1/7,
  374. return
  375.  
  376. ****************
  377. *   ┤·┬δ╠µ╗╗   *
  378. ****************
  379. proc odm
  380. set exact on
  381. odm='        '
  382. set color to w+/r,,
  383. @ 21,1 say '╩Σ╚δ┤·┬δ:'get odm pict '!!!!!!!!'
  384. read
  385. if odm='        '
  386.    @ 21,1 say space(78)
  387.    set color to w+/1,,
  388.    retu
  389. endif
  390. sele 9
  391. seek ozdmc+odm
  392. if found()
  393.    sele 1
  394.    repl &ozdm with i->nr
  395. else
  396. set exact off
  397.    seek ozdmc
  398.    if found()
  399.      do dmgd
  400.    else
  401.       appe blan
  402.       repl zd with ozdm,dm with odm
  403.       @ 21,20 say '─┌╚▌:' get nr
  404.       read
  405.       sele 1
  406.       repl &ozdm with i->nr
  407.    endif
  408. endif
  409. @ 21,1 say space(78)
  410. set color to w+/1,,
  411. sele 1
  412. set exac off
  413. return
  414. ****************
  415. *   ┤·┬δ╣÷╢»   *
  416. ****************
  417. proc dmgd
  418. set color to w/1,,
  419. @ 23,1 say space(78)
  420. @ 23,13 say 'íⁿí²╝ⁿ:╖¡╢»┤·┬δ▒φ  ╗╪│╡╝ⁿ:╤í╘±╡▒╟░┤·┬δ  PgDn:╠ε╨┤╨┬┤·┬δ'
  421. set color to 7/1,1/7,
  422. priv ok,ol
  423. ol=recn()
  424. set color to w+/r,,
  425. @ 21,1 say '╩Σ╚δ┤·┬δ:'
  426. do while .t.
  427. @ 21,11 say odm pict '!!!!!!!!'
  428. @ 21,20 say '─┌╚▌:' get nr
  429. clear get
  430. ok=inkey(0)
  431. do case
  432. case ok=24
  433. skip
  434. if eof()
  435. goto ol
  436. endif
  437. if zd<>ozdm
  438. goto ol
  439. endif
  440. case ok=5
  441. skip -1
  442. if bof()
  443. goto ol
  444. endif
  445. if zd<>ozdm
  446. goto ol
  447. endif
  448. case ok=13
  449. sele 1
  450. repl &ozdm with i->nr
  451. exit
  452. case ok=3
  453. appe blan
  454. repl zd with ozdm,dm with odm
  455. @ 21,20 say '─┌╚▌:' get nr
  456. read
  457. sele 1
  458. repl &ozdm with i->nr
  459. exit
  460. endcase
  461. enddo
  462. set color to w/1,,
  463. @ 23,1 say space(78)
  464. @ 23,16 say '^End:═╦│÷ ^Home:╧╘╩╛╣ª─▄▓╦╡Ñ ^PgUp:╜°╚δ╡τ╫╙▒¿▒φ '
  465. set color to 7/1,1/7,
  466. return
  467. ****************
  468. *   ╣½╩╜╝╞╦π   *
  469. ****************
  470. proc js
  471. priv o,ozdm,ojs,ol,oh
  472. set color to w+/1,0/w,
  473. sele 10
  474. o=recn()
  475. goto top
  476. do while .not.eof()
  477. ozdm=trim(╫╓╢╬├√)
  478. ojs=trim(╦π)
  479. oh=╨╨+2
  480. ol=┴╨+2
  481. sele 1
  482. if len(ojs)>0
  483. repl &ozdm with &ojs
  484. @ oh,ol say &ozdm
  485. endif
  486. sele 10
  487. skip
  488. enddo
  489. sele 10
  490. goto o
  491. sele 1
  492. return
  493.  
  494. ****************
  495. *   ╩Σ╚δ╣½╩╜   *
  496. ****************
  497. proc gs
  498. priv ox,o,ocr,osq,ozf,ohz,ozdm,ol,obj,ojsgs
  499. set color to 0/3,,
  500. @ 23,1 say space(78)
  501. @ 23,18 say '^End:═╦│÷ íⁿí²:╥╞╢»╫╓╢╬╣Γ▒Ω ╗╪│╡╝ⁿ:╤í╘±╫╓╢╬'
  502. set color to w+/r,,
  503. obj=chr(160)
  504. ohz=0
  505. ozf=''
  506. ocr=1
  507. ox=1
  508. sele 10
  509. ol=recn()
  510. ozdm=trim(╫╓╢╬├√)
  511. @ 1,40 say '╜ß╣√╫╓╢╬:'+ozdm
  512. @ 1,60 say '╨▐╕─'
  513. ojsgs=╦π
  514. set color to 0/w,,
  515. @ 21,1 say space(78)
  516. @ 21,1 say ojsgs
  517. sele 2
  518. do while .t.
  519. set color to 0/w,,
  520. @ 21,ox say ''
  521. o=inkey(0)
  522. do case
  523. case o=19.and.ox>1
  524. ox=ox-1
  525. if subs(ojsgs,ox,1)>obj
  526. ox=ox-1
  527. endif
  528. loop
  529. case o=4.and.ox<78
  530. ox=iif(subs(ojsgs,ox,1)>obj,ox+2,ox+1)
  531. loop
  532. case o<127.and.o>31
  533. ozf=iif(subs(ojsgs,ox,1)>obj.and.ocr=1,chr(o)+' ',chr(o))
  534. if ocr=0
  535. if len(trim(ojsgs))+len(ozf)<79
  536. ojsgs=left(stuf(ojsgs,ox,0,ozf),78)
  537. ox=iif(ox<78,ox+1,ox)
  538. @ 21,1 say ojsgs
  539. endif
  540. else
  541. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  542. @ 21,ox say ozf
  543. ox=iif(ox<78,ox+1,ox)
  544. endif
  545. ohz=0
  546. case o>160.and.ox<78
  547. if ohz=0
  548. ozf=chr(o)
  549. ohz=1
  550. else
  551. ozf=ozf+chr(o)
  552. ozf=iif(ocr=1.and.subs(ojsgs,ox,1)<obj.and.subs(ojsgs,ox+1,1)>obj,ozf+' ',ozf)
  553. if ocr=0
  554. if len(trim(ojsgs))+len(ozf)<79
  555. ojsgs=left(stuf(ojsgs,ox,0,ozf),78)
  556. @ 21,1 say ojsgs
  557. ox=iif(ox<77,ox+2,ox)
  558. endif
  559. else
  560. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  561. @ 21,ox say ozf
  562. ox=iif(ox<77,ox+2,ox)
  563. endif
  564. ohz=0
  565. endif
  566. case o=22
  567. ocr=iif(ocr=0,1,0)
  568. @ 1,60 say iif(ocr=0,'▓σ╚δ','╨▐╕─')
  569. case o=7
  570. ojsgs=iif(subs(ojsgs,ox,1)<obj,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  571. @ 21,1 say ojsgs
  572. case o=127.and.ox>1
  573. ox=ox-1
  574. if subs(ojsgs,ox,1)>obj
  575. ox=ox-1
  576. endif
  577. ojsgs=iif(subs(ojsgs,ox,1)<obj,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  578. @ 21,1 say ojsgs
  579. case o=13
  580. keyb chr(24)
  581. sele 10
  582. ozdm0=iif(╟°='A',trim(╫╓╢╬├√),╟°+'->'+trim(╫╓╢╬├√))
  583. if len(trim(ojsgs))+len(ozdm0)<79
  584. ojsgs=left(stuf(ojsgs,ox,0,ozdm0),78)
  585. @ 21,1 say ojsgs
  586. ox=ox+len(ozdm0)
  587. ox=iif(ox>78,78,ox)
  588. endif
  589. case o=23
  590. sele 10
  591. goto ol
  592. repl ╦π with ojsgs
  593. exit
  594. case o=24
  595. sele 10
  596. set color to w+/1,,
  597. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  598. if .not.eof()
  599. skip
  600. endif
  601. if eof()
  602. goto top
  603. endif
  604. set color to w+/r,,
  605. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  606. case o=5
  607. sele 10
  608. set color to w+/1,,
  609. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  610. if .not.bof()
  611. skip -1
  612. endif
  613. if bof()
  614. goto bott
  615. endif
  616. set color to w+/r,,
  617. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  618. endcase
  619. enddo
  620. set color to w+/1,,
  621. @ 1,40 say space(39)
  622. @ 21,1 say space(78)
  623. set color to w/1,,
  624. @ 23,1 say space(78)
  625. @ 23,16 say '^End:═╦│÷ ^Home:╧╘╩╛╣ª─▄▓╦╡Ñ ^PgUp:╜°╚δ╡τ╫╙▒¿▒φ '
  626. set color to 7/1,1/7,
  627. return
  628.  
  629. ************
  630. * ╡τ╫╙▒¿▒φ *
  631. ************
  632. proc brow
  633. set date ansi
  634. set safe off
  635. set color to ,0/3,
  636. priv ozdszd,wzd,ozdmm(20),ozd0,zhzd,ozdczd,ozdx(20),zds,y,y0,sjl,wybz
  637. priv ozdsd,ozdsdc,ozdszd,ozj,y1,objfx
  638. objfx=.t.
  639. dime ozdmm(20),ozdx(20)
  640. if file('&wjm..bro')
  641. rest from &wjm..bro addi
  642. else
  643. ozdszd=1
  644. ozdsdc=0
  645. ozdsd=0
  646. ozdszd=1
  647. ozd0=0
  648. endif
  649. ozj=.f.
  650. wybz=.f.
  651. sele 1
  652. sjl=recn()
  653. y=6
  654. zds=1
  655. zhzd=0
  656. sele 10
  657. use
  658. sele 9
  659. use brow.lby alia i
  660. zap
  661. appe from &wjm..olr
  662. dele for ╟°<>'A'.or.╫╓╢╬│ñ╢╚>74.or.╫╓╢╬└α╨═='M'.or.╫╓╢╬└α╨═='L'
  663. pack
  664. zhzd=recc()
  665. sele 10
  666. use &wjm..olr alia j
  667. sele 9
  668. goto top
  669. do while .not.eof()
  670. zdsmcd=len(trim(╫╓╢╬╦╡├≈))
  671. do case
  672. case zdsmcd<=╫╓╢╬│ñ╢╚
  673. repl sm2 with space(int((╫╓╢╬│ñ╢╚-zdsmcd)/2))+trim(╫╓╢╬╦╡├≈)
  674. case zdsmcd<=╫╓╢╬│ñ╢╚*2
  675. zd1cd=int(zdsmcd/2)+mod(int(zdsmcd/2),2)
  676. zd2cd=zdsmcd-zd1cd
  677. repl sm1 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+left(╫╓╢╬╦╡├≈,zd1cd)
  678. repl sm3 with space(int((╫╓╢╬│ñ╢╚-zd2cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd+1,zd2cd)
  679. othe
  680. zdsmcd=iif(zdsmcd>╫╓╢╬│ñ╢╚*3,╫╓╢╬│ñ╢╚*3,zdsmcd)
  681. zd1cd=int(zdsmcd/3)+mod(int(zdsmcd/3),2)
  682. zd3cd=zdsmcd-(zd1cd*2)
  683. repl sm1 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+left(╫╓╢╬╦╡├≈,zd1cd)
  684. repl sm2 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd+1,zd1cd)
  685. repl sm3 with space(int((╫╓╢╬│ñ╢╚-zd3cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd*2+1,zd3cd)
  686. endcase
  687. skip
  688. enddo
  689. load hbk
  690. set color to w/1,,
  691. clear
  692. @ 24,0 say ''
  693. call hbk with '00002479Z'
  694. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  695. sele 1
  696. @ 1,col() say recc() pict '@B'
  697. @ 2,1 say repl('⌐Ñ',39)
  698. @ 22,1 say repl('⌐Ñ',39)
  699. @ 23,2 say 'PgUp/PgDn:╟░║≤╖¡╥│  ^PgUp/^PgDn:╫≤╙╥╖¡╥│  ^Home:╣ñ╛▀▓╦╡Ñ  Esc:═╦│÷'
  700. do dqysd
  701. do dqy
  702. **************
  703. * ╓≈  ╤¡  ╗╖ *
  704. **************
  705. on key=21 do p4
  706. goto top
  707. do xsdqy
  708. do xsjlh
  709. zdmc=ozdmm(zds)
  710. y=6
  711. do while .t.
  712. set color to 0/3,0/3,
  713. @ y,ozdx(zds)-1 say ' '
  714. @ y,ozdx(zds) get &zdmc
  715. @ y,col() say ' '
  716. read
  717. ok=mod(read(),256)
  718. set color to w/1,,
  719. @ y,ozdx(zds)-1 say ' '
  720. @ y,ozdx(zds) say &zdmc pict '@z'
  721. yhx=str(col(),2)
  722. @ y,col() say ' '
  723. @ 24,0 say ''
  724. call hbk with str(y,2)+str(ozdx(zds)-1,2)+yhx+'03a'
  725. call hbk with str(y,2)+yhx+str(y,2)+'03p'
  726. do case
  727. case ok=0.or.ok=2
  728. do zyzd
  729. case ok=1.or.ok=3
  730. do yyzd
  731. case ok=4
  732. do syyh
  733. case ok=5
  734. do xyyh
  735. case ok=15
  736. if objfx
  737. do yyzd
  738. else
  739. do xyyh
  740. endif
  741. case ok=6.and.sjl>1
  742. do sfyy
  743. case ok=7.and..not.wybz
  744. do xfyy
  745. case ok=34.and.ozdszd>1
  746. do zyck
  747. case ok=35.and.ozd0<zhzd
  748. do yyck
  749. case ok=33
  750. do gjcd
  751. case ok=12.or.ok=14
  752. save to &wjm..bro all like ozd*
  753. return
  754. endcase
  755. enddo
  756. return
  757. ************
  758. * ╙╥╥╞╫╓╢╬ *
  759. ************
  760. proc yyzd
  761. if zds<ozd0
  762. zds=zds+1
  763. zdmc=ozdmm(zds)
  764. else
  765. zds=1
  766. zdmc=ozdmm(zds)
  767. do xyyh
  768. endif
  769. return
  770. ************
  771. * ╫≤╥╞╫╓╢╬ *
  772. ************
  773. proc zyzd
  774. if zds>1
  775. zds=zds-1
  776. zdmc=ozdmm(zds)
  777. endif
  778. return
  779. ************
  780. * ╙╥╥╞┤░┐┌ *
  781. ************
  782. proc yyck
  783. ozdszd=ozdszd+1
  784. @ 3,ozdsdc+2 clear to 21,77
  785. ojl=recn()
  786. y0=y
  787. do dqy
  788. do xsdqy
  789. goto ojl
  790. y=y0
  791. do zyzd
  792. zdmc=ozdmm(zds)
  793. return
  794. ************
  795. * ╫≤╥╞┤░┐┌ *
  796. ************
  797. proc zyck
  798. ozdszd=ozdszd-1
  799. @ 3,ozdsdc+2 clear to 21,77
  800. y0=y
  801. ojl=recn()
  802. do dqy
  803. do xsdqy
  804. goto ojl
  805. y=y0
  806. do yyzd
  807. zdmc=ozdmm(zds)
  808. return
  809.  
  810. ************
  811. * ╧┬╖¡╥╗╥│ *
  812. ************
  813. proc xfyy
  814. goto sjl
  815. skip 16
  816. if eof()
  817. wybz=.t.
  818. skip -16
  819. endif
  820. sjl=recn()
  821. do xsdqy
  822. zdmc=ozdmm(zds)
  823. y=6
  824. do xsjlh
  825. return
  826.  
  827. ************
  828. * ╔╧╖¡╥╗╥│ *
  829. ************
  830. proc sfyy
  831. goto sjl
  832. skip -16
  833. if bof()
  834. goto top
  835. endif
  836. sjl=recn()
  837. do xsdqy
  838. y=6
  839. wybz=.f.
  840. zdmc=ozdmm(zds)
  841. do xsjlh
  842. ozj=.f.
  843. return
  844.  
  845. ************
  846. * ╧┬╥╞╥╗╨╨ *
  847. ************
  848. proc xyyh
  849. if y<21
  850. y=y+1
  851. skip
  852. if eof()
  853. do zjjl
  854. endif
  855. else
  856. skip
  857. if eof()
  858. do zjjl
  859. if ozj
  860. do xsdh
  861. endif
  862. else
  863. sjl=sjl+1
  864. do xsdh
  865. endif
  866. endif
  867. do xsjlh
  868. return
  869. ************
  870. * ╔╧╥╞╥╗╨╨ *
  871. ************
  872. proc syyh
  873. if y>6
  874. y=y-1
  875. skip -1
  876. else
  877. skip -1
  878. if bof()
  879. goto top
  880. else
  881. sjl=recn()
  882. do xssh
  883. endif
  884. endif
  885. do xsjlh
  886. ozj=.f.
  887. return
  888. **************
  889. * ╧╘╩╛╡▒╟░╥│ *
  890. **************
  891. proc xsdqy
  892. priv ojl
  893. sele 1
  894. goto sjl
  895. y=6
  896. do while y<22
  897. do xsyh with y
  898. @ 24,0 say ''
  899. call hbk with str(y,2)+'027703A'
  900. sele 1
  901. if .not.eof()
  902. skip
  903. endif
  904. y=y+1
  905. enddo
  906. sele 1
  907. goto sjl
  908. zd0=1
  909. zdmc=ozdmm(zds)
  910. return
  911. ************
  912. * ╧╘╩╛╥╗╨╨ *
  913. ************
  914. proc xsyh
  915. para y
  916. priv zd0
  917. zd0=1
  918. @ y,2 say ''
  919. do while zd0<=ozd0
  920. ozd=ozdmm(zd0)
  921. sele 1
  922. @ y,ozdx(zd0) say &ozd pict '@z'
  923. zd0=zd0+1
  924. enddo
  925. return
  926. ************
  927. * ╧╘╩╛╡╫╨╨ *
  928. ************
  929. proc xsdh
  930. priv zd0
  931. call hbk with '06022177T'
  932. zd0=1
  933. @ 21,2 say ''
  934. do while zd0<=ozd0
  935. ozd=ozdmm(zd0)
  936. sele 1
  937. @ 21,ozdx(zd0) say &ozd pict '@z'
  938. yhx=str(col(),2)
  939. @ 24,0 say ''
  940. call hbk with '21'+yhx+'2103p'
  941. zd0=zd0+1
  942. enddo
  943. call hbk with '21772103p'
  944. call hbk with '21027703a'
  945. return
  946. ************
  947. * ╧╘╩╛╩╫╨╨ *
  948. ************
  949. proc xssh
  950. priv zd0
  951. call hbk with '06022177U'
  952. zd0=1
  953. @ 6,2 say ''
  954. do while zd0<=ozd0
  955. ozd=ozdmm(zd0)
  956. sele 1
  957. @ 6,ozdx(zd0) say &ozd pict '@Z'
  958. yhx=str(col(),2)
  959. @ 24,0 say ''
  960. call hbk with '06'+yhx+'0603p'
  961. zd0=zd0+1
  962. enddo
  963. call hbk with '06770603p'
  964. call hbk with '06027703a'
  965. return
  966. *************
  967. * ▓╦╡Ñ╧╘╩╛ *
  968. ************
  969. proc cdxs
  970. para cdx
  971. priv oi
  972. set color to w/1,,
  973. @ 1,1 clear to 1,78
  974. set color to 0/w,,
  975. @ 1,5 say space(cdx*10)
  976. @ 24,0 say ''
  977. call hbk with '010501'+str(cdx*10+4,2)+'f'
  978. oi=1
  979. do while oi<=cdx
  980. @ 1,oi*10-4 say tx(oi)
  981. @ 24,0 say ''
  982. call hbk with '01'+str(oi*10-5,2)+'01'+str(oi*10+4,2)+'D'
  983. oi=oi+1
  984. enddo
  985. return
  986. **************
  987. * ╧╘╩╛╝╟┬╝║┼ *
  988. **************
  989. proc xsjlh
  990. sele 1
  991. set color to w/1,,
  992. @ 1,9 say recn() pict '@b'
  993. @ 1,46 say iif(dele(),'╔╛│²','    ')
  994. return
  995. ************
  996. * ╣ñ╛▀▓╦╡Ñ *
  997. ************
  998. proc gjcd
  999. set esca off
  1000. PRIV TX(8),o,oi,ok,y0
  1001. set safe off
  1002. oi=1
  1003. DIME TX(8)
  1004. TX(1)='╬─╝■╢Ñ▓┐'
  1005. TX(2)='╬─╝■╬▓▓┐'
  1006. TX(3)='╓╕╢¿╝╟┬╝'
  1007. TX(4)='╔╛│²╥╗╨╨'
  1008. TX(5)='▓σ╚δ╥╗╨╨'
  1009. TX(6)='╫╓╢╬╦°╢¿'
  1010. TX(7)='▒α╝¡╖╜╧≥'
  1011. @ 24,79 SAY ''
  1012. set color to 0/3,0/3,
  1013. @ y,ozdx(zds)-1 say ' '
  1014. @ y,ozdx(zds) get &zdmc
  1015. @ y,col() say ' '
  1016. clear get
  1017. o=0
  1018. do menu with 7
  1019. if o>0
  1020. o=str(o,1)
  1021. do p&o
  1022. endif
  1023. set color to w/1,,
  1024. @ 1,1 say space(78)
  1025. call hbk with '00017801A'
  1026. call hbk with '02017801B'
  1027. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  1028. sele 1
  1029. @ 1,col() say recc() pict '@b'
  1030. do xsjlh
  1031. return
  1032. ************
  1033. * ╬─╝■╢Ñ▓┐ *
  1034. ************
  1035. proc p1
  1036. sele 1
  1037. goto top
  1038. sjl=recn()
  1039. set color to w/1,,
  1040. do xsdqy
  1041. y=6
  1042. return
  1043. ************
  1044. * ╬─╝■╬▓▓┐ *
  1045. ************
  1046. proc p2
  1047. sele 1
  1048. goto bott
  1049. skip -15
  1050. if bof()
  1051. goto top
  1052. endif
  1053. sjl=recn()
  1054. set color to w/1,,
  1055. do xsdqy
  1056. y=6
  1057. return
  1058. ************
  1059. * ▒α╝¡╖╜╧≥ *
  1060. ************
  1061. proc p7
  1062. objfx=iif(objfx,.f.,.t.)
  1063. return
  1064. ************
  1065. * ╓╕╢¿╝╟┬╝ *
  1066. ************
  1067. proc p3
  1068. set color to w/1,0/3,
  1069. @ 1,55 say '╓╕╢¿╝╟┬╝:' get sjl pict '9999999999' rang 1,recc()
  1070. read
  1071. set color to w/1,,
  1072. do xsdqy
  1073. y=6
  1074. return
  1075. ************
  1076. * ╔╛│²╥╗╨╨ *
  1077. ************
  1078. proc p4
  1079. sele 1
  1080. if dele()
  1081. reca
  1082. else
  1083. dele
  1084. endif
  1085. set color to w/1,,
  1086. @ 1,46 say iif(dele(),'╔╛│²','    ')
  1087. return
  1088. ************
  1089. * ▓σ╚δ╥╗╨╨ *
  1090. ************
  1091. proc p5
  1092. priv y0
  1093. sele 1
  1094. inse blan befo
  1095. set color to w/1,,
  1096. y0=y
  1097. do xsdqy
  1098. skip y0-6
  1099. y=y0
  1100. return
  1101. ************
  1102. * ╫╓╢╬╦°╢¿ *
  1103. ************
  1104. proc p6
  1105. set color to w/1,0/3,
  1106. @ 1,55 say '╦°╢¿╫╓╢╬╩²:' get ozdsd pict '9999999999'
  1107. read
  1108. if ozdsd<1.or.ozdsd>ozd0-1
  1109. ozdsd=0
  1110. endif
  1111. sele 9
  1112. loca for ozdmm(ozdsd+1)=╫╓╢╬├√
  1113. ozdszd=recn()
  1114. ozdsdc=ozdx(ozdsd+1)-3
  1115. return
  1116. **************
  1117. * ╝╞╦π╡▒╟░╥│ *
  1118. **************
  1119. proc dqy
  1120. sele 9
  1121. ozdzcd=ozdsdc
  1122. goto ozdszd
  1123. wzd=ozdszd
  1124. ozd0=ozdsd
  1125. set color to 3/1,,
  1126. do while wzd<=zhzd
  1127. if ozdzcd+╫╓╢╬│ñ╢╚+2<78
  1128. ozd0=ozd0+1
  1129. ozdx(ozd0)=ozdzcd+3
  1130. @3,ozdx(ozd0) say trim(sm1)
  1131. @4,ozdx(ozd0) say trim(sm2)
  1132. @5,ozdx(ozd0) say trim(sm3)
  1133. ozdzcd=ozdzcd+╫╓╢╬│ñ╢╚+2
  1134. ozdmm(ozd0)=╫╓╢╬├√
  1135. wzd=recn()
  1136. @ 24,0 say ''
  1137. if ozdzcd<76
  1138. call hbk with '03'+str(ozdzcd+1,2)+'2103p'
  1139. endif
  1140. else
  1141. exit
  1142. endif
  1143. skip
  1144. if eof()
  1145. exit
  1146. endif
  1147. enddo
  1148. call hbk with '03012103p'
  1149. call hbk with '03772103p'
  1150. call hbk with '05027703a'
  1151. call hbk with '03027703b'
  1152. call hbk with '21027703a'
  1153. set color to w/1,,
  1154. return
  1155. ************
  1156. * ╝╞╦π╦°╢¿ *
  1157. ************
  1158. proc dqysd
  1159. priv sd
  1160. set color to 3/1,,
  1161. sd=1
  1162. sele 9
  1163. do while sd<=ozdsd
  1164. loca for ozdmm(sd)=trim(╫╓╢╬├√)
  1165. @3,ozdx(sd) say trim(sm1)
  1166. @4,ozdx(sd) say trim(sm2)
  1167. @5,ozdx(sd) say trim(sm3)
  1168. @ 24,0 say ''
  1169. call hbk with '03'+str(ozdx(sd+1)-2,2)+'2103p'
  1170. sd=sd+1
  1171. enddo
  1172. return
  1173. ************
  1174. * ╫╖╝╙╝╟┬╝ *
  1175. ************
  1176. proc zjjl
  1177. priv ok,olsbl(128)
  1178. dime OLSBL(128)
  1179. sele 1
  1180. if ofz
  1181.    goto bott
  1182.    scat to olsbl
  1183. endif
  1184. if .not.ozj
  1185. @ 1,56 say '╩╟╖±╫╖╝╙╨┬╝╟┬╝?(Y/N)'
  1186. ok=abs(inkey(0))
  1187. @ 1,56 say '                    '
  1188. ozj=chr(ok)$'Yy'
  1189. endif
  1190. if ozj
  1191. appe blan
  1192. if ofz
  1193.    gath from olsbl
  1194. endif
  1195. sjl=sjl+1
  1196. else
  1197. goto bott
  1198. if y<21
  1199. y=y-1
  1200. endif
  1201. endif
  1202. sele 1
  1203. @ 1,29 say recc() pict '@b'
  1204. return
  1205. ************
  1206. * ═¿╙├▓╦╡Ñ *
  1207. ************
  1208. proc menu
  1209. para cdx
  1210. do cdxs with cdx
  1211. oi=1
  1212. do while .t.
  1213. set color to w+/3,,
  1214. @ 1,oi*10-5 say ' '+tx(oi)+' '
  1215. @ 24,0 say ''
  1216. call hbk with '01'+str(oi*10-5,2)+'01'+str(oi*10+4,2)+'C'
  1217. OK=INKEY(0)
  1218. set color to 0/w,,
  1219. @ 1,oi*10-5 say ' '+tx(oi)+' '
  1220. @ 24,0 say ''
  1221. call hbk with '01'+str(oi*10-5,2)+'01'+str(oi*10+4,2)+'D'
  1222. do case
  1223. case ok=19.or.ok=5
  1224. oi=iif(oi>1,oi-1,cdx)
  1225. case ok=4.or.ok=24
  1226. oi=iif(oi<cdx,oi+1,1)
  1227. case ok=13
  1228. o=oi
  1229. exit
  1230. case ok=27
  1231. o=0
  1232. exit
  1233. endcase
  1234. enddo
  1235. set color to w/1,,
  1236. @ 1,1 say space(78)
  1237. call hbk with '00017801A'
  1238. call hbk with '02017801B'
  1239. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  1240. sele 1
  1241. @ 1,col() say recc() pict '@b'
  1242. do xsjlh
  1243. return
  1244.  
  1245. *******************************************************
  1246. * ▒α│╠╚╒╞┌: 93.12.21   20:50:01
  1247. *******************************************************