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

📄 frminquireu.pas

📁 图书借阅管理系统含源代码
💻 PAS
字号:
unit frmInquireU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
  cxGridLevel, cxClasses, cxControls, cxGridCustomView,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, Menus,
  Excel2000,OleServer,RM_class, RM_dset, RM_dbset;

type
  TfrmInquire = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    edBookNo: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    edTitle: TEdit;
    edAuthor: TEdit;
    comClass: TComboBox;
    Label5: TLabel;
    dtDate1: TDateTimePicker;
    dtDate2: TDateTimePicker;
    Label6: TLabel;
    Label7: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    RG: TRadioGroup;
    GroupBox2: TGroupBox;
    cxgInquireDBTableView1: TcxGridDBTableView;
    cxgInquireLevel1: TcxGridLevel;
    cxgInquire: TcxGrid;
    datsInquire: TDataSource;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle3: TcxStyle;
    cxgInquireDBTableView1Class: TcxGridDBColumn;
    cxgInquireDBTableView1Title: TcxGridDBColumn;
    cxgInquireDBTableView1Term: TcxGridDBColumn;
    cxgInquireDBTableView1Loan: TcxGridDBColumn;
    cxgInquireDBTableView1LoanDate: TcxGridDBColumn;
    BitBtn3: TBitBtn;
    cxgInquireDBTableView1DBColumn1: TcxGridDBColumn;
    cxgInquireDBTableView1DBColumn2: TcxGridDBColumn;
    comBoConName: TComboBox;
    cxgInquireDBTableView1DBColumn3: TcxGridDBColumn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    Excel1: TMenuItem;
    Excel2: TMenuItem;
    SetToExcel: TButton;
    N9: TMenuItem;
    cxgInquireDBTableView1DBColumn4: TcxGridDBColumn;
    bitPrint: TBitBtn;
    procedure Button1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure RGClick(Sender: TObject);
    procedure RGEnter(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure Excel2Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
  private
    { Private declarations }
    procedure dateEnble();
  public
    { Public declarations }
    procedure clsText();
    procedure Search();
    procedure ComBoxInit();
  end;

var
  frmInquire: TfrmInquire;

implementation

uses DMU, frmBokInformU, frmMainU;

{$R *.dfm}

procedure TfrmInquire.Button1Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmInquire.clsText;
begin
  edBookNo.Clear;
  edTitle.Clear;
  edAuthor.Clear;
  comClass.ItemIndex:=-1;
  comBoConName.ItemIndex:=-1;
end;

procedure TfrmInquire.BitBtn2Click(Sender: TObject);
begin
  clsText();
end;

procedure TfrmInquire.dateEnble;
begin
  if RG.ItemIndex=2 then
  begin
    dtDate1.Enabled:=True;
    dtDate2.Enabled:=True;
  end
  else
  begin
    dtDate1.Enabled:=False;
    dtDate2.Enabled:=False;
  end;
end;

procedure TfrmInquire.RGClick(Sender: TObject);
begin
  DateEnble();
end;

procedure TfrmInquire.RGEnter(Sender: TObject);
begin
  DateEnble();
end;

procedure TfrmInquire.Search();
var
  BookNo,Title,Author,myClass,ConName,mySql:String;
  date1,date2:TDateTime;
begin
  mySQL:='';
  BookNo:=Trim(edBookNO.Text);
  Title:=Trim(edTitle.Text );
  Author:=Trim(edAuthor.Text);
  ConName:=Trim(comBoConName.Text);
  myClass:=Trim(ComClass.Text);
  date1:=dtDate1.Date;
  date2:=dtDate2.Date;
  mySQL:='select BooksID,BookNO,Title,LoanDate,Loan,Class,Term,Author,boConName,BookCaseName from book where BookNO ';
  if BookNo='' then
    mySQL:=mySQL+'Like '+QuotedStr('%'+BookNo+'%')
  else
    mySQL:=mySQL+'='+QuotedStr(''+BookNo+'');
  if Title<>''then
    mySQL:=mySQL+' and Title like '+QuotedStr('%'+ Title+'%');
  if Author<>''then
    mySQL:=mySQL+' and Author like '+QuotedStr('%'+ Author+'%');
  if ConName<>''then
    mySQL:=mySQL+' and boConName like '+QuotedStr('%'+ ConName+'%');
  if myClass<>''then
    mySQL:=mySQL+' and Class like '+QuotedStr('%'+ myClass+'%');
  if RG.ItemIndex=1 then
    mySQL:=' '+mySQL+' and Loan='+QuotedStr('0');
  if RG.ItemIndex=2 then
    mySQL:=' '+mySQL+' and Loan='+QuotedStr('1')+' '+' and LoanDate>= #'+DateToStr(date1)+'# and LoanDate<= #'+DateToStr(date2)+'#';
  mySQL:=mySQL+' Order By BookNo';
  //showmessage(mySQL);
  dm.adoInquire.Close;
  dm.adoInquire.SQL.Clear;
  dm.adoInquire.SQL.Text:=mySQL;
  dm.adoInquire.Open;
end;

procedure TfrmInquire.BitBtn3Click(Sender: TObject);
begin
  Close();
end;

procedure TfrmInquire.BitBtn1Click(Sender: TObject);
begin
  Search();
end;

procedure TfrmInquire.FormShow(Sender: TObject);
var
  Year,Month,Day:Word;
begin
  DecodeDate(Date,Year,Month,Day);
  dtDate1.Date:=StrToDate(IntToStr(Year)+'-01-01');
  dtDate2.Date:=Date;
  clsText();
  ComBoxInit();
  Search();
end;

procedure TfrmInquire.ComBoxInit;
begin
  comClass.Clear;
  comBoConName.Clear;
  Dm.adoTemp.Close;
  Dm.adoTemp.SQL.Clear;
  Dm.adoTemp.SQL.Text:='select Class From Class';
  Dm.adoTemp.Open;
  dm.adoTemp.First;
  while not dm.adoTemp.Eof do
  begin
    comClass.Items.Add(Dm.adoTemp.FieldByName('Class').AsString);
    Dm.adoTemp.Next;
  end;
  Dm.adoTemp.Close;
  Dm.adoTemp.SQL.Clear;
  Dm.adoTemp.SQL.Text:='select boConName from BConcern';
  Dm.adoTemp.Open;
  dm.adoTemp.First;
  while not dm.adoTemp.Eof do
  begin
    comBoConName.Items.Add(Dm.adoTemp.fieldByName('boConName').AsString);
    dm.adoTemp.Next;
  end;

end;

procedure TfrmInquire.N1Click(Sender: TObject);
begin
  if dm.adoInquire.Eof then
    exit;
  frmMain.OpenMyForm(frmBokInform);  
  frmBokInform.Search(DM.adoInquire.fieldByName('BooksID').AsInteger);
end;

procedure TfrmInquire.N2Click(Sender: TObject);
begin
  if dm.adoInquire.Eof then
    exit;
  frmMain.OpenMyForm(frmBokInform);
  frmBokInform.Search(DM.adoInquire.fieldByName('BooksID').AsInteger);
  frmBokInform.btnEdit.Click;
end;

procedure TfrmInquire.N4Click(Sender: TObject);
begin
  if dm.adoInquire.Eof then
    exit;
  frmMain.OpenMyForm(frmBokInform);
  frmBokInform.Search(0);
  frmBokInform.btnAdd.Click;
end;

procedure TfrmInquire.N3Click(Sender: TObject);
var
  str:String;
begin
  str:='';
  if Dm.adoInquire.FieldByName('Loan').AsString = '1' then
  begin
    MessageBox(0,'该书已借出,暂时不能删除。','提示',mb_ok+MB_ICONSTOP+MB_TASKMODAL);
    exit;
  end;
  str:='真的要删除图书编号为:“'+DM.adoInquire.FieldByName('BookNo').AsString+'”'+chr(13)+'书名为:“'+DM.adoInquire.FieldByName('Title').AsString+'”'+chr(13)+'的书吗?';
  if MessageBox(0,Pchar(str),'提示',mb_okCancel+MB_ICONQUESTION+MB_DEFBUTTON2+MB_TASKMODAL)=IDOK then
  begin
    Dm.adoInquire.Delete;
    ClsText();
  end;
end;

procedure TfrmInquire.N7Click(Sender: TObject);
var
  boConName,Address,Postalcode,PhoneNo,Linkman:String;
begin
  if not Dm.adoInquire.Active then
    exit;
  if Trim(Dm.adoInquire.FieldByName('boConName').AsString)=''then
    exit;
  Dm.adoTemp.Close;
  Dm.adoTemp.SQL.Clear;
  Dm.adoTemp.SQL.Text:='Select * from BConcern where boConName='+QuotedStr(Dm.adoInquire.FieldByName('boConName').AsString);
  Dm.adoTemp.Open;
  boConName:=   '出版社名:'+Dm.adoTemp.FieldByName('boConName').AsString;
  Address:=     '地址:        '+Dm.adoTemp.FieldByName('Address').AsString;
  postalcode:=  '邮政编码:'+Dm.adoTemp.FieldByName('Postalcode').AsString;
  PhoneNo:=     '电话号码:'+Dm.adoTemp.FieldByName('PhoneNo').AsString;
  LinkMan:=     '联系人:    '+Dm.adoTemp.FieldByName('Linkman').AsString;
  Dm.adoTemp.Close;
  MessageBox(0,Pchar(boConName+chr(13)+Address+Chr(13)+Postalcode+chr(13)+PhoneNo+chr(13)+Linkman+Chr(13)),'出版社信息',+MB_OK+MB_ICONEXCLAMATION+MB_TASKMODAL);
end;

procedure TfrmInquire.N8Click(Sender: TObject);
var
  BookCaseName,Location:String;
begin
  if Trim(Dm.adoInquire.FieldByname('BookCaseName').AsString)=''then
    exit;
  Dm.adoTemp.Close;
  Dm.adoTemp.SQL.Clear;
  Dm.adoTemp.SQL.Text:='Select * from BookCase where BookCaseName='+QuotedStr(Dm.adoInquire.FieldByName('BookCaseName').AsString);
  Dm.adoTemp.Open;
  BookCaseName:='名称:'+Dm.adoTemp.FieldByName('BookCaseName').AsString;
  Location:=    '位置:'+Dm.adoTemp.FieldByName('Location').AsString;
  Dm.adoTemp.Close;
  MessageBox(0,Pchar(BookCaseName+chr(13)+Location),'书架信息',+MB_OK+MB_ICONEXCLAMATION+MB_TASKMODAL);
end;

procedure TfrmInquire.Excel2Click(Sender: TObject);
var
  ea:TExcelApplication;
  ewb:TExcelWorkbook;
  ews:TExcelWorksheet;
  i,j:integer;
begin
  ea:=TExcelApplication.Create(nil);
  ewb:=TExcelWorkbook.Create(nil);
  ews:=TExcelWorksheet.Create(nil);
  ea.Connect;
  ea.Visible[0]:=false;
  ea.Workbooks.Add(varNull,0);

  ewb.ConnectTo(ea.Workbooks[ea.Workbooks.Count]);
  ews.ConnectTo(ewb.Worksheets[1] as _worksheet);

  ews.Cells.Item[1,1]:='图书ID';
  ews.Cells.Item[1,2]:='书名';
  ews.Cells.Item[1,3]:='借出日期';
  ews.Cells.Item[1,4]:='借出状态';
  ews.Cells.Item[1,5]:='分类';
  ews.Cells.Item[1,6]:='借出限期';
  ews.Cells.Item[1,7]:='作者';
  ews.Cells.Item[1,8]:='出版社';
  ews.Cells.Item[1,9]:='书架';

  j:=0;
  dm.adoInquire.First();
  self.Enabled:=false;
  try
    while not dm.adoInquire.Eof do
    begin
      for i:=0 to dm.adoInquire.FieldCount-1 do
      begin
        ews.Cells.Item[j+2,i+1]:=dm.adoInquire.Fields[i].AsString;
      end;
      j:=j+1;
      dm.adoInquire.Next();
    end;
  finally
    ea.Visible[0]:=true;
    ea.Disconnect;
    ewb.Disconnect;
    ews.Disconnect;
    self.Enabled:=true;
  end;
  MessageBox(0,'导出完成','提示',mb_ok+mb_taskmodal+mb_iconquestion);
end;

procedure TfrmInquire.N9Click(Sender: TObject);
var
  rmReport: TRMReport;
  rmDBDataSet: TRMDBDataSet;
begin
  try
    rmDBDataSet:=TRMDBDataSet.Create(self);
    rmDBDataSet.DataSet:=dm.adoInquire;
    rmDBDataSet.RangeBegin:=rbFirst;
    rmDBDataSet.RangeEnd:=reLast;

    rmReport:=TRMReport.Create(self);
    rmReport.Dataset:=rmDBDataSet;
    rmReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Data\PrintBooks.rmf');
    rmReport.ShowReport;
  except
    ShowMessage('初始化打印出错。');
    rmDBDataSet.Destroy();
    rmReport.Destroy();
    exit;
  end;
  rmDBDataSet.Destroy;
  rmReport.Destroy;
end;

end.

⌨️ 快捷键说明

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