📄 tswh_form.pas
字号:
unit TSWH_Form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, TFlatRadioButtonUnit, TFlatMemoUnit,
TFlatComboBoxUnit, TFlatButtonUnit, TFlatEditUnit, TFlatGroupBoxUnit,
ComCtrls,DB,ADODB;
type
TTSWH_F = class(TForm)
TSWH_PC: TPageControl;
TSXGSC_TS: TTabSheet;
FlatGroupBox1: TFlatGroupBox;
Label16: TLabel;
DWBH_FE: TFlatEdit;
DW_FBtn: TFlatButton;
FlatGroupBox2: 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;
Label17: TLabel;
BH_FE: TFlatEdit;
SM_FE: TFlatEdit;
ZZ_FE: TFlatEdit;
LB_FCB: TFlatComboBox;
CBRQ_FE: TFlatEdit;
CBS_FE: TFlatEdit;
DJ_FE: TFlatEdit;
SL_FE: TFlatEdit;
BZ_FM: TFlatMemo;
FlatGroupBox3: TFlatGroupBox;
FlatGroupBox4: TFlatGroupBox;
XG_FRBtn: TFlatRadioButton;
SC_FRBtn: TFlatRadioButton;
ZX_FBtn: TFlatButton;
TSLBBJ_TS: TTabSheet;
FlatGroupBox5: TFlatGroupBox;
LB_DG: TDBGrid;
Del_FBtn: TFlatButton;
FlatGroupBox8: TFlatGroupBox;
Label18: TLabel;
Label19: TLabel;
LBDM_FE: TFlatEdit;
LBMC_FE: TFlatEdit;
FlatGroupBox7: TFlatGroupBox;
LBXG_FRBtn: TFlatRadioButton;
LBTJ_FRBtn: TFlatRadioButton;
LBZX_FBtn: TFlatButton;
Close_Btn: TButton;
LB_DS: TDataSource;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Close_BtnClick(Sender: TObject);
procedure DW_FBtnClick(Sender: TObject);
procedure ZX_FBtnClick(Sender: TObject);
procedure LBXG_FRBtnClick(Sender: TObject);
procedure LBTJ_FRBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TSWH_PCChange(Sender: TObject);
procedure Del_FBtnClick(Sender: TObject);
procedure LBZX_FBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function CheckError:boolean;
end;
var
TSWH_F: TTSWH_F;
implementation
uses Share_Unit;
{$R *.dfm}
var
TSLB_T,TSXX_T:TADOTable;
//******************************************************************************
procedure TTSWH_F.FormCreate(Sender: TObject);
begin
TSLB_T:=TADOTable.Create(nil);
TSLB_T.Connection:=Connect;
TSLB_T.TableName:='图书类别';
TSXX_T:=TADOTable.Create(nil);
TSXX_T.Connection:=Connect;
TSXX_T.TableName:='图书信息';
LB_DS.DataSet:=TSLB_T;
LB_DG.Columns[0].FieldName:='类别';
LB_DG.Columns[1].FieldName:='类名';
TSLB_T.Open;
while not TSLB_T.Eof do
begin
LB_FCB.Items.Add(TSLB_T.FieldValues['类名']);
TSLB_T.Next;
end;
TSLB_T.First;
LB_FCB.ItemIndex:=0;
LBTJ_FRBtn.Checked:=true;
end;
//******************************************************************************
procedure TTSWH_F.Close_BtnClick(Sender: TObject);
begin
close;
end;
//******************************************************************************
procedure TTSWH_F.DW_FBtnClick(Sender: TObject); //定位
begin
TSXX_T.Open;
if TSXX_T.Locate('图书编号',DWBH_FE.Text,[]) then
begin
BH_FE.Text:=DWBH_FE.Text;
SM_FE.Text:=TSXX_T.FieldValues['书名'];
ZZ_FE.Text:=TSXX_T.FieldValues['作者'];
CBRQ_FE.Text:=DateToStr(TSXX_T.FieldValues['出版日期']);
CBS_FE.Text:=TSXX_T.FieldValues['出版社'];
DJ_FE.Text:=FloatToStr(TSXX_T.FieldValues['定价']);
SL_FE.Text:=IntToStr(TSXX_T.FieldValues['总数量']);
BZ_FM.Text:=TSXX_T.FieldValues['备注'];
TSLB_T.Locate('类别',TSXX_T.FieldValues['类别'],[]);
LB_FCB.ItemIndex:=LB_FCB.Items.IndexOf(TSLB_T.FieldValues['类名']);
XG_FRBtn.Checked:=true;
ZX_FBtn.Enabled:=true;
end
else begin
MessageBox(handle,'记录没有找到,请检查输入的编号是否正确!','没找到图书记录',MB_OK or MB_ICONERROR);
end;
end;
//******************************************************************************
function TTSWH_F.CheckError:boolean; //检查输入的数据是否有错误
begin
result:=false;
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,'日期格式不对,正确格式形如:2003-03-19或2003-3-19 !','日期错误',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 TTSWH_F.ZX_FBtnClick(Sender: TObject); //执行删除图书
var
Del_Flag:integer;
begin
if XG_FRBtn.Checked then
begin
if CheckError then exit;
TSXX_T.Locate('图书编号',BH_FE.Text,[]);
TSXX_T.Edit;
TSLB_T.Locate('类名',LB_FCB.Text,[]);
TSXX_T.FieldByName('类别').AsString:=TSLB_T.FieldValues['类别'];
TSXX_T.FieldByName('书名').AsString:=SM_FE.Text;
TSXX_T.FieldByName('作者').AsString:=ZZ_FE.Text;
TSXX_T.FieldByName('出版日期').AsDateTime:=StrToDate(CBRQ_FE.Text);
TSXX_T.FieldByName('出版社').AsString:=CBS_FE.Text;
TSXX_T.FieldByName('定价').AsFloat:=StrToFloat(DJ_FE.Text);
TSXX_T.FieldByName('总数量').AsInteger:=StrToInt(SL_FE.Text);
TSXX_T.FieldByName('剩下数量').AsInteger:=StrToInt(SL_FE.Text);
TSXX_T.FieldByName('备注').AsString:=BZ_FM.Text;
TSXX_T.Post;
MessageBox(handle,'记录已成功修改!!','修改成功',MB_OK or MB_ICONINFORMATION);
end
else begin
Del_Flag:=MessageBox(handle,'警告:删除是永久的不可恢复的!确认删除吗?','删除确认',MB_OKCANCEL or MB_ICONWarning);
if Del_Flag=IDCancel then exit;
TSXX_T.Locate('图书编号',BH_FE.Text,[]);
TSXX_T.Delete;
MessageBox(handle,'记录已成功删除!','删除成功',MB_OK or MB_ICONINFORMATION);
DWBH_FE.Text:='';
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:='';
LB_FCB.ItemIndex:=0;
ZX_FBtn.Enabled:=false;
end;
end;
//******************************************************************************
procedure TTSWH_F.LBXG_FRBtnClick(Sender: TObject); //当方式选中修改时
begin
LBDM_FE.Text:=LB_DG.DataSource.DataSet.FieldValues['类别'];
LBMC_FE.Text:=LB_DG.DataSource.DataSet.FieldValues['类名'];
LBZX_FBtn.Enabled:=true;
LBDM_FE.Enabled:=false;
end;
//******************************************************************************
procedure TTSWH_F.LBTJ_FRBtnClick(Sender: TObject); //当方式选中添加时
begin
LBDM_FE.Text:='';
LBDM_FE.Enabled:=true;
LBMC_FE.Text:='';
end;
//******************************************************************************
procedure TTSWH_F.FormShow(Sender: TObject);
begin
TSWH_PC.ActivePage:=TSXGSC_TS;
end;
//******************************************************************************
procedure TTSWH_F.TSWH_PCChange(Sender: TObject);
begin
if TSWH_PC.ActivePage=TSXGSC_TS then
begin
LB_FCB.Items.Clear;
TSLB_T.Open;
TSLB_T.First;
while not TSLB_T.Eof do
begin
LB_FCB.Items.Add(TSLB_T.FieldValues['类名']);
TSLB_T.Next;
end;
TSLB_T.First;
LB_FCB.ItemIndex:=0;
end;
end;
//******************************************************************************
procedure TTSWH_F.Del_FBtnClick(Sender: TObject);
var
Del_Flag:integer;
begin
Del_Flag:=MessageBox(handle,'警告:删除是永久的不可恢复的!确认删除吗?','删除确认',MB_OKCANCEL or MB_ICONWarning);
if Del_Flag=IDCancel then exit;
LB_DG.DataSource.DataSet.Delete;
MessageBox(handle,'记录已成功删除!','删除成功',MB_OK or MB_ICONINFORMATION);
LBDM_FE.Text:='';
LBDM_FE.Enabled:=true;
LBMC_FE.Text:='';
LBTJ_FRBtn.Enabled:=true;
end;
//******************************************************************************
procedure TTSWH_F.LBZX_FBtnClick(Sender: TObject); //类别的执行操作
begin
if LBDM_FE.Text='' then
begin
MessageBox(handle,'类别代码不能为空!','类别代码错误',MB_OK or MB_ICONERROR);
exit;
end;
if LBMC_FE.Text='' then
begin
MessageBox(handle,'类别名称不能为空!','类别名称错误',MB_OK or MB_ICONERROR);
exit;
end;
if LBTJ_FRBtn.Checked then
begin
if TSLB_T.Locate('类别',LBDM_FE.Text,[]) then
begin
MessageBox(handle,'类别代码已经存在!','错误',MB_OK or MB_ICONERROR);
LBDM_FE.SetFocus;
exit;
end;
if TSLB_T.Locate('类名',LBMC_FE.Text,[]) then
begin
MessageBox(handle,'类别名称已经存在!','错误',MB_OK or MB_ICONERROR);
LBDM_FE.SetFocus;
exit;
end;
TSLB_T.Append;
TSLB_T.FieldByName('类别').AsString:=LBDM_FE.Text;
TSLB_T.FieldByName('类名').AsString:=LBMC_FE.Text;
TSLB_T.Post;
MessageBox(handle,'类型记录添加成功!','添加成功',MB_OK or MB_ICONINFORMATION);
end
else begin
TSLB_T.Locate('类别',LBDM_FE.Text,[]);
TSLB_T.Edit;
TSLB_T.FieldByName('类名').AsString:=LBMC_FE.Text;
TSLB_T.Post;
MessageBox(handle,'类型记录修改成功!','修改成功',MB_OK or MB_ICONINFORMATION);
end;
end;
//******************************************************************************
procedure TTSWH_F.FormDestroy(Sender: TObject);
begin
//TSLB_T.Close;
FreeAndNil(TSLB_T);
//TSXX_T.Close;
FreeAndNil(TSXX_T);
TSWH_F:=nil;
end;
//******************************************************************************
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -