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

📄 frmbokinformu.pas

📁 这是一款用java做的图书管理系统
💻 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 + -