📄 ubookin.pas
字号:
unit uBookIn;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, dbtables, Buttons;
type
TfrmBookIn = class(TForm)
Label1: TLabel;
btnCancel: TSpeedButton;
btnIn: TSpeedButton;
Panel1: TPanel;
Memo1: TMemo;
StaticText8: TStaticText;
StaticText7: TStaticText;
CostEdit: TEdit;
OutTimeEdit: TEdit;
StaticText6: TStaticText;
StaticText5: TStaticText;
ConcernEdit: TEdit;
AuthorEdit: TEdit;
ClassEdit: TEdit;
StaticText4: TStaticText;
StaticText3: TStaticText;
StaticText2: TStaticText;
NameEdit: TEdit;
ComboBox1: TComboBox;
CodeEdit: TEdit;
Bevel1: TBevel;
StaticText1: TStaticText;
procedure ComboBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure btnInClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Init;
function GetClassName(ClassID : string): string;
procedure InsBook(Code : string);
function CheckExistCode(Code : string):boolean;
end;
var
frmBookIn: TfrmBookIn;
implementation
uses
uPublic, main;
{$R *.DFM}
//根据类别号找到类别名称
function TfrmBookIn.GetClassName(ClassID: string): string;
var
Query : TQuery;
begin
try
Query := TQuery.Create(nil);
Query.DatabaseName := DBName;
Query.SQL.Add('select ClassName from Class where ClassID =:ClassID');
Query.ParamByName('ClassID').AsString := ClassID;
Query.Open;
if Query.RecordCount = 0 then
Result := ''
else Result := Query.FieldByName('ClassName').AsString;
Query.Close;
Query.Free;
except
Result := '';
end;
end;
procedure TfrmBookIn.ComboBox1Change(Sender: TObject);
begin
ClassEdit.Text := GetClassName(ComboBox1.Items[ComboBox1.ItemIndex]);
end;
//在书籍表中增加新的书的信息
procedure TfrmBookIn.InsBook(Code: string);
var
Query : TQuery;
begin
Query := TQuery.Create(nil);
Query.DatabaseName := DBName;
Query.SQL.Add('insert into book(Code,Name,Class,Author,Concern,OutDate,Cost,Memo)'+
' values (:Code,:Name,:Class,:Author,:ConCern,:OutDate,:Cost,:Memo)');
Query.ParamByName('Code').AsString := Code;
Query.ParamByName('Name').AsString := NameEdit.Text;
Query.ParamByName('Class').AsString := ComboBox1.Items[ComboBox1.ItemIndex];
Query.ParamByName('Author').AsString := AuthorEdit.Text;
Query.ParamByName('Concern').AsString := ConcernEdit.Text;
try
Query.ParamByName('OutDate').AsDateTime := StrToDate(OutTimeEdit.Text);
except
MessageDlg('参数<出版时间>设置错误',mtError,[mbok],0);
Query.Free;
Exit;
end;
try
Query.ParamByName('Cost').AsFloat := StrToFloat(CostEdit.Text);
except
MessageDlg('参数<价格>设置错误',mtError,[mbok],0);
Query.Free;
Exit;
end;
Query.ParamByName('Memo').AsString := Memo1.Lines.GetText;
Query.ExecSQL;
Query.Free;
end;
//检查书号是否重复
function TfrmBookIn.CheckExistCode(Code: string): boolean;
var
Query : TQuery;
begin
try
Query := TQuery.Create(nil);
Query.DatabaseName := DBName;
Query.SQL.Add('select Code from Book where Code =:Code');
Query.ParamByName('Code').AsString := Code;
Query.Open;
if Query.RecordCount = 0 then
Result := False
else Result := True;
Query.Close;
Query.Free;
except
Result := False;;
end;
end;
//模块相关控件初始化
procedure TfrmBookIn.Init;
begin
CodeEdit.SetFocus;
CodeEdit.SelectAll;
NameEdit.Text := '';
AuthorEdit.Text := '';
OutTimeEdit.Text := '';
CostEdit.Text := '';
ConcernEdit.Text := '';
ComboBox1.ItemIndex := 0;
Memo1.Lines.Clear;
ClassEdit.Text := GetClassName(ComboBox1.Items[ComboBox1.ItemIndex]);
end;
procedure TfrmBookIn.FormCreate(Sender: TObject);
var
Query : TQuery;
begin
//inherited Create(AOwner);
try
Query := TQuery.Create(nil);
Query.DatabaseName := DBName;
Query.SQL.Add('select ClassID from Class');
Query.Open;
while not Query.Eof do
begin
ComboBox1.Items.Add(Query.FieldByName('ClassID').AsString);
Query.Next;
end;
ComboBox1.ItemIndex := 0;
ClassEdit.Text := GetClassName(ComboBox1.Items[ComboBox1.ItemIndex]);
Query.Close;
Query.Free;
except
ComboBox1.Items.Clear;
end;
end;
procedure TfrmBookIn.btnCancelClick(Sender: TObject);
begin
close;
end;
//入库操作
procedure TfrmBookIn.btnInClick(Sender: TObject);
begin
if Length(CodeEdit.Text)<> CodeLength then
begin
MessageDlg('书号不正确',mtError,[mbok],0);
CodeEdit.SetFocus;
Exit;
end;
if CheckExistCode(CodeEdit.Text) then
begin
MessageDlg('书号<'+CodeEdit.Text+'>已经存在',mtError,[mbok],0);
CodeEdit.SetFocus;
Exit;
end;
try
InsBook(CodeEdit.Text);
Init;
except
MessageDlg('入库出错',mtError,[mbok],0);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -