GZBXG.PRG
上传用户:zhanyi0618
上传日期:2013-01-31
资源大小:1118k
文件大小:24k
源码类别:

企业管理

开发平台:

VFP

  1. ***************************
  2. * .GZBXG.PRG
  3. ***************************
  4. X = GZBWJ+'.dbf'
  5. Y = GZBWJ+'.%%%'
  6. ! copy gzb&x gzb&y >nul
  7. use &gzbwj
  8. set color to
  9. clear 
  10. P = 1
  11. set color to gr/n
  12. @ 0 , 0 say '挚 诚 奉 献 !'
  13. @ 0 , 67 say 'JQ系列软件'
  14. set color to g/n
  15. @ 0 , 30 say '工资表数据修改'
  16. @ 1 , 0 say '==============================================================================='
  17. ? '   '
  18. ? '==============================================================================='
  19. @ 23 , 0 say '==============================================================================='
  20. set color to b/gr
  21. @ 24 , 0 say 'F1帮助:F2删除列:F3增加列:F4帐号F5姓名:F6增加:F8删除:F9列拷贝:F10排序:^End列清零;
  22.  '
  23. set color to
  24. ZDS = fcount()
  25. PD = 1
  26. YFGZ = 0
  27. SFGZ = 0
  28. do while PD<=ZDS
  29.   if field(PD)='应发工资'
  30.     YFGZ = PD
  31.   endif 
  32.   if field(PD)='实发工资'
  33.     SFGZ = PD
  34.   endif 
  35.   PD = PD+1
  36. enddo 
  37. if YFGZ=0
  38.   @ 10 , 30 say '“应发工资”项目没找到!'
  39.   I = inkey(0)
  40.   return 
  41. endif 
  42. if SFGZ=0
  43.   @ 11 , 30 say '“实发工资”项目没找到!'
  44.   I = inkey(0)
  45.   return 
  46. endif 
  47. go bottom
  48. PD = recno()
  49. JLS = PD
  50. PD = PD/19
  51. PD1 = int(PD)
  52. YS = PD-PD1
  53. if YS=0
  54.   YS = PD1
  55. else 
  56.   YS = PD1+1
  57. endif 
  58. go top
  59. YC = 1
  60. BS = 0
  61. YS1 = 1
  62. @ 2 , 0 say '编号'
  63. @ 2 , 6 say '姓名'
  64. do while .t.
  65.   LC = 0
  66.   JSQ = 4
  67.   P = 1
  68.   if YFGZ>7
  69.     PD1 = 7
  70.   else 
  71.     PD1 = YFGZ-1
  72.     P = 0
  73.   endif 
  74.   ZD1 = 4
  75.   ZD2 = PD1
  76.   do while JSQ<=PD1
  77.     FIELD = field(JSQ)
  78.     @ 2 , 20+LC say field(JSQ)
  79.     @ 4+bs,20+lc say &field  
  80.     JSQ = JSQ+1
  81.     LC = LC+12
  82.   enddo 
  83.   @ 4+BS , 0 say 编号
  84.   @ 4+BS , 6 say 姓名
  85.   if  not eof()
  86.     skip 
  87.     BS = BS+1
  88.   else 
  89.     exit 
  90.   endif 
  91.   if BS=19
  92.     exit 
  93.   endif 
  94. enddo 
  95. READZD = ZD1
  96. READLC = 0
  97. go top
  98. set color to n/w
  99. BS = 0
  100. LC = 0
  101. JSQ = 4
  102. if YFGZ>7
  103.   PD1 = 7
  104. else 
  105.   PD1 = YFGZ-1
  106. endif 
  107. do while JSQ<=PD1
  108.   FIELD = field(JSQ)
  109.   @ 4+bs,20+lc say &field  
  110.   JSQ = JSQ+1
  111.   LC = LC+12
  112. enddo 
  113. @ 4+BS , 0 say 编号
  114. @ 4+BS , 6 say 姓名
  115. PD = 0
  116. ZY = 0
  117. set color to gr+/bg
  118. DATA = field(READZD)
  119. @ 4+bs,20+readlc say &data
  120. do while .t.
  121.   X = inkey(0)
  122.   do case
  123.   case X=23
  124.     set color to
  125.     if  not eof()
  126.       REN = recno()
  127.       DATA = field(READZD)
  128.       repl all &data with 0
  129.       ZDS = fcount()
  130.       PD = 1
  131.       YFGZ = 0
  132.       SFGZ = 0
  133.       do while PD<=ZDS
  134.         if field(PD)='应发工资'
  135.           YFGZ = PD
  136.         endif 
  137.         if field(PD)='实发工资'
  138.           SFGZ = PD
  139.         endif 
  140.         PD = PD+1
  141.       enddo 
  142.       if YFGZ=0
  143.         @ 10 , 30 say '“应发工资”项目没找到!'
  144.         I = inkey(0)
  145.         return 
  146.       endif 
  147.       if SFGZ=0
  148.         @ 11 , 30 say '“实发工资”项目没找到!'
  149.         I = inkey(0)
  150.         return 
  151.       endif 
  152.       go top
  153.       do while  not eof()
  154.         PD = 5
  155.         JSQ = 0
  156.         do while PD<YFGZ
  157.           PD1 = field(PD)
  158.           jsq=jsq+&pd1 
  159.           PD = PD+1
  160.         enddo 
  161.         PD1 = field(YFGZ)
  162.         repl &pd1 with jsq
  163.         PD = YFGZ+1
  164.         do while PD<SFGZ
  165.           PD1 = field(PD)
  166.           jsq=jsq-&pd1
  167.           PD = PD+1
  168.         enddo 
  169.         PD1 = field(SFGZ)
  170.         repl &pd1 with jsq
  171.         skip 
  172.       enddo 
  173.       @ 4 , READLC+20 clear to 22 , READLC+31
  174.       set color to gr+/bg
  175.       @ 4+bs,readlc+20 say &data 
  176.       go REN
  177.     else 
  178.       ?? chr(7)
  179.     endif 
  180.   case X=28
  181.     save screen to PM
  182.     clear 
  183.     @ 0 , 0 say '帮助信息                  黄朝生研制                   ;
  184.      JQ001工资表系统'
  185.     ? '┏━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━┓'
  186.     ? '┃F1        启用帮助信息              │ F9      列间数据拷贝    ;
  187.            ┃'
  188.     ? '┃F4        修改帐号                  │ F2      删除光标所在列  ;
  189.            ┃'
  190.     ? '┃F5        修改姓名、编号            │ F3      在光标所在列前增加一列;
  191.      ┃'
  192.     ? '┃F6        增加一人                  │                         ;
  193.            ┃'
  194.     ? '┃F8        删除一人                  │                         ;
  195.            ┃'
  196.     ? '┃F10       依据编号排序              │                         ;
  197.            ┃'
  198.     ? '┃←        左移                      │                         ;
  199.            ┃'
  200.     ? '┃↑        上移                      │                         ;
  201.            ┃'
  202.     ? '┃→        右移                      │                         ;
  203.            ┃'
  204.     ? '┃↓        下移                      │                         ;
  205.            ┃'
  206.     ? '┃|←       左屏  Shift+Tab           │                         ;
  207.            ┃'
  208.     ? '┃→|       右屏   Tab                │                         ;
  209.            ┃'
  210.     ? '┃PaGeUp    上页                      │                         ;
  211.            ┃'
  212.     ? '┃PaGeDoWn  下页                      │                         ;
  213.            ┃'
  214.     ? '┃ESC       退出                      │                         ;
  215.            ┃'
  216.     ? '┃+         本项累加                  │                         ;
  217.            ┃'
  218.     ? '┃-         本项累减                  │                         ;
  219.            ┃'
  220.     ? '┃*         本项乘以一数              │                         ;
  221.            ┃'
  222.     ? '┃/         本项除以一数              │                         ;
  223.            ┃'
  224.     ? '┃^END      列清零    Ctrl+END        │ JQ工资表系统 for foxpro.dos;
  225.  增强版 ┃'
  226.     ? '┗━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━┛'
  227.     ? 'JQ系列软件     联系地址:广西南宁市建政路51号    黄朝生    邮政编码:530023;
  228.  '
  229.     ? '      按任意键退出 ... ... '
  230.     I = inkey(0)
  231.     restore screen from PM
  232.   case X=-9
  233.     erase gzb.%%%
  234.     sort on 编号 to gzb.%%%
  235.     use 
  236.     X = GZBWJ+'.dbf'
  237.     eras &x
  238.     rena gzb.%%% to &x  
  239.     use &gzbwj
  240.     set color to
  241.     ZDS = fcount()
  242.     PD = 1
  243.     YFGZ = 0
  244.     SFGZ = 0
  245.     do while PD<=ZDS
  246.       if field(PD)='应发工资'
  247.         YFGZ = PD
  248.       endif 
  249.       if field(PD)='实发工资'
  250.         SFGZ = PD
  251.       endif 
  252.       PD = PD+1
  253.     enddo 
  254.     if YFGZ=0
  255.       @ 10 , 30 say '“应发工资”项目没找到!'
  256.       I = inkey(0)
  257.       return 
  258.     endif 
  259.     if SFGZ=0
  260.       @ 11 , 30 say '“实发工资”项目没找到!'
  261.       I = inkey(0)
  262.       return 
  263.     endif 
  264.     go bottom
  265.     PD = recno()
  266.     JLS = PD
  267.     PD = PD/19
  268.     PD1 = int(PD)
  269.     YS = PD-PD1
  270.     if YS=0
  271.       YS = PD1
  272.     else 
  273.       YS = PD1+1
  274.     endif 
  275.     go top
  276.     YC = 1
  277.     BS = 0
  278.     YS1 = 1
  279.     @ 2 , 0 say '编号'
  280.     @ 2 , 6 say '姓名'
  281.     do while .t.
  282.       LC = 0
  283.       JSQ = 4
  284.       P = 1
  285.       if YFGZ>7
  286.         PD1 = 7
  287.       else 
  288.         PD1 = YFGZ-1
  289.         P = 0
  290.       endif 
  291.       ZD1 = 4
  292.       ZD2 = PD1
  293.       do while JSQ<=PD1
  294.         FIELD = field(JSQ)
  295.         @ 2 , 20+LC say field(JSQ)
  296.         @ 4+bs,20+lc say &field  
  297.         JSQ = JSQ+1
  298.         LC = LC+12
  299.       enddo 
  300.       @ 4+BS , 0 say 编号
  301.       @ 4+BS , 6 say 姓名
  302.       if  not eof()
  303.         skip 
  304.         BS = BS+1
  305.       else 
  306.         exit 
  307.       endif 
  308.       if BS=19
  309.         exit 
  310.       endif 
  311.     enddo 
  312.     READZD = ZD1
  313.     READLC = 0
  314.     go top
  315.     set color to n/w
  316.     BS = 0
  317.     LC = 0
  318.     JSQ = 4
  319.     if YFGZ>7
  320.       PD1 = 7
  321.     else 
  322.       PD1 = YFGZ-1
  323.     endif 
  324.     do while JSQ<=PD1
  325.       FIELD = field(JSQ)
  326.       @ 4+bs,20+lc say &field  
  327.       JSQ = JSQ+1
  328.       LC = LC+12
  329.     enddo 
  330.     @ 4+BS , 0 say 编号
  331.     @ 4+BS , 6 say 姓名
  332.     PD = 0
  333.     ZY = 0
  334.     set color to gr+/bg
  335.     DATA = field(READZD)
  336.     @ 4+bs,20+readlc say &data
  337.   case X=4
  338.     if READZD<ZD2
  339.       set color to n/w
  340.       DATA = field(READZD)
  341.       @ 4+bs,20+readlc say &data
  342.       READZD = READZD+1
  343.       READLC = READLC+12
  344.       set color to gr+/bg
  345.       DATA = field(READZD)
  346.       @ 4+bs,20+readlc say &data 
  347.     else 
  348.       ?? chr(7)
  349.     endif 
  350.   case X=19
  351.     if READZD>ZD1
  352.       set color to n/w
  353.       DATA = field(READZD)
  354.       @ 4+bs,20+readlc say &data
  355.       set color to gr+/bg
  356.       READZD = READZD-1
  357.       READLC = READLC-12
  358.       DATA = field(READZD)
  359.       @ 4+bs,20+readlc say &data
  360.     else 
  361.       ?? chr(7)
  362.     endif 
  363.   case X=46 or X=45 or X=43 or X>47 and X<58
  364.     if  not eof() and field(READZD)<>'帐号'
  365.       if X<>45 and X<>43
  366.         keyboard chr(X)
  367.         @ 0 , 17 say '='
  368.       else 
  369.         if X=45
  370.           @ 0 , 17 say '-'
  371.         else 
  372.           @ 0 , 17 say '+'
  373.         endif 
  374.       endif 
  375.       DATA = field(READZD)
  376.       olddata=&data
  377.       repl &data with 0
  378.       @ 4+bs,20+readlc get &data
  379.       read 
  380.       @ 0 , 17 say '  '
  381.       if readkey()=268 or readkey()=12
  382.         repl &data with olddata
  383.       else 
  384.         if X=45
  385.           repl &data with olddata-&data
  386.         else 
  387.           if X=43
  388.             repl &data with olddata+&data
  389.           endif 
  390.         endif 
  391.       endif 
  392.       set color to
  393.       @ 4+BS , 20+READLC say '           '
  394.       PD = 5
  395.       JSQ = 0
  396.       do while PD<YFGZ
  397.         PD1 = field(PD)
  398.         jsq=jsq+&pd1 
  399.         PD = PD+1
  400.       enddo 
  401.       PD1 = field(YFGZ)
  402.       repl &pd1 with jsq
  403.       PD = YFGZ+1
  404.       do while PD<SFGZ
  405.         PD1 = field(PD)
  406.         jsq=jsq-&pd1
  407.         PD = PD+1
  408.       enddo 
  409.       PD1 = field(SFGZ)
  410.       repl &pd1 with jsq
  411.       LC = 0
  412.       if YFGZ>6
  413.         PD1 = 6
  414.       else 
  415.         PD1 = YFGZ-1
  416.       endif 
  417.       JSQ = ZD1
  418.       PD2 = ZD2
  419.       do while JSQ<=PD2
  420.         FIELD = field(JSQ)
  421.         @ 4+bs,20+lc say &field  
  422.         JSQ = JSQ+1
  423.         LC = LC+12
  424.       enddo 
  425.       @ 4+BS , 0 say 编号
  426.       @ 4+BS , 6 say 姓名
  427.       set color to n/w
  428.       if  not BS=18 and  not eof()
  429.       endif 
  430.       LC = 0
  431.       JSQ = ZD1
  432.       if YFGZ>6
  433.         PD1 = 6
  434.       else 
  435.         PD1 = YFGZ-1
  436.       endif 
  437.       do while JSQ<=PD2
  438.         FIELD = field(JSQ)
  439.         @ 4+bs,20+lc say &field  
  440.         JSQ = JSQ+1
  441.         LC = LC+12
  442.       enddo 
  443.       @ 4+BS , 0 say 编号
  444.       @ 4+BS , 6 say 姓名
  445.       set color to gr+/bg
  446.       DATA = field(READZD)
  447.       @ 4+bs,20+readlc say &data
  448.     else 
  449.       ?? chr(7)
  450.     endif 
  451.   case X=5
  452.     if BS=0 or recno()=1
  453.       ?? chr(7)
  454.     else 
  455.       set color to
  456.       LC = 0
  457.       JSQ = 4
  458.       if YFGZ>6
  459.         PD1 = 6
  460.       else 
  461.         PD1 = YFGZ-1
  462.       endif 
  463.       JSQ = ZD1
  464.       PD1 = ZD2
  465.       do while JSQ<=PD1
  466.         FIELD = field(JSQ)
  467.         @ 4+bs,20+lc say &field  
  468.         JSQ = JSQ+1
  469.         LC = LC+12
  470.       enddo 
  471.       @ 4+BS , 0 say 编号
  472.       @ 4+BS , 6 say 姓名
  473.       set color to n/w
  474.       skip -1
  475.       BS = BS-1
  476.       LC = 0
  477.       if YFGZ>6
  478.         PD1 = 6
  479.       else 
  480.         PD1 = YFGZ-1
  481.       endif 
  482.       JSQ = ZD1
  483.       PD1 = ZD2
  484.       do while JSQ<=PD1
  485.         FIELD = field(JSQ)
  486.         @ 4+bs,20+lc say &field  
  487.         JSQ = JSQ+1
  488.         LC = LC+12
  489.       enddo 
  490.       @ 4+BS , 0 say 编号
  491.       @ 4+BS , 6 say 姓名
  492.       set color to gr+/bg
  493.       DATA = field(READZD)
  494.       @ 4+bs,20+readlc say &data
  495.     endif 
  496.   case X=24 or X=13
  497.     if BS=18 or eof()
  498.       ?? chr(7)
  499.     else 
  500.       set color to
  501.       LC = 0
  502.       if YFGZ>6
  503.         PD1 = 6
  504.       else 
  505.         PD1 = YFGZ-1
  506.       endif 
  507.       JSQ = ZD1
  508.       PD2 = ZD2
  509.       do while JSQ<=PD2
  510.         FIELD = field(JSQ)
  511.         @ 4+bs,20+lc say &field  
  512.         JSQ = JSQ+1
  513.         LC = LC+12
  514.       enddo 
  515.       @ 4+BS , 0 say 编号
  516.       @ 4+BS , 6 say 姓名
  517.       set color to n/w
  518.       skip 
  519.       BS = BS+1
  520.       LC = 0
  521.       JSQ = ZD1
  522.       if YFGZ>6
  523.         PD1 = 6
  524.       else 
  525.         PD1 = YFGZ-1
  526.       endif 
  527.       do while JSQ<=PD2
  528.         FIELD = field(JSQ)
  529.         @ 4+bs,20+lc say &field  
  530.         JSQ = JSQ+1
  531.         LC = LC+12
  532.       enddo 
  533.       @ 4+BS , 0 say 编号
  534.       @ 4+BS , 6 say 姓名
  535.       set color to gr+/bg
  536.       DATA = field(READZD)
  537.       @ 4+bs,20+readlc say &data
  538.     endif 
  539.   case X=3
  540.     if YC<YS
  541.       go YC*19+1
  542.       YC = YC+1
  543.       X = recno()
  544.       set color to
  545.       BS = 0
  546.       @ 4 , 0 clear to 22 , 79
  547.       do while .t.
  548.         LC = 0
  549.         JSQ = ZD1
  550.         do while JSQ<=ZD2
  551.           FIELD = field(JSQ)
  552.           @ 2 , 20+LC say field(JSQ)
  553.           @ 4+bs,20+lc say &field  
  554.           JSQ = JSQ+1
  555.           LC = LC+12
  556.         enddo 
  557.         @ 4+BS , 0 say 编号
  558.         @ 4+BS , 6 say 姓名
  559.         if  not eof()
  560.           skip 
  561.           BS = BS+1
  562.         else 
  563.           exit 
  564.         endif 
  565.         if BS=19
  566.           exit 
  567.         endif 
  568.       enddo 
  569.       go X
  570.       set color to n/w
  571.       BS = 0
  572.       LC = 0
  573.       JSQ = ZD1
  574.       do while JSQ<=ZD2
  575.         FIELD = field(JSQ)
  576.         @ 4+bs,20+lc say &field  
  577.         JSQ = JSQ+1
  578.         LC = LC+12
  579.       enddo 
  580.       @ 4+BS , 0 say 编号
  581.       @ 4+BS , 6 say 姓名
  582.       set color to gr+/bg
  583.       DATA = field(READZD)
  584.       @ 4+bs,20+readlc say &data
  585.     else 
  586.       ?? chr(7)
  587.     endif 
  588.   case X=18
  589.     if YC>1
  590.       YC = YC-1
  591.       go YC*19
  592.       skip -18
  593.       X = recno()
  594.       set color to
  595.       BS = 0
  596.       @ 4 , 0 clear to 22 , 79
  597.       do while .t.
  598.         LC = 0
  599.         JSQ = ZD1
  600.         do while JSQ<=ZD2
  601.           FIELD = field(JSQ)
  602.           @ 2 , 20+LC say field(JSQ)
  603.           @ 4+bs,20+lc say &field  
  604.           JSQ = JSQ+1
  605.           LC = LC+12
  606.         enddo 
  607.         @ 4+BS , 0 say 编号
  608.         @ 4+BS , 6 say 姓名
  609.         if  not eof()
  610.           skip 
  611.           BS = BS+1
  612.         else 
  613.           exit 
  614.         endif 
  615.         if BS=19
  616.           exit 
  617.         endif 
  618.       enddo 
  619.       go X
  620.       set color to n/w
  621.       BS = 0
  622.       LC = 0
  623.       JSQ = ZD1
  624.       do while JSQ<=ZD2
  625.         FIELD = field(JSQ)
  626.         @ 4+bs,20+lc say &field  
  627.         JSQ = JSQ+1
  628.         LC = LC+12
  629.       enddo 
  630.       @ 4+BS , 0 say 编号
  631.       @ 4+BS , 6 say 姓名
  632.       set color to gr+/bg
  633.       DATA = field(READZD)
  634.       @ 4+bs,20+readlc say &data
  635.     else 
  636.       ?? chr(7)
  637.     endif 
  638.   case X=9
  639.     if  not bof() and  not eof()
  640.       RRECN = recno()
  641.       RBS = BS
  642.       if ZD2<SFGZ
  643.         go (YC-1)*19+1
  644.         X = recno()
  645.         set color to
  646.         @ 2 , 20 say space(60)
  647.         @ 4 , 15 clear to 22 , 79
  648.         BS = 0
  649.         JSQ1 = JSQ
  650.         ZD1 = ZD2+1
  651.         if SFGZ-ZD1>=4
  652.           ZD2 = ZD1+4
  653.         else 
  654.           ZD2 = SFGZ
  655.         endif 
  656.         do while .t.
  657.           JSQ = JSQ1
  658.           LC = 0
  659.           PD2 = ZD2
  660.           do while JSQ<=PD2
  661.             FIELD = field(JSQ)
  662.             @ 2 , 20+LC say field(JSQ)
  663.             @ 4+bs,20+lc say &field  
  664.             JSQ = JSQ+1
  665.             LC = LC+12
  666.           enddo 
  667.           @ 4+BS , 0 say 编号
  668.           @ 4+BS , 6 say 姓名
  669.           if  not eof()
  670.             skip 
  671.             BS = BS+1
  672.           else 
  673.             exit 
  674.           endif 
  675.           if BS=19
  676.             exit 
  677.           endif 
  678.         enddo 
  679.         go RRECN
  680.         READZD = ZD1
  681.         READLC = 0
  682.         set color to n/w
  683.         BS = RBS
  684.         LC = 0
  685.         JSQ = JSQ1
  686.         do while JSQ<=PD2
  687.           FIELD = field(JSQ)
  688.           @ 4+bs,20+lc say &field  
  689.           JSQ = JSQ+1
  690.           LC = LC+12
  691.         enddo 
  692.         @ 4+BS , 0 say 编号
  693.         @ 4+BS , 6 say 姓名
  694.         set color to gr+/bg
  695.         DATA = field(READZD)
  696.         @ 4+bs,20+readlc say &data
  697.       else 
  698.         ?? chr(7)
  699.       endif 
  700.     else 
  701.       ?? chr(7)
  702.     endif 
  703.   case X=15
  704.     if  not bof() and  not eof()
  705.       if ZD1>4
  706.         RRECN = recno()
  707.         RBS = BS
  708.         go (YC-1)*19+1
  709.         X = recno()
  710.         set color to
  711.         @ 2 , 20 say space(60)
  712.         @ 4 , 15 clear to 22 , 79
  713.         BS = 0
  714.         JSQ1 = JSQ
  715.         ZD2 = ZD1-1
  716.         ZD1 = ZD2-4
  717.         do while .t.
  718.           JSQ = ZD1
  719.           LC = 0
  720.           PD2 = ZD2
  721.           do while JSQ<=PD2
  722.             FIELD = field(JSQ)
  723.             @ 2 , 20+LC say field(JSQ)
  724.             @ 4+bs,20+lc say &field  
  725.             JSQ = JSQ+1
  726.             LC = LC+12
  727.           enddo 
  728.           @ 4+BS , 0 say 编号
  729.           @ 4+BS , 6 say 姓名
  730.           if  not eof()
  731.             skip 
  732.             BS = BS+1
  733.           else 
  734.             exit 
  735.           endif 
  736.           if BS=19
  737.             exit 
  738.           endif 
  739.         enddo 
  740.         go RRECN
  741.         READZD = ZD1
  742.         READLC = 0
  743.         set color to n/w
  744.         BS = RBS
  745.         LC = 0
  746.         JSQ = ZD1
  747.         do while JSQ<=PD2
  748.           FIELD = field(JSQ)
  749.           @ 4+bs,20+lc say &field  
  750.           JSQ = JSQ+1
  751.           LC = LC+12
  752.         enddo 
  753.         @ 4+BS , 0 say 编号
  754.         @ 4+BS , 6 say 姓名
  755.         set color to gr+/bg
  756.         DATA = field(READZD)
  757.         @ 4+bs,20+readlc say &data
  758.       else 
  759.         ?? chr(7)
  760.       endif 
  761.     endif 
  762.   case X=-3
  763.     if  not eof()
  764.       save screen to PM
  765.       set color to gr+/g
  766.       @ (4+BS-1) , 18 clear to (4+BS+1) , 33
  767.       @ (4+BS-1) , 22 say '修改帐号:'
  768.       set color to n/w , w+/bg
  769.       @ 4+BS , 20 get 帐号
  770.       read 
  771.       restore screen from PM
  772.       if READZD=3
  773.         set color to n/w
  774.         @ 4+BS , 20 say 帐号
  775.       endif 
  776.     else 
  777.       ?? chr(7)
  778.     endif 
  779.   case X=-4
  780.     if  not eof()
  781.       set color to n/w , w+/bg
  782.       @ 4+BS , 0 get 编号
  783.       @ 4+BS , 6 get 姓名
  784.       read 
  785.       set color to n/w
  786.       @ 4+BS , 0 say 编号
  787.       @ 4+BS , 6 say 姓名
  788.     else 
  789.       ?? chr(7)
  790.     endif 
  791.   case X=-5
  792.     save screen to PM
  793.     set color to n/bg
  794.     @ 5 , 18 clear to 11 , 43
  795.     set color to gr+/bg
  796.     @ 7 , 20 clear to 10 , 40
  797.     X1 = 7
  798.     X2 = 10
  799.     Y1 = 20
  800.     Y2 = 40
  801.     do box-1
  802.     X1 = 0
  803.     X2 = '        '
  804.     @ 6 , 26 say '增 加 一 人'
  805.     @ 8 , 24 say '编号:' get X1 picture '999'
  806.     @ 9 , 24 say '姓名:' get X2
  807.     read 
  808.     skip -BS
  809.     if  not eof()
  810.       X = recno()
  811.     else 
  812.       X = 9999999
  813.     endif 
  814.     locate all for 编号>X1
  815.     insert blank before
  816.     replace 编号 with X1 , 姓名 with X2
  817.     JLS = JLS+1
  818.     PD = JLS/19
  819.     PD1 = int(PD)
  820.     YS = PD-PD1
  821.     if YS=0
  822.       YS = PD1
  823.     else 
  824.       YS = PD1+1
  825.     endif 
  826.     if X<>9999999
  827.       go X
  828.     else 
  829.       go top
  830.     endif 
  831.     X = recno()
  832.     BS1 = BS
  833.     BS = 0
  834.     restore screen from PM
  835.     set color to
  836.     do while .t.
  837.       LC = 0
  838.       JSQ = ZD1
  839.       do while JSQ<=ZD2
  840.         FIELD = field(JSQ)
  841.         @ 2 , 20+LC say field(JSQ)
  842.         @ 4+bs,20+lc say &field  
  843.         JSQ = JSQ+1
  844.         LC = LC+12
  845.       enddo 
  846.       @ 4+BS , 0 say 编号
  847.       @ 4+BS , 6 say 姓名
  848.       if  not eof()
  849.         skip 
  850.         BS = BS+1
  851.       else 
  852.         exit 
  853.       endif 
  854.       if BS=19
  855.         exit 
  856.       endif 
  857.     enddo 
  858.     go X
  859.     skip BS1
  860.     set color to n/w
  861.     BS = BS1
  862.     LC = 0
  863.     JSQ = ZD1
  864.     do while JSQ<=ZD2
  865.       FIELD = field(JSQ)
  866.       @ 4+bs,20+lc say &field  
  867.       JSQ = JSQ+1
  868.       LC = LC+12
  869.     enddo 
  870.     @ 4+BS , 0 say 编号
  871.     @ 4+BS , 6 say 姓名
  872.     set color to gr+/bg
  873.     DATA = field(READZD)
  874.     @ 4+bs,20+readlc say &data
  875.     set color to
  876.   case X=-7
  877.     if  not eof()
  878.       save screen to PM
  879.       set color to g+/gr
  880.       @ 6 , 20 clear to 8 , 60
  881.       I = 'F'
  882.       ?? chr(7)
  883.       @ 7 , 24 say '真的删除记录吗?(Y/N)' get I
  884.       read 
  885.       restore screen from PM
  886.       RECN = recno()
  887.       if I='y' or I='Y'
  888.         delete 
  889.         pack 
  890.         JLS = JLS-1
  891.         if RECN>=JLS and BS>=1
  892.           BS = BS-1
  893.         endif 
  894.         set color to
  895.         @ 4+BS , 0 clear to 22 , 79
  896.         X1 = BS
  897.         if RECN>JLS
  898.           if  not bof() and  not eof()
  899.             go JLS
  900.           else 
  901.             go top
  902.           endif 
  903.         else 
  904.           if  not bof() and  not eof()
  905.             go RECN
  906.           else 
  907.             go top
  908.           endif 
  909.         endif 
  910.         X = 0
  911.         do while .t.
  912.           LC = 0
  913.           JSQ = ZD1
  914.           do while JSQ<=ZD2
  915.             FIELD = field(JSQ)
  916.             @ 2 , 20+LC say field(JSQ)
  917.             @ 4+bs,20+lc say &field  
  918.             JSQ = JSQ+1
  919.             LC = LC+12
  920.           enddo 
  921.           @ 4+BS , 0 say 编号
  922.           @ 4+BS , 6 say 姓名
  923.           if  not eof()
  924.             skip 
  925.             X = X+1
  926.             BS = BS+1
  927.           else 
  928.             exit 
  929.           endif 
  930.           if BS=19
  931.             exit 
  932.           endif 
  933.         enddo 
  934.         skip -X
  935.         if int(JLS/19)-(JLS/19)=0 and YC>1
  936.           YC = YC-1
  937.           YS = YS-1
  938.           if RECN>JLS
  939.             go JLS
  940.           else 
  941.             go RECN
  942.           endif 
  943.           skip -18
  944.           X = recno()
  945.           set color to
  946.           BS = 0
  947.           @ 4 , 0 clear to 22 , 79
  948.           do while .t.
  949.             LC = 0
  950.             JSQ = ZD1
  951.             do while JSQ<=ZD2
  952.               FIELD = field(JSQ)
  953.               @ 2 , 20+LC say field(JSQ)
  954.               @ 4+bs,20+lc say &field  
  955.               JSQ = JSQ+1
  956.               LC = LC+12
  957.             enddo 
  958.             @ 4+BS , 0 say 编号
  959.             @ 4+BS , 6 say 姓名
  960.             if  not eof()
  961.               skip 
  962.               BS = BS+1
  963.             else 
  964.               exit 
  965.             endif 
  966.             if BS=19
  967.               exit 
  968.             endif 
  969.           enddo 
  970.           go X
  971.           set color to n/w
  972.           BS = 0
  973.           LC = 0
  974.           JSQ = ZD1
  975.           do while JSQ<=ZD2
  976.             FIELD = field(JSQ)
  977.             @ 4+bs,20+lc say &field  
  978.             JSQ = JSQ+1
  979.             LC = LC+12
  980.           enddo 
  981.           @ 4+BS , 0 say 编号
  982.           @ 4+BS , 6 say 姓名
  983.           set color to gr+/bg
  984.           DATA = field(READZD)
  985.           @ 4+bs,20+readlc say &data
  986.         endif 
  987.         set color to n/w
  988.         BS = X1
  989.         LC = 0
  990.         JSQ = ZD1
  991.         do while JSQ<=ZD2
  992.           FIELD = field(JSQ)
  993.           @ 4+bs,20+lc say &field  
  994.           JSQ = JSQ+1
  995.           LC = LC+12
  996.         enddo 
  997.         @ 4+BS , 0 say 编号
  998.         @ 4+BS , 6 say 姓名
  999.         set color to gr+/bg
  1000.         DATA = field(READZD)
  1001.         @ 4+bs,20+readlc say &data
  1002.         PD = JLS/19
  1003.         PD1 = int(PD)
  1004.         YS = PD-PD1
  1005.         if YS=0
  1006.           YS = PD1
  1007.         else 
  1008.           YS = PD1+1
  1009.         endif 
  1010.       endif 
  1011.     else 
  1012.       ?? chr(7)
  1013.     endif 
  1014.   case X=-9
  1015.     erase gzb.%%%
  1016.     Y2 = field(1)
  1017.     sort on (Y2) to gzb.%%%
  1018.     use 
  1019.     X = GZBWJ+'.dbf'
  1020.     eras &x
  1021.     rena gzb.%%% to &x  
  1022.     use &gzbwj
  1023.     set color to n/w
  1024.     ZDS = fcount()
  1025.     PD = 1
  1026.     YFGZ = 0
  1027.     SFGZ = 0
  1028.     do while PD<=ZDS
  1029.       if field(PD)='应发工资'
  1030.         YFGZ = PD
  1031.       endif 
  1032.       if field(PD)='实发工资'
  1033.         SFGZ = PD
  1034.       endif 
  1035.       PD = PD+1
  1036.     enddo 
  1037.     if YFGZ=0
  1038.       @ 10 , 30 say '“应发工资”项目没找到!'
  1039.       I = inkey(0)
  1040.       return 
  1041.     endif 
  1042.     if SFGZ=0
  1043.       @ 11 , 30 say '“实发工资”项目没找到!'
  1044.       I = inkey(0)
  1045.       return 
  1046.     endif 
  1047.     go bottom
  1048.     PD = recno()
  1049.     JLS = PD
  1050.     PD = PD/19
  1051.     PD1 = int(PD)
  1052.     YS = PD-PD1
  1053.     if YS=0
  1054.       YS = PD1
  1055.     else 
  1056.       YS = PD1+1
  1057.     endif 
  1058.     go top
  1059.     YC = 1
  1060.     BS = 0
  1061.     YS1 = 1
  1062.     @ 2 , 0 say '编号'
  1063.     @ 2 , 6 say '姓名'
  1064.     do while .t.
  1065.       LC = 0
  1066.       JSQ = 4
  1067.       P = 1
  1068.       if YFGZ>7
  1069.         PD1 = 7
  1070.       else 
  1071.         PD1 = YFGZ-1
  1072.         P = 0
  1073.       endif 
  1074.       ZD1 = 4
  1075.       ZD2 = PD1
  1076.       do while JSQ<=PD1
  1077.         RFIELD = field(JSQ)
  1078.         @ 2 , 20+LC say field(JSQ)
  1079.         @ 4+bs,20+lc say &Rfield  
  1080.         JSQ = JSQ+1
  1081.         LC = LC+12
  1082.       enddo 
  1083.       @ 4+BS , 0 say 编号
  1084.       @ 4+BS , 6 say 姓名
  1085.       if  not eof()
  1086.         skip 
  1087.         BS = BS+1
  1088.       else 
  1089.         exit 
  1090.       endif 
  1091.       if BS=19
  1092.         exit 
  1093.       endif 
  1094.     enddo 
  1095.     READZD = ZD1
  1096.     READLC = 0
  1097.     go top
  1098.     set color to w+/w
  1099.     BS = 0
  1100.     LC = 0
  1101.     JSQ = 4
  1102.     if YFGZ>7
  1103.       PD1 = 7
  1104.     else 
  1105.       PD1 = YFGZ-1
  1106.     endif 
  1107.     do while JSQ<=PD1
  1108.       RFIELD = field(JSQ)
  1109.       @ 4+bs,20+lc say &field  
  1110.       JSQ = JSQ+1
  1111.       LC = LC+12
  1112.     enddo 
  1113.     @ 4+BS , 0 say 编号
  1114.     @ 4+BS , 6 say 姓名
  1115.     PD = 0
  1116.     ZY = 0
  1117.     set color to gr+/bg
  1118.     DATA = field(READZD)
  1119.     @ 4+bs,20+readlc say &data
  1120.   case X=-8
  1121.     do BJCOPY
  1122.   case X=-1
  1123.     do SCL
  1124.   case X=-2
  1125.     do CRL
  1126.   case X=27
  1127.     pack 
  1128.     exit 
  1129.   otherwise 
  1130.     ?? chr(7)
  1131.   endcase 
  1132. enddo 
  1133. set color to
  1134. close all
  1135. return