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

📄 unit1.pas

📁 图书管理系统,采用delphi开发工具,是个小型的管理系统,该压缩文件只提供源代码
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, pBooksLogin_TLB, StdCtrls, Mask,  ComCtrls, DB, DBClient,
  ExtCtrls, Grids, DBGrids, pUserReg_TLB, pxzBooksJieBook_TLB, IniFiles,
  pBookReg_TLB, pHS_TLB, pQuery_TLB, Buttons, Spin;

type
  TfrmxzBooksTest = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet3: TTabSheet;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    BookID: TEdit;
    BookName: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    DJ: TEdit;
    Label4: TLabel;
    UserID: TEdit;
    Label5: TLabel;
    UserName: TEdit;
    Label6: TLabel;
    CS: TEdit;
    Button6: TButton;
    TabSheet4: TTabSheet;
    ID4: TEdit;
    Name4: TEdit;
    Author: TEdit;
    Pub: TEdit;
    Button7: TButton;
    RKRQ: TMaskEdit;
    Money: TEdit;
    Label7: TLabel;
    LX: TEdit;
    TabSheet2: TTabSheet;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    Label8: TLabel;
    Edit3: TEdit;
    Label9: TLabel;
    BookName1: TEdit;
    Label10: TLabel;
    UserID1: TEdit;
    Label11: TLabel;
    DJ1: TEdit;
    Label12: TLabel;
    UserName1: TEdit;
    GroupBox5: TGroupBox;
    Label13: TLabel;
    Label14: TLabel;
    Times: TEdit;
    JYRQ1: TEdit;
    Label15: TLabel;
    Edit10: TEdit;
    Button4: TButton;
    Label16: TLabel;
    Edit4: TEdit;
    GroupBox6: TGroupBox;
    Label17: TLabel;
    ID: TEdit;
    CZY: TEdit;
    Label18: TLabel;
    Label19: TLabel;
    JSXS: TEdit;
    Name: TEdit;
    KHRQ: TMaskEdit;
    Address: TEdit;
    Phone: TEdit;
    FP: TEdit;
    Button3: TButton;
    GroupBox7: TGroupBox;
    Button1: TButton;
    Edit2: TEdit;
    Edit1: TEdit;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    CS3: TEdit;
    TabSheet5: TTabSheet;
    GroupBox8: TGroupBox;
    GroupBox10: TGroupBox;
    GroupBox9: TGroupBox;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Button2: TButton;
    Button5: TButton;
    Button8: TButton;
    TabSheet6: TTabSheet;
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    ClientDataSet1: TClientDataSet;
    ClientDataSet3: TClientDataSet;
    DataSource1: TDataSource;
    DataSource3: TDataSource;
    TabSheet7: TTabSheet;
    TabSheet8: TTabSheet;
    ClientDataSet2: TClientDataSet;
    DataSource2: TDataSource;
    DBGrid3: TDBGrid;
    DBGrid2: TDBGrid;
    Panel2: TPanel;
    SpeedButton5: TSpeedButton;
    Panel3: TPanel;
    SpeedButton9: TSpeedButton;
    Label37: TLabel;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    DBGrid1: TDBGrid;
    cb1: TCheckBox;
    seNumbers: TSpinEdit;
    SpinEdit1: TSpinEdit;
    CheckBox1: TCheckBox;
    SpinEdit2: TSpinEdit;
    CheckBox2: TCheckBox;
    Label42: TLabel;
    Label43: TLabel;
    Label44: TLabel;
    Label45: TLabel;
    Label46: TLabel;
    Label47: TLabel;
    Label48: TLabel;
    Label49: TLabel;
    Label50: TLabel;
    Label51: TLabel;
    Label52: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure BookIDKeyPress(Sender: TObject; var Key: Char);
    procedure UserIDKeyPress(Sender: TObject; var Key: Char);
    procedure Button6Click(Sender: TObject);
    procedure CSKeyPress(Sender: TObject; var Key: Char);
    procedure Button7Click(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure Edit7KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
  private
    vLogined:olevariant;
    myLoginCoor:IxzBooksLogin;
    myCoor:IxzBooksUserReg;
    JS:IxzBooksJieBook;
    RegBook:IxzBooksBookReg;
    HS:IxzBooksHS;
    Query:IxzBooksQuery;
    procedure ClearTabShee2Edit;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmxzBooksTest: TfrmxzBooksTest;
  isLogined:boolean=False;

implementation

{$R *.dfm}

uses uQueryForm;

procedure TfrmxzBooksTest.FormCreate(Sender: TObject);
var
  iniServer:TIniFile;ServerName:string;
begin
  try
    iniServer:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'ServerName.ini');
    with iniServer do
      ServerName:=ReadString('Option','RServerName','');
    myLoginCoor:=coxzBooksLogin.CreateRemote(ServerName);
    myCoor:=coxzBooksUserReg.CreateRemote(ServerName);
    js:=coxzBooksJieBook.CreateRemote(ServerName);
    RegBook:=coxzBooksBookReg.CreateRemote(ServerName);
    HS:=coxzBooksHS.CreateRemote(ServerName);
    Query:=coxzBooksQuery.CreateRemote(ServerName);
    iniServer.Free;
  except
    raise exception.Create('致命错误:初始化失败。');
  end;
end;

procedure TfrmxzBooksTest.Button1Click(Sender: TObject);
var
  vCZYID:OleVariant;
begin
  try
    vLogined:=false;
    myLoginCoor.Login(edit1.Text,edit2.Text,vLogined,vCZYID);
    if vLogined='True' then
    begin
      isLogined:=true;
      czy.Text :=vCZYID;
      Showmessage('成功登录!');
    end
    else
      ShowMessage(vLogined);
  except
    raise;
  end;
end;

procedure TfrmxzBooksTest.Button3Click(Sender: TObject);
var
  vResult:olevariant;
begin
  if isLogined then
  try
    strtoDate(KHRQ.Text);
    myCoor.UserReg(id.Text,czy.Text,strtoint(jsxs.text),name.Text,khrq.text,address.Text,phone.Text,fp.Text,vResult);
    ShowMessage(vResult);
  except
    raise;
  end
  else
    Showmessage('你还没有登录!');
end;

procedure TfrmxzBooksTest.BookIDKeyPress(Sender: TObject; var Key: Char);
var
  vBookName,vDJ:olevariant;
begin
  if key=#13 then
  begin
    key:=#0;
    js.GetBookInfoFromBookID(bookid.Text,vBookName,vDJ);
    if vBookName<>'None' then
    begin
      bookName.Text :=vBookName;
      dj.Text :=vDJ;
      cs.SetFocus;
    end
    else
      MessageDlg('图书不存在!',mtConfirmation,[mbok],0);
  end;
end;

procedure TfrmxzBooksTest.UserIDKeyPress(Sender: TObject; var Key: Char);
var
  vUserName,vLX:olevariant;
begin
  if key=#13 then
  begin
    key:=#0;
    js.GetUserInfoFromUserID(userid.Text,vUserName,vLX);
    if vUserName<>'None' then
    begin
      UserName.Text :=vuserName;
      LX.Text :=vLX;
    end
    else
      MessageDlg('用户不存在!',mtConfirmation,[mbok],0);
    Button6.SetFocus;
  end;
end;

procedure TfrmxzBooksTest.Button6Click(Sender: TObject);
var
  JYRQ:String;
  vResult:olevariant;
begin
  if isLogined then
  begin
    JYRQ:=DateToStr(Now);
    if not ((BookId.Text ='') or (BookName.Text ='') or (UserName.Text ='')) then
    begin
      js.JieShu(CZY.Text,UserID.Text,UserName.Text,JYRQ,BookID.Text,BookName.Text,StrToFloat(DJ.text),vResult);
      if vResult='Complete' then
        MessageDlg('Complete',mtInformation,[mbok],0)
      else
        MessageDlg(vResult,mtError,[mbok],0)
    end
    else
      showmessage('图书或用户信息不完整!');
  end
  else
    showmessage('你还没有登录!');
end;

procedure TfrmxzBooksTest.CSKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    UserID.SetFocus;
  end;
end;

procedure TfrmxzBooksTest.Button7Click(Sender: TObject);
var
  vResult:OleVariant;
begin
  if isLogined then
    try
      StrToDate(RKRQ.Text);
      strToInt(cs.Text);
      regBook.CBook(ID4.Text,Name4.Text,Author.Text,
        pub.Text,strtoFloat(Money.Text),RKRQ.Text,strtoInt(CS.Text),vResult);
      if varIsStr(vResult) then
        MessageDlg('Complete!',mtInformation,[mbOk],0)
      else
        if MessageDlg('这个ID已经被一本书使用。' + #13 + '你现在想查看这本书的详细信息吗?',mtError,[mbYes,mbNo],0) =mrYes then
        //Show Book on This IS's Deltia;
        with frmQuery do
        begin
          ClientDataSet1.Data :=vResult;
          Caption :='ID已经存在!';
          Width :=712;frmQuery.Height:=375;
          DBGridByBookIDIsActived;
          ShowModal;
        end;
    except
      raise;
    end
  else
    showmessage('你还没有登录!');
end;

procedure TfrmxzBooksTest.Edit3KeyPress(Sender: TObject; var Key: Char);
var
  JYRDH,JYR,JYRQ,BookName,DJ,CS,Times1,vResult,vMoney:OleVariant;
begin
  if key=#13 then
  begin
    key:=#0;
    HS.GetJSBWithBookID(Edit3.Text,JYRDH,JYR,JYRQ,BookName,DJ,CS,Times1,vResult,vMoney);
    if vResult<>'None' then
    begin
      BookName1.Text :=BookName;
      DJ1.Text :=DJ;
      UserID1.Text :=JYRDH;
      UserName1.Text :=JYR;
      JYRQ1.Text :=JYRQ;
      Times.Text :=Times1;
      edit10.Text :=DateToStr(Date);
      if not (varIsEmpty(vMoney) or varIsNull(vMoney)) then
        if vMoney>0 then
          edit4.Text :=vMoney;
    end
    else
      ShowMessage('借书表中没有这本书!');
  end;
end;

procedure TfrmxzBooksTest.Button4Click(Sender: TObject);
var
  vResult:OleVariant;
begin
  if isLogined then
  begin
    if Trim(BookName1.Text)<>'' then
    begin
      hs.HS(edit3.text,vResult);
      if vResult='Complete' then
      begin
        ClearTabShee2Edit;
        showMessage('Complete!');
      end
      else
        showmessage(vResult);
    end
    else
      ShowMessage('无法处理还书业务!');
  end
  else
    ShowMessage('你还没有登录!');
end;

procedure TfrmxzBooksTest.ClearTabShee2Edit;
begin
  Edit3.Text :='';
  BookName1.Text :='';
  DJ.Text :='';
  Times.Text :='';
  UserID1.Text :='';
  UserName1.Text :='';
  Edit10.Text :='';
  JYRQ1.Text :='';
end;

procedure TfrmxzBooksTest.Button2Click(Sender: TObject);
var
  vResult:OleVariant;
begin
  if Trim(Edit5.Text)<>'' then
  try
    Query.QueryFromJSBByUserID(edit5.Text,vResult);
    if not (varIsEmpty(vResult) or varIsNull(vResult)) then
    begin
      with frmQuery do
      begin
        Caption:='按用户代码在借书表中查询';
        Width:=432;Height:=375;
        ClientDataSet1.Data :=vResult;
        DBGridByUserIDInJSB;
        ShowModal;
      end;
    end
    else
      ShowMessage('借书表中没有这个用户的相关信息');
  except
    raise;
  end
  else
    Showmessage('Pleaser input a userID.');
end;

procedure TfrmxzBooksTest.Button5Click(Sender: TObject);
var
  vResult:OleVariant;
begin
  if Trim(Edit6.Text)<>'' then
  try
    Query.QureyFromJSBByBookID(Edit6.Text,vResult);
    if not (varIsEmpty(vResult) or varIsNull(vResult)) then
    begin
      with frmQuery do
      begin
        Caption:='按图书代码在借书表中查询';
        Width:=432;Height:=375;
        ClientDataSet1.Data :=vResult;
        DBGridByBookIDInJSB;
        ShowModal;
      end;
    end
    else
      ShowMessage('借书表中没有这本图书的相关信息');
  except
    raise;
  end
  else
    Showmessage('Pleaser input a BookID.');
end;

procedure TfrmxzBooksTest.Button8Click(Sender: TObject);
var
  vResult:OleVariant;
begin
  if Trim(Edit7.Text)<>'' then
  try
    Query.QueryFromBooksByBookID(Edit7.Text,vResult);
    if not (varIsEmpty(vResult) or varIsNull(vResult)) then
    begin
      with frmQuery do
      begin
        Caption:='按图书代码在图书库中查询';
        Width:=712;Height:=375;
        ClientDataSet1.Data :=vResult;
        DBGridByBookIDInBooks;
        ShowModal;
      end;
    end
    else
      ShowMessage('图书库中没有这本书的相关信息');
  except
    raise;
  end
  else
    Showmessage('Pleaser input a BookID.');
end;

procedure TfrmxzBooksTest.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    Button2Click(self);
  end;
end;

procedure TfrmxzBooksTest.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    Button5Click(self);
  end;
end;

procedure TfrmxzBooksTest.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    Button8Click(self);
  end;
end;

procedure TfrmxzBooksTest.SpeedButton1Click(Sender: TObject);
var
  vResult:OleVariant;
  cdsTmp:TClientDataSet;
  vOwnerData:string;
begin
  try
    vResult:=ClientDataSet1.Data;
    if not(varIsEmpty(vResult) or varIsNull(vResult)) then
    begin
      cdsTmp:=TClientDataSet.Create(self);
      try
        cdsTmp.Data :=vResult;
        cdsTmp.Last;
        vOwnerData:=cdsTmp.fieldByName('ID').AsString;
      finally
        cdsTmp.Free;
      end;
    end;
    Query.GetBooks(seNumbers.Text,vOwnerData,vResult);
    if Not (varIsEmpty(vResult) or varIsNull(vResult)) then
      if cb1.Checked then
        ClientDataSet1.AppendData(vResult,False)
      else
        ClientDataSet1.Data :=vResult;
  except
    raise;
  end;
end;

procedure TfrmxzBooksTest.SpeedButton5Click(Sender: TObject);
begin
  MessageDlg('此项功能和"查看图书表"中的功能相似。',mtInformation,[mbOK],0);
end;

procedure TfrmxzBooksTest.SpeedButton9Click(Sender: TObject);
begin
  MessageDlg('此项功能和"查看图书表"中的功能相似。',mtInformation,[mbOK],0);
end;

end.

⌨️ 快捷键说明

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