有做过考勤系统的请帮助(50分)

  • 主题发起人 主题发起人 qgz
  • 开始时间 开始时间
Q

qgz

Unregistered / Unconfirmed
GUEST, unregistred user!
在卡钟资料转成考勤资料的的过程中,产生1000笔考勤资料需9分钟,有何方法可加快速度
 
大虾,你的考勤系统用到钟表,日历控件了吧?
有比较酷的控件吗?
:)
 
我的只要1分钟
 
加載到TStringlist比較快
 
luyer,
把你的方法说来听听!
 
划个程序流程图出来再考虑优化就容易的多了。
我的大约30多秒。
 
对数据索引后再进行统计,速度会快很多.
 
我想知道這個方式,請修改我的程序:
www.playicq.com->源碼->數據庫->人事考勤管理系統源代碼
hpj168@hotmail.com
 
procedure Tfrm_zhsksj.BitBtn2Click(Sender: TObject);
var
i:integer;
s1:tstringlist;
begin
s1:=tstringlist.Create ;
try
s1.LoadFromFile(edit1.text);
progressbar1.Max:=s1.Count;
progressbar1.Position:=0;
for i:=0 to s1.Count-1 do
begin
with dmconnectiondb.adoqskjl do
begin
close;
sql.Clear;
sql.Add('insert into k_skjl');
sql.Add('values');
sql.Add('(:kh,:kzbh,:skdate,:sktime,:remark)');
parameters.ParamByName('kh').Value:=copy(s1,4,4);
parameters.ParamByName('kzbh').Value:=copy(s1,14,1);
parameters.ParamByName('skdate').Value:=copy(s1,14,4)+'-'+copy(s1,18,2)+'-'+copy(s1,20,2);
parameters.ParamByName('sktime').Value:=copy(s1,22,2)+':'+copy(s1,24,2);
parameters.ParamByName('remark').Value:=copy(s1,26,2);
execsql;
progressbar1.Position:=progressbar1.Position+1;
end;
end;
messagebox(handle,'卡鐘數据已經成功轉換為TABLE表','計算机提醒您﹗',mb_iconinformation+mb_ok);
except
begin
messagebox(handle,'請指定卡鐘數据文件的位置﹗','計算机提醒您﹗',mb_iconinformation+mb_ok);
end;
end;

卡鐘數据﹕
0003996 200301141703F0
0003996 200301141703F0
0007078 200301141703F0
0007047 200301141703F0
0004899 200301141703F0
0007078 200301141703F0
0005068 200301141703F0
0005068 200301141703F0
0003854 200301141703F0
0003786 200301141703F0
0004637 200301141703F0
0004637 200301141703F0
0004573 200301141703F0
0004862 200301141703F0
0000097 200301141703F0
0000097 200301141703F0
0004573 200301141703F0
0004637 200301141703F0
0006970 200301141703F0
0004624 200301141703F0
0007046 200301141703F0
0007046 200301141703F0
0006945 200301141703F0
0005218 200301141703F0
0005218 200301141703F0
0005972 200301141703F0
0007042 200301141703F0
0007042 200301141703F0
0000387 200301141703F0
0006843 200301141703F0
0005615 200301141703F0
0003642 200301141703F0
0000671 200301141703F0
0006905 200301141703F0

我的只要几十秒鐘就可以了﹗

 
后退
顶部