FZBSR.PRG
上传用户:xue7720
上传日期:2013-01-31
资源大小:1240k
文件大小:9k
源码类别:

行业应用

开发平台:

VFP

  1. *负债表汇总输入
  2. *define WINDOW   output FROM 0,0 TO 25,79 
  3. *ACTIVATE WINDOW output
  4. hide popup pop2
  5. hide popup pop2_1
  6. hide menu mainmenu
  7. set clock to 0,69 
  8. deactivate window win
  9. on key 
  10. set sysmenu off
  11. set colo to w/n
  12. clea
  13. p=1
  14. ********
  15. if file(wj)
  16.    use &wj
  17.   else
  18.    ! copy jqbbfzb.dbf &wj >nul
  19.     use &wj
  20. endif
  21. set colo to 6/
  22. @ 1,0 say '广西盐业公司'
  23. @ 1,67 say 'JQ财务系统'
  24. set colo to 2/
  25. ** 作为通用子程序时,下面应为@ 0,25 say &hh=' 科目汇总表等'
  26. @ 0,25 say '资  产  负  债  表'
  27. @ 2,0 say '┏━━━━━━━━━━━━━━━━┯━┯━━━━━━━━━━┯━━━━━━━━┓'
  28. @ 3,0 say '┃'
  29. @ 3,5 say '        资         产 '
  30. @ 3,34 say '│'          
  31. @ 3,36 say '行'
  32. @ 3,38 say '│'
  33. @ 3,44 say '上  年   数'
  34. @ 3,60 say'│'
  35. set colo to 6+/
  36. @ 3,63 say ' 本  年   数'
  37. set colo to 2/
  38. @ 3,78 say '┃'
  39. *
  40. @ 4,0 say '┠────────────────┼─┼──────────┼────────┨'
  41. pd=4
  42. do whil pd<23
  43. i=pd+1
  44. @ i,0 say '┃'
  45. @ i,34 say '│'
  46. @ i,38 say '│'
  47. @ i,60 say'│'
  48. @ i,78 say '┃'
  49. pd=pd+1
  50. enddo
  51. @ 23,0 say '┗━━━━━━━━━━━━━━━━┷━┷━━━━━━━━━━┷━━━━━━━━┛'
  52. set colo to 1/6
  53. @ 24,0 say '←左栏:→右栏:|←左页:右页→|:↑上笔:↓下笔:PgUp上页:PgDn 下页:Home计算:Esc退出'
  54. set colo to w/n
  55. ************
  56. go bott
  57. pd=recn()
  58. pd=pd/16
  59. pd1=int(pd)
  60. ys=pd-pd1
  61. if ys=0
  62.    ys=pd1
  63.   else
  64.   ys=pd1+1
  65. endif
  66. go top
  67. pd=1
  68. ys1=1
  69. do whil .t. 
  70. @ 4+pd,2 say zc
  71. @ 4+pd,36 say h1
  72. if ncs1<>0
  73. @ 4+pd,43 say ncs1 pict'999,999,999.99'
  74. endif
  75. if nms1<>0
  76. @ 4+pd,63 say nms1 pict'999,999,999.99'
  77. endif
  78. if .not. eof()
  79. skip
  80. pd=pd+1
  81. else 
  82. exit
  83. endif
  84. *pd=pd+1
  85. if pd=19
  86. exit
  87. endif
  88. enddo
  89. 1
  90. set colo to 2+/1
  91. @5,2 say zc
  92. @ 5,36 say h1
  93. if ncs1<>0
  94. @ 5,43 say ncs1 pict'999,999,999.99'
  95. else 
  96. @ 5,43 say '              '
  97. endif
  98. if nms1<>0
  99. @ 5,63 say nms1 pict'999,999,999.99'
  100. else
  101. @ 5,63 say '              '
  102. endif
  103. pd=1
  104. zc1='zc'
  105. h='h1'
  106. ncs='ncs1'
  107. nms='nms1'
  108. zy=1
  109. do whil .t.
  110. x=inkey(0)
  111. do case
  112. case x=4 
  113. zy=1
  114. *→
  115. set colo to 2/n
  116. if ys1=ys
  117. @ 3,44 say '   数    量  '
  118. else
  119. @ 3,44 say '上  年   数'
  120. endif
  121. set colo to 6+/
  122. if ys1=ys
  123. @ 3,63 say '   金    额 '
  124. else
  125. @ 3,63 say ' 本  年   数'
  126. endif
  127. case x=19
  128. *←
  129. set colo to 2
  130. if ys1=ys
  131. @ 3,63 say '   金    额 '
  132. else
  133. @ 3,63 say ' 本  年   数'
  134. endif
  135. set colo to 6+/
  136. if ys1=ys
  137. @ 3,44 say '   数    量 '
  138. else
  139. @ 3,44 say '上  年   数'
  140. endif
  141. zy=0
  142. ***************************************
  143. case x=46 .or. x=45 .or. x>47 .and. x<58
  144. a1=.00
  145. if pp1<>' ' .and. p=1 .or. p=2 .and. pp2<>' ' .or. eof() 
  146. ?? chr(7)
  147. loop
  148. endif
  149. keyb chr(x)
  150. if zy=1
  151. set colo to /w
  152. @ 4+pd,62 say '           '
  153. @ 4+pd,62 say '' get a1 pict'@bz 99999999999.99' 
  154. read
  155. repl &nms with a1 
  156. else
  157. @ 4+pd,43 say '' get a1 pict'@bz 99999999999.99'
  158. read
  159. repl &ncs with a1
  160. endif
  161. set colo to w/n
  162. xx=recn()
  163. pd2=pd
  164. *****************
  165. sele 3
  166. use fzbjs
  167. do jsgs
  168. sele 1
  169. *do fzbjs
  170. *****************
  171. if ys1=ys
  172. go (ys-1)*18+1
  173. else
  174. go (ys1)*18
  175.  skip -17
  176. endif
  177. pd=1
  178. set colo to w/n
  179. do whil .t. 
  180. if zy=0 .and. pp1='' .or. zy=1 .and. pp2=''
  181. if &ncs<>0
  182. @ 4+pd,43 say &ncs pict'999,999,999.99'
  183. else
  184. @ 4+pd,43 say '              '
  185. endif
  186. if &nms<>0
  187. @ 4+pd,63 say &nms pict'999,999,999.99'
  188. else
  189. @ 4+pd,63 say '              '
  190. endif
  191. endif
  192. if .not. eof()
  193. skip
  194. pd=pd+1
  195. else 
  196. exit
  197. endif
  198. if pd=19
  199. exit
  200. endif
  201. enddo
  202. go xx
  203. pd=pd2
  204. *****************
  205.  if pd=18 .or. eof()
  206.        ?? chr(7)
  207.      else
  208. set colo to w/n
  209. @ 4+pd,2 say &zc1
  210. @ 4+pd,36 say &h
  211. if &ncs<>0
  212. @ 4+pd,43 say &ncs pict'999,999,999.99'
  213. else
  214. @ 4+pd,42 say '               '
  215. endif
  216. if &nms<>0
  217. @ 4+pd,62 say '              '
  218. @ 4+pd,63 say &nms pict'999,999,999.99'
  219. else
  220. @ 4+pd,62 say '               '
  221. endif
  222. set colo to 2+/1
  223.       skip 
  224.      pd=pd+1
  225. @ 4+pd,2 say &zc1
  226. @ 4+pd,36 say &h
  227. if &ncs<>0
  228. @ 4+pd,43 say &ncs pict'999,999,999.99'
  229. else
  230. @ 4+pd,43 say '              '
  231. endif
  232. if &nms<>0
  233. @ 4+pd,63 say &nms pict'999,999,999.99'
  234. else
  235. @ 4+pd,63 say '              '
  236. endif
  237. endif
  238.   case x=5
  239.    if pd=1 .or. recn()=1
  240.      ?? chr(7)
  241.    else
  242. set colo to w/n
  243. @ 4+pd,2 say &zc1
  244. @ 4+pd,36 say &h
  245. if &ncs<>0
  246. @ 4+pd,43 say &ncs pict'999,999,999.99'
  247. else
  248. @ 4+pd,43 say '              ' 
  249. endif
  250. if &nms<>0
  251. @ 4+pd,62 say '               '
  252. @ 4+pd,63 say &nms pict'999,999,999.99'
  253. else
  254. @ 4+pd,63 say '              '
  255. endif
  256. set colo to 2+/1
  257.    skip -1
  258.    pd=pd-1
  259. @ 4+pd,2 say &zc1
  260. @ 4+pd,36 say &h
  261. if &ncs<>0
  262. @ 4+pd,43 say &ncs pict'999,999,999.99'
  263. else
  264. @ 4+pd,43 say '              '
  265. endif
  266. if &nms<>0
  267. @ 4+pd,63 say &nms pict'999,999,999.99'
  268. else
  269. @ 4+pd,63 say '              '
  270. endif
  271. endif
  272. case x=24 .or. x=13
  273.       if pd=18 .or. eof()
  274.        ?? chr(7)
  275.      else
  276. set colo to w/n
  277. @ 4+pd,2 say &zc1
  278. @ 4+pd,36 say &h
  279. if &ncs<>0
  280. @ 4+pd,43 say &ncs pict'999,999,999.99'
  281. else
  282. @ 4+pd,43 say '              '
  283. endif
  284. if &nms<>0
  285. @ 4+pd,62 say '              '
  286. @ 4+pd,63 say &nms pict'999,999,999.99'
  287. else
  288. @ 4+pd,63 say '              '
  289. endif
  290. set colo to 2+/1
  291.       skip 
  292.      pd=pd+1
  293. @ 4+pd,2 say &zc1
  294. @ 4+pd,36 say &h
  295. if &ncs<>0
  296. @ 4+pd,43 say &ncs pict'999,999,999.99'
  297. else
  298. @ 4+pd,43 say '              '
  299. endif
  300. if &nms<>0
  301. @ 4+pd,63 say &nms pict'999,999,999.99'
  302. else
  303. @ 4+pd,63 say '              '
  304. endif
  305. endif
  306. ****上页
  307. case x=18
  308. if ys1>1
  309. ys1=ys1-1
  310. go ys1*18
  311.  skip -17
  312. pd=1
  313. if zy=1
  314. set colo to 2
  315. @ 3,44 say '上  年   数 '
  316. set colo to 6+/
  317. @ 3,63 say ' 本  年   数 '
  318. else
  319. set colo to 6+/
  320. @ 3,44 say '上  年   数'
  321. set colo to 2/
  322. @ 3,63 say ' 本  年   数'
  323. endif
  324. set colo to w/n
  325. @ 5,2 clea to 22,33
  326. @ 5,36 clea to 22,37
  327. @ 5,40 clea to 22,58
  328. @ 5,62 clea to 22,77
  329. do whil .t. 
  330. @ 4+pd,2 say &zc1
  331. @ 4+pd,36 say &h
  332. if &ncs<>0
  333. @ 4+pd,43 say &ncs pict'999,999,999.99'
  334. else
  335. @ 4+pd,43 say '              '
  336. endif
  337. if &nms<>0
  338. @ 4+pd,63 say &nms pict'999,999,999.99'
  339. else
  340. @ 4+pd,63 say '              '
  341. endif
  342. if .not. eof()
  343. skip
  344. pd=pd+1
  345. else 
  346. exit
  347. endif
  348. if pd=19
  349. exit
  350. endif
  351. enddo
  352. skip -18
  353. set colo to 2+/1
  354. @ 5,2 say &zc1
  355. @ 5,36 say &h
  356. if &ncs<>0
  357. @ 5,43 say &ncs pict'999,999,999.99'
  358. else
  359. @ 5,43 say '              '
  360. endif
  361. if &nms<>0
  362. @ 5,63 say &nms pict'999,999,999.99'
  363. else 
  364. @ 5,63 say '              '
  365. endif
  366. pd=1
  367. else
  368. ?? chr(7)
  369. endif
  370. ***下页
  371. case x=3
  372. if ys1=ys-1
  373.   if zy=1
  374.  set colo to 2
  375.  @ 3,44 say '   数    量  '
  376.   set colo to 6+/
  377.  @ 3,63 say '   金    额  '
  378. else
  379.  set colo to 6+/
  380.   @ 3,44 say '  数     量 '
  381.   set colo to 2
  382.   @ 3,63 say '    金    额 '
  383. endif
  384. endif 
  385. set colo to  w/n
  386. if ys1<ys
  387.   ys1=ys1+1
  388.   go (ys1-1)*18+1
  389.   x=recn()
  390. pd=1
  391. set colo to w/n
  392. @ 5,2 clea to 22,33
  393. @ 5,36 clea to 22,37
  394. @ 5,40 clea to 22,58
  395. @ 5,62 clea to 22,77
  396. do whil .t. 
  397. @ 4+pd,2 say &zc1
  398. @ 4+pd,36 say &h
  399. if &ncs<>0
  400. @ 4+pd,43 say &ncs pict'999,999,999.99'
  401. endif
  402. if &nms<>0
  403. @ 4+pd,63 say &nms pict'999,999,999.99'
  404. endif
  405. if .not. eof()
  406. skip
  407. pd=pd+1
  408. else 
  409. exit
  410. endif
  411. *pd=pd+1
  412. if pd=19
  413. exit
  414. endif
  415. enddo
  416. go x
  417. set colo to 2+/1
  418. @ 5,2 say &zc1
  419. @ 5,36 say &h
  420. if &ncs<>0
  421. @ 5,43 say &ncs pict'999,999,999.99'
  422. else
  423. @ 5,43 say '              '
  424. endif
  425. if &nms<>0
  426. @ 5,63 say &nms pict'999,999,999.99'
  427. else
  428. @ 5,63 say '              '
  429. endif
  430. pd=1
  431. else
  432. ?? chr(7)
  433. endif  
  434. ****左页
  435. case x=15
  436. if p=2
  437.  zc1='zc'
  438.  h='h1'
  439.  ncs='ncs1'
  440.  nms='nms1'
  441. set colo to w/n
  442.   go (ys1-1)*18+1
  443.   x=recn()
  444. pd=1
  445. set colo to 2
  446. @ 3,5 say  '       资       产        '
  447. set colo to w/n
  448. @ 5,2 clea to 22,33
  449. @ 5,36 clea to 22,37
  450. @ 5,40 clea to 22,58
  451. @ 5,62 clea to 22,77
  452. do whil .t. 
  453. @ 4+pd,2 say &zc1
  454. @ 4+pd,36 say &h
  455. if &ncs<>0
  456. @ 4+pd,43 say &ncs pict'999,999,999.99'
  457. endif
  458. if &nms<>0
  459. @ 4+pd,63 say &nms pict'999,999,999.99'
  460. endif
  461. if .not. eof()
  462. skip
  463. pd=pd+1
  464. else 
  465. exit
  466. endif
  467. *pd=pd+1
  468. if pd=19
  469. exit
  470. endif
  471. enddo
  472. go x
  473. set colo to 2+/1
  474. @ 5,2 say &zc1
  475. @ 5,36 say &h
  476. if &ncs<>0
  477. @ 5,43 say &ncs pict'999,999,999.99'
  478. else
  479. @ 5,43 say '              '
  480. endif
  481. if &nms<>0
  482. @ 5,63 say &nms pict'999,999,999.99'
  483. else
  484. @ 5,63 say '              '
  485. endif
  486. pd=1
  487. p=1
  488. else
  489. ?? chr(7)
  490. endif
  491. ****右页
  492. case x=9
  493. if p=1
  494. set colo to  w/n
  495.   go (ys1-1)*18+1
  496.   x=recn()
  497. pd=1
  498. zc1='fz'
  499. h='h2'
  500. ncs='ncs2'
  501. nms='nms2'
  502. set colo to 2
  503. @ 3,5 say '  负债及所有者权益   '
  504. set colo to w/n
  505. @ 5,2 clea to 22,33
  506. @ 5,36 clea to 22,37
  507. @ 5,40 clea to 22,58
  508. @ 5,62 clea to 22,77
  509. do whil .t. 
  510. @ 4+pd,2 say &zc1
  511. @ 4+pd,36 say &h
  512. if &ncs<>0
  513. @ 4+pd,43 say &ncs pict'999,999,999.99'
  514. endif
  515. if &nms<>0
  516. @ 4+pd,63 say &nms pict'999,999,999.99'
  517. endif
  518. if .not. eof()
  519. skip
  520. pd=pd+1
  521. else 
  522. exit
  523. endif
  524. *pd=pd+1
  525. if pd=19
  526. exit
  527. endif
  528. enddo
  529. go x
  530. set colo to 2+/1
  531. @ 5,2 say &zc1
  532. @ 5,36 say &h
  533. if &ncs<>0
  534. @ 5,43 say &ncs pict'999,999,999.99'
  535. else
  536. @ 5,43 say '              '
  537. endif
  538. if &nms<>0
  539. @ 5,63 say &nms pict'999,999,999.99'
  540. else
  541. @ 5,63 say '              '
  542. endif
  543. pd=1
  544. p=2
  545. else
  546. ?? chr(7)
  547. endif  
  548. case x=27
  549. exit
  550. othe
  551. ?? chr(7)
  552. endcase
  553. enddo
  554. clos data
  555. set colo to w+/1
  556. *set colo of scheme 3 to w+/1
  557. @ 0,0,23,79 box '北北北北' colo scheme 3
  558. set colo to w+/n
  559. @ 1,1,22,78 box '鞍鞍鞍鞍鞍' colo scheme 1
  560. @ 23,28 say "当前数据的月份:"+str(Ryear,4,0)+"年"+str(Ryf,2,0)+"月" colo 1+/3
  561. @ 24,0 say ' JQ001汇总报表系统(Ver1.0)  黄朝生研制  版权所有  南宁市建政路51号  邮编:530023 ' colo 4/w  
  562. set clock to 23,69
  563. on key label Escape do Rquit
  564. retu