📄 frminquireu.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 + -