home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 6 / 06.iso / b / b007 / 2.ddi / AMISG / RPTSP.PRG < prev    next >
Encoding:
Text File  |  1990-05-30  |  6.0 KB  |  363 lines

  1. ****** RPTSPM.PRG *****
  2. CLEAR
  3. */ ╗±╡├▒φ├√ BGM, ▒φ▒α║┼ BNO, ╬─╝■├√ FN. /*
  4. DIME FNA(32)
  5. DIME NDX0(10)
  6. NDX0='0'
  7. BNO=0
  8. BGM=''
  9. FN=''
  10. FNA=0
  11. DO SELEB
  12. IF LEN(FN)=0
  13. RETU
  14. ENDIF
  15. MBTZX=FNA(4)
  16. MBSZX=FNA(5)
  17. KL=1
  18. CLEAR
  19. @ 3,10 SAY '╟δ╩Σ╚δ┤≥╙í╖▌╩²:' GET KL
  20. READ
  21. YN=' '
  22. @ 3,10 SAY '─·╨Φ╥¬╚╖╢¿╩Σ│÷╠⌡╝■┬≡ ? [Y/N]' GET YN
  23. READ
  24. EXP='.T.'
  25. IF UPPE(YN)='Y'
  26. DO DBFEXP
  27. ENDIF
  28. */ BIAO GE XIAN /*
  29. SELE 1
  30. USE &FN
  31. SET FILT TO &EXP
  32. GO TOP
  33. IF EOF()
  34. @ 3,10 SAY '├╗╙╨┬·╫π╠⌡╝■<&EXP>╡─╝╟┬╝!! ░┤╚╬╥Γ╝ⁿ╘≥╖╡╗╪......'
  35. A=INKEY(5)
  36. USE
  37. RETU
  38. ENDIF
  39. CLOS DATA
  40. SELE 10
  41. USE FFBT
  42. SET FILT TO B_NO=BNO
  43. GO BOTT
  44. SYM3=TRIM(SNA)
  45. SKIP -1
  46. SYM4=TRIM(SNA)
  47. SKIP -1
  48. SYM2=TRIM(SNA)
  49. COUNT TO MXN
  50. MXN=MXN-3
  51. BC2=INT((LEN(SYM2)-LEN(BGM)*2)/4)
  52. */ ╗±╡├╦≈╥²╝░╢╘ DBD.DBF ┐Γ╣²┬╦ /*
  53. USE FILE INDE FILE
  54. J=1
  55. DIME FNOA(9)
  56. EXP0=''
  57. DO WHILE J<=FNA(6)
  58. SEEK FNA((J-1)*3+8)
  59. FNOA(J)=F_NO
  60. EXP0=EXP0+'.OR.F_NO="'+F_NO+'"'
  61. J=J+1
  62. ENDDO
  63. NDX=TRIM(FNA(7))
  64. USE DBD INDE DBD
  65. SET FILT TO &EXP0
  66. GO TOP
  67. */
  68. SELE 9
  69. USE BBTK
  70. SET FILT TO B_NO=BNO
  71. GO TOP
  72. */ ▒φ┐φ SNUM2 /*
  73. SUM FIELD_LEN TO SNUM1
  74. COUNT TO NUM
  75. SNUM2=SNUM1+2*(NUM+1)
  76. */ ▒φ═╖╖╓╜Γ╙δ┤≥╙í╞≡╩╝╬╗╓├ BC2 /*
  77. BGM=TRIM(BGM)
  78. BC2=INT((SNUM2-LEN(BGM)*2)/4)
  79. HN='⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ'
  80. HN=HN+HN+HN+HN
  81. IF LEN(BGM)/2=INT(LEN(BGM)/2)
  82. LGM=LEN(BGM)
  83. ELSE
  84. LGM=LEN(BGM)+1
  85. ENDIF
  86. BGM1=SUBSTR(HN,1,LGM+4)
  87. */ ╔·│╔┤≥╙í╕±╩╜▒Σ┴┐ X[1,N1] /*
  88. CLOS DATA
  89. SELE 10
  90. USE IDX INDE IDX
  91. CLEAR
  92. I=1
  93. DO WHILE M->I<=FNA(6)
  94. QH=SUBS('ABCDEFGHIJ',M->I,1)
  95. SELE &QH
  96. FN=FNA((M->I-1)*3+8)
  97. USE &FN
  98. IF M->I=1
  99. SET INDE TO &NDX
  100. SET FILT TO &EXP
  101. ELSE
  102. IDXEXP=TRIM(FNA((M->I-2)*3+10))
  103. IF LEN(M->IDXEXP)<>0
  104. SELE 10
  105. LOCA FOR F_NO=FNOA(I).AND.IDX_EXP=IDXEXP
  106. IF .NOT.EOF()
  107. NDX1=TRIM(IDX_NAME)
  108. SELE &QH
  109. SET INDE TO &NDX1
  110. ELSE
  111. NDX0(I)=SYS(3)
  112. NDX1=NDX0(I)
  113. SELE &QH
  114. INDE ON &IDXEXP TO &NDX1
  115. ENDIF
  116. ELSE
  117. IDXEXP='RECNO()'
  118. ENDIF
  119. QH0=SUBS('ABCDEFGHIJ',FNA((M->I-2)*3+9),1)
  120. SELE &QH0
  121. SET RELA TO &IDXEXP INTO &QH ADDI
  122. ENDIF
  123. I=M->I+1
  124. ENDDO
  125. SELE 10
  126. USE DBD
  127. SELE 9
  128. USE BBTK
  129. SET FILT TO B_NO=BNO
  130. GO TOP
  131. N1=1
  132. *N2=1
  133. X1="'⌐º'"
  134. X='X1'
  135. LJ='⌐º'
  136. LJBZ=0
  137. HJBZ=0
  138. DO WHILE .NOT.EOF()
  139. IF SUM='1'
  140. FD=TRIM(FIELD_NAME)
  141. SELE 1
  142. SUM &FD TO LJ1 FOR &EXP
  143. SELE 9
  144. LJBZ=1
  145. LJ=LJ+IIF(LJ1=0,SPACE(FIELD_LEN),STR(LJ1,FIELD_LEN,FIELD_DEC))+'⌐ª'
  146. ELSE
  147. IF HJBZ=0.AND.FIELD_TYPE='C'.AND.FIELD_LEN>=4
  148. LJ=LJ+SPACE(INT((FIELD_LEN-4)/3))+'╫▄'+SPACE(FIELD_LEN-4-INT((FIELD_LEN-4)/3)*2)+'╝╞'+SPACE(INT((FIELD_LEN-4)/3))+'⌐ª'
  149. HJBZ=1
  150. ELSE
  151. LJ=LJ+SPACE(FIELD_LEN)+'⌐ª'
  152. ENDIF
  153. ENDIF
  154. RN=TRIM(FIELD_NAME)
  155. RLEN=FIELD_LEN
  156. SELE 10
  157. LOCA FOR TRIM(FIELD_NAME)=SUBS(RN,4).AND.F_NO=FNOA(AT(SUBS(RN,1,1),'ABCDEFGHIJ'))
  158. REN=FIELD_LEN
  159. ** DAI MA ZHUAN HUAN DA YIN!!
  160. IF CODE='1'
  161. REN=LEN
  162. ENDIF
  163. ** END DAI MA
  164. EY=IIF(RLEN<=REN,0,IIF(REN=0,0,RLEN-REN))
  165. EY1=STR(INT(EY/2),2)
  166. EY2=STR(EY-&EY1,2)
  167. IF BBTK->FIELD_TYPE='N'
  168. RL1=BBTK->FIELD_DEC
  169. &X=&X+'+IIF(&RN.=0,SPACE('+STR(RLEN,2)+'),SPACE(&EY1)+STR('+RN+','+STR(IIF(REN=0,RLEN,REN),2)+','+STR(RL1,1)+')+SPACE(&EY2))'
  170. ELSE
  171. IF BBTK->FIELD_TYPE='D'
  172. RN='DTOC(&RN)'
  173. ELSE
  174. IF BBTK->FIELD_TYPE='L'
  175. RN='IIF(&RN,"T","F")'
  176. ENDIF
  177. ENDIF
  178. IF CODE='1'
  179. NT=TRIM(NOTE)
  180. LL=STR(LEN,2)
  181. RN='SUBS("&NT.",AT(&RN.,"&NT")+2,&LL.)'
  182. ENDIF
  183. &X=&X+'+SPACE(&EY1.)+'+RN+'+SPACE(&EY2.)'
  184. ENDIF
  185. SELE 9
  186. SKIP
  187. IF EOF()
  188. &X=&X+"+'⌐º'"
  189. ELSE
  190. &X=&X+"+'⌐ª'"
  191. ENDIF
  192. N1=N1+1
  193. X='X'+STR(N1,IIF(N1>9,2,1))
  194. &X=""
  195. ENDDO
  196. N1=N1-1
  197. LJ=SUBS(LJ,1,LEN(LJ)-2)+'⌐º'
  198. */ ┐¬╩╝┤≥╙í /*
  199. SELE 1
  200. COUNT TO RECNUM
  201. SELE 10
  202. IF LJBZ<>0
  203. RECNUM=RECNUM+1
  204. ENDIF
  205. PS=1
  206. BBMC=TRIM(FN)+'_'+STR(BNO,IIF(BNO>9,2,1))
  207. IF LEN(BBMC)<8
  208. BBMC=BBMC+SPACE(8-LEN(BBMC))
  209. ENDIF
  210. LINE=1
  211. CLEAR
  212. UD=1
  213. HJJ=-2
  214. YH='1'
  215. @ 2,4 TO 9,75 DOUB
  216. @ 1,6 SAY "╩Σ│÷╠⌡╝■╬¬:&EXP."
  217. @ 3,6 SAY '▒Ω╠Γ╫╓╨═:' GET MBTZX PICT '!' VALID MBTZX$'ABCD'
  218. @ 3,COL()+1 SAY '▒φ╠σ╫╓╨═:' GET MBSZX PICT '!' VALID MBTZX$'ABCD'
  219. @ 3,COL()+1 SAY '╨╨╝Σ╛α:[-4,2]:' GET HJJ PICT '99' RANG -4,2
  220. @ 3,COL()+1 SAY '╥│║┼:[1..╥¬ 2..▓╗╥¬]:' GET YH PICT '9' VALID YH$'12'
  221. @ 4,6 SAY '┬·╫π╠⌡╝■╡─╝╟┬╝╩²╬¬['+STR(RECNUM,4)+' ]! ╟δ╩Σ╚δ├┐╥│╘╩╨φ┤≥╙í╡─╝╟┬╝╩²:' GET RECNUM RANG 1,RECNUM
  222. @ 5,6 SAY '  ▒φ║ß╕⌠╧▀╤í╘±:[ 1..┤≥╩╡╧▀ 2..┤≥┐╒╧▀   3..▓╗┤≥╙í    ]:' GET LINE RANG 1,3
  223. @ 6,6 SAY '  ╫▄╝╞╠⌡─┐╬╗╓├:[ 1..╡┌╥╗╠⌡ 2..╫ε║≤╥╗╠⌡ 3..▓╗┤≥╙í    ]:' GET UD RANG 1,3
  224. @ 7,6 SAY '      ┤ª└φ╖╜╩╜:[ 1..┤≥╙í   2..▒ú┤µ     3..┤≥╙í▓ó▒ú┤µ]:' GET PS RANG 1,3
  225. @ 8,6 SAY '           ╚⌠╥¬▒ú┤µ,╘≥╨Φ╩Σ╚δ▒¿▒φ╬─╝■├√:[&BBMC..TXT]:' GET BBMC
  226. READ
  227. CLEAR
  228. @ 3,20 TO 8,50 DOUB
  229. SYM4=IIF(LINE=2,SYM4,SYM2)
  230. IF PS<>2
  231. IF SYS(13)<>'READY'
  232. @ 5,25 SAY '╟δ╫╝▒╕║├┤≥╙í╗·......'
  233. ?? CHR(7)+CHR(7)
  234. ENDIF
  235. DO WHILE SYS(13)<>'READY'
  236. ENDDO
  237. @ 5,25 SAY '┐¬╩╝┤≥╙í......      '
  238. SET PRINT ON
  239. ENDIF
  240. IF PS<>1
  241. @ 6,25 SAY '┐¬╩╝▒ú┤µ......      '
  242. IF FILE('&BBMC..TXT')
  243. ERAS &BBMC..TXT
  244. ENDIF
  245. SET ALTE TO &BBMC
  246. SET ALTE ON
  247. ENDIF
  248. SET CONS OFF
  249. DO WHILE KL>0
  250. GO TOP
  251. I=0
  252. PAGE=1
  253. SU=0
  254. BC=0
  255. */ ┤≥╙í▒φ═╖╙δ├╝╫ó /*
  256. DO RPTMZPT
  257. ? SPACE(BC)+SYM2
  258. IF UD=1.AND.LJBZ<>0
  259. I=1
  260. ? SPACE(BC)+LJ
  261. SU=SU+1
  262. IF LINE<>3
  263. ? SPACE(BC)+SYM4
  264. ENDIF
  265. ENDIF
  266. */ ┤≥╙í▒φ╠σ /*
  267. SELE 1
  268. GO TOP
  269. DO WHILE .NOT.EOF( )
  270. SELE 10
  271. N2=2
  272. SSM=&X1
  273. Y2='*'
  274. DO WHILE N2<=N1
  275. X='X'+STR(N2,IIF(N2>9,2,1))
  276. Y1=&X
  277. Y1=&Y1
  278. IF LEN(SSM)<100
  279. SSM=SSM+Y1
  280. ELSE
  281. IF TRIM(Y2)='*'
  282. Y2=Y1
  283. ELSE
  284. Y2=Y2+Y1
  285. ENDIF
  286. ENDIF
  287. N2=N2+1
  288. ENDDO
  289. IF TRIM(Y2)='*'
  290. Y2=' '
  291. ENDIF
  292. ? SPACE(BC)+SSM+Y2
  293. I=I+1
  294. SU=SU+1
  295. SELE 1
  296. SKIP
  297. IF M->SU>=M->RECNUM .AND. .NOT. EOF()
  298. SELE 10
  299. */ ╖╓╥│┤ª└φ /*
  300. ? SPACE(BC)+SYM3
  301. DO RPTWZPT
  302. IF YH='1'
  303. ? SPACE(BC)+SPACE(SNUM2-9)+'╡┌ '+STR(PAGE,2)+' ╥│'
  304. PAGE=PAGE+1
  305. ENDIF
  306. IF SYS(13)='READY'
  307. ? CHR(2)
  308. ENDIF
  309. SU=0
  310. BC=1
  311. DO RPTMZPT
  312. ? SPACE(BC)+SYM2
  313. ELSE
  314. SELE 1
  315. IF .NOT.EOF( )
  316. SELE 10
  317. IF LINE<>3
  318. ? SPACE(BC)+SYM4
  319. ENDIF
  320. ELSE
  321. SELE 10
  322. IF UD=2.AND.LJBZ<>0
  323. IF LINE<>3
  324. ? SPACE(BC)+SYM4
  325. ENDIF
  326. ? SPACE(BC)+LJ
  327. SU=SU+1
  328. ENDIF
  329. ? SPACE(BC)+SYM3
  330. DO RPTWZPT
  331. IF YH='1'
  332. ? SPACE(BC+SNUM2-9)+'╡┌ '+STR(PAGE,2)+' ╥│'
  333. ENDIF
  334. ENDIF
  335. ENDIF
  336. SELE 1
  337. ENDDO
  338. IF SYS(13)='READY'
  339. ? CHR(2)
  340. ENDIF
  341. SELE 10
  342. KL=KL-1
  343. ENDDO
  344. SET PRINT OFF
  345. CLOS DATA
  346. I=2
  347. DO WHILE I<=FNA(6)
  348. IF LEN(NDX0(I))<>1
  349. NDX1=NDX0(I)
  350. ERAS &NDX1..IDX
  351. ENDIF
  352. I=I+1
  353. ENDDO
  354. SET CONS ON
  355. SET ALTE TO
  356. ?? CHR(7)+CHR(7)
  357. @ 5,25 SAY '┤ª└φ═Ω▒╧!!!              '
  358. @ 6,25 SAY SPACE(20)
  359. A=INKEY(5)
  360. RETU
  361. ***** END OF RPTSPM.PRG *****
  362.  
  363.