📄 tswh_form.pas
字号:
unit TSWH_Form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TFlatButtonUnit, ComCtrls, TFlatGroupBoxUnit, StdCtrls,
TFlatMemoUnit, TFlatComboBoxUnit, TFlatEditUnit, TFlatRadioButtonUnit,
DB, DBTables, Grids, DBGrids;
type
TTSWH_F = class(TForm)
TSWH_PC: TPageControl;
TSXGSC_TS: TTabSheet;
TSLBBJ_TS: TTabSheet;
FlatGroupBox1: TFlatGroupBox;
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;
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;
Label16: TLabel;
DWBH_FE: TFlatEdit;
DW_FBtn: TFlatButton;
FlatGroupBox4: TFlatGroupBox;
XG_FRBtn: TFlatRadioButton;
SC_FRBtn: TFlatRadioButton;
ZX_FBtn: TFlatButton;
Close_Btn: TButton;
Label17: TLabel;
FlatGroupBox5: TFlatGroupBox;
LB_DG: TDBGrid;
Del_FBtn: TFlatButton;
FlatGroupBox8: TFlatGroupBox;
Label18: TLabel;
LBDM_FE: TFlatEdit;
Label19: TLabel;
LBMC_FE: TFlatEdit;
FlatGroupBox7: TFlatGroupBox;
LBXG_FRBtn: TFlatRadioButton;
LBTJ_FRBtn: TFlatRadioButton;
LBZX_FBtn: TFlatButton;
LB_DS: TDataSource;
procedure Close_BtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DW_FBtnClick(Sender: TObject);
procedure ZX_FBtnClick(Sender: TObject);
procedure LB_DGMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Del_FBtnClick(Sender: TObject);
procedure LBZX_FBtnClick(Sender: TObject);
procedure LBTJ_FRBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure LBXG_FRBtnClick(Sender: TObject);
procedure TSWH_PCChange(Sender: TObject);
private
function CheckError:boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
TSWH_F: TTSWH_F;
implementation
uses
Common_Unit;
{$R *.dfm}
var
TSLB_T:TTable;
TSJBXX_T:TTable;
procedure TTSWH_F.Close_BtnClick(Sender: TObject);
begin
close;
end;
//***********************************************************************************
procedure TTSWH_F.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
//***********************************************************************************
procedure TTSWH_F.FormDestroy(Sender: TObject);
begin
TSLB_T.Close;
FreeAndNil(TSLB_T);
TSJBXX_T.Close;
FreeAndNil(TSJBXX_T);
TSWH_F:=nil;
end;
//***********************************************************************************
procedure TTSWH_F.FormCreate(Sender: TObject);
begin
TSJBXX_T:=TTable.Create(nil);
TSJBXX_T.DatabaseName:=DataPath;
TSJBXX_T.TableName:='TSJBXX.db';
TSLB_T:=TTable.Create(nil);
TSLB_T.DatabaseName:=DataPath;
TSLB_T.TableName:='TSLB.db';
LB_DS.DataSet:=TSLB_T; //注意这种数据库动态连接
LB_DG.Columns[0].FieldName:='ClassID';
LB_DG.Columns[1].FieldName:='ClassName';
TSLB_T.Open;
while not TSLB_T.Eof do
begin
LB_FCB.Items.Add(TSLB_T.FieldValues['ClassName']);
TSLB_T.Next;
end;
TSLB_T.First;
LB_FCB.ItemIndex:=0;
LBTJ_FRBtn.Checked:=true;
end;
//***********************************************************************************
procedure TTSWH_F.DW_FBtnClick(Sender: TObject); //定位记录
begin
TSJBXX_T.Open;
if TSJBXX_T.Locate('TSBH',DWBH_FE.Text,[]) then
begin
BH_FE.Text:=DWBH_FE.Text;
SM_FE.Text:=TSJBXX_T.FieldValues['Name'];
ZZ_FE.Text:=TSJBXX_T.FieldValues['Auther'];
CBRQ_FE.Text:=DateToStr(TSJBXX_T.FieldValues['OutDate']);
CBS_FE.Text:=TSJBXX_T.FieldValues['CBS'];
DJ_FE.Text:=FloatToStr(TSJBXX_T.FieldValues['Cost']);
SL_FE.Text:=IntToStr(TSJBXX_T.FieldValues['TotalNum']);
BZ_FM.Text:=TSJBXX_T.FieldValues['BZ'];
TSLB_T.Locate('ClassID',TSJBXX_T.FieldValues['Class'],[]);
LB_FCB.ItemIndex:=LB_FCB.Items.IndexOf(TSLB_T.FieldValues['ClassName']);
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;
TSJBXX_T.Locate('TSBH',BH_FE.Text,[]);
TSJBXX_T.Edit;
TSLB_T.Locate('ClassName',LB_FCB.Text,[]);
TSJBXX_T.FieldByName('Class').AsString:=TSLB_T.FieldValues['ClassID'];
TSJBXX_T.FieldByName('Name').AsString:=SM_FE.Text;
TSJBXX_T.FieldByName('Auther').AsString:=ZZ_FE.Text;
TSJBXX_T.FieldByName('OutDate').AsDateTime:=StrToDate(CBRQ_FE.Text);
TSJBXX_T.FieldByName('CBS').AsString:=CBS_FE.Text;
TSJBXX_T.FieldByName('Cost').AsFloat:=StrToFloat(DJ_FE.Text);
TSJBXX_T.FieldByName('TotalNum').AsInteger:=StrToInt(SL_FE.Text);
TSJBXX_T.FieldByName('LastNum').AsInteger:=StrToInt(SL_FE.Text);
TSJBXX_T.FieldByName('BZ').AsString:=BZ_FM.Text;
TSJBXX_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;
TSJBXX_T.Locate('TSBH',BH_FE.Text,[]);
TSJBXX_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.LB_DGMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
LBDM_FE.Text:=LB_DG.DataSource.DataSet.FieldValues['ClassID'];
LBMC_FE.Text:=LB_DG.DataSource.DataSet.FieldValues['ClassName'];
LBXG_FRBtn.Checked:=true;
LBZX_FBtn.Enabled:=true;
LBDM_FE.Enabled:=false;
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;
LBZX_FBtn.Enabled:=false;
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('ClassID',LBDM_FE.Text,[]) then
begin
MessageBox(handle,'类别代码已经存在!','错误',MB_OK or MB_ICONERROR);
LBDM_FE.SetFocus;
exit;
end;
if TSLB_T.Locate('ClassName',LBMC_FE.Text,[]) then
begin
MessageBox(handle,'类别名称已经存在!','错误',MB_OK or MB_ICONERROR);
LBDM_FE.SetFocus;
exit;
end;
TSLB_T.Append;
TSLB_T.FieldByName('ClassID').AsString:=LBDM_FE.Text;
TSLB_T.FieldByName('ClassName').AsString:=LBMC_FE.Text;
TSLB_T.Post;
MessageBox(handle,'类型记录添加成功!','添加成功',MB_OK or MB_ICONINFORMATION);
end
else begin
TSLB_T.Locate('ClassID',LBDM_FE.Text,[]);
TSLB_T.Edit;
TSLB_T.FieldByName('ClassName').AsString:=LBMC_FE.Text;
TSLB_T.Post;
MessageBox(handle,'类型记录修改成功!','修改成功',MB_OK or MB_ICONINFORMATION);
end;
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.LBXG_FRBtnClick(Sender: TObject); //当方式选中修改时
begin
LBDM_FE.Text:=LB_DG.DataSource.DataSet.FieldValues['ClassID'];
LBMC_FE.Text:=LB_DG.DataSource.DataSet.FieldValues['ClassName'];
LBZX_FBtn.Enabled:=true;
LBDM_FE.Enabled:=false;
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['ClassName']);
TSLB_T.Next;
end;
TSLB_T.First;
LB_FCB.ItemIndex:=0;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -