queryreturn.pas

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

PAS
164
字号
unit QueryReturn;

interface

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

type
  TQryRtnFrm = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    DBGrid1: TDBGrid;
    Label2: TLabel;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Database1: TDatabase;
    Table1: TTable;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    Table2: TTable;
    Table3: TTable;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    Query1: TQuery;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  QryRtnFrm: TQryRtnFrm;

implementation


{$R *.dfm}

procedure TQryRtnFrm.BitBtn1Click(Sender: TObject);
begin 
   Table1.open;
   if not Table1.FindKey([edit1.Text])  then
      begin
        showmessage('学号错误!');
        Edit1.Clear;
        Edit1.SetFocus;
      end
   else
      begin
        with Table2 do
          begin
            close;
            IndexFieldNames:='StuNo';
            Open;
            FindKey([edit1.text]);
            Dbgrid1.Columns[0].Width:=64;
            Dbgrid1.Columns[1].Width:=64;
            Dbgrid1.Columns[2].Width:=64;
            Dbgrid1.Columns[3].Width:=64;
         end;
    Table3.Active:=True; 
    end;
end;

procedure TQryRtnFrm.BitBtn3Click(Sender: TObject);
begin
 close;
end;


procedure TQryRtnFrm.BitBtn2Click(Sender: TObject);
var BookNo,QueryStr,BDateStr,RDateStr:string;
begin
   BookNo:=DbEdit4.Text;
   With Table3 do
     begin
       close;
       IndexFieldNames:='BookNo';
       Open;
       FindKey([BookNo]);
       If FieldByName('ordered').AsBoolean=True then
         begin
           Edit;
           SetFields([nil,nil,nil,nil,nil,True,False]);
           Post;
           With Table2 do
              begin
                 close;
                 IndexFieldNames:='BookNo';
                 Open;
                 FindKey([BookNo]);
                 Edit;
                 if FieldByName('Ordered').AsBoolean=True then
                   begin
                    BDateStr:=formatdatetime('yyyy"-"mm"-"dd',Date);
                    RDateStr:=copy(BDateStr,1,5)+inttostr(strtoint(copy(BDateStr,6,2))+1)+copy(BDateStr,8,3);
                    SetFields([nil,nil,nil,BDateStr,RDateStr,False,False]);
                    Post;
                   end
                 else
                    Delete;
              end;
         end
       else
          begin
            Edit;
            SetFields([nil,nil,nil,nil,nil,False,False]);
            Post;
            With Table2 do
              begin
                 close;
                 IndexFieldNames:='BookNo';
                 Open;
                 FindKey([BookNo]);
                 Delete;
              end;
          end;
       showmessage('已经完成图书归还!');
     end;
   With query1 do
     begin
      close;
      Sql.Clear;
      QueryStr:='Select * from record Where StuNo='+''''+Edit1.text+'''';
      Sql.Add(QueryStr);
      Open;
      if recordcount<5 then
          begin
               with Table1 do
                  begin
                    IndexFieldNames:='StuNo';
                    Close;
                    Readonly:=False;
                    Open;
                    FindKey([Edit1.text]);
                    Edit;
                    SetFields([nil,nil,nil,nil,nil,nil,nil,nil,True]);
                    Post;
                  end;
          end;
     end;
end;

procedure TQryRtnFrm.FormShow(Sender: TObject);
begin
   QryRtnFrm.caption:='查询借阅信息、归还图书['+datetostr(date)+']'; 
end;

end.



⌨️ 快捷键说明

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