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

📄 uqueryf.pas

📁 图书管理系统 用于进行图书的管理
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit uQueryF;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, dbtables, ExtCtrls, Menus;

type
  TQueryF = class(TFrame)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Button1: TButton;
    GroupBox1: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    StaticText1: TStaticText;
    Button2: TButton;
    StaticText2: TStaticText;
    CheckBox1: TCheckBox;
    TabSheet3: TTabSheet;
    GroupBox2: TGroupBox;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    CheckBox2: TCheckBox;
    StaticText3: TStaticText;
    Edit2: TEdit;
    Button3: TButton;
    ListView2: TListView;
    StaticText4: TStaticText;
    ListView1: TListView;
    GroupBox3: TGroupBox;
    RadioButton7: TRadioButton;
    RadioButton8: TRadioButton;
    CheckBox3: TCheckBox;
    Edit3: TEdit;
    StaticText5: TStaticText;
    Button4: TButton;
    ListView3: TListView;
    StaticText6: TStaticText;
    Button5: TButton;
    ComboBox2: TComboBox;
    RadioButton9: TRadioButton;
    ListBox1: TListBox;
    GroupBox4: TGroupBox;
    ComboBox1: TComboBox;
    RadioButton10: TRadioButton;
    RadioButton11: TRadioButton;
    Panel1: TPanel;
    MinEdit: TEdit;
    MaxEdit: TEdit;
    StaticText7: TStaticText;
    StaticText8: TStaticText;
    Button9: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button10: TButton;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure RadioButton8Click(Sender: TObject);
    procedure RadioButton7Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure RadioButton9Click(Sender: TObject);
    procedure RadioButton5Click(Sender: TObject);
    procedure RadioButton6Click(Sender: TObject);
    procedure RadioButton10Click(Sender: TObject);
    procedure RadioButton11Click(Sender: TObject);
    procedure ComboBox2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ListView1DblClick(Sender: TObject);
    procedure ListView2DblClick(Sender: TObject);
    procedure ListView3DblClick(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function CheckCode(Code:string):boolean;
    procedure SetBookSQL(var Query : TQuery);
    procedure SetBookParam(var Query : TQuery;Param : string);
    function GetOwnCount(UserID : string):integer;
    procedure BookView;
    procedure SetUserSQL(var Query : TQuery);
    procedure SetUserParam(var Query : TQuery;Param : string);
    procedure UserView;
    procedure SetLandSQL(var Query : TQuery);
    procedure SetLandParam(var Query : TQuery;Param : string);
    procedure LandView;
    procedure PrintLandUser(Printing : boolean);
    constructor Create(AOwner : TComponent);override;
  end;

var
  QueryF : TQueryF;

implementation

uses uGloabVar, uMainF , Printers, uViewF;

{$R *.DFM}

function TQueryF.CheckCode(Code: string): boolean;
begin
  if Length(ComboBox2.Text)<> CodeLength then
    Result := False
  else Result:= True;
end;

procedure TQueryF.SetBookParam(var Query: TQuery;Param : string);
begin
  if CheckBox1.Checked and CheckBox1.Enabled then
    Param := Param +'%';
  if RadioButton1.Checked then
    Query.ParamByName('Code').AsString := Param;
  if RadioButton2.Checked then
    Query.ParamByName('Name').AsString := Param;
  if RadioButton3.Checked then
    Query.ParamByName('Concern').AsString := Param;
  if RadioButton4.Checked then
    Query.ParamByName('Author').AsString := Param;
  if RadioButton9.Checked then
    Query.ParamByName('Class').AsString := Param;
end;

procedure TQueryF.SetBookSQL(var Query: TQuery);
begin
  Query.SQL.Clear;
  if RadioButton1.Checked then
    Query.SQL.Add('select * from Book where Code like :Code');
  if RadioButton2.Checked then
    Query.SQL.Add('select * from Book where Name like :Name');
  if RadioButton3.Checked then
    Query.SQL.Add('select * from Book where Concern like :Concern');
  if RadioButton4.Checked then
    Query.SQL.Add('select * from Book where Author like :Author');
  if RadioButton9.Checked then
    Query.SQL.Add('select * from Book where Class like :Class');
end;

procedure TQueryF.BookView;
var
  Query : TQuery;
  OwnQuery : TQuery;
begin
  ListView1.Items.Clear;
  OwnQuery := TQuery.Create(nil);
  OwnQuery.DatabaseName := DBName;
  OwnQuery.SQL.Add('select * from Owner where Code =:Code');
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;

  SetBookSQL(Query);
  if RadioButton9.Checked then
    if ComboBox2.ItemIndex = -1 then
      SetBookParam(Query,'')
    else SetBookParam(Query,ListBox1.Items[ComboBox2.ItemIndex])
  else SetBookParam(Query,ComboBox2.Text);
  Query.Open;

  while not Query.Eof do
  begin
    with ListView1.Items.Add do
    begin
      Caption := Query.FieldByName('Code').AsString;
      SubItems.Add(Query.FieldByName('Name').AsString);
      SubItems.Add(Query.FieldByName('Author').AsString);
      SubItems.Add(Query.FieldByName('concern').AsString);
      SubItems.Add(Query.FieldByName('OutDate').AsString);
      SubItems.Add(Query.FieldByName('Cost').AsString);
      SubItems.Add(Query.FieldByName('Memo').AsString);
      try
        OwnQuery.ParamByName('Code').AsString := Caption;
        OwnQuery.Close;
        OwnQuery.Open;
        SubItems.Add(OwnQuery.FieldByName('UserID').AsString);
        SubItems.Add(OwnQuery.FieldByName('LandDate').AsString);
      except
        SubItems.Add('未知');
        SubItems.Add('未知');
      end;
    end;
    Query.Next;
  end;
  try
    OwnQuery.Close;
    OwnQuery.Free;
  except
  end;
  StaticText2.Caption:= '共'+IntToStr(Query.RecordCount)+'条记录';
  Query.Close;
  Query.Free;
end;

procedure TQueryF.Button1Click(Sender: TObject);
begin
  QueryF.Parent := nil;
  MainF.Caption := '图书管理系统';
end;

procedure TQueryF.Button2Click(Sender: TObject);
begin
  try
    BookView;
  except
    MessageDlg('查询失败',mtError,[mbok],0);
  end;
end;

procedure TQueryF.SetUserParam(var Query: TQuery; Param: string);
begin
  if CheckBox2.Checked and CheckBox2.Enabled then
    Param := Param +'%';
  if RadioButton5.Checked then
    Query.ParamByName('UserID').AsString := Param;
  if RadioButton6.Checked then
    Query.ParamByName('Name').AsString := Param;
end;

procedure TQueryF.SetUserSQL(var Query: TQuery);
begin
  Query.SQL.Clear;
  if RadioButton5.Checked then
    Query.SQL.Add('select * from Userb where UserID like :UserID');
  if RadioButton6.Checked then
    Query.SQL.Add('select * from Userb where Name like :Name');
end;

procedure TQueryF.UserView;
var
  Query : TQuery;
  GroupQuery : TQuery;
begin
  ListView2.Items.Clear;
  GroupQuery := TQuery.Create(nil);
  GroupQuery.DatabaseName := DBName;
  GroupQuery.SQL.Add('select Des from Groupb where GroupID =:GroupID');
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;

  SetUserSQL(Query);
  SetUserParam(Query,Edit2.Text);
  Query.Open;

  while not Query.Eof do
  begin
    with ListView2.Items.Add do
    begin
      Caption := Query.FieldByName('UserID').AsString;
      SubItems.Add(Query.FieldByName('Name').AsString);
      if Query.FieldByName('Sex').AsString = '1' then
        SubItems.Add('女')
      else SubItems.Add('男');
      try
        GroupQuery.ParamByName('GroupID').AsString := Query.FieldByName('GroupID').AsString;
        GroupQuery.Close;
        GroupQuery.Open;
        SubItems.Add(GroupQuery.FieldByName('Des').AsString);
      except
        SubItems.Add('未知');
      end;
      SubItems.Add(IntToStr(GetOwnCount(Caption)));
      SubItems.Add(Query.FieldByName('IDCard').AsString);
    end;
    Query.Next;
  end;
  try
    GroupQuery.Close;
    GroupQuery.Free;
  except
  end;
  StaticText4.Caption:= '共'+IntToStr(Query.RecordCount)+'条记录';
  Query.Close;
  Query.Free;
end;

procedure TQueryF.Button3Click(Sender: TObject);
begin
  UserView;
end;

function TQueryF.GetOwnCount(UserID: string): integer;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DataBaseName := DBName;
    Query.SQL.Add('select Count(UserID) from Owner where UserID =:UserID');
    Query.ParamByName('UserID').AsString := UserID;
    Query.Open;
    Result := Query.Fields[0].Value;
    Query.Close;
    Query.Free;
  except
    Result := 0;
  end;
end;

procedure TQueryF.RadioButton8Click(Sender: TObject);
begin
  RadioButton10.Enabled := True;
  RadioButton11.Enabled := True;
  if RadioButton11.Checked then
  begin
    Panel1.Visible := True;
    Edit3.Visible := False;
    ComboBox1.Enabled := False;
    ComboBox1.Color := clBtnFace;
  end
  else begin
    Panel1.Visible := False;
    Edit3.Visible := True;
    ComboBox1.Enabled := True;
    ComboBox1.Color := clWindow;
  end;
  CheckBox3.Enabled := False;
end;

procedure TQueryF.RadioButton7Click(Sender: TObject);
begin
  ComboBox1.Enabled := False;
  ComboBox1.Color := clBtnFace;
  CheckBox3.Enabled := True;
  RadioButton10.Enabled := False;
  RadioButton11.Enabled := False;
  Edit3.MaxLength := UserIDLength;
  Panel1.Visible := False;
  Edit3.Visible :=True;
end;

constructor TQueryF.Create(AOwner: TComponent);
var
  Query : TQuery;
begin
  inherited Create(AOwner);

⌨️ 快捷键说明

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