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 + -
显示快捷键?