📄 frmbokinformu.pas
字号:
unit frmBokInformU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Buttons, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxClasses, cxControls, cxGridCustomView, cxGrid, ExtDlgs;
type
TfrmBokInform = class(TForm)
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle3: TcxStyle;
GroupBox4: TGroupBox;
cdGrid: TcxGrid;
cdGridDBTableView1: TcxGridDBTableView;
cdGridDBTableView1BookNO: TcxGridDBColumn;
cdGridDBTableView1Title: TcxGridDBColumn;
cdGridDBTableView1LoanDate: TcxGridDBColumn;
cdGridDBTableView1Loan: TcxGridDBColumn;
cdGridDBTableView1Class: TcxGridDBColumn;
cdGridDBTableView1Term: TcxGridDBColumn;
cdGridDBTableView1DBColumn2: TcxGridDBColumn;
cdGridDBTableView1DBColumn1: TcxGridDBColumn;
cdGridLevel1: TcxGridLevel;
Panel1: TPanel;
Panel2: TPanel;
GroupBox2: TGroupBox;
btnAdd: TBitBtn;
btnEdit: TBitBtn;
btnDel: TBitBtn;
btnSave: TBitBtn;
btnCancel: TBitBtn;
btnClose: TBitBtn;
btnBrowse: TBitBtn;
GroupBox1: TGroupBox;
imgPic: TImage;
Panel3: TPanel;
moRemark: TMemo;
moLargess: TMemo;
Label9: TLabel;
Label8: TLabel;
Label7: TLabel;
Label6: TLabel;
Label5: TLabel;
Label4: TLabel;
Label3: TLabel;
Label2: TLabel;
Label12: TLabel;
Label11: TLabel;
labLoanDate: TLabel;
Label1: TLabel;
edTerm: TEdit;
edWBTN: TEdit;
edAuthor: TEdit;
edCost: TEdit;
edTitle: TEdit;
edBookNo: TEdit;
dtLoanDate: TDateTimePicker;
comConName: TComboBox;
comBookCase: TComboBox;
comClass: TComboBox;
labLoan: TLabel;
DataSource1: TDataSource;
Label10: TLabel;
edBarCode: TEdit;
OpenPictureDialog: TOpenPictureDialog;
bitInfoList: TBitBtn;
procedure btnCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure cdGridDBTableView1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure btnDelClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure bitInfoClick(Sender: TObject);
procedure btnBrowseClick(Sender: TObject);
procedure bitInfoListClick(Sender: TObject);
procedure edBarCodeKeyPress(Sender: TObject; var Key: Char);
procedure edCostKeyPress(Sender: TObject; var Key: Char);
procedure edTermKeyPress(Sender: TObject; var Key: Char);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure cdGridDBTableView1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
Procedure InfoList();
procedure TextEnable(enb:Boolean);
Procedure clsText();
public
{ Public declarations }
Procedure Search(BooksID:LongInt);
procedure comBoxInit();
end;
var
frmBokInform: TfrmBokInform;
implementation
uses DMU;
{$R *.dfm}
var
aeBoo:Boolean;
{ TfrmBokInform }
procedure TfrmBokInform.clsText;
begin
edBookNo.Clear;
comConName.ItemIndex:=-1;
comClass.ItemIndex:=-1;
edTitle.Clear;
edAuthor.Clear;
comBookCase.ItemIndex:=-1;
edCost.Clear;
edWBTN.Text:='0';
edBarCode.Clear;
moLargess.Clear;
Dm.adoTemp.Close;
Dm.adoTemp.SQL.Clear;
Dm.adoTemp.SQL.Text:='select LoanTerm from LoanOption';
Dm.adoTemp.Open;
edTerm.Text:=Dm.adoTemp.FieldByName('LoanTerm').AsString;
Dm.adoTemp.Close;
Dm.adoTemp.SQL.Clear;
moRemark.Clear;
labLoan.Caption:='';
imgPic.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\noPic.jpg');
end;
procedure TfrmBokInform.btnCloseClick(Sender: TObject);
begin
Close();
end;
procedure TfrmBokInform.Search(BooksID:LongInt);
var
mySQL:String;
begin
mySQL:='select * from book ';
if BooksID>=1 then
mySQL:=mySQL+' where BooksID='+intToStr(BooksID);
mySQL:=mySQL+' Order By BookNo';
dm.adoBokInform.Close;
dm.adoBokInform.SQL.Clear;
dm.adoBokInform.SQL.Text:=mySQL;
dm.adoBokInform.Open;
InfoList();
end;
procedure TfrmBokInform.InfoList;
var
f:file of Byte;
TempPic:String;
begin
TempPic:=ExtractFilePath(Application.ExeName)+'temp.jpg';
edBookNo.Text:=DM.adoBokInform.FieldByName('BookNo').AsString;
edTitle.Text:=DM.adoBokInform.FieldByName('Title').AsString;
edAuthor.Text:=DM.adoBokInform.FieldByName('Author').AsString;
edWBTN.Text:=DM.adoBokInform.FieldByName('WBTN').AsString;
edBarCode.Text:=Dm.adoBokInform.FieldByName('BarCode').AsString;
moLargess.Lines.Text:=DM.adoBokInform.FieldByName('Largess').AsString;
edTerm.Text:=DM.adoBokInform.FieldByName('Term').AsString;
dtLoanDate.Date:=DM.adoBokInform.FieldByName('LoanDate').AsDateTime;
moRemark.Lines.Text:=DM.adoBokInform.FieldByName('Remark').AsString;
edCost.Text:=DM.adoBokInform.FieldByName('Cost').AsString;
//==========设置COMBOX选择项=========
comConName.ItemIndex:=-1;
comClass.ItemIndex:=-1;
comBookCase.ItemIndex:=-1;
if DM.adoBokInform.FieldByName('boConName').AsString<>''then
while (comConName.Text<>DM.adoBokInform.FieldByName('boConName').AsString) and (comConName.ItemIndex+1<comConName.Items.Count) do
comConName.ItemIndex:=comConName.ItemIndex+1;
if DM.adoBokInform.FieldByName('Class').AsString<>''then
while (comClass.Text<>DM.adoBokInform.FieldByName('Class').AsString) and (comClass.ItemIndex+1<comClass.Items.Count) do
comClass.ItemIndex:=comClass.ItemIndex+1;
if Dm.adoBokInform.FieldByName('BookCaseName').AsString<>''then
while (comBookCase.Text<>DM.adoBokInform.FieldByName('BookCaseName').AsString)and(comBookCase.ItemIndex+1<comBookCase.Items.Count)do
comBookCase.ItemIndex:=comBookCase.ItemIndex+1;
if DM.adoBokInform.FieldByName('boConName').AsString<>comConName.Text then
comConName.ItemIndex:=-1;
if DM.adoBokInform.FieldByName('Class').AsString<>comClass.Text then
comClass.ItemIndex:=-1;
if Dm.adoBokInform.FieldByName('BookCaseName').AsString<>comBookCase.Text then
comBookCase.ItemIndex:=-1;
//====================================
if DM.adoBokInform.FieldByName('Loan').AsString='1' then
begin
labLoan.Caption:='已租出';
labLoan.Enabled:=True;
labLoanDate.Visible:=True;
dtLoanDate.Visible:=True;
end
else
begin
labLoan.Caption:='未租出';
labLoan.Enabled:=False;
labLoanDate.Visible:=False;
dtLoanDate.Visible:=False;
end;
//==========读取相片=============
DeleteFile(TempPic);
TblobField(DM.adoBokInform.FieldByName('Pic')).SaveToFile(TempPic);
AssignFile(f,TempPic);
Reset(f);
if FileSize(f)=0 then
begin
imgPic.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\noPic.jpg');
CloseFile(f);
end
else
begin
CloseFile(f);
imgPic.Picture.LoadFromFile(TempPic);
end;
DeleteFile(TempPic);
end;
procedure TfrmBokInform.comBoxInit;
begin
comClass.Clear;
comConName.Clear;
ComBookCase.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
comConName.Items.Add(Dm.adoTemp.fieldByName('boConName').AsString);
dm.adoTemp.Next;
end;
Dm.adoTemp.Close;
Dm.adoTemp.SQL.Clear;
Dm.adoTemp.SQL.Text:='select BookCaseName from BookCase';
Dm.adoTemp.Open;
Dm.adoTemp.First;
while not dm.adoTemp.Eof do
begin
comBookCase.Items.Add(Dm.adoTemp.FieldByName('BookCaseName').AsString );
Dm.adoTemp.Next;
end;
Dm.adoTemp.Close;
Dm.adoTemp.SQL.Clear;
end;
procedure TfrmBokInform.FormShow(Sender: TObject);
begin
TextEnable(False);
comBoxInit();
end;
procedure TfrmBokInform.TextEnable(enb: Boolean);
begin
edBookNo.Enabled:=enb;
comConName.Enabled:=enb;
comClass.Enabled:=enb;
edTitle.Enabled:=enb;
edAuthor.Enabled:=enb;
comBookCase.Enabled:=enb;
edCost.Enabled:=enb;
edWBTN.Enabled:=False;
edBarCode.Enabled:=enb;
moLargess.Enabled:=enb;
edTerm.Enabled:=enb;
dtLoanDate.Enabled:=False;
moRemark.Enabled:=enb;
cdGrid.Enabled:=not enb;
btnBrowse.Enabled:=enb;
btnAdd.Enabled:=not enb;
btnEdit.Enabled:=not enb;
btnSave.Enabled:=enb;
btnDel.Enabled:=not enb;
btnCancel.Enabled:=enb;
btnClose.Enabled:=not enb;
bitInfoList.Enabled:=not enb;
end;
procedure TfrmBokInform.btnAddClick(Sender: TObject);
begin
aeBoo:=True;
TextEnable(True);
ClsText();
edBookNo.SetFocus;
end;
procedure TfrmBokInform.btnCancelClick(Sender: TObject);
begin
TextEnable(False);
InfoList();
end;
procedure TfrmBokInform.cdGridDBTableView1CellClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
InfoList();
end;
procedure TfrmBokInform.btnDelClick(Sender: TObject);
var
str:String;
begin
if Dm.adoBokInform.Eof then
exit;
if Dm.adoBokInform.FieldByName('Loan').AsString = '1' then
begin
MessageBox(0,'该书已借出,暂时不能删除。','提示',mb_ok+MB_ICONSTOP+MB_TASKMODAL);
exit;
end;
str:='';
str:='真的要删除图书编号为:“'+DM.adoBokInform.FieldByName('BookNo').AsString+'”'+chr(13)+'书名为:“'+DM.adoBokInform.FieldByName('Title').AsString+'”'+chr(13)+'的书吗?';
if MessageBox(0,Pchar(str),'提示',mb_okCancel+MB_ICONQUESTION+MB_DEFBUTTON2+MB_TASKMODAL)=IDOK then
begin
Dm.adoBokInform.Delete;
ClsText();
end;
end;
procedure TfrmBokInform.btnEditClick(Sender: TObject);
begin
aeBoo:=False;
TextEnable(True);
edBookNo.Enabled:=False;
edTitle.SetFocus;
end;
procedure TfrmBokInform.btnSaveClick(Sender: TObject);
begin
if (Trim(edBookNo.Text)='') or (Trim(edTitle.Text)='') then
begin
MessageBox(0,'图书编号和图书名称不能为空,请输入该项信息。','提示',MB_OK+MB_ICONEXCLAMATION+MB_TASKMODAL);
exit;
end;
if aeBoo then
begin
Dm.adoTemp.Close;
Dm.adoTemp.SQL.Clear;
Dm.adoTemp.SQL.Text:='select BookNo from Book where BookNo='+QuotedStr(edBookNo.Text);
Dm.adoTemp.Open;
if Dm.adoTemp.RecordCount>0 then
begin
MessageBox(0,'图书编号不能重复,请输入该项信息。','提示',MB_OK+MB_ICONEXCLAMATION+MB_TASKMODAL);
edBookNo.SetFocus;
exit;
end;
Dm.adoBokInform.Append;
Dm.adoBokInform.FieldByName('BookNo').AsString:=Trim(edBookNo.Text);
Dm.adoBokInform.FieldByName('boConName').AsString:=Trim(comConName.Text);
Dm.adoBokInform.FieldByName('Class').AsString:=Trim(comClass.Text);
Dm.adoBokInform.FieldByName('Title').AsString:=Trim(edTitle.Text);
Dm.adoBokInform.FieldByName('Author').AsString:=Trim(edAuthor.Text);
Dm.adoBokInform.FieldByName('BookCaseName').AsString:=Trim(comBookCase.Text);
Dm.adoBokInform.FieldByName('Cost').AsString:=Trim(edCost.Text);
Dm.adoBokInform.FieldByName('WBTN').AsString:='0';
Dm.adoBokInform.FieldByName('BarCode').AsString:=Trim(edBarCode.Text);
Dm.adoBokInform.FieldByName('Largess').AsString:=Trim(moLargess.Text);
Dm.adoBokInform.FieldByName('Term').AsString:=Trim(edTerm.Text);
Dm.adoBokInform.FieldByName('Remark').AsString:=Trim(moRemark.Text);
Dm.adoBokInform.FieldByName('Loan').AsString:='0';
end
else
begin
Dm.adoBokInform.Edit;
Dm.adoBokInform.FieldByName('BookNo').AsString:=Trim(edBookNo.Text);
Dm.adoBokInform.FieldByName('boConName').AsString:=Trim(comConName.Text);
Dm.adoBokInform.FieldByName('Class').AsString:=Trim(comClass.Text);
Dm.adoBokInform.FieldByName('Title').AsString:=Trim(edTitle.Text);
Dm.adoBokInform.FieldByName('Author').AsString:=Trim(edAuthor.Text);
Dm.adoBokInform.FieldByName('BookCaseName').AsString:=Trim(comBookCase.Text);
Dm.adoBokInform.FieldByName('Cost').AsString:=Trim(edCost.Text);
Dm.adoBokInform.FieldByName('BarCode').AsString:=Trim(edBarCode.Text);
Dm.adoBokInform.FieldByName('Largess').AsString:=Trim(moLargess.Text);
Dm.adoBokInform.FieldByName('Term').AsString:=Trim(edTerm.Text);
Dm.adoBokInform.FieldByName('LoanDate').AsString:=DateToStr(dtLoanDate.Date);
Dm.adoBokInform.FieldByName('Remark').AsString:=Trim(moRemark.Text);
end;
if FileExists(OpenPictureDialog.FileName)then
TblobField(Dm.adoBokInform.FieldByName('Pic')).LoadFromFile(OpenPictureDialog.FileName);
if Dm.adoBokInform.FieldByName('Loan').AsString<>'1' then
Dm.adoBokInform.FieldByName('LoanDate').Clear;
Dm.adoBokInform.Post;
TextEnable(False);
OpenPictureDialog.FileName:='';
end;
procedure TfrmBokInform.bitInfoClick(Sender: TObject);
begin
Search(0);
end;
procedure TfrmBokInform.btnBrowseClick(Sender: TObject);
begin
if OpenPictureDialog.Execute then
imgPic.Picture.LoadFromFile(OpenPictureDialog.FileName);
end;
procedure TfrmBokInform.bitInfoListClick(Sender: TObject);
begin
Search(0);
end;
procedure TfrmBokInform.edBarCodeKeyPress(Sender: TObject; var Key: Char);
begin
if not (((key>='0')and(key<='9'))or(key=chr(8)))then
begin
key:=char(0);
end;
end;
procedure TfrmBokInform.edCostKeyPress(Sender: TObject; var Key: Char);
begin
if not((((key>='0')and(key<='9'))or(key='.'))or(key=chr(8))) then
key:=chr(0);
if (pos('.',edCost.Text)>0)and (key='.') then
key:=chr(0);
end;
procedure TfrmBokInform.edTermKeyPress(Sender: TObject; var Key: Char);
begin
if not (((key>='0')and(key<='9'))or(key=chr(8)))then
begin
key:=char(0);
end;
end;
procedure TfrmBokInform.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
Dm.adoBokInform.Close;
end;
procedure TfrmBokInform.cdGridDBTableView1KeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
InfoList();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -