📄 xsrk_form.pas
字号:
unit XSRK_Form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TFlatMemoUnit, TFlatComboBoxUnit, TFlatEditUnit,
TFlatGroupBoxUnit, TFlatSpeedButtonUnit,DB,ADODB;
type
TXSRK_F = class(TForm)
FlatSpeedButton2: TFlatSpeedButton;
FlatSpeedButton1: TFlatSpeedButton;
FlatGroupBox1: TFlatGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
BH_FE: TFlatEdit;
SM_FE: TFlatEdit;
ZZ_FE: TFlatEdit;
LM_FCB: TFlatComboBox;
CBRQ_FE: TFlatEdit;
CBS_FE: TFlatEdit;
DJ_FE: TFlatEdit;
SL_FE: TFlatEdit;
BZ_FM: TFlatMemo;
LB_FE: TFlatEdit;
procedure FormCreate(Sender: TObject);
procedure LM_FCBChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FlatSpeedButton1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FlatSpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GetClassName(ClassName : string): string;
function CheckError:boolean;
end;
var
XSRK_F: TXSRK_F;
implementation
uses Share_Unit;
{$R *.dfm}
var
TSXX_Q:TADOQuery;
TSLB_Q:TADOQuery;
//******************************************************************************
function IsNumber(str:string):boolean;
var
i:integer;
begin
Result:=true;
for i:=1 to Length(str) do
if not (ord(str[i]) in [48..57]) then
begin
Result:=false;
exit;
end;
end;
//******************************************************************************
procedure TXSRK_F.FormCreate(Sender: TObject);
begin
TSLB_Q:=TADOQuery.Create(nil);
TSLB_Q.Connection:=Connect;
TSLB_Q.SQL.Clear;
TSLB_Q.SQL.Add('select 类名 from 图书类别');
TSLB_Q.Open;
while not TSLB_Q.Eof do
begin
LM_FCB.Items.Add(TSLB_Q.FieldByName('类名').AsString);
TSLB_Q.Next;
end;
LB_FE.Enabled:=false;
LM_FCB.ItemIndex := 0;
LB_FE.Text:=GetClassName(LM_FCB.Items[LM_FCB.ItemIndex]);
TSLB_Q.Close;
end;
//******************************************************************************
function TXSRK_F.GetClassName(ClassName: string): string;
begin
try
TSLB_Q.SQL.Clear;
TSLB_Q.SQL.Add('select 类别 from 图书类别');
TSLB_Q.SQL.Add('where 类名=:类名');
TSLB_Q.Parameters.ParamByName('类名').Value:=ClassName;
TSLB_Q.Open;
if TSLB_Q.RecordCount = 0 then
Result := ''
else
Result := TSLB_Q.FieldByName('类别').AsString;
TSLB_Q.Close;
except
Result := '';
end;
end;
//******************************************************************************
procedure TXSRK_F.LM_FCBChange(Sender: TObject);
begin
LB_FE.Text := GetClassName(LM_FCB.Items[LM_FCB.ItemIndex]);
end;
procedure TXSRK_F.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
//******************************************************************************
function TXSRK_F.CheckError:boolean; //检查输入的数据是否有错误
begin
result:=false;
TSXX_Q:=TADOQuery.Create(nil);
TSXX_Q.Connection:=Connect;
if (length(BH_FE.Text)<>10)or (not IsNumber(BH_FE.Text)) then //图书编号是否合法
begin
MessageBox(handle,'图书编号即图书的条形码为10位数字!','图书编号错误',MB_OK or MB_ICONERROR);
result:=true;
exit;
end
else
begin
TSXX_Q.Close;
TSXX_Q.SQL.Clear;
TSXX_Q.SQL.Add('Select * From 图书信息 Where 图书编号=:图书编号');
TSXX_Q.Parameters.ParamByName('图书编号').Value:=BH_FE.Text;
TSXX_Q.Open;
if TSXX_Q.RecordCount<>0 then
begin
MessageBox(handle,'你输入的图书编号已经存在!','编号重复',MB_OK or MB_ICONERROR);
result:=true;
exit;
end;
end;
if SM_FE.Text='' then
begin
MessageBox(handle,'书名不能为空!','书名有误',MB_OK or MB_ICONERROR);
result:=true;
exit;
end;
if ZZ_FE.Text='' then
begin
MessageBox(handle,'作者不能为空!','作者有误',MB_OK or MB_ICONERROR);
result:=true;
exit;
end;
if CBS_FE.Text='' then
begin
MessageBox(handle,'出版社不能为空!','出版社有误',MB_OK or MB_ICONERROR);
result:=true;
exit;
end;
if DJ_FE.Text='' then
begin
MessageBox(handle,'定价不能为空!','定价有误',MB_OK or MB_ICONERROR);
result:=true;
exit;
end;
try //判断定价是否正确
StrToFloat(DJ_FE.Text);
except
MessageBox(handle,'定价不对!','定价错误',MB_OK or MB_ICONERROR);
result:=true;
exit;
end;
try //判断日期格式是否正确
StrToDate(CBRQ_FE.Text);
except
MessageBox(handle,'日期格式不对,正确格式形如:2004-8-5!','日期错误',MB_OK or MB_ICONERROR);
result:=true;
exit;
end;
try //入库数量必须为整数
StrToInt(SL_FE.Text);
except
MessageBox(handle,'入库数量必须为大于0的整数!','数量错误',MB_OK or MB_ICONERROR);
result:=true;
exit;
end;
end;
//***********************************************************************************
procedure TXSRK_F.FlatSpeedButton1Click(Sender: TObject);
begin
if CheckError then exit;
TSXX_Q.Close;
TSXX_Q.SQL.Clear;
TSXX_Q.SQL.Add('Insert Into 图书信息(图书编号,类别,书名,作者,出版日期,出版社,定价,总数量,剩下数量,备注)');
TSXX_Q.SQL.Add(' Values (:图书编号,:类别,:书名,:作者');
TSXX_Q.SQL.Add(',:出版日期,:出版社,:定价,:总数量,:剩下数量,:备注)');
TSXX_Q.Parameters.ParamByName('图书编号').Value:=BH_FE.Text;
TSXX_Q.Parameters.ParamByName('类别').Value:=LB_FE.Text;
TSXX_Q.Parameters.ParamByName('书名').Value:=SM_FE.Text;
TSXX_Q.Parameters.ParamByName('作者').Value:=ZZ_FE.Text;
TSXX_Q.Parameters.ParamByName('出版日期').Value:=StrToDate(CBRQ_FE.Text);
TSXX_Q.Parameters.ParamByName('出版社').Value:=CBS_FE.Text;
TSXX_Q.Parameters.ParamByName('定价').Value:=StrToFloat(DJ_FE.Text);
TSXX_Q.Parameters.ParamByName('总数量').Value:=StrToInt(SL_FE.Text);
TSXX_Q.Parameters.ParamByName('剩下数量').Value:=StrToInt(SL_FE.Text);
TSXX_Q.Parameters.ParamByName('备注').Value:=BZ_FM.Text;
TSXX_Q.ExecSQL;
MessageBox(handle,'此图书已经成功入库!','入库成功',MB_OK or MB_ICONINFORMATION);
BH_FE.Text:='';
SM_FE.Text:='';
ZZ_FE.Text:='';
CBRQ_FE.Text:='';
CBS_FE.Text:='';
DJ_FE.Text:='';
SL_FE.Text:='';
SL_FE.Text:='';
BZ_FM.Text:='';
TSXX_Q.Close;
end;
//******************************************************************************
procedure TXSRK_F.FormDestroy(Sender: TObject);
begin
FreeAndNil(TSLB_Q);
FreeAndNil(TSXX_Q);
XSRK_F:=nil;
end;
//******************************************************************************
procedure TXSRK_F.FlatSpeedButton2Click(Sender: TObject);
begin
close;
end;
//******************************************************************************
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -