我用delphi做了个人事管理系统,但是里面出了点问题,
里面错问题的是关于工资表计算的问题,就是我工资是按图路面算的,代码如下whilenotdata1.ADOQYgzb.Eofdo//计算工资公式beginyfgz:=dat...
里面错问题的是关于工资表计算的问题,就是我工资是按图路面算的,代码如下
while not data1.ADOQYgzb.Eof do //计算工资公式
begin
yfgz:=data1.ADOQYgzb.FieldByName('jbgz').Value + data1.ADOQYgzb.FieldByName('jbf').Value + data1.ADOQYgzb.FieldByName('qqj').Value + data1.ADOQYgzb.FieldByName('zwjt').Value + data1.ADOQYgzb.FieldByName('qtje').Value;
ykgz:=data1.ADOQYgzb.FieldByName('kgf').Value + data1.ADOQYgzb.FieldByName('ylbx').Value + data1.ADOQYgzb.FieldByName('ylx').Value + data1.ADOQYgzb.FieldByName('sybx').Value + data1.ADOQYgzb.FieldByName('qtke').Value + data1.ADOQYgzb.FieldByName('ks').Value;
sfgz:=yfgz - ykgz;
with data1.ADOQYgzb do
begin
edit;
fieldbyname('yfgz').Value:=yfgz;
fieldbyname('ykgz').Value:=ykgz;
fieldbyname('sfgz').Value:=sfgz;
next;
end;
end;
application.MessageBox('结算完毕','提示',64);
end
代码里面‘jbgz’就是截图里面最上面那行里的“基本工资”的拼音缩写,后面的那些都依次类推。不懂再问, 展开
while not data1.ADOQYgzb.Eof do //计算工资公式
begin
yfgz:=data1.ADOQYgzb.FieldByName('jbgz').Value + data1.ADOQYgzb.FieldByName('jbf').Value + data1.ADOQYgzb.FieldByName('qqj').Value + data1.ADOQYgzb.FieldByName('zwjt').Value + data1.ADOQYgzb.FieldByName('qtje').Value;
ykgz:=data1.ADOQYgzb.FieldByName('kgf').Value + data1.ADOQYgzb.FieldByName('ylbx').Value + data1.ADOQYgzb.FieldByName('ylx').Value + data1.ADOQYgzb.FieldByName('sybx').Value + data1.ADOQYgzb.FieldByName('qtke').Value + data1.ADOQYgzb.FieldByName('ks').Value;
sfgz:=yfgz - ykgz;
with data1.ADOQYgzb do
begin
edit;
fieldbyname('yfgz').Value:=yfgz;
fieldbyname('ykgz').Value:=ykgz;
fieldbyname('sfgz').Value:=sfgz;
next;
end;
end;
application.MessageBox('结算完毕','提示',64);
end
代码里面‘jbgz’就是截图里面最上面那行里的“基本工资”的拼音缩写,后面的那些都依次类推。不懂再问, 展开
2个回答
展开全部
语句顺序有问题而且有的累赘。 应该是这样:
with data1.ADOQYgzb do
begin
first;
while not Eof do //计算工资公式
begin
yfgz:=FieldByNam('jbgz').Value+
FieldByName('jbf').Value +
FieldByName('qqj').Value +
FieldByName ('zwjt').Value +
FieldByName ('qtje').Value;
ykgz:= FieldByName('kgf').Value +
FieldByName ('ylbx').Value +
FieldByName('ylx').Value +
FieldByName('sybx').Value +
FieldByName ('qtke').Value +
FieldByName('ks').Value;
sfgz:=yfgz - ykgz;
edit;
fieldbyname('yfgz').Value:=yfgz;
fieldbyname('ykgz').Value:=ykgz;
fieldbyname('sfgz').Value:=sfgz;
post;
next;
end;
end;
application.MessageBox('结算完毕','提示',64);
with data1.ADOQYgzb do
begin
first;
while not Eof do //计算工资公式
begin
yfgz:=FieldByNam('jbgz').Value+
FieldByName('jbf').Value +
FieldByName('qqj').Value +
FieldByName ('zwjt').Value +
FieldByName ('qtje').Value;
ykgz:= FieldByName('kgf').Value +
FieldByName ('ylbx').Value +
FieldByName('ylx').Value +
FieldByName('sybx').Value +
FieldByName ('qtke').Value +
FieldByName('ks').Value;
sfgz:=yfgz - ykgz;
edit;
fieldbyname('yfgz').Value:=yfgz;
fieldbyname('ykgz').Value:=ykgz;
fieldbyname('sfgz').Value:=sfgz;
post;
next;
end;
end;
application.MessageBox('结算完毕','提示',64);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
出的问题是什么?你的错误是没有把编辑的数据保存到数据库,
在
fieldbyname('ykgz').Value:=ykgz;
fieldbyname('sfgz').Value:=sfgz;
next;
后面加Post,就是保存!
在
fieldbyname('ykgz').Value:=ykgz;
fieldbyname('sfgz').Value:=sfgz;
next;
后面加Post,就是保存!
更多追问追答
追问
那post是加在next后,怎么个法?
是next post;
还是next; post;
追答
next;
post;
就可以了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询