这是我程序中的一段代码,看看对你有无用处。
等待窗体ddfrm上放lable1、Animate
另一个窗体调用
procedure TbxjFrm.drClick(Sender: TObject);
var
str,m:string;
i:integer;
begin
m:=copy(datetimetostr(dlfrm.datetime.datetime),6,2);
if messagedlg('提示:数据导入每月末进行一次,确定要数据导入吗?',mtWarning,[mbyes,mbno],0)=mryes then
else
exit;
if ddfrm=nil then
//注意从这开始,有//标记的就是调用
application.createform(tddfrm,ddfrm);
//
ddfrm.show;
//
ddfrm.Animate1.CommonAVI := aviFindFile;//
with dm.query1do
begin
close;
ddfrm.label1.Caption:='正在从工资库导入数据(n1...n12),请等待......';
//
ddfrm.label1.update; //
ddfrm.update;
//
ddfrm.Animate1.Active := true;
//
Application.ProcessMessages;
//注意这几行格式不能变
for i:=0 to 1000000000do
//
;
//
sql.clear;
sql.add('insert into bxk (工作证号,原工作证号,姓名)');
sql.add(' (select 工作证号,原工作证号,姓名 from gzk minus');
sql.add(' select 工作证号,原工作证号,姓名 from bxk)');
execsql;
end;
with dm.Query1do
begin
close;
sql.Clear;
sql.add('delete from lsbxj');
execsql;
end;
with dm.Query1do
begin
close;
sql.Clear;
sql.add('insert into lsbxj (工作证号,原工作证号,姓名,b01,b02,b03,b04,b05,b06,b07,b08,b09,b10,ab)');
sql.add(' select 工作证号,原工作证号,姓名,b01,b02,b03,b04,b05,b06,b07,b08,b09,b10,ab from gzk');
execsql;
close;
sql.Clear;
sql.Add('update lsbxj set n=ab+b03+b04+b05+b06+b07+b08+b09+b10');
execsql;
end;
with dm.Query1do
begin
close;
sql.Clear;
m:=copy(datetimetostr(dlfrm.datetime.datetime),6,2);
str:='n'+m;
sql.Add('update bxk set '+str+'=(select n from lsbxj where bxk.原工作证号=lsbxj.原工作证号)');
execsql;
end;
with dm.Query1do
begin
close;
sql.Clear;
sql.Add('update bxk set 参加工作时间=(select 参加工作时间 from zhk where bxk.原工作证号=zhk.原工作证号)');
execsql;
end;
dm.bxktb.Close;
dm.bxktb.Open;
ddfrm.Animate1.Active := false;
//调用结束
ddfrm.hide; //
application.messagebox('数据导入完毕!','提示',
mb_ok+mb_iconinformation);
count;
end;