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

📄 readereditfrm.pas

📁 基于Interbase的图书管理系统
💻 PAS
字号:
unit readereditfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, editchildfrm, StdCtrls, Buttons, ExtCtrls, DBCtrls, Mask, Grids,
  DBGrids, Menus;

type
  TReaderEditForm = class(TEditChildForm)
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    Label5: TLabel;
    DBEdit5: TDBEdit;
    Label6: TLabel;
    DBImage1: TDBImage;
    DBGreader: TDBGrid;
    procedure FormDestroy(Sender: TObject);
    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 DBEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit5Exit(Sender: TObject);
    procedure BBsearchClick(Sender: TObject);
  private
    { Private declarations }
  public
     procedure seteditReadonly;
     procedure SetRNavButtons;
       { Public declarations }
  end;

var
  ReaderEditForm: TReaderEditForm;

implementation
uses dmfrm, searchfrm;
{$R *.dfm}
var
 tmpreaderid:string;
 tmpworkno:string;
procedure TReaderEditForm.FormDestroy(Sender: TObject);
begin
  inherited;
 ReaderEditForm:=nil;
end;

procedure TReaderEditForm.FormShow(Sender: TObject);
begin
  inherited;
  dmbook.closereader;
  dmbook.openreader;
  dmbook.readerfirst;
  FormMode:=fmBrowse;
  seteditReadonly;
end;

procedure TReaderEditForm.BBinsertClick(Sender: TObject);
begin
  inherited;
 DBGreader.Enabled:=false;
  seteditReadonly;
  dmbook.readerinsert;
  DBEdit1.SetFocus;
end;

procedure TReaderEditForm.BBeditClick(Sender: TObject);
begin
  inherited;
if dmbook.getborrowedbook(DBEdit1.Text)<>emptystr then
  begin
messagedlg('不能修改这个读者记录,该读者借有书!'+#13#10
+'如果修改了,有可能造成借书记录与读者库不对应!',mtWarning,[mbOK],0);
BBcancelClick(Sender); //回到浏览状态
  exit;
  end;
  DBGreader.Enabled:=false;
  seteditReadonly;
  dmbook.readeredit;
  tmpreaderid:=DBEdit1.Text;
  tmpworkno:=DBEdit2.Text;
  DBEdit1.SetFocus;
end;

procedure TReaderEditForm.BBdeleteClick(Sender: TObject);
begin
  inherited;
 if dmbook.getborrowedbook(DBEdit1.Text)<>emptystr then
  begin
   messagedlg('不能删除这个读者记录,该读者借有书!',mtWarning,[mbOK],0);
   exit;
  end;
if bookConfirmation('你要删除这个读者记录吗?')=mrYes then
  begin
 dmbook.readerdelete;
 dmbook.readeraccept;
  end;
end;

procedure TReaderEditForm.BBsaveClick(Sender: TObject);
begin
if DBEdit1.Text=Emptystr then
 begin
  bookInformation('请输入借书证号!');
  DBEdit1.SetFocus;
  exit;
 end;
if DBEdit2.Text=Emptystr then
 begin
  bookInformation('请输入工号!');
  DBEdit2.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 DBEdit5.Text='    -  -  ' then
 begin
  bookInformation('请输入办证日期!');
  DBEdit5.SetFocus;
  exit;
 end;
if FormMode=fmEdit then
 begin
 if DBEdit1.text<>tmpreaderid then
  if dmbook.ReaderISexists(DBEdit1.text,'0') then
   begin
     bookInformation('该证号在数据库中已经存在!'+#13+'请重新编号。');
     DBEdit1.SetFocus;
     exit;
    end;
  if DBEdit2.text<>tmpworkno then
   if dmbook.ReaderISexists(DBEdit1.text,DBEdit2.text) then
    begin
          bookInformation('他已经办了借书证!');
         DBEdit2.SetFocus;
          exit;
     end;
 end
 else begin
         if dmbook.ReaderISexists(DBEdit1.text,'0') then
   begin
     bookInformation('该证号在数据库中已经存在!'+#13+'请重新编号。');
     DBEdit1.SetFocus;
     exit;
    end;
    if dmbook.ReaderISexists(DBEdit1.text,DBEdit2.text) then
    begin
          bookInformation('他已经办了借书证!');
          DBEdit2.SetFocus;
          exit;
     end;
      end;
   inherited;
  DBGreader.Enabled:=true;
  seteditReadonly;
  dmbook.readeraccept;
end;

procedure TReaderEditForm.seteditReadonly;
procedure setBrowseBdedit;
  begin
   DBEdit1.ReadOnly:=true;
   DBEdit2.ReadOnly:=true;
   DBEdit3.ReadOnly:=true;
   DBEdit4.ReadOnly:=true;
   DBEdit5.ReadOnly:=true;
   DBImage1.ReadOnly:=true;
   end;
  procedure setinsertBdedit;
  begin
   DBEdit1.ReadOnly:=false;
   DBEdit2.ReadOnly:=false;
   DBEdit3.ReadOnly:=false;
   DBEdit4.ReadOnly:=false;
   DBEdit5.ReadOnly:=false;
   DBImage1.ReadOnly:=true;
  end;
begin
 case readereditform.FormMode of
 fmBrowse:setBrowseBdedit;
 fmInsert:setinsertBdedit;
 fmEdit:setinsertBdedit;
 end;
end;

procedure TReaderEditForm.BBfirstClick(Sender: TObject);
begin
  inherited;
dmbook.readerfirst;
SetRNavButtons;
end;

procedure TReaderEditForm.BBpriorClick(Sender: TObject);
begin
  inherited;
dmbook.readerprior;
SetRNavButtons;
end;

procedure TReaderEditForm.BBnextClick(Sender: TObject);
begin
  inherited;
dmbook.readernext;
SetRNavButtons;
end;

procedure TReaderEditForm.BBlastClick(Sender: TObject);
begin
  inherited;
dmbook.readerlast;
SetRNavButtons;
end;

procedure TReaderEditForm.BBcancelClick(Sender: TObject);
begin
  inherited;
dmbook.readercancel;
DBGreader.Enabled:=true;
seteditReadonly;
end;

procedure TReaderEditForm.SetRNavButtons;
begin
  bbFirst.Enabled := not dmbook.IsFirst('reader');
  bbLast.Enabled  := not dmbook.IsLast('reader');
  bbPrior.Enabled  := not dmbook.IsFirst('reader');
  bbNext.Enabled  := not dmbook.IsLast('reader');
end;

procedure TReaderEditForm.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
if key=#13 then begin
               if TDBEdit(sender)=DBEdit1 then DBEdit2.SetFocus;
               if TDBEdit(sender)=DBEdit2 then DBEdit3.SetFocus;
               exit;
              end;
if not (key in ['0'..'9','.',#8]) then
 begin
  key:=#0;
  beep;
 end;
end;

procedure TReaderEditForm.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
if key=#13 then
 begin
  if TDBEdit(sender)=DBEdit3 then DBEdit4.SetFocus;
  if TDBEdit(sender)=DBEdit4 then DBEdit5.SetFocus;
  if TDBEdit(sender)=DBEdit5 then DBImage1.SetFocus;
 end;
end;

procedure TReaderEditForm.DBEdit5Exit(Sender: TObject);
begin
  inherited;
if DBEdit5.Text=emptystr then DBEdit5.Text:=datetostr(now);
end;

procedure TReaderEditForm.BBsearchClick(Sender: TObject);
begin
  inherited;
 if not assigned(searchform) then
searchform:=tsearchform.create(self);
try
   if searchform.ShowModal=mrOk then
     begin
     try
     if not dmbook.readerfind('reader_id',searchform.Edfind.text) then
      bookInformation('没有找到!');
     except
     end;
     end;
finally
 searchform.Free;
 searchform:=nil;
end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -