Modi comm Ls
use zgda
sele 2
use zggz
sele 1
do whil .not.eof()
if 职称="二级"
temp=姓名
sele 2
repl 基本工资 with 基本工资+10 for temp=姓名
end if
sele 1
skip
enddo
close all
黑鹰认为以上做法不妥,因为在zggz与zgda中姓名字段并不能唯一标识每条记录,照以上解法,如果有两个姓名完全相同的职工,只要其中一个职称为“二级”,则两名职工均会被啬基本工资.
以上是个人愚见。
另外
local cur_id在语法上的意思是定义一个局部内存变量cur_id
local should_add同上
should_add=.f.为赋值.f.给内存变量should_add
Modi comm Ls
use zgda
sele 2
use zggz
sele 1
if ! eof()
do while .T.
if 职称="二级"
temp=姓名
sele 2
replace 基本工资 with 基本工资+10 for temp=姓名
end if
sele 1
skip
if eof()
exit
endif
enddo
end if
******************************************************************
&&以下假设zgda的有两个字段:zg_id(职工编号),zg_gra(职工职称);
&&zggz中同样有两个字段:zg(职工编号,以上面相同),zg_num(职工工资)
*******************************************************************
local cur_id
local shoud_add
should_add=.f.
sele a
use zggz.dbf
sele b
use zgda
sele a
scan
cur_id=zg_id
sele b
locate for zg_id=cur_id
should_add=(zg_gra=="二级")
sele a
if should_add
replace zg_num with zg_num+10
endif
endscan
********************************************************
&&时间仓促,未写异常处理部分