📄 newbook.~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 + -