3.实例
例1有职称数据库ZC.DBF,其数据库结构为:日期(D,8),职称(C,6),级差(N.6,2)。另有职工简况数据库ZGJK.DBF,其数据库结构为:职工号(C,6),姓名(C,8),性别(C,2),出生日期(D,8),婚否(L,1),职称(C,6),基本工资(N,7,2)。
按某印刷企业规定,职工每两年晋升一级工资。要求进行工资调级,并根据每个职工的任职年限是否达到两年,晋升相应职称的工资级差,修改职工简况库中的基本工资字段。为了计算职工调级后的基本工资,在职工简况数据库中增加一个新字段:晋升日期(D,8)。为了避免重复晋升,应标志出各个记录本次是否已经调整过工资,需另增加一个字段:已调(L.1)。具体操作如下:
.SET DEFAULT TO C (设置当前盘符为C盘)
.SELECT 1
.USE ZC (在1区打开职称库)
.LIST
RECORD#日期 职称 级差
1 01/01/99 五级职员 30.00
2 01/01/99 工程师 20.00
3 01/01/99 高级工 30.00
4 01/01/99 四级职员 40.00
5 01/01/99 中级工 20.00
6 01/01/99 初级工 14.00
.INDEX ON职称TO ZCINDEX (为关联作准备)
6 RECORDS INDEX
.SELECT 2
.USE ZGJK (在2区打开简况库)
.SET RELATION TO职称INTO A (关联逻辑是:B一>职称=A一>职称)
.GO TOP
.LIST NEXT 4姓名,基本工资,职称,A一>级差,已调
RECORD#姓名 基本工资 职称 A一>级差已调
1 董新桥 805.12 中级工 20.00 .F.
2 李小明 904.35 工程师 20.00 .F.
3 张琳 604.28 初级工 14.00 .F.
4 程红 825.60 五级职员 30.00 .F.
.REPLACE ALL基本工资WITH基本工资十A一>级差FOR YEAR(A一>日期)-YEAR(晋升日期)>=2.AND..NOT.已调
10 replacements
.REPLACE ALL已调WITH.T.FOR YEAR(A一>日期)-YEAR(晋升日期)>=2
10 replacements
.GO TOP
.LIST NEXT 4姓名,基本工资,职称,A->级差,已调
RECORD#姓名 基本工资 职称 A->级差已调
1 董新桥 825.12 中级工 20.00 .T.
2 李小明 904.35 工程师 20.00 .F.
3 张琳 618.28 初级工 14.00 .T.
4 程红 825.60 五级职员 30.00 .F.
.CLOSE DATABASE
例2有生产管理数据库SCGL,其数据库结构为订单编号(C,10),客户名称(C,10),印刷要求(C,55),制版周期(D,8),印刷周期(D,8),印后周期(D,8)。成品管理数据库CPGL结构为:订单编号(C,10),客户名称(C,10),交货方式(C,8),交货日期(D,8),是否交齐(L,1),剩余数量(N,5)。财务管理数据库CWGL结构为:订单编号(C,10),客户名称(C,10),是否交定金<L,1),应收款(N,6),实收款(N,6),余额期限(D,8),是否结清(L,1)。
①统计超过余额期限,未结清印刷费的客户名称及总金额。
具体操作如下:
.USE CWGL
.LIST客户名称FOR DATE()>余额期限.AND..NOT.是否结清
RECORD# 客户名称
1 康泰保险
4 华中激光协和医院
6 光大银行
8 武汉广场
10 数学通讯
.SUM余额TO YOU FOR DATE>余额期限.AND..NOT.是否结清
6 records summed
余额
25982
②查询所有记录中超过余额期限、数量已交齐的印刷业务的订单编号、客户名称、印刷要求、是否结清、未结清、即时催款,并逻辑删除已结清的记录。
.SELECT 1
.USE SCGL
.INDEX ON订单编号TO AB (为数据库并接作准备)
9 records indexed
.SELE 2
.USE CPGL
.INDEX ON客户名称TO CD (为数据库并接作准备)
10 records indexed
.SELE 3
.USE CWGL
.SET RELATION TO订单编号INTO A (数据库并接)
.SET RELATION TO客户名称INTO B ADDITIVE(数据库并接)
.LIST是否结清,A->订单编号,B->客户名称,A->印刷要求FOR DATE()>余额期限.AND.B->是否交齐
RECORD#是否结清 A->订单编号 B->客户名称
1 .F. 1999012101 康泰保险
2 .T. 1999031001 教育出版社
4 .F. 1999081201 华中激光
5 .F. 1999101502 协和医院
7 .T. 1999032106 金马家具
8 .F. 1999061010 武汉广场
.LIST B->客户名称,A->印刷要求FOR DATE()>余额期限.AND.B->是否交齐
B->客户名称 A->印刷要求
康泰保险 正度4开招