dvdsearchfrm.pas
来自「该系统实现了对DVD租赁过程的管理,功能完善,方便实用.」· PAS 代码 · 共 171 行
PAS
171 行
unit DVDSearchFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, jpeg, ExtCtrls, DB, ADODB, Grids, DBGrids;
type
TFrmDVDSearch = class(TForm)
Image1: TImage;
GroupBox2: TGroupBox;
GroupBox1: TGroupBox;
Label1: TLabel;
edKeyWord: TEdit;
btnSearch: TButton;
GroupBox3: TGroupBox;
ListView2: TListView;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
dtpStartDate: TDateTimePicker;
dtpEndDate: TDateTimePicker;
rbCurrent: TRadioButton;
rbHistory: TRadioButton;
ListView1: TListView;
ADOQuery3: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure rbHistoryClick(Sender: TObject);
procedure rbCurrentClick(Sender: TObject);
procedure btnSearchClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmDVDSearch: TFrmDVDSearch;
implementation
uses MainFrm;
{$R *.dfm}
procedure TFrmDVDSearch.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
FrmDVDSearch.Free;
FrmMain.sp7 := False;
end;
procedure TFrmDVDSearch.FormCreate(Sender: TObject);
var
i : Integer;
begin
Panel1.Visible := False;
ADOQuery1.Close; //显示租赁排行榜
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From CD_Info Order by Times_Borrow DESC';
ADOQuery1.Open;
i := 1;
While (not ADOQuery1.Eof) and (i<11) do //前10条记录
begin
With ListView2.Items.Add do
begin
Caption := ADOQuery1.FieldByName('CD_NameCN').AsString;
SubItems.Add(ADOQuery1.FieldByName('Times_Borrow').AsString);
end;
ADOQuery1.Next;
i := i + 1;
end;
end;
procedure TFrmDVDSearch.rbHistoryClick(Sender: TObject);
begin
Panel1.Visible := True;
end;
procedure TFrmDVDSearch.rbCurrentClick(Sender: TObject);
begin
Panel1.Visible := False;
end;
procedure TFrmDVDSearch.btnSearchClick(Sender: TObject);
var
sqlstr, cdbh, cdname : string;
IsBorrow : Boolean;
StartDate, EndDate, BorrowDate : Real;
begin
if Trim(edKeyWord.Text)='' then
begin
Application.MessageBox('请输入查询的关键词!','错误',MB_ICONWARNING+MB_OK);
edKeyWord.SetFocus;
Exit;
end;
sqlstr := 'select Store_ID,CD_NameCn From CD_Store,CD_Info Where CD_NameCn Like ''%'+edKeyWord.Text+'%''';
sqlstr := sqlstr + ' and CD_Info.CD_ID=CD_Store.CD_ID';
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text := sqlstr;
ADOQuery2.Open;
if Not(ADOQuery2.Bof and ADOQuery2.Eof) then
begin
ListView1.Clear;
While not ADOQuery2.Eof do
begin
cdname := ADOQuery2.FieldByName('CD_NameCn').AsString;
cdbh := ADOQuery2.FieldByName('Store_ID').AsString;
if rbCurrent.Checked then //当前租赁状态
begin
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Text := 'select * From BorrowInfo where Store_ID = '''+cdbh+''' and Yes_No =''0''';
ADOQuery3.Open;
IsBorrow := True;
if ADOQuery3.Eof and ADOQuery3.Bof then
isBorrow := False;
With ListView1.Items.Add do
begin
Caption := cdbh;
SubItems.Add(cdname);
if IsBorrow then
SubItems.Add('是')
else
SubItems.Add('否');
end;
end
else
begin //查询租借历史
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Text := 'select * From BorrowInfo where Store_ID = '''+cdbh+'''';
ADOQuery3.Open;
StartDate := dtpStartDate.DateTime;
EndDate := dtpEndDate.DateTime;
While not ADOQuery3.Eof do //显示时间段内的租借状态
begin
BorrowDate := ADOQuery3.FieldByName('Borrow_Date').AsDateTime;
if (BorrowDate >= StartDate) and (BorrowDate <= EndDate) then
With ListView1.Items.Add do
begin
Caption := ADOQuery3.FieldByName('Store_ID').AsString;
SubItems.Add(cdname);
if ADOQuery3.FieldByName('Yes_No').AsString = '0' then
SubItems.Add('是')
else
SubItems.Add('否');
SubItems.Add(ADOQuery3.FieldByName('Borrow_Date').AsString);
SubItems.Add(ADOQuery3.FieldByName('Return_Date').AsString);
end;
ADOQuery3.Next;
end;
end;
ADOQuery2.Next;
end;
end
else
begin //未找到符合条件的记录
Application.MessageBox('未查找到符合条件的记录!','错误',MB_ICONWARNING+MB_OK);
edKeyWord.SetFocus;
edKeyWord.SelectAll;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?