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

📄 newbook.~pas

📁 delphi编写的图书管理系统,一般的管理系统
💻 ~PAS
字号:
unit newbook;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons,dbtables, ComCtrls;

type
  Tnewfrm = class(TForm)
    GroupBox1: TGroupBox;
    memobox: TMemo;
    Label8: TLabel;
    Label7: TLabel;
    Label6: TLabel;
    Label5: TLabel;
    Label4: TLabel;
    Label3: TLabel;
    Label2: TLabel;
    Label1: TLabel;
    pricebox: TEdit;
    publisherbox: TEdit;
    authorbox: TEdit;
    namebox: TEdit;
    nobox: TEdit;
    typebox: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label9: TLabel;
    intimebox: TEdit;
    Label10: TLabel;
    outcountbox: TEdit;
    pubtimebox: TDateTimePicker;
    BitBtn3: TBitBtn;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure typeboxChange(Sender: TObject);
  private
  function nextbookno(const str:string):string;
  procedure autono(const stype:string);
  procedure insbook;//新书入库
    { Private declarations }
  public
    { Public declarations }
  end;

var
  newfrm: Tnewfrm;

implementation
  uses global;
{$R *.dfm}

function Tnewfrm.nextbookno(const str:string):string;
var s,s1:string;
    i,j,k:integer;
begin
s:=str;
s1:=copy(s,1,1);
delete(s,1,1);
i:=length(s);
j:=length(inttostr(strtoint(s)));
for k:=1 to i-j do s1:=s1+'0';
result:=s1+inttostr(strtoint(s)+1);
end;

procedure Tnewfrm.autono(const stype:string) ;
var q:tquery;
    s:string;
begin
q:=tquery.Create(nil);
q.DatabaseName :=dbname;
q.SQL.Add('select 图书编号 from book_info where 类别='''+stype+''''+' order by 图书编号');
q.Open ;
q.Last ;
s:=q.fieldbyname('图书编号').AsString ;
q.Close ;
q.Free ;
nobox.Text :=nextbookno(s);
end;

procedure Tnewfrm.insbook ;
var q:tquery;
begin
    q:=tquery.Create(nil);
    q.DatabaseName :=dbname ;
    q.SQL.Add('insert into book_info(图书编号,书名,作者,出版社,出版时间,书价,类别,备注,入库时间,借阅次数)'+
    ' values(:b_no,:b_name,:b_author,:b_publisher,:b_ptime,:b_money,:b_type,:b_memo,:b_intime,:b_outcount)');
    q.ParamByName('b_no').AsString :=nobox.Text ;
    q.ParamByName('b_name').AsString :=namebox.Text ;
    q.ParamByName('b_type').AsString :=typebox.Items[typebox.itemindex];
    q.ParamByName('b_author').AsString :=authorbox.Text ;
    q.ParamByName('b_publisher').AsString :=publisherbox.Text ;
    q.ParamByName('b_ptime').AsDate:=pubtimebox.Date ;
    q.ParamByName('b_money').AsFloat :=strtofloat(pricebox.Text);
    q.ParamByName('b_intime').AsDate :=strtodate(intimebox.Text);
    q.ParamByName('b_outcount').AsInteger :=strtoint(outcountbox.Text);
    q.ParamByName('b_memo').AsString :=memobox.Lines.GetText ;
    q.ExecSQL ;
    messagedlg('新书:'+namebox.Text+chr(10)+chr(13)+'已经成功入库!',mtinformation,[mbYes],0);
    q.Close;
    q.Free ;
end;


procedure Tnewfrm.BitBtn2Click(Sender: TObject);
begin
close;
end;

procedure Tnewfrm.FormShow(Sender: TObject);
begin
autono(typebox.Text);
namebox.Clear ;
authorbox.Clear ;
publisherbox.Clear ;
pricebox.Clear ;
memobox.Lines.Clear ;
namebox.SetFocus ;
end;

procedure Tnewfrm.FormCreate(Sender: TObject);
begin
intimebox.Text :=datetostr(date);
end;

procedure Tnewfrm.BitBtn1Click(Sender: TObject);
begin
if messagedlg('确定入库吗?',mtconfirmation,[mbYes,mbNo],0)=mrYes then
  begin
  insbook; //先入库
  newfrm.OnShow(self); //清空并产生下一个书号
  end;
end;

procedure Tnewfrm.BitBtn3Click(Sender: TObject);
begin
newfrm.OnShow(self);
end;

procedure Tnewfrm.typeboxChange(Sender: TObject);
begin
autono(typebox.Text);
end;

end.

⌨️ 快捷键说明

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