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

📄 returnsearch.pas

📁 图书馆管理系统
💻 PAS
字号:
unit ReturnSearch;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, ComCtrls, Mask;

type
  TfrmReturnSearch = class(TForm)
    StringGrid: TStringGrid;
    btnSearch: TButton;
    btnClose: TButton;
    chkReaderNo: TCheckBox;
    chkTime: TCheckBox;
    chkBookName: TCheckBox;
    chkReaderNM: TCheckBox;
    edtReaderNo: TEdit;
    edtBookName: TEdit;
    edtReaderName: TEdit;
    GroupBox1: TGroupBox;
    mskDateFrom: TMaskEdit;
    mskDateTo: TMaskEdit;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure btnCloseClick(Sender: TObject);
    procedure btnSearchClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure chkReaderNoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtReaderNoKeyPress(Sender: TObject; var Key: Char);
  private
    procedure StringGridClear;
    { Private declarations }
  public
    function PF_GetData: Boolean;
    { Public declarations }
  end;

var
  frmReturnSearch: TfrmReturnSearch;

implementation

uses Db_Con,COMMON,LendBook, Main;

{$R *.dfm}
//*****************************************************************************
//   函 数 名: PF_GetData
//   功能描述: 获得数据
//   参    数: 无
//   返 回 值: 无
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
Function TfrmReturnSearch.PF_GetData: Boolean;
VAR strSql : String;
    LngI   : Longint;
begin
    Result:=True;
    with Db_Connect.Library_Query do
        begin
        strSql:='';
        strSql:=strSql + ' SELECT ';
        strSql:=strSql + ' A.BR_BORROWNO';              //借阅编号
        strSql:=strSql + ',A.BR_READERNO ';             //读者编号
        strSql:=strSql + ',A.BR_READERNAME ';           //读者姓名
        strSql:=strSql + ',A.BR_BOOKNO ';               //书籍编号
        strSql:=strSql + ',A.BR_BOOKNAME ';             //书籍名称
        strSql:=strSql + ',A.BR_BORROWDATE ';           //出借日期
        strSql:=strSql + ',A.BR_RETURNDATE ';           //还书日期
        strSql:=strSql + ',A.BR_BORROWMEMO ';           //备注信息
        strSql:=strSql + ',B.BOOK_TYPE ';               //书籍类别
        strSql:=strSql + ',B.BOOK_AUTHOR ';             //书籍作者
        strSql:=strSql + ',B.BOOK_PUB ';                //出版社名称
        strSql:=strSql + ',B.BOOK_MEMO ';               //书籍备注
        strSql:=strSql + ',C.READER_TYPE ';             //读者种类
        strSql:=strSql + ' FROM BORROWINFO A LEFT OUTER JOIN BOOKS B ON (A.BR_BOOKNO=B.BOOK_NO)';
        strSql:=strSql + ' LEFT OUTER JOIN READERS C ON (A.BR_READERNO=C.READER_NO) ';
        strSql:=strSql + ' WHERE A.BR_BORROWNO=A.BR_BORROWNO ';
        if chkReaderNo.Checked =True then begin
            if edtReaderNo.Text<>'' then begin
                strSql:=strSql + ' AND A.BR_READERNO='+edtReaderNo.Text+' ';
            end;
        end;
        if chkReaderNM.Checked =True then begin
            if edtReaderName.text<>'' then begin
                strSql:=strSql + ' AND A.BR_READERNAME LIKE '''+edtReaderName.text+ '%''';
            end;
        end;
        if chkBookName.Checked =True then begin
            if edtBookName.text<>'' then begin
                strSql:=strSql + ' AND A.BR_BOOKNAME LIKE '''+edtBookName.text+ '%''';
            end;
        end;
        if chkTime.Checked =True then begin
            if mskDateFrom.Text <>'    -  -  ' then begin
                strSql:=strSql + ' AND A.BR_RETURNDATE >= '''+mskDateFrom.text+ '''';
            end;
            if mskDateTo.Text <>'    -  -  ' then begin
                strSql:=strSql + ' AND A.BR_RETURNDATE <= '''+mskDateTo.text+ '''';
            end;
        end;
        strSql:=strSql + ' ORDER BY A.BR_BORROWNO';
        DatabaseName:=gDbName;
        Close;
        SQL.Clear;
        SQL.Add(strSql);
        TRY
            open;
            LngI:=1;          
            if Not EOF then begin
                while not EOF do begin
                    StringGrid.RowCount:=LngI+1;
                    StringGrid.Cells[1,LngI]:= Fieldbyname('BR_borrowno').AsString;         //借阅编号
                    StringGrid.Cells[2,LngI]:=Fieldbyname('BR_BOOKNO').AsString;            //书籍编号
                    StringGrid.Cells[3,LngI]:=Fieldbyname('BR_BOOKNAME').AsString;          //书籍名称
                    StringGrid.Cells[4,LngI]:=Fieldbyname('BOOK_TYPE').AsString;            //书籍类别
                    StringGrid.Cells[5,LngI]:=Fieldbyname('BOOK_AUTHOR').AsString;          //书籍作者
                    StringGrid.Cells[6,LngI]:=Fieldbyname('BOOK_PUB').AsString;             //出版社名称
                    StringGrid.Cells[7,LngI]:=Fieldbyname('BOOK_MEMO').AsString;            //书籍备注
                    StringGrid.Cells[8,LngI]:=Fieldbyname('BR_READERNO').AsString;          //读者编号
                    StringGrid.Cells[9,LngI]:=Fieldbyname('BR_READERNAME').AsString;        //读者姓名
                    StringGrid.Cells[10,LngI]:=Fieldbyname('READER_TYPE').AsString;         //读者种类
                    StringGrid.Cells[11,LngI]:=Fieldbyname('BR_RETURNDATE').AsString;       //还书日期
                    StringGrid.Cells[12,LngI]:=Fieldbyname('BR_BORROWMEMO').AsString;       //备注信息
                    LngI:=LngI+1;
                    next;
                end;
            end
            else begin
                MessageDlg(' 还书信息不存在,请重新输入查询条件! ',mtInformation,[mbOk],0);
            end;
            Close;
        except
            on E:exception do
            begin
                Result:=False;
                Close;
                Application.MessageBox(PChar(E.Message),'图书管理信息系统',MB_OK + MB_ICONERROR);
                exit;
            end;
        end;
    end;
end;
//*****************************************************************************
//   函 数 名: FormCreate
//   功能描述: 获得数据
//   参    数: 无
//   返 回 值: 无
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.FormCreate(Sender: TObject);
begin
    StringGrid.Cells[1,0]:= '借阅编号';         //借阅编号
    StringGrid.Cells[2,0]:='书籍编号';          //书籍编号
    StringGrid.Cells[3,0]:='书籍名称';          //书籍名称
    StringGrid.Cells[4,0]:='书籍类别';          //书籍类别
    StringGrid.Cells[5,0]:='书籍作者';          //书籍作者
    StringGrid.Cells[6,0]:='出版社名称';        //出版社名称
    StringGrid.Cells[7,0]:='书籍备注';          //书籍备注
    StringGrid.Cells[8,0]:='读者编号';          //读者编号
    StringGrid.Cells[9,0]:='读者姓名';          //读者姓名
    StringGrid.Cells[10,0]:='读者种类';         //读者种类
    StringGrid.Cells[11,0]:='还书日期';         //还书日期
    StringGrid.Cells[12,0]:='备注信息';         //备注信息
    StringGrid.ColWidths[0]:=20;
    StringGrid.ColWidths[1]:=80;
    StringGrid.ColWidths[2]:=80;
    StringGrid.ColWidths[3]:=200;
    StringGrid.ColWidths[4]:=100;
    StringGrid.ColWidths[5]:=100;
    StringGrid.ColWidths[6]:=150;
    StringGrid.ColWidths[7]:=200;
    StringGrid.ColWidths[8]:=80;
    StringGrid.ColWidths[9]:=70;
    StringGrid.ColWidths[10]:=100;
    StringGrid.ColWidths[11]:=60;
    StringGrid.ColWidths[12]:=200;
end;
//*****************************************************************************
//   函 数 名: FormClose
//   功能描述: 关闭画面
//   参    数: 无
//   返 回 值: 无
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.FormClose(Sender: TObject;var Action: TCloseAction);
begin
    Action:=caFree;
end;
//*****************************************************************************
//   函 数 名: StringGridDrawCell
//   功能描述: 选择行
//   参    数: 无
//   返 回 值: Boolean
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.StringGridDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
    StringGrid.Canvas.Font.Color :=clRed;
    StringGrid.Canvas.Brush.Color:=clBlue;
end;
//*****************************************************************************
//   函 数 名: btnCloseClick
//   功能描述: 返回
//   参    数: 无
//   返 回 值: 无
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.btnCloseClick(Sender: TObject);
begin
    Close;
end;
//*****************************************************************************
//   函 数 名: btnSearchClick
//   功能描述: 查询符合条件的记录
//   参    数: 无
//   返 回 值: Boolean
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.btnSearchClick(Sender: TObject);
begin
    StringGrid.RowCount :=1;
    StringGrid.RowCount :=20;
    StringGrid.FixedRows :=1;
    StringGridClear;
    if PF_GetData=False then begin
        Exit;
    end;
    StringGrid.Row :=1;
end;
//*****************************************************************************
//   函 数 名: FormDestroy
//   功能描述: 窗体关闭
//   参    数: 无
//   返 回 值: Boolean
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.FormDestroy(Sender: TObject);
begin
    frmMain.N34.Enabled :=True;
end;
//*****************************************************************************
//   函 数 名: chkReaderNoKeyDown
//   功能描述: 回车键相当TAB键
//   参    数: 无
//   返 回 值: 无
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.chkReaderNoKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key = 13 then
    begin
        key := 0;
        SelectNext(ActiveControl,True,True);
    end;
end;
//*****************************************************************************
//   函 数 名: edtBookNoKeyPress
//   功能描述: 限制只能输入数字
//   参    数: 无
//   返 回 值: Boolean
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.edtReaderNoKeyPress(Sender: TObject; var Key: Char);
begin
    if not (Key in ['0'..'9']) then
        Key:=#0;
end;
//*****************************************************************************
//   函 数 名: FormCreate
//   功能描述: 获得数据
//   参    数: 无
//   返 回 值: 无
//   作成日期: 2004/03/13        作成者:Allan
//   修改日期:
//*****************************************************************************
procedure TfrmReturnSearch.StringGridClear;
var lngI:Longint;
begin
    for lngI := 1 to StringGrid.RowCount  do   begin
        StringGrid.Cells[1,lngI]:= '';         //借阅编号
        StringGrid.Cells[2,lngI]:='';          //书籍编号
        StringGrid.Cells[3,lngI]:='';          //书籍名称
        StringGrid.Cells[4,lngI]:='';          //书籍类别
        StringGrid.Cells[5,lngI]:='';          //书籍作者
        StringGrid.Cells[6,lngI]:='';          //出版社名称
        StringGrid.Cells[7,lngI]:='';          //书籍备注
        StringGrid.Cells[8,lngI]:='';          //读者编号
        StringGrid.Cells[9,lngI]:='';          //读者姓名
        StringGrid.Cells[10,lngI]:='';         //读者种类
        StringGrid.Cells[11,lngI]:='';         //还书日期
        StringGrid.Cells[12,lngI]:='';         //备注信息
    end;
end;
end.

⌨️ 快捷键说明

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