📄 readermanage.pas
字号:
cardinfo.AllowNum:=fieldbyname('allownum').AsInteger;
cardinfo.TimeLong:=fieldbyname('timelong').AsInteger;
end;
end;
procedure TReaderForm.ComboBox31KeyPress(Sender: TObject; var Key: Char);
begin
{if speedbutton9.Enabled then
if (key=#13) and (trim((sender as TCombobox).Text)<>'') then
begin
Customshowfield('Cardid',(sender as TCombobox).Text);
if not speedbutton9.Enabled then
combobox4.SetFocus;
End;}
if speedbutton9.Enabled then
if (key=#13) and (trim((sender as TMyCombobox).Text)<>'') then
begin
if not (sender as TMyCombobox).DroppedDown then
begin
Customshowfield('Cardid',(sender as TMyCombobox).Text);
if combobox4.Enabled then
combobox4.SetFocus;
end;
end
else
(sender as TMyCombobox).DroppedDown:=true;
end;
procedure TReaderForm.ComboBox4KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edit2.SetFocus;
key:=#0;
end;
procedure TReaderForm.setedit(value:Boolean);
begin
edit2.Enabled:=value;
edit7.Enabled:=value;
edit13.Enabled:=value;
edit14.Enabled:=value;
edit10.Enabled:=value;
memo2.Enabled:=value;
combobox4.Enabled:=value;
end;
procedure TReaderForm.writefield(test:boolean;fieldname:string;value:variant);
begin
with data.PublicQuery do
begin
if test then
begin
close;
sql.Clear;
sql.add('select * from Lendcardinfo where '+fieldname+'=:value and not Cardid=:cardid');
parameters.parambyname('value').value:=value;
parameters.ParamByName('cardid').Value:=recordmemory;
open;
if recordcount > 0 then
begin
myshowmessage(pchar('你所填写的字段值:'+VarToStr(value)+' 与其他纪录的重复'));
exit;
end;
end;
close;
sql.Clear;
sql.Add('update Lendcardinfo set '+fieldname+'=:value where Cardid=:cardid');
parameters.ParamByName('value').Value:=value;
parameters.ParamByName('cardid').Value:=recordmemory;
execsql;
end;
end;
procedure TReaderForm.SpeedButton10Click(Sender: TObject);
begin
if not speedbutton9.Enabled then
begin //s
speedbutton9.Enabled:=true;
if edit2.Modified then
writefield(false,'name',edit2.Text);
if edit7.Modified then
writefield(false,'ID',edit7.Text);
if edit13.Modified then
writefield(false,'phone',edit13.Text);
if edit14.Modified then
writefield(false,'worker',edit14.Text);
if edit10.Modified then
writefield(false,'live',edit10.Text);
if memo2.Modified then
writefield(false,'Memo',memo2.Text);
writefield(true,'cardid',combobox3.Text);
kindchange;
if imagechanged then
begin
imagetotable;
imagechanged:=false;
end;
speedbutton12.Caption:='&C刷新';
setedit(false);
formshow(self);
end; //s
end;
procedure TreaderForm.kindchange;
begin
with data.PublicQuery do
begin
close;
sql.Clear;
sql.Add('select * from lendcardinfo where cardid=:cardid');
parameters.ParamByName('cardid').Value:=recordmemory;
open;
if combobox4.Text <> fieldbyname('cardkind').asstring then
begin
close;
sql.Clear;
sql.Add('update Lendcardinfo set enddate=:value where Cardid=:cardid');
parameters.ParamByName('value').Value:=EncodeDate((strtoint(formatdatetime('yyyy',date))+(strtoint(formatdatetime('mm',date))+cardinfo.TimeLong) div 12),((strtoint(formatdatetime('mm',date))+cardinfo.TimeLong) mod 12),strtoint(formatdatetime('dd',date)));
parameters.ParamByName('cardid').Value:=recordmemory;
execsql;
writefield(false,'cardkind',combobox4.Text);
close;
sql.Clear;
sql.Add('insert into lendcardrecord values(:CardID,:Worker,:CardKind,:consignDate,:timelong,:Memo)');
parameters.ParamByName('CardID').Value:=recordmemory;
parameters.ParamByName('Worker').Value:=edit14.Text;
parameters.ParamByName('CardKind').Value:=combobox4.Text;
parameters.ParamByName('consignDate').Value:=date;
parameters.ParamByName('Timelong').Value:=cardinfo.TimeLong;
parameters.ParamByName('Memo').Value:=memo2.Text;
execsql;
end;
end;
end;
procedure TReaderForm.imagetotable;
begin
with data.PublicQuery do
begin
close;
sql.Clear;
sql.Add('update lendcardinfo set picture=:value where cardid=:cardid');
parameters.ParamByName('value').Assign(image2.picture);
parameters.ParamByName('cardid').Value:=recordmemory;
execsql;
end;
end;
procedure TReaderForm.Image2Click(Sender: TObject);
begin
if not speedbutton9.Enabled then
begin
if opdialog1.Execute then
begin
try
image2.Picture.LoadFromFile(opdialog1.FileName);
imagechanged:=true;
except
myshowmessage('对不起!图片载入失败');
end;
end;
end;
end;
procedure TReaderForm.SpeedButton12Click(Sender: TObject);
begin
if not speedbutton9.Enabled then
begin
speedbutton9.Enabled:=true;
image2.Picture.Assign(nil);
setedit(false);
speedbutton12.Caption:='&C刷新';
end;
formshow(self);
end;
procedure TReaderForm.SpeedButton14Click(Sender: TObject);
begin
if recordmemory <> '' then
if myshowmessage('您确定要删除本卡的信息吗?') then
begin
with data.PublicQuery do
begin
close;
sql.Clear;
sql.Add('delete from lendcardinfo where cardid=:cardid');
parameters.ParamByName('cardid').Value:=recordmemory;
execsql;
end;
formshow(self);
end;
end;
procedure TReaderForm.SpeedButton15Click(Sender: TObject);
var
sTime:string;
itime:integer;
olddate:TDatetime;
begin
if Inputquery('询问','输入续租的时间以月为单位:',stime) then
begin // input
try
itime:=strtoint(stime);
except
on econverterror do
begin
myshowmessage('对不起!请您输入数字!');
exit;
end;
end; //try
with data.PublicQuery do
begin // with
close;
sql.Clear;
sql.Add('select * from lendcardinfo where cardid=:card');
parameters.ParamByName('card').Value:=recordmemory;
open;
olddate:=fieldbyname('enddate').AsDateTime;
close;
sql.Clear;
sql.Add('update Lendcardinfo set enddate=:value where Cardid=:cardid');
parameters.ParamByName('value').Value:=dateadd(olddate,itime);
parameters.ParamByName('cardid').Value:=recordmemory;
execsql;
close;
sql.Clear;
sql.Add('insert into lendcardrecord values(:CardID,:Worker,:CardKind,:consignDate,:timelong,:Memo)');
parameters.ParamByName('CardID').Value:=recordmemory;
parameters.ParamByName('Worker').Value:=edit14.Text;
parameters.ParamByName('CardKind').Value:=combobox4.Text;
parameters.ParamByName('consignDate').Value:=date;
parameters.ParamByName('Timelong').Value:=itime;
parameters.ParamByName('Memo').Value:=memo2.Text;
execsql;
formshow(self);
end; //with
end; //input
end;
function TreaderForm.Dateadd(Vardate:Tdatetime;varmonth:integer):Tdatetime;
begin
result:=EncodeDate((strtoint(formatdatetime('yyyy',vardate))+(strtoint(formatdatetime('mm',vardate))+varmonth) div 13),((strtoint(formatdatetime('mm',vardate))+varmonth) div 13+(strtoint(formatdatetime('mm',vardate))+varmonth) mod 13),strtoint(formatdatetime('dd',vardate)))
end;
procedure TReaderForm.SpeedButton16Click(Sender: TObject);
var
stopdate,dateold:Tdatetime;
itimelong:integer;
stimelong:string;
begin
if speedbutton16.Caption='&P报停' then
begin // setstop
if inputboxshow('是否确认报停此卡?','报停时间长度',stimelong) then
begin
try
itimelong:=strtoint(stimelong);
except
myshowmessage('请输入数字!');
exit;
end;
with data.PublicQuery do
begin
close;
sql.Clear;
sql.Add('select * from lendcardinfo where cardid=:cardid');
parameters.ParamByName('cardid').Value:=recordmemory;
open;
close;
sql.Clear;
sql.Add('select * from lendcardinfo where cardid=:cardid');
parameters.ParamByName('cardid').Value:=recordmemory;
open;
dateold:=fieldbyname('enddate').AsDateTime;
close;
sql.Clear;
sql.Add('update lendcardinfo set usesing=0,stoptime=:timelong,stopdate=:stopdate,enddate=:enddate where cardid=:cardid');
parameters.ParamByName('cardid').Value:=recordmemory;
parameters.ParamByName('timelong').Value:=itimelong;
parameters.ParamByName('stopdate').Value:=date;
parameters.ParamByName('enddate').Value:=dateadd(dateold,itimelong);
execsql;
end;
formshow(self);
end;
end //setstop
else
begin //restore
if myshowmessage('是否确认恢复此卡?') then
begin
with data.PublicQuery do
begin
close;
sql.Clear;
sql.Add('select * from lendcardinfo where cardid=:cardid');
parameters.ParamByName('cardid').Value:=recordmemory;
open;
dateold:=fieldbyname('enddate').AsDateTime;
itimelong:=fieldbyname('stoptime').asinteger;
stopdate:=fieldbyname('stopdate').AsDateTime;
dateold:=dateold-(round(dateadd(stopdate,itimelong)-date));
if dateold<=date then
begin
myshowmessage('此卡已经过期!请续费!');
exit;
end
else
begin
close;
sql.Clear;
sql.Add('update lendcardinfo set usesing=1,enddate=:olddate where cardid=:cardid');
parameters.ParamByName('cardid').Value:=recordmemory;
parameters.ParamByName('olddate').Value:=dateold;
execsql;
end;
end;
formshow(self);
end;
end; //restore
end;
procedure TReaderForm.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
edit7.SetFocus;
end;
end;
procedure TReaderForm.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
edit13.SetFocus;
end;
end;
procedure TReaderForm.Edit11KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
combobox2.SetFocus;
end;
end;
procedure TReaderForm.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
edit1.SetFocus;
end;
end;
procedure TReaderForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
edit12.SetFocus;
end;
end;
procedure TReaderForm.Edit12KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
edit5.SetFocus;
end;
end;
procedure TReaderForm.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
edit6.SetFocus;
end;
end;
procedure TReaderForm.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
memo1.SetFocus;
end;
end;
procedure TReaderForm.Edit13KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edit14.SetFocus;
end;
procedure TReaderForm.Edit14KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edit10.SetFocus;
end;
procedure TReaderForm.Edit10KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
memo2.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -