📄 bookeditfrm.~pas
字号:
unit bookeditfrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, editchildfrm, StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids,
DBGrids, Mask, ComCtrls, Menus;
type
TBookEditForm = class(TEditChildForm)
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
DBEdit6: TDBEdit;
DBMemo1: TDBMemo;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBGbook: TDBGrid;
procedure FormDestroy(Sender: TObject);
procedure DBEdit4KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure BBinsertClick(Sender: TObject);
procedure BBeditClick(Sender: TObject);
procedure BBdeleteClick(Sender: TObject);
procedure BBsaveClick(Sender: TObject);
procedure BBfirstClick(Sender: TObject);
procedure BBpriorClick(Sender: TObject);
procedure BBnextClick(Sender: TObject);
procedure BBlastClick(Sender: TObject);
procedure BBcancelClick(Sender: TObject);
procedure DBEdit4Exit(Sender: TObject);
procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit5KeyPress(Sender: TObject; var Key: Char);
procedure BBsearchClick(Sender: TObject);
procedure DBEdit3Exit(Sender: TObject);
procedure DBEdit7Exit(Sender: TObject);
procedure DBEdit8Exit(Sender: TObject);
private
{ Private declarations }
public
procedure SetNavButtons;
procedure setBdeditReadonly;
{ Public declarations }
end;
var
BookEditForm: TBookEditForm;
implementation
uses dmfrm, findfrm;
{$R *.dfm}
var
old_number,tnumber:integer;
tmpbook_id:string;
procedure TBookEditForm.FormDestroy(Sender: TObject);
begin
inherited;
BookEditForm:=nil;
end;
procedure TBookEditForm.DBEdit4KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then DBEdit8.SetFocus ;
if not (key in ['0'..'9',#8]) then
begin
key:=#0;
beep;
end;
end;
procedure TBookEditForm.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then begin
if TDBEdit(sender)=DBEdit3 then DBEdit7.SetFocus;
if TDBEdit(sender)=DBEdit7 then DBEdit4.SetFocus;
if TDBEdit(sender)=DBEdit8 then DBMemo1.SetFocus;
exit;
end;
if not (key in ['0'..'9','.',#8]) then
begin
key:=#0;
beep;
end;
end;
procedure TBookEditForm.FormShow(Sender: TObject);
begin
inherited;
dmbook.closebook;
dmbook.openbook;
dmbook.bookfirst;
FormMode:=fmBrowse;
setBdeditReadonly;
end;
procedure TBookEditForm.BBinsertClick(Sender: TObject);
begin
inherited;
DBGbook.Enabled:=false;
setBdeditReadonly;
dmbook.bookinsert;
DBEdit1.SetFocus;
end;
procedure TBookEditForm.BBeditClick(Sender: TObject);
begin
inherited;
if dmbook.Qrybook['book_number']<>dmbook.Qrybook['book_reside'] then
begin
messagedlg('不能修改这本书记录,该书已经有人在借!'+#13#10
+'如果修改了,有可能造成借书记录与书库记录不对应!',mtWarning,[mbOK],0);
BBcancelClick(Sender);//回到浏览状态
exit;
end;
DBGbook.Enabled:=false;
setBdeditReadonly;
dmbook.bookedit;
tmpbook_id:=DBEdit1.Text;
if DBEdit4.Text=emptystr then
begin
DBEdit4.Text:='0';
old_number:=strtoint(DBEdit4.Text);
DBEdit4.Clear;
end
else old_number:=strtoint(DBEdit4.Text);
if DBEdit9.Text=emptystr then DBEdit9.Text:='0';
tnumber:=old_number-strtoint(DBEdit9.Text);
DBEdit1.SetFocus;
end;
procedure TBookEditForm.BBdeleteClick(Sender: TObject);
begin
inherited;
if dmbook.Qrybook['book_number']<>dmbook.Qrybook['book_reside'] then
begin
messagedlg('不能删除这本书记录,该书已经有人在借!',mtWarning,[mbOK],0);
exit;
end;
if bookConfirmation('你要删除这本书记录吗?')=mrYes then
begin
dmbook.bookdelete;
dmbook.bookaccept;
end;
end;
procedure TBookEditForm.BBsaveClick(Sender: TObject);
begin
if DBEdit1.Text=Emptystr then
begin
bookInformation('请输入书号!');
DBEdit1.SetFocus;
exit;
end;
if DBEdit5.Text=Emptystr then
begin
bookInformation('请输入书名!');
DBEdit5.SetFocus;
exit;
end;
if DBEdit3.Text=Emptystr then
begin
bookInformation('请输入书价!');
DBEdit3.SetFocus;
exit;
end;
if DBEdit4.Text=Emptystr then
begin
bookInformation('请输入入库数量!');
DBEdit4.SetFocus;
exit;
end;
if FormMode=fmEdit then
begin
if DBEdit1.Text<>tmpbook_id then
if dmbook.bookISexists(DBEdit1.Text) then
begin
bookInformation('该书号在数据库中已经存在!');
DBEdit1.SetFocus;
exit;
end;
end
else begin
if dmbook.bookISexists(DBEdit1.Text) then
begin
bookInformation('该书号在数据库中已经存在!');
DBEdit1.SetFocus;
exit;
end;
end;
inherited;
DBGbook.Enabled:=true;
setBdeditReadonly;
dmbook.bookaccept;
end;
procedure TBookEditForm.BBfirstClick(Sender: TObject);
begin
inherited;
dmbook.bookfirst;
SetNavButtons;
end;
procedure TBookEditForm.BBpriorClick(Sender: TObject);
begin
inherited;
dmbook.bookprior;
SetNavButtons;
end;
procedure TBookEditForm.BBnextClick(Sender: TObject);
begin
inherited;
dmbook.booknext;
SetNavButtons;
end;
procedure TBookEditForm.BBlastClick(Sender: TObject);
begin
inherited;
dmbook.booklast;
SetNavButtons;
end;
procedure TBookEditForm.BBcancelClick(Sender: TObject);
begin
inherited;
dmbook.bookcancel;
DBGbook.Enabled:=true;
setBdeditReadonly;
end;
procedure TBookEditForm.DBEdit4Exit(Sender: TObject);
begin
inherited;
if tnumber>strtoint(DBEdit4.Text) then
begin
bookInformation('入库数量不能小于借出数量'+inttostr(tnumber));
DBEdit4.setFocus;
exit;
end;
DBEdit9.Text:=inttostr(strtoint(DBEdit9.Text)+strtoint(DBEdit4.Text)-old_number);
old_number:=strtoint(DBEdit4.Text);
dmbook.Qrybook['book_reside']:=DBEdit9.Text;
end;
procedure TBookEditForm.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then DBEdit5.SetFocus;
if not(key in ['a'..'z','A'..'Z','0'..'9','-',#8]) then
begin
key:=#0;
beep;
end;
if (key in ['a'..'z']) then key:=chr(ord(key)-32);
end;
procedure TBookEditForm.DBEdit5KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then
begin
if TDBEdit(sender)=DBEdit5 then DBEdit2.SetFocus;
if TDBEdit(sender)=DBEdit2 then DBEdit6.SetFocus;
if TDBEdit(sender)=DBEdit6 then DBEdit3.SetFocus;
end;
end;
procedure TBookEditForm.BBsearchClick(Sender: TObject);
begin
inherited;
if not assigned(findform) then
findform:=tfindform.create(self);
try
if findform.ShowModal=mrOk then
begin
try
if not dmbook.bookfind(findform.Edfind.text) then
bookInformation('没有找到!');
except
end;
end;
finally
findform.Free;
findform:=nil;
end;
end;
procedure TBookEditForm.DBEdit3Exit(Sender: TObject);
begin
inherited;
if DBEdit3.Text=emptystr then DBEdit3.Text:='00.00';
end;
procedure TBookEditForm.DBEdit7Exit(Sender: TObject);
begin
inherited;
if DBEdit7.Text=emptystr then DBEdit7.Text:=datetostr(now);
end;
procedure TBookEditForm.DBEdit8Exit(Sender: TObject);
begin
inherited;
if DBEdit8.Text=emptystr then DBEdit8.Text:=datetostr(now);
end;
procedure TBookEditForm.SetNavButtons;
begin
bbFirst.Enabled := not dmbook.IsFirst('book');
bbLast.Enabled := not dmbook.IsLast('book');
bbPrior.Enabled := not dmbook.IsFirst('book');
bbNext.Enabled := not dmbook.IsLast('book');
end;
procedure TBookEditForm.setBdeditReadonly;
procedure setBrowseBdedit;
begin
DBEdit1.ReadOnly:=true;
DBEdit2.ReadOnly:=true;
DBEdit3.ReadOnly:=true;
DBEdit4.ReadOnly:=true;
DBEdit5.ReadOnly:=true;
DBEdit6.ReadOnly:=true;
DBEdit7.ReadOnly:=true;
DBEdit8.ReadOnly:=true;
DBEdit9.ReadOnly:=true;
DBMemo1.ReadOnly:=true;
end;
procedure setinsertBdedit;
begin
DBEdit1.ReadOnly:=false;
DBEdit2.ReadOnly:=false;
DBEdit3.ReadOnly:=false;
DBEdit4.ReadOnly:=false;
DBEdit5.ReadOnly:=false;
DBEdit6.ReadOnly:=false;
DBEdit7.ReadOnly:=false;
DBEdit8.ReadOnly:=false;
DBEdit9.ReadOnly:=false;
DBMemo1.ReadOnly:=false;
end;
begin
case bookeditform.FormMode of
fmBrowse:setBrowseBdedit;
fmInsert:setinsertBdedit;
fmEdit:setinsertBdedit;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -