消息关闭
    暂无新消息!

代码:program Project1;

uses
  Forms,
  SysUtils,
  Unit1 in 'Unit1.pas' {Welcome},
  Unit2 in 'Unit2.pas' {Login},
  Unit3 in 'Unit3.pas' {st_Query},
  Unit4 in 'Unit4.pas' {Main},
  Unit5 in 'Unit5.pas' {Input},//错误时此处线束为蓝色
  Unit7 in 'Unit7.pas' {Revise};

{$R *.res}

begin
  Application.Initialize;
  Welcome := TWelcome.Create(Application);    //启动屏创建
  Welcome.Show;
  Welcome.Update;

  Application.CreateForm(TMain, Main);
  Application.CreateForm(TLogin, Login);
  Application.CreateForm(Tst_Query, st_Query);
  Application.CreateForm(TInput, Input);
  Application.CreateForm(TRevise, Revise);
  Welcome.ProgressBar1.Position := 10;
  Sleep(100);
  Welcome.ProgressBar1.Position := 20;
  Sleep(100);
  Welcome.ProgressBar1.Position := 30;
  Sleep(100);
  Welcome.ProgressBar1.Position := 40;
  Sleep(100);
  Welcome.ProgressBar1.Position := 50;
  Sleep(100);
  Welcome.ProgressBar1.Position := 60;
  Sleep(100);
  Welcome.ProgressBar1.Position := 70;
  Sleep(100);
  Welcome.ProgressBar1.Position := 80;
  Sleep(100);
  Welcome.ProgressBar1.Position := 90;
  Sleep(100);
  Welcome.ProgressBar1.Position := 100;
  Sleep(100);

  Welcome.Close;      //关闭启动屏窗体
  Welcome.Free;       //释放启动屏窗体所占的内存

  Application.Run;
end.
unit Unit5;//可此处无borr_num

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, jpeg, ExtCtrls, DBCtrls;

type
  TMyNavgator = class(TDBNavigator);
  TInput = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Button1: TButton;
    Button2: TButton;
    Edit4: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    DBNavigator1: TDBNavigator;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Input: TInput;
  s:string;
implementation
uses unit4;
{$R *.dfm}



procedure TInput.Button1Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;

  if CheckBox5.Checked then
  begin
    CheckBox1.Checked:=true;
    CheckBox2.Checked:=true;
    CheckBox3.Checked:=true;
    CheckBox4.Checked:=true;
  end;
  s:='';
  if CheckBox1.Checked then   s:=s+'st_ID,';
  if CheckBox2.Checked then   s:=s+'book_ID,';
  if CheckBox3.Checked then   s:=s+'borr_date,';
  if CheckBox4.Checked then   s:=s+'ret_date,';

  s:=copy(s,1,length(s)-1);
  ADOQuery1.SQL.Add('Select '+s+' '+' From borrow where 1=1  ');

  if CheckBox1.Checked then
  begin
    ADOQuery1.SQL.Add('and st_ID like :sst_ID');
    ADOQuery1.Parameters.ParamByName('sst_ID').Value := '%'+Edit1.text+'%';
  end;

  if CheckBox2.Checked then
  begin
    ADOQuery1.SQL.Add('and book_ID like :sbook_ID');
    ADOQuery1.Parameters.ParamByName('sbook_ID').Value := '%'+Edit2.Text+'%';
  end;

  if CheckBox3.Checked then
  begin
    if Edit3.Text<>'' then
    begin
      ADOQuery1.SQL.Add('and borr_date like :sborr_date');
      ADOQuery1.Parameters.ParamByName('sborr_date').Value :='%'+Edit3.Text+'%';
    end;
  end;

  if CheckBox4.Checked then
  begin
    if Edit4.Text<>'' then
    begin
      ADOQuery1.SQL.Add('and ret_date like :sret_date');
      ADOQuery1.Parameters.ParamByName('sret_date').Value :='%'+Edit4.Text+'%';
    end;
  end;


  ADOQuery1.Open;

  if ADOQuery1.RecordCount  = 0 then
  begin
    MessageBox(Handle,'该记录不存在','提示',MB_OK+MB_ICONWARNING);
    exit;
  end;
end;

procedure TInput.FormCreate(Sender: TObject);
begin
  TMyNavgator(DBNavigator1).Buttons[nbFirst].Caption:= '首条 ';
  TMyNavgator(DBNavigator1).Buttons[nbPrior].Caption:= '上一条 ';
  TMyNavgator(DBNavigator1).Buttons[nbNext].Caption:= '下一条 ';
  TMyNavgator(DBNavigator1).Buttons[nbLast].Caption:= '末条 ';
  TMyNavgator(DBNavigator1).Buttons[nbInsert].Caption:= '添加 ';
  TMyNavgator(DBNavigator1).Buttons[nbDelete].Caption:= '删除 ';
  TMyNavgator(DBNavigator1).Buttons[nbEdit].Caption:= '修改 ';
  TMyNavgator(DBNavigator1).Buttons[nbPost].Caption:= '提交 ';
  TMyNavgator(DBNavigator1).Buttons[nbCancel].Caption:= '撤销 ';
  TMyNavgator(DBNavigator1).Buttons[nbRefresh].Caption:= '刷新 ';
end;

procedure TInput.Button3Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;

  ADOQuery1.SQL.Add('Select * From borrow where ret_date is null');
  ADOQuery1.Open;
end;

end.
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, jpeg, ExtCtrls;

type
  Tst_Query = class(TForm)
    GroupBox1: TGroupBox;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  st_Query: Tst_Query;

implementation
uses unit4;
{$R *.dfm}



procedure Tst_Query.FormCreate(Sender: TObject);
begin
  combobox1.items.Add('书名');
  combobox1.items.Add('作者');
  combobox1.items.Add('出版社');
  combobox1.items.Add('价格');

  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;

  ADOQuery1.SQL.Add('Select * From borrow order by borr_num desc');
  ADOQuery1.Open;

end;

procedure Tst_Query.Button1Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;

  if combobox1.Text='书名' then
  begin
    if Edit1.Text = '' then
    begin
      MessageBox(Handle,'书名未输入','错误',MB_OK+MB_ICONERROR);
      Edit1.SetFocus;
      exit;
    end
    else
    begin
      ADOQuery1.SQL.Add('Select * From book Where book_name like :sbook_name');
      ADOQuery1.Parameters.ParamByName('sbook_name').Value := '%'+Edit1.text+'%';
    end;
  end;

  if combobox1.Text='作者' then
  begin
    if Edit1.Text = '' then
    begin
      MessageBox(Handle,'作者未输入','错误',MB_OK+MB_ICONERROR);
      Edit1.SetFocus;
      exit;
    end
    else
    begin
      ADOQuery1.SQL.Add('Select s.book_ID,s.book_name,s.borr_num From book as s inner join Tbook as r ');
      ADOQuery1.SQL.Add('on s.book_name=r.book_name Where r.author like :sauthor');
      ADOQuery1.Parameters.ParamByName('sauthor').Value := '%'+Edit1.Text+'%';
    end;
  end;

  if combobox1.Text='出版社' then
  begin
    if Edit1.Text = '' then
    begin
      MessageBox(Handle,'出版社未输入','错误',MB_OK+MB_ICONERROR);
      Edit1.SetFocus;
      exit;
    end
    else
    begin
      ADOQuery1.SQL.Add('Select s.book_ID,s.book_name,s.borr_num From book as s inner join Tbook as r ');
      ADOQuery1.SQL.Add('on s.book_name=r.book_name Where r.press like :spress');
      ADOQuery1.Parameters.ParamByName('spress').Value :='%'+Edit1.Text+'%';
    end;
  end;

  if combobox1.Text='价格' then
  begin
    if Edit1.Text = '' then
    begin
      MessageBox(Handle,'价格未输入','错误',MB_OK+MB_ICONERROR);
      Edit1.SetFocus;
      exit;
    end
    else
    begin
      ADOQuery1.SQL.Add('Select s.book_ID,s.book_name,s.borr_num From book as s inner join Tbook as r ');
      ADOQuery1.SQL.Add('on s.book_name=r.book_name Where r.price < :sprice');
      ADOQuery1.Parameters.ParamByName('sprice').Value :=StrToInt(Edit1.Text);
    end;
  end;

  ADOQuery1.Open;

  if ADOQuery1.RecordCount  = 0 then
  begin
    MessageBox(Handle,'此书不存在','提示',MB_OK+MB_ICONWARNING);
    exit;
  end;
end;

procedure Tst_Query.Button2Click(Sender: TObject);
begin
  st_Query.close;
end;

procedure Tst_Query.Button3Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;

  ADOQuery1.SQL.Add('Select * From book order by borr_num desc');
  ADOQuery1.Open;
end;

procedure Tst_Query.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 13 then
      button1.SetFocus;
end;

end.

1个回答