{************************
--卡钟原始记录表
create table cardOrg
(
yearMonthDay varchar(12) , --格式:yyyymmdd
CardNo varchar(10), --卡号
itime varchar(10),--打卡时间 hh:mm:ss
machineNo varchar(8),
iStatus varchar(8),
itype varchar(8)
)
go
说明:从TXT 文件导入打卡原始资料到 MSSQL 数据库中,
完成导入功能。
create date:2009-01-04
finished date :200-01-04
update date:
author: Sam
finish status:finish
*************************}
unit Uimport;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TImportForm = class(TForm)
FilePathEdt: TEdit;
OpenBtn: TButton;
Label1: TLabel;
importOpenDialog: TOpenDialog;
importDataBtn: TButton;
ProgressBar: TProgressBar;
procedure OpenBtnClick(Sender: TObject);
procedure importDataBtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ImportForm: TImportForm;
implementation
uses dm;
{$R *.dfm}
procedure TImportForm.OpenBtnClick(Sender: TObject);
begin //打开文件,获取文件路径。
if importopendialog.Execute then
begin
filePathEdt.Text:=importOpenDialog.FileName;
end;
end;
procedure TImportForm.importDataBtnClick(Sender: TObject);
var
CardStr:string;
ctxt:TextFile;
size:longInt;
begin
AssignFile(ctxt,filePathEdt.text);
// E:学习HRMData2009-012009-01-04.txt
reset(cTxt); // read only
size:=filesize(cTxt);
if size=0 then
begin
showmessage('Sorry,卡钟已无数据可提交处理!');
closefile(cTxt);
system.exit;
end;
ProgressBar.Min:=0;
ProgressBar.Max:=size ;
ProgressBar.Step:=1 ;
udm.Qry_cardOrg.Active:=true;
while not Eof(ctxt) do
begin
ReadLn(cTxt,CardStr);
udm.Qry_cardOrg.Append;
// 20080826 2130 007144 01
udm.Qry_cardOrg['cardNo']:=copy(cardStr,13,6);
udm.Qry_cardOrg['yearMonthDay']:=copy(cardStr,1,8);
udm.Qry_cardOrg['itime']:=copy(cardStr,9,2)+':'+copy(cardStr,11,2);
udm.Qry_cardOrg['cardNo']:=copy(cardStr,13,6);
udm.Qry_cardOrg['machineNo']:=copy(cardStr,19,2);
udm.Qry_cardOrg['iType']:='0';
udm.Qry_cardOrg['iStatus']:='0';
udm.Qry_cardOrg.Post;
progressBar.StepIt;
end;
closeFile(cTxt);
ShowMessage('您已经成功地进行卡钟处理');
end;
procedure TImportForm.FormCreate(Sender: TObject);
begin
filePathEdt.Text:='';
end;
end.