📄 returnsearch.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 + -