📄 άi-
字号:
*************************************************************
* 转帐凭证登录子程序 转帐凭证登录.PRG *
* 调用程序 记账主程序.PRG *
*************************************************************
DO FORM 转账记账凭证.scx && 执行转账记账凭证登录表单
STORE '转帐' TO pingzlb && 凭证类别
STORE { . . } TO riqi && 初始化日期为空
@ 0.2,67 GET riqi SIZE 1,10 RANGE BEGIN,the_end ;
VALID riqi<>{ . . } ERROR '日期不可空' && 编辑日期
@ 1.7,67 GET bianhao SIZE 1,5 DEFAULT 0 ;
VALID bianhao<>0 ERROR '编号不可为零' && 编辑编号
@ 19.6,13 GET fudanjzs SIZE 1,3 DEFAULT 0 && 编辑附单据张数
@ 22.2,68 GET jizhang SIZE 1,10 DEFAULT "" DISABLE && 记账禁止编辑
READ && 激活对象
DO rk && 键控过程,按Ctrl+End结束程序
DIME zhuan(6),hh(6) && 定维转帐凭证数组
STORE ' ' TO zhuan && 初始化数组
STORE 0 TO hh
FOR i=1 TO 100 && 循环
STORE ' ' TO zza(i,1) && 摘要
STORE ' ' TO zza(i,2) && 结算方式
STORE ' ' TO zza(i,3) && 票号
STORE ' ' TO zza(i,4) && 总帐科目
STORE ' ' TO zza(i,5) && 明细科目
STORE 0.00 TO zza(i,6) && 借方
STORE 0.00 TO zza(i,7) && 贷方
STORE ' ' TO zza(i,8) && 借贷标识
STORE ' ' TO zza(i,9) && 登帐数据库名
STORE '转帐' TO zza(i,10) && 凭证种类
NEXT && 下一个 FOR 循环
* 处理借方科目
ACTI WINDOW zwj && 激活转账借方窗口,复选科目
STORE 0 TO a && 借方科目复选框记录选中数组清零
FOR i=1 TO 23 && 循环
IF b(i,5)='暂不使用' && 如果选用与否为暂不使用
@ i-1,0 GET a(i) FUNC "*C "+b1(i) DISA && 列出复选框,禁止选用
ELSE && 否则
@ i-1,0 GET a(i) FUNC "*C "+b1(i) && 列出复选框
ENDIF
NEXT && 下一个 FOR 循环
FOR i=24 TO 46 && 循环
IF b(i,5)='暂不使用' && 如果选用与否为暂不使用
@ i-24,22 GET a(i) FUNC "*C "+b1(i) DISA && 列出复选框,禁止选用
ELSE && 否则
@ i-24,22 GET a(i) FUNC "*C "+b1(i) && 列出复选框
ENDIF
NEXT && 下一个 FOR 循环
FOR i=47 TO 67 && 循环
IF b(i,5)='暂不使用' && 如果选用与否为暂不使用
@ i-47,44 GET a(i) FUNC "*C "+b1(i) DISA && 列出复选框,禁止选用
ELSE && 否则
@ i-47,44 GET a(i) FUNC "*C "+b1(i) && 列出复选框
ENDIF
NEXT
FOR i=68 TO 85 && 循环
IF b(i,5)='暂不使用' && 如果选用与否为暂不使用
@ i-68,66 GET a(i) FUNC "*C "+b1(i) DISA && 列出复选框,禁止选用
ELSE && 否则
@ i-68,66 GET a(i) FUNC "*C "+b1(i) && 列出复选框
ENDIF
NEXT && 下一个 FOR 循环
@ 21,55 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,6,4 && 命令按钮
READ CYCLE && 激活对象
DO rk && 键控过程,按Ctrl+End结束程序
IF kk=2 && 如果选择了取消
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
DEAC WINDOW zwj && 挂起转账借方复选科目窗口
STORE 0 TO m,m1 && 初始化变量
FOR i=1 TO 85 && 循环
IF a(i)=1 && 如果复选科目时选中
m=m+1 && 记下选中科目的个数
zhuan(m)=b1(i) && 记下选中科目的名称
hh(m)=i && 记下选中科目的记录号1-85
ENDIF
NEXT && 下一个 FOR 循环
* 处理借方明细
FOR i=1 TO m && 循环 终值为复选科目时选中的个数
IF USED('zk85') && 如果表已打开
SELECT zk85 && 激活工作区
ELSE && 否则
SELECT 3 && 激活工作区
USE 科目总控!zk85 && 打开表‘zk85’(总控85,内含85个科目)
ENDIF
LOCATE FOR 会计科目名=zhuan(i) && 定位会计科目名
IF 选用与否='选用明细' && 如果 选用与否='选用明细'
STORE 明细库名 TO mx && 赋值
SELECT 4 && 激活工作区
USE &mx ALIAS mx && 打开联系表
PUBLIC mxj(300,2),mxj1(300),a(300) && 定维数组
COPY TO ARRAY mxj && 复制到数组
STORE 0 TO rec && 初始化变量
rec=RECC() && 记下记录个数
IF zhuan(i)='固定资产' && 如果 会计科目名='固定资产'
FOR kk=1 TO rec && 循环
STORE mxj(kk,1) TO mxj1(kk) && 赋值给一维数组
NEXT && 下一个 FOR 循环
ELSE && 否则
FOR kk=1 TO rec && 循环
STORE ALLTRIM(mxj(kk,1)) TO mxj1(kk) && 赋值给一维数组
NEXT && 下一个 FOR 循环
ENDIF
IF rec<=21 && 如果记录个数小于等于21
DEFI WINDOW zwjmx1 FROM 0,0 TO 26,36 TITLE ' '+zhuan(i)+" 借方明细 " ;
ZOOM MINIMIZE FLOAT DOUB CLOSE && 定义窗口
ACTI WINDOW zwjmx1 && 激活窗口
STORE 0 TO a && 初始化数组
FOR kk=1 TO rec && 循环
@ kk-1,0 GET a(kk) FUNC "*c "+ mxj1(kk) && 排布复选框
NEXT && 下一个 FOR 循环
@ 22,5 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,4,4 && 命令按钮
READ CYCLE && 激活对象
DO rk && 键控过程,按Ctrl+End结束程序
IF kk=2 && 如果选择了取消
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
DEAC WINDOW zwjmx1 && 挂起窗口
ELSE && 否则
DEFI WINDOW zwjmx1 FROM 0,0 TO 26,67 TITLE ' '+zza(i,3)+" 借方明细 ";
ZOOM MINIMIZE FLOAT DOUB CLOSE && 定义窗口
ACTI WINDOW zwjmx1 && 激活窗口
STORE 0 TO a && 初始化数组
IF zhuan(i)='固定资产' && 如果 会计科目名='固定资产'
STORE 1 TO hekh000s && 初始化变量
DEAC WINDOW zwjmx1 && 挂起窗口
DEFI WINDOW swjmx FROM 0,0 TO 28,300 TITLE ' 借方科目:'+zhuan(i)+;
' 左右拖动此线 ───── 选择明细'+' ────────── '+;
'移动此线 ──────────────── 移动此线 ─── ';
FLOAT CLOSE DOUB && 定义浮动窗口
ACTI WINDOW swjmx && 激活窗口
STORE 0 TO a && 数组清零
FOR kk=1 TO rec && 循环
@ kk%22,INT(kk/22)*30 GET a(kk) FUNC '*c '+mxj1(kk) && 排布复选框
NEXT && 下一个 FOR 循环
@ 23,80 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,4,4 && 命令按钮
READ CYCLE && 激活对象
DO rk && 键控过程,按Ctrl+End结束程序
IF kk=2 && 如果选择了取消
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
DEAC WINDOW swjmx && 挂起窗口
ELSE && 否则
DO CASE
CASE rec<=42 && 如果明细的个数小于等于42
FOR kk=1 TO 21 && 循环
@ kk-1,0 GET a(kk) FUNC "*c "+ mxj1(kk) && 排布复选框
NEXT && 下一个 FOR 循环
FOR kk=22 TO rec && 循环
@ kk-22,26 GET a(kk) FUNC "*c "+ mxj1(kk) && 排布复选框
NEXT && 下一个 FOR 循环
@ 22,5 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,4,4 && 命令按钮
READ CYCLE && 激活对象
DO rk && 键控过程,按Ctrl+End结束程序
IF kk=2 && 如果选择了取消
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
CASE REC<=80 && 否则 明细个数大于42
DEAC WINDOW zwjmx1 && 挂起窗口
DEFI WINDOW swjmx FROM 0,0 TO 28,300 TITLE ' 借方科目:'+;
zhuan(i)+' 左右拖动此线 ───── 选择明细 ─────────'+;
' 移动此线 ──────────────── 移动此线 ─── ';
FLOAT CLOSE DOUB && 定义浮动窗口
ACTI WINDOW swjmx && 激活窗口
STORE 0 TO a && 数组清零
FOR kk=1 TO rec && 循环
@ kk%22,INT(kk/22)*30 GET a(kk) FUNC '*c '+mxj1(kk) && 排布复选框
NEXT && 下一个 FOR 循环
@ 23,80 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,4,4 && 命令按钮
READ CYCLE && 激活对象
DO rk && 键控过程,按Ctrl+End结束程序
IF kk=2 && 如果选择了取消
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
DEAC WINDOW swjmx && 挂起窗口
OTHERWISE && 其他(当明细个数大于80)
IF USED('明细复选框表') && 如果校验框表已经打开
SELECT 明细复选框表 && 激活校验框表工作区
ELSE && 否则
SELECT 0 && 激活工作区
USE 明细复选框表 && 打开校验框表文件
ENDIF &&
SET SAFETY OFF && 关闭安全提示窗口
ZAP && 清除全部记录
SET SAFETY ON && 打开安全提示窗口
FOR kk=1 TO rec && 循环
APPEND BLANK && 追加空记录
REPLACE 明细名称 WITH MXJ1(KK) && 替换字段
REPLACE 校验框 WITH 0 && 冲零
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -