📄 formdorset.pas
字号:
end;
end;
end
else
msg.Caption:='没有刷卡';
end;
end;
function Tformdoorset.OpenPort(pclk: PClockInfo): Boolean;
var
i: Integer;
R: Boolean;
SaveCursor: TCursor;
begin
Result:=False;
SaveCursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
msg.Caption := Format(SOyOUAOSS, [pclk.Port, pclk.clock_id]);
msg.Update;
if not CheckHandle(pclk.hPort) then
begin
pclk.Connected := False;
pclk.hPort := OpenCommPort(pclk.Port, pclk.BaudRate);
if CheckHandle(pclk.hPort) then
begin
if pclk.clock_type<>0 then
SetClockModel(pclk.hPort, pclk.Model, pclk.Fireware, pclk.cls)
else
begin
SetCmdVerify(False);
end;
if not CallClock(pclk.hPort, pclk.clock_id) then
begin
CloseHandle(pclk.hPort);
pclk.hPort:=0;
Result:=False;
end else
begin
Result:=True;
end;
end;
if Result and CheckHandle(pclk.hPort) then
begin
// edInspector.Caption := SAU;
msg.Caption := SAOE;
if pclk.clock_type<>0 then
begin
SetClockModel(pclk.hPort, pclk.Model, pclk.Fireware, pclk.cls);//自动识别
// SetCmdVerify(pclk.CmdVerify);
end else
begin
GetClockModel(pclk.hPort, pclk.Model, pclk.Fireware, pclk.cls);
pclk.VerOrd:=GetClockVersionOrd(pclk.hPort);
end;
end
else if pclk.hPort=INVALID_HANDLE_VALUE then//端口无效或正在使用
begin
Result:=False;
pclk.hPort := 0;
// edInspector.Caption := SINU;
msg.Caption := format(SISSOEUCOMD, [pclk.Port]);
end
else
begin
// edInspector.Caption := SINU;
msg.Caption := format(SISSAOEeSS, [pclk.Port, pclk.clock_id]);
end;
end
else{ if CheckConnectClock(hPort, pclk.clock_id) then}
begin
msg.Caption := SAOOK;
Result := True;
end;
pclk.Connected := CheckHandle(pclk.hPort);
i:=0;
if i<>-1 then
begin
if Result then
begin
if pclk.Model=0 then
else
end
else
end;
if Is780(pclk.Model) then
begin
end else
begin
end;
if Is880(pclk.Model) then
begin
end else
begin
end;
R:=GetClockSupports(pclk.hPort, fiConsumption);
finally
Screen.Cursor := SaveCursor;
msg.Update;
end;
end;
procedure Tformdoorset.ClosePort(pclk: PClockInfo);
begin
if Assigned(pclk) then
begin
if (pclk.hPort<>0)and(pclk.hPort<>INVALID_HANDLE_VALUE) then
EastRiver.DisConnectClock(pclk.hPort);
pclk.hPort := 0;
pclk.Connected:=False;
end;
end;
procedure Tformdoorset.ToolButton11Click(Sender: TObject);
var cardno1: array[0..17] of char;
begin
if GetCardOnReader(clk.hport,clk.clock_id,@cardinfo) then
begin
showmessage(cardinfo.CardNo);
end;
end;
procedure Tformdoorset.ToolButton4Click(Sender: TObject);
begin
close;
end;
procedure Tformdoorset.ToolButton5Click(Sender: TObject);
begin
case pagecontrol1.ActivePageIndex of
2:
begin
ADorInit.close;
ADorInit.Filtered:=false;
ADorInit.commandtext:='select * from dor01 order by times,reReader,dept ';
ADorInit.open;
end;
3:
begin
ADorday.Close;
ADorday.Filtered:=false;
ADorday.CommandText:='select * from dor02 order by dept,rq';
ADorday.Open;
adorday1.Close;
adorday1.Open;
end;
4:
begin
Adormonthy.Close;
Adormonthy.Open;
Adormonthy1.close;
Adormonthy1.Open;
end;
end;
end;
procedure Tformdoorset.tbnfindClick(Sender: TObject);
begin
if assigned(formcanfind) then formcanfind.close;
begin
case pagecontrol1.ActivePageIndex of
2:
findrecorder(ADorInit,'ADorInit','dor01'); //调用publicfuction中的查询功能
3:findrecorder(ADorday,'ADorday','dor02');
4:findrecorder(ADormonthy,'ADormonthy','dor03');
end;
end;
end;
procedure Tformdoorset.DBGrid4TitleClick(Column: TColumn);
begin
if s='ASC' then
s:='DESC'
else
s:='ASC';
ADorday.Sort:=column.FieldName+ ' '+s;
Adorday1.Sort:=column.FieldName+' '+s;
end;
procedure Tformdoorset.ComboBox6Change(Sender: TObject);
begin
ADorday.Close;
if combobox6.Text='全部' then
ADorday.CommandText:='select * from dor02 '
else
ADorday.CommandText:='select * from dor02 where dept='''+combobox6.Text+'''';
ADorday.Open;
end;
procedure Tformdoorset.Edit3Exit(Sender: TObject);
begin
if (MaskEdit4.Text<>' / / ')and (MaskEdit5.Text<>' / / ')and (Edit3.Text='')then
begin
ADorday.Close;
ADorday.CommandText:='select * from dor02 where convert(varchar,rq,111) between '''+MaskEdit4.Text+''' and '''+MaskEdit5.Text+''' group by workno,rq order by rq,workno desc';
ADorday.Open;
end;
///////////////////
if (MaskEdit4.Text<>' / / ')and(MaskEdit5.Text<>' / / ')and(Edit3.Text<>'')then
begin
ADorday.Close;
ADorday.CommandText:='Select * from dor02 where convert(varchar,rq,111) between '''+MaskEdit4.Text+''' and '''+MaskEdit5.Text+''' and (cardno='''+Edit3.Text+''' or workno='''+Edit3.Text+''' or name='''+Edit3.Text+''' or dept='''+Edit3.Text+''') order by rq desc';
ADorday.Open;
end
else
if (Edit3.Text<>'')and (MaskEdit4.Text=' / / ') and (MaskEdit5.Text=' / / ')then
begin
ADorday.Close;
ADorday.CommandText:='Select * from dor02 where cardno='''+Edit3.Text+''' or workno='''+Edit3.Text+''' or name='''+Edit3.Text+''' or dept='''+Edit3.Text+''' order by dept,workno,rq';
ADorday.open;
end;
end;
procedure Tformdoorset.ToolButton6Click(Sender: TObject);
begin
with Datamod do
begin
case pagecontrol1.ActivePageIndex of
3:begin
if (maskedit4.text<>' / / ') and (maskedit5.text<>' / / ') then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
AdoQuery1.SQL.Add('Delete dor02 where convert(varchar,rq,111) between'''+MaskEdit4.Text+''' and '''+MaskEdit5.Text+''' ');
AdoQuery1.sql.add('insert into dor02(workno,cardno,name,dept,rq,daytimes)' );
AdoQuery1.sql.add(' select workno,cardno,max(name) name ,max(dept) dept,max(convert(varchar,times,111)) rq , count(times) times from dor01 ');
AdoQuery1.sql.add(' where convert(varchar,times,111) between '''+maskedit4.Text+''' and '''+maskedit5.text+''' group by workno,cardno ');
try
ADOQuery1.ExecSQL;
Adorday.Close;
Adorday.Open;
Adorday1.Close;
Adorday1.Open;
showmessage('汇总成功!!!');
except
begin
messagedlg('日汇总失败!!!',mtinformation,[mbOK],0);
exit;
end;
end;
end
else
showmessage('请输入要汇总的开始日期,与结束日期!!!,谢谢');
end;
4:
begin
if maskedit3.Text<>' / / ' then
begin
Adoquery1.Close;
Adoquery1.SQL.Clear;
Adoquery1.SQL.Add('delete dor03 where monthy='''+maskedit3.Text+''' ');
Adoquery1.SQL.Add('insert into dor03(workno,cardno,dept,name,monthycount,monthy)');
Adoquery1.SQL.Add('select workno,cardno,max(dept),max(name),sum(daytimes),max(left(rq,7)) from dor02 where left(rq,7)='''+maskedit3.text+''' group by workno,cardno ');
try
Adoquery1.ExecSQL;
Adormonthy.Close;
Adormonthy.Open;
Adormonthy1.Close;
Adormonthy1.Open;
showmessage('月汇总成功!!!');
Adoquery1.Close;
except
begin
messagedlg('月汇总失败!!!',mtinformation,[mbOK],0);
exit;
end;
end;
end;
end
else
begin
showmessage('请输入汇总的月份,谢谢');
exit;
end;
end;
end;
end;
procedure Tformdoorset.DateTimePicker1Exit(Sender: TObject);
begin
maskedit4.text:=formatdatetime('yyyy/mm/dd',datetimepicker1.date);
end;
procedure Tformdoorset.DateTimePicker2Exit(Sender: TObject);
begin
maskedit5.text:=formatdatetime('yyyy/mm/dd',datetimepicker2.date);
end;
procedure Tformdoorset.Label28Click(Sender: TObject);
begin
shellexecute(handle,'open',pchar('mailto:dyh@chinapasa.com'),nil,nil,SW_SHOWNORMAL);
msg.caption:='联系我们';
end;
procedure Tformdoorset.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
selectnext(activecontrol,true,true);
end;
end;
procedure Tformdoorset.toolbutton(sender: tobject);
var
a:integer;
begin
for a:=0 to self.ComponentCount-1 do
begin
if components[a].ClassType=TToolbutton then
TToolbutton(Self.Components[a]).enabled:=false;
end;
ToolButton4.Enabled:=true; //退出
ToolButton1.Enabled:=true;//资料维护
end;
procedure Tformdoorset.ADorInitBeforeScroll(DataSet: TDataSet);
begin
if Adorinitphoto.AsString<>'' then
begin
image3.Picture.LoadFromFile(Adorinitphoto.asstring);
label38.Visible:=false;
end
else
label38.Visible:=true;
end;
procedure Tformdoorset.ToolButton2Click(Sender: TObject);
begin
if panel6.Visible=false then
panel6.Visible:=true
else
panel6.Visible:=false;
end;
procedure Tformdoorset.DBGrid1TitleClick(Column: TColumn);
begin
if s='ASC' then
s:='DESC'
else
s:='ASC';
Adorinit.Sort:=column.FieldName+ ' '+s;
end;
procedure Tformdoorset.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if ADorInitreReader.AsInteger=1 then
dbgrid1.Canvas.Font.Color:=clNavy //读头1
else
if ADorInitreReader.AsInteger=2 then
dbgrid1.Canvas.Font.Color:=clred;
dbgrid1.DefaultDrawColumnCell(rect,DataCol,column,state);
end;
procedure Tformdoorset.tbnprintClick(Sender: TObject);
begin
if not assigned(doorprint) then
doorprint:=Tdoorprint.create(self);
doorprint.ShowModal;
end;
procedure Tformdoorset.BitBtn2Click(Sender: TObject);
var i:string;
begin
if messagedlg('注意:移除前,请确认为已无效的数据'+#13+'是否要进行移除',mtinformation,[mbyes,mbno],0)=mryes then
begin
Animate2.Active:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
label41.Caption:='正在移除资料,请稍後........';
label41.Visible:=true;
label41.Update;
adoquery1.SQL.text:='exec bkdoor ''1'','''+formatdatetime('yyyy/mm/dd',DateTimePicker5.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker6.datetime)+'''';
try
adoquery1.ExecSQL;
except
;
end;
label41.Caption:='移除完毕';
label41.Update;
ADorInit.close;
ADorInit.commandtext:='select * from dor01 order by dept,workno ';
ADorInit.Open;
messagedlg('移除成功,谢谢使用!!!!',mtinformation,[mbok],0);
Animate2.Active:=false;
label41.Visible:=false;
end;
end;
procedure Tformdoorset.BitBtn3Click(Sender: TObject);
var i:string;
begin
if messagedlg('注意:是否进行还原!!!!',mtinformation,[mbyes,mbno],0)=mryes then
begin
Animate2.Active:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
label41.Caption:='正在还原资料,请稍後........';
label41.Visible:=true;
label41.Update;
adoquery1.SQL.text:='exec bkdoor ''0'','''+formatdatetime('yyyy/mm/dd',DateTimePicker5.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker6.datetime)+'''';
try
adoquery1.ExecSQL;
except
;
end;
label41.Caption:='还原完毕';
label41.Update;
ADorInit.close;
ADorInit.commandtext:='select * from dor01 order by dept,workno ';
ADorInit.Open;
messagedlg('还原成功,谢谢使用!!!!',mtinformation,[mbok],0);
Animate2.Active:=false;
label41.Visible:=false;
end;
end;
procedure Tformdoorset.ToolButton1Click(Sender: TObject);
begin
panel10.Visible:=true;
datetimepicker5.SetFocus;
end;
procedure Tformdoorset.BitBtn1Click(Sender: TObject);
begin
panel10.visible:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -