home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 6 / 06.iso / b / b007 / 2.ddi / AMISG / DBFEXP.PRG < prev    next >
Encoding:
Text File  |  1990-04-27  |  4.4 KB  |  254 lines

  1. ****** ╔·│╔╫Θ║╧╠⌡╝■ DBFEXP.PRG ******
  2. ******  DO DBFEXP              ******
  3. ******  FN:╬─╝■├√.(╚δ┐┌)       ******
  4. ******  EXP:╠⌡╝■▒φ┤∩╩╜.(│÷┐┌)  ******
  5. ******  EXP1:                  ******
  6. @ 0,0 CLEAR
  7. SET TALK OFF
  8. SET BELL OFF
  9. SET DELI OFF
  10. IF TYPE('FN')='U'
  11. FN=''
  12. FNO=''
  13. DO SELEF
  14. IF LEN(FN)=0
  15. RETU
  16. ENDIF
  17. ENDIF
  18. SELE 1
  19. IF TYPE('FNO')='U'
  20. USE FILE INDE FILE
  21. SEEK FN
  22. FNO=F_NO
  23. ENDIF
  24. @ 1,0 CLEAR
  25. USE &FN
  26. GO BOTT
  27. NN3=RECNO()
  28. USE DBD INDE DBD
  29. SET FILT TO F_NO=FNO.AND.FIELD_TYPE<>'M'
  30. COUNT TO MAX
  31. GO TOP
  32. EXP='.T.'
  33. EXP1='.T.'
  34. PRIV HS,LS
  35. HS=25
  36. LS=5
  37. XSH=HS-7
  38. N=0
  39. DO WHILE .T.
  40. @ 3,0 CLEAR
  41. N1=N+1
  42. I=3
  43. DO WHILE .NOT. EOF()
  44. J=0
  45. DO WHILE .NOT. EOF() .AND. J<LS
  46. N=N+1
  47. IF N=1
  48. @ I,0 SAY ' 1.╝╟┬╝║┼'
  49. J=J+1
  50. ENDIF
  51. @ I,J*15 SAY STR(N+1,2)+'.'+C_NAME
  52. J=J+1
  53. SKIP
  54. ENDDO
  55. I=I+1
  56. IF I=XSH+3
  57. EXIT
  58. ENDIF
  59. ENDDO
  60. DO WHILE .T.
  61. @ 0,58 SAY '  '
  62. @ 1,1 SAY '╡▒╟░╝∞╦≈╠⌡╝■╬¬:'+EXP1
  63. DO WHILE .T.
  64. @ 0,7 SAY '╤í╘±╝∞╦≈╣╪╝ⁿ╫╓┤·║┼[Enter_═╦│÷ PgUp_╟░▓Θ PgDn_║≤▓Θ]:'
  65. YN=INKEY(0)
  66. IF YN>48.AND.YN<58
  67. @ 0,58 SAY CHR(YN)
  68. EXIT
  69. ENDIF
  70. IF YN=13.OR.YN=18.OR.YN=3
  71. EXIT
  72. ENDIF
  73. ??CHR(7)
  74. ENDDO
  75. @ 0,0 SAY SPACE(7)
  76. @ 0,62 SAY SPACE(16)
  77. IF YN=18
  78. IF N1=1
  79. LOOP
  80. ENDIF
  81. IF N1<LS*XSH+1
  82. N=0
  83. ELSE
  84. N=N1-LS*XSH+1
  85. ENDIF
  86. GO TOP
  87. SKIP N
  88. EXIT
  89. ENDIF
  90. IF YN=3
  91. IF N=MAX
  92. LOOP
  93. ENDIF
  94. GO TOP
  95. SKIP N
  96. EXIT
  97. ENDIF
  98. IF YN=13
  99. USE
  100. RETU
  101. ENDIF
  102. DO WHILE .T.
  103. @ 0,58 SAY CHR(YN)
  104. YN1=INKEY(0)
  105. IF YN1>47.AND.YN1<58
  106. @ 0,59 SAY CHR(YN1)
  107. EXIT
  108. ENDIF
  109. IF YN1=19.OR.YN1=127.OR.YN1=13
  110. EXIT
  111. ENDIF
  112. ??CHR(7)
  113. ENDDO
  114. IF YN1=127.OR.YN1=19
  115. LOOP
  116. ENDIF
  117. IF YN1=13
  118. NN=YN-48
  119. ELSE
  120. NN=VAL(CHR(YN)+CHR(YN1))
  121. ENDIF
  122. NN=NN-1
  123. IF NN>MAX .OR. NN<0
  124. @ 0,62 SAY STR(NN+1,3)+'╨≥║┼│¼╖╢╬º!'
  125. @ 0,3 SAY '╓╪╨┬'
  126. LOOP
  127. ENDIF
  128. @ XSH+3,0 CLEAR
  129. IF NN=0
  130. DO WHILE .T.
  131. NN2=NN3
  132. NN1=1
  133. @ XSH+3,0 SAY '╟δ╩Σ╚δ╝╟┬╝╖╢╬º: ╞≡╩╝╝╟┬╝║┼          ╓╒╓╣╝╟┬╝║┼'
  134. @ XSH+3,27 GET NN1 PICT '999999'
  135. @ XSH+3,47 GET NN2 PICT '999999'
  136. READ
  137. IF NN2=NN1
  138. EXP=EXP+'.AND.RECNO()='+LTRIM(STR(NN1,6))
  139. EXP1=EXP1+'.AND.╝╟┬╝║┼='+LTRIM(STR(NN1,6))
  140. EXIT
  141. ENDIF
  142. IF NN2>=NN1
  143. EXP=EXP+'.AND. RECNO()>='+LTRIM(STR(NN1,6))+'.AND.RECNO()<='+LTRIM(STR(NN2,6))
  144. EXP1=EXP1+'.AND.╝╟┬╝║┼>='+LTRIM(STR(NN1,6))+'.AND.╝╟┬╝║┼<='+LTRIM(STR(NN2,6))
  145. EXIT
  146. ENDIF
  147. LOOP
  148. ENDDO
  149. LOOP
  150. ENDIF
  151. GO TOP
  152. SKIP NN-1
  153. T=FIELD_TYPE
  154. PIC=''
  155. DO CASE
  156. CASE T='N'
  157. @ XSH+3,1 SAY '└α╨═:╩²╫╓╨═,│ñ╢╚:'+STR(FIELD_LEN,3)+' ╨í╩²:'+STR(FIELD_DEC,2)
  158. IF FIELD_DEC<>0
  159. EX=0.0
  160. PIC=REPL('9',FIELD_LEN-FIELD_DEC-1)+'.'+REPL('9',FIELD_DEC)
  161. ELSE
  162. PIC=REPL('9',FIELD_LEN)
  163. EX=0
  164. ENDIF
  165. CASE T='C'
  166. @ XSH+3,1 SAY '└α╨═:╫╓╖√╨═,│ñ╢╚:'+STR(FIELD_LEN,3)
  167. EX=SPACE(FIELD_LEN)
  168. CASE T='D'
  169. @ XSH+3,1 SAY '└α╨═:╚╒╞┌╨═,╕±╩╜:─Ω/╘┬/╚╒ YY/MM/DD'
  170. *╘┬/╚╒/─Ω MM/DD/YY'
  171. EX=DATE()
  172. CASE T='L'
  173. @ XSH+3,1 SAY '└α╨═:┬▀╝¡╨═,╨╬╩╜: .T. OR .F.'
  174. EX=.T.
  175. ENDCASE
  176. @ ROW(),COL() SAY ' ┬▀╝¡╖√:*_╙δ +_╗≥|╣╪╧╡╖√:>,>=,<,<=,=,<>,$'
  177. IF LEN(TRIM(NOTE))<>0
  178. @ ROW()+1,1 SAY '╓╡╙≥:'+NOTE
  179. ENDIF
  180. @ ROW()+1,1 SAY '╟δ╩Σ╚δ╧▐╓╞╠⌡╝■:<┬▀╝¡╘╦╦π╖√>'+TRIM(C_NAME)+'<╣╪╧╡╘╦╦π╖√><│ú╩²>'
  181. ROW1=ROW()+1
  182. DO WHILE .T.
  183. OP='  '
  184. LOG=' '
  185. @ ROW1,1 SAY '╟δ╩Σ╚δ........:    ' GET LOG
  186. @ ROW(),COL()+6 SAY TRIM(C_NAME)+'    ' GET OP PICT 'XX'
  187. IF T='N'
  188. @ ROW(),COL()+5 GET EX PICT "&PIC"
  189. ELSE
  190. @ ROW(),COL()+5 GET EX
  191. ENDIF
  192. READ
  193. IF AT(OP,'<> < = >= > <= $ ')=0 .OR. LOG#'+'.AND.LOG#'*'
  194. LOOP
  195. ELSE
  196. IF .NOT. (OP='<>' .OR. OP=' =' .OR. OP='= ').AND.FIELD_TYPE='L' .OR. OP$' $ '.AND.FIELD_TYPE#'C'
  197. @ 9,1 SAY EX
  198. ? '^------------╣╪╧╡╘╦╦π╖√┤φ!'
  199. WAIT '╩Σ╚δ╚╬║╬╝ⁿ╘≥╓╪╤í...'
  200. LOOP
  201. ENDIF
  202. ENDIF
  203. EXIT
  204. ENDDO
  205. IF LOG='*'
  206. LOG='.AND.'
  207. ELSE
  208. LOG='.OR.'
  209. ENDIF
  210. OP=LTRIM(TRIM(OP))
  211. EE="EXP=EXP+'.AND.'+TRIM(FIELD_NAME)+OP+EX1"
  212. DO CASE
  213. CASE T='N'
  214. EX1=LTRIM(STR(EX,FIELD_LEN,FIELD_DEC))
  215. EXP=EXP+LOG+TRIM(FIELD_NAME)+OP+EX1
  216. EXP1=EXP1+LOG+TRIM(C_NAME)+OP+EX1
  217. CASE T='C'
  218. EX1="'"+TRIM(EX)+"'"
  219. IF OP$' $ '
  220. EXP=EXP+LOG+EX1+OP+TRIM(FIELD_NAME)
  221. EXP1=EXP1+LOG+EX1+OP+TRIM(C_NAME)
  222. ELSE
  223. EXP=EXP+LOG+TRIM(FIELD_NAME)+OP+EX1
  224. EXP1=EXP1+LOG+TRIM(C_NAME)+OP+EX1
  225. ENDIF
  226. CASE T='D'
  227. EX1='CTOD("'+DTOC(EX)+'")'
  228. EXP=EXP+LOG+TRIM(FIELD_NAME)+OP+EX1
  229. EXP1=EXP1+LOG+TRIM(C_NAME)+OP+DTOC(EX)
  230. CASE T='L'
  231. IF (OP='= '.OR.OP=' =') .AND. EX .OR. OP='<>'.AND..NOT.EX
  232. EXP=EXP+LOG+TRIM(FIELD_NAME)
  233. EXP1=EXP1+LOG+TRIM(C_NAME)
  234. ELSE
  235. EXP=EXP+LOG+'.NOT.'+TRIM(FIELD_NAME)
  236. EXP1=EXP1+LOG+'.NOT.'+TRIM(C_NAME)
  237. ENDIF
  238. ENDCASE
  239. IF EXP='.T..AND.'
  240. EXP=SUBS(EXP,9)
  241. EXP1=SUBS(EXP1,9)
  242. ENDIF
  243. IF EXP='.T..OR.'
  244. EXP=SUBS(EXP,8)
  245. EXP1=SUBS(EXP1,8)
  246. ENDIF
  247. @ XSH+3,0 CLEAR
  248. ENDDO
  249. ENDDO
  250. USE
  251. SET DELI ON
  252. RETURN
  253. ** END OF DBFEXP.PRG **
  254.