box01.prg

来自「使用VFP编写的信用社系统专用会计报表系统,可上报,汇总,打印.是一款优秀的信用」· PRG 代码 · 共 227 行

PRG
227
字号
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*  文件名: BOX01.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 PARAMETER BDATNAME , XMKNAME
 SET SAFETY OFF
 SET ESCAPE OFF
 SET COLOR OF SCHEME 2 TO  GR+/BG,W+/BG,GR/BG,GR/BG,GR+/B,GR+/B,GR+/W,R+/N,N/N,W/N,N+/N
 SET COLOR OF SCHEME 3 TO RGB( 0 , 0 , 0 , 192 , 192 , 192) ,  ;
       W+/BG,GR/BG,GR/BG,GR+/B,GR+/B,GR+/W,R+/N,N/N,W/N,N+/N
 DEFINE WINDOW WINM FROM 1 , 3 TO 16 , 123 FONT 'Courier' , 12 COLOR SCHEME 3 FLOAT  ;
      TITLE  ;
      '数据录入/修改--' + IIF(LEN(ALLTRIM(XSYK)) <> 0,XSBM + '--' + XSYK,XSBM) + '--' +  ;
XSLX + '--' + XSDQ + '----- ESC 退出' IN SCREEN  ;
      DOUBLE
 ACTIVATE WINDOW WINM
 TCPD = 0
 IF M_QZBZ = .T.
 QPP = 1
 M_99 = '9999,999,999,999,999'
 ELSE 
 M_99 = '9,999,999,999,999.99'
 QPP = 100
 ENDIF 
 DEFINE WINDOW WINB01_1 FROM 1 , 3 TO 14 , 83 FONT 'Courier' , 12 COLOR SCHEME 3 IN WINM
 MOVE WINDOW WINB01_1 CENTER 
 SELECT BLK
 FOR M = 1 TO M_LS
 DAXA = 'da' + ALLTRIM(STR(M))
 M_LENX = 'm_len' + ALLTRIM(STR(M))
 LOCATE FOR BH = M_BH AND FIELD_NAME = DAXA
  &m_lenx=FIELD_len
 ENDFOR 
 ACTIVATE WINDOW WINB01_1
 N = 0
 @ N + 2 , 3 SAY '┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━┓'
 @ N + 3 , 3 SAY '┃   项    目    名    称   │                                ┃'
 @ N + 4 , 3 SAY '┠─────────────┼────────────────┨'
 @ N + 5 , 3 SAY '┃                          │                                ┃'
 @ N + 6 , 3 SAY '┠─────────────┼────────────────┨'
 @ N + 7 , 3 SAY '┃                          │                                ┃'
 @ N + 8 , 3 SAY '┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┛'
 DAXQIN = ''
 M_SHU = 0
 QQ = 11
 NN = 1
 YY = 41
 SELECT BLK
 LOCATE FOR BH = M_BH AND FIELD_NAME = 'da1'
 @ N + 3 , 35 SAY LHY PICTURE 'XXXXXXXXXXXXXX'
 SELECT (XMKNAME)
 GO TOP
 M_XMDH = '000000'
 DHX = '      '
 DO WHILE .T.
 SELECT (XMKNAME)
 IF M_XMDH <> '000000'
 LOCATE FOR ALLTRIM(XMDH) == DHX
 IF  .NOT. EOF()
 SKIP 
 ELSE 
 GO TOP
 ENDIF 
 ENDIF 
 DO WHILE .T.
 IF RECCOUNT() < 1
 RETURN 
 ENDIF 
 IF LRBZ = .T.
 EXIT 
 ENDIF 
 IF  .NOT. EOF()
 SKIP 
 ELSE 
 GO TOP
 ENDIF 
 ENDDO 
 M_DHX_M = 0
 DHX = ALLTRIM(XMDH)
 @ 1 , 1 SAY '项目代号: '
 @ 1 , 12 SAY '      '
 @ 1 , 12 SAY DHX
 DO WHILE .T.
 S_TMP = INKEY('MS')
 DO CASE 
 CASE (S_TMP > 47 AND S_TMP < 58 .OR. S_TMP = 45 .OR. S_TMP > 96 AND S_TMP < 100) AND  ;
M_DHX_M < 6
 IF M_DHX_M = 0
 @ 1 , 12 SAY '      '
 DHX = ''
 ENDIF 
 M_DHX_M = M_DHX_M + 1
 DHX = DHX + CHR(S_TMP)
 @ 1 , 12 SAY DHX
 CASE S_TMP = 127 .OR. S_TMP = 19
 IF M_DHX_M <> 0
 M_DHX_M = M_DHX_M - 1
 DHX = LEFT(DHX,LEN(DHX) - 1)
 @ 1 , 12 SAY '      '
 @ 1 , 12 SAY DHX
 ENDIF 
 CASE S_TMP = 43
 M_DHX_M = 0
 DO WHILE .T.
 IF  .NOT. EOF()
 SKIP 
 ELSE 
 GO TOP
 ENDIF 
 IF LRBZ = .T.
 EXIT 
 ENDIF 
 ENDDO 
 DHX = ALLTRIM(XMDH)
 @ 1 , 12 SAY '      '
 @ 1 , 12 SAY DHX
 CASE S_TMP = 13
 IF DHX = '999999'
 DEACTIVATE WINDOW WINB01_1
 RELEASE WINDOW WINB01_1 , WINM
 RETURN 
 ENDIF 
 M_DHX_M = 0
 EXIT 
 CASE S_TMP = 27
 DEACTIVATE WINDOW WINB01_1
 RELEASE WINDOW WINB01_1 , WINM
 TCPD = 1
 EXIT 
 ENDCASE 
 ENDDO 
 IF TCPD = 1
 EXIT 
 ENDIF 
 @ 1 , 12 SAY '      '
 @ 1 , 12 SAY DHX
 SELECT (XMKNAME)
 SCAN FOR ALLTRIM(XMDH) == DHX
 M_XMDH = XMDH
 IF LRBZ = .T.
 SELECT (BDATNAME)
 SCAN FOR ALLTRIM(XMDH) == DHX AND DQDH = M_DQDH AND BLX1 = M_BLX1 AND BLX2 = M_BLX2
 DO ACCDAT
 ENDSCAN 
 ELSE 
 ?? CHR(7)
 WAIT WINDOW '本行数据不录入'
 ENDIF 
 ENDSCAN 
 IF M_XMDH <> DHX
 ?? CHR(7)
 WAIT WINDOW '无此代号'
 ENDIF 
 ENDDO 
 DEACTIVATE WINDOW WINB01_1
 RELEASE WINDOW WINB01_1 , WINM
 DO JSCL WITH M_BH , M_BLX1 , M_BLX2 , KKK_NIAN , YUE , M_DQDH
 RETURN 

PROCEDURE ACCDAT
 DA1 = ''
 @ N + 7 , 5 SAY '                         '
 @ N + 7 , YY - 5 SAY '                      '
  @ N+7,5 SAY LTRI(&XMKNAME->XMMC) PICT "XXXXXXXXXXXXXXXXXXXXXXXXX"
 DO LRPD
 @ N + 7 , YY SAY DA1 PICTURE M_99
 @ N + 7 , YY - 5 SAY '                      '
 DO WHILE .T.
 IF  .NOT. NN > 1
 M_TMP = INKEY('MS')
 DO CASE 
 CASE M_TMP > 47 AND M_TMP < 58 .OR. M_TMP = 45
 DO M_SHUZI
 CASE M_TMP = 127 .OR. M_TMP = 19
 DO M_BSP
 CASE M_TMP = 13
 DO M_ENTER
 ENDCASE 
 ELSE 
 EXIT 
 ENDIF 
 ENDDO 
 @ N + 5 , 5 SAY '                         '
  @ N+5,5 SAY LTRI(&xmkname->xmmc) PICT "XXXXXXXXXXXXXXXXXXXXXXXXX"
 @ N + 5 , YY SAY '                      '
 @ N + 5 , YY SAY DA1 PICTURE M_99
 @ N + 7 , 5 SAY '                          '
 @ N + 7 , YY - 5 SAY '                      '
 NN = 1
 RETURN 
ENDPROC
*------
PROCEDURE M_SHUZI
 IF M_SHU < M_LEN1 - 1
 @ N + 7 , YY - 5 CLEAR TO N + 7 , YY + 19
 M_SHU = M_SHU + 1
 QQ = 22
 DAXQIN = DAXQIN + CHR(M_TMP)
 @ N + 7 , YY - 5 SAY DAXQIN
 ELSE 
 ?? CHR(7)
 ENDIF 
ENDPROC
*------
PROCEDURE M_BSP
 IF M_SHU <> 0
 M_SHU = M_SHU - 1
 DAXQIN = LEFT(DAXQIN,LEN(DAXQIN) - 1)
 @ N + 7 , YY - 5 SAY '                      '
 @ N + 7 , YY - 5 SAY DAXQIN
 ENDIF 
ENDPROC
*------
PROCEDURE M_ENTER
 IF QQ = 22
 QQ = 11
 M_SHU = 0
 SELECT (BDATNAME)
 DAX = 'da' + LTRIM(STR(NN))
  REPLACE &dax WITH VAL(DAXQIN)/QPP  
 DAXQIN = ''
 ENDIF 
 NN = NN + 1
ENDPROC
*------*

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?