borroworder.pas

来自「完整的delphi书籍源代码,大家有空的时候自己慢慢看看」· PAS 代码 · 共 232 行

PAS
232
字号
unit BorrowOrder;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, Buttons, ComCtrls, Mask, DBCtrls,
  ExtCtrls, DB, DBTables;

type
  TBrwOrdFrm = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Label1: TLabel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    DBGrid1: TDBGrid;
    Label2: TLabel;
    Edit2: TEdit;
    BitBtn2: TBitBtn;
    Panel1: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    DBEdit1: TDBEdit;
    Edit3: TEdit;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    Database1: TDatabase;
    Table1: TTable;
    DataSource1: TDataSource;
    DBCheckBox1: TDBCheckBox;
    Table2: TTable;
    Table3: TTable;
    GroupBox1: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    DBGrid2: TDBGrid;
    DBCheckBox2: TDBCheckBox;
    Query1: TQuery;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  BrwOrdFrm: TBrwOrdFrm;

implementation

{$R *.dfm}

procedure TBrwOrdFrm.BitBtn1Click(Sender: TObject);
begin
 Table1.IndexFieldNames:='BookName';
 Table1.Open;
 Table1.FindNearest([edit1.text]);
end;

procedure TBrwOrdFrm.BitBtn2Click(Sender: TObject);
begin
 Table1.IndexFieldNames:='Author';
 Table1.Open;
 Table1.FindNearest([edit2.text]);
end;

procedure TBrwOrdFrm.BitBtn4Click(Sender: TObject);
begin
   Edit3.Clear;
end;

procedure TBrwOrdFrm.BitBtn3Click(Sender: TObject);
var Srecord,SstudNo,SbookNo:integer;
    QueryStr,BDateStr,RDateStr:string;
begin
  if Edit3.Text<>'' then
   begin
    if RadioButton2.Checked=True then
         begin
                  SstudNo:=strtoint(edit3.text);
                  Table2.IndexFieldNames:='StuNo';
                  Table2.Open;
                  if not Table2.FindKey([SstudNo])  then
                       begin
                         Edit3.Clear;
                         showmessage('学号错误! ');
                       end
                  else
                   if  Table2.fieldbyname('Permitted').asstring='False' then
                       begin
                         showmessage('您的借阅证不能使用!请退出!');
                         BrwOrdFrm.Close;
                       end
                   else
                      begin
                        SbookNo:=strtoint(DbEdit1.text);
                        with Table3 do
                            begin
                               IndexFieldNames:='BookNo';
                               Open;
                               FindKey([SbookNo]);
                               SstudNo:=FieldByName('StuNo').asinteger;
                            end;
                       if SstudNo<>strtoint(Edit3.Text) then
                      begin
                        with Table1 do
                            begin
                              Close;
                              IndexFieldNames:='BookNo';
                              Readonly:=False;
                              Open;
                              FindKey([SbookNo]);
                              Edit;
                              SetFields([nil,nil,nil,nil,nil,nil,True]);
                              Post;
                           end;
                         with Table3 do
                            begin
                            Open;
                            Srecord:=recordcount+1;
                            SstudNo:=strtoint(Edit3.text);
                            SbookNo:=strtoint(DbEdit1.text);
                            insert;
                            BDateStr:=formatdatetime('yyyy"-"mm"-"dd',Date);
                            RDateStr:=copy(BDateStr,1,5)+inttostr(strtoint(copy(BDateStr,6,2))+1)+copy(BDateStr,8,3);
                            SetFields([Srecord,SstudNo,SbookNo,BDateStr,RDateStr,False,True]);
                            Post;
                            end;
                         showmessage('预约成功!');
                        end
                      else
                         begin
                          showmessage('同一人不能对同一本书进行借阅和预约!!');
                         end;
                     end;
               end;
      if RadioButton1.Checked=True then
          begin
                  SstudNo:=strtoint(edit3.text);
                  Table2.IndexFieldNames:='StuNo';
                  Table2.Open;
                  if not Table2.FindKey([SstudNo])  then
                       begin
                         Edit3.Clear;
                         showmessage('学号错误! ');
                      end
                 else
                  if  Table2.fieldbyname('Permitted').asstring='False' then
                      begin
                         showmessage('您的借阅证不能使用!请退出!'); 
                         BrwOrdFrm.Close;
                      end
                  else
                      begin
                       with Table3 do
                          begin
                            Open;
                            Srecord:=recordcount+1;
                            SstudNo:=strtoint(Edit3.text);
                            SbookNo:=strtoint(DbEdit1.text);
                            insert;
                            BDateStr:=formatdatetime('yyyy"-"mm"-"dd',Date);
                            RDateStr:=copy(BDateStr,1,5)+inttostr(strtoint(copy(BDateStr,6,2))+1)+copy(BDateStr,8,3);
                            SetFields([Srecord,SstudNo,SbookNo,BDateStr,RDateStr,False,False]);
                            Post;
                       end;
                      with Table1 do
                       begin
                          Close;
                          IndexFieldNames:='BookNo';
                          Readonly:=False;
                          Open;
                          FindKey([SbookNo]);
                          Edit;
                          SetFields([nil,nil,nil,nil,nil,True,false]);
                          Post;
                       end;
                    showmessage('借阅成功!');
           end;
       end;
       end
  else
    showmessage('请输入您的学号!');
end;


procedure TBrwOrdFrm.BitBtn5Click(Sender: TObject);
begin
  close;
end;

procedure TBrwOrdFrm.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  if dbcheckbox2.checked=true then
     begin
      RadioButton1.Enabled:=False;
      RadioButton2.Enabled:=True;
      RadioButton2.checked:=True;
      BitBtn3.Enabled:=True;
     end;
  if dbcheckbox1.checked=true then
    begin
      RadioButton1.Enabled:=False;
      RadioButton2.Enabled:=False;
      BitBtn3.Enabled:=False;
    end;
  if dbcheckbox2.checked=False then
    if dbcheckbox1.checked=False then
       begin
        RadioButton2.Enabled:=False;
        RadioButton1.Enabled:=True;
        RadioButton1.checked:=True;
        BitBtn3.Enabled:=True;
      end;
end;

procedure TBrwOrdFrm.FormShow(Sender: TObject);
begin
   BrwOrdFrm.caption:='查询、借阅、预约图书['+datetostr(date)+']';
end;

end.

⌨️ 快捷键说明

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