⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookeditfrm.~pas

📁 基于Interbase的图书管理系统
💻 ~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 + -