📄 customer.pas.~1~
字号:
unit customer;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBTables, DB, Grids, DBGrids, IdGlobal, ComCtrls,
ADODB;
type
TfrmCustomer = class(TForm)
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
SortAsc: TRadioButton;
SortDesc: TRadioButton;
GroupBox2: TGroupBox;
id: TRadioButton;
name: TRadioButton;
enrolltime: TRadioButton;
level: TRadioButton;
GroupBox3: TGroupBox;
btnAdd: TButton;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
UserID: TEdit;
UserName: TEdit;
birthday: TDateTimePicker;
gender: TComboBox;
Label1: TLabel;
CardNum: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label13: TLabel;
joinTime: TDateTimePicker;
arrearage: TEdit;
btnClear: TButton;
Label6: TLabel;
Label10: TLabel;
tel: TEdit;
address: TEdit;
Label9: TLabel;
note: TEdit;
btnModify: TButton;
btnDelete: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnAddClick(Sender: TObject);
procedure SortAscClick(Sender: TObject);
procedure SortDescClick(Sender: TObject);
procedure idClick(Sender: TObject);
procedure nameClick(Sender: TObject);
procedure enrolltimeClick(Sender: TObject);
procedure levelClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure btnClearClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
procedure btnModifyClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
//判断输入是否为金额
function isMoney(s:string):boolean;
//判断输入是否为电话号码
function isTelephone(s:string):boolean;
public
{ Public declarations }
end;
var
frmCustomer: TfrmCustomer;
implementation
uses dataModule, modifyCustomer,delCustomer;
{$R *.dfm}
function TfrmCustomer.isMoney(s: string): boolean;
var
i:integer;
begin
i:=1;
if length(s)=0 then
begin
result:=false;
exit;
end;
while i<=length(s) do
begin
if (isNumeric(s[i])=false) and (s[i]<>'.')then
begin
result:=false;
exit;
end;
i:=i+1;
end;
result:=true;
end;
function TfrmCustomer.isTelephone(s: string): boolean;
var
i:integer;
begin
if length(s)=0 then
begin
result:=true;
exit;
end;
i:=1;
while i<=length(s) do
begin
if isNumeric(s[i])=false then
begin
result:=false;
exit;
end;
i:=i+1;
end;
end;
procedure TfrmCustomer.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dm.QueryLeader.Close;
self.free;
end;
procedure TfrmCustomer.btnAddClick(Sender: TObject);
var
maxNo, temp : integer;
begin
// 添加一个用户
try
//检查用户名是否为空
if( UserName.text = '') then
begin
messageDlg('"姓名"不能为空,请重新输入!',mtWarning,[mbOk],0);
activeControl:=UserName;
abort;
end
//检查用户名是否过长
{ else if(length(UserName.Text) > 8)then
begin
messageDlg('"用户姓名"太长,请重新输入!',mtWarning,[mbOk],0);
activeControl:=UserName;
abort;
end
}
//检查生日是否合法
else if(birthday.Date>=joinTime.Date) then
begin
messageDlg('"生日"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=birthDay;
abort;
end
//检查联系电话
else if(length(tel.Text)>12 ) or (isTelephone(tel.Text)=false) then
begin
messageDlg('"联系电话"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=tel;
abort;
end
//检查住址
else if(length(address.Text) > 20 ) then
begin
messageDlg('"住址"输入过长,请重新输入!',mtWarning,[mbOk],0);
activeControl:=address;
abort;
end
//检查每小时收费
else if(ismoney(arrearage.text) = false) then
begin
messageDlg('"收费"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=arrearage;
abort;
end
//检查备注
else if length(note.Text)>50 then
begin
messageDlg('"备注"输入过长,请重新输入!',mtWarning,[mbOk],0);
activeControl:=note;
abort;
end;
//
with dm.TLeader do
begin
open;
append;
maxNo := strToInt(UserID.text) ;
fieldByName('编号').AsInteger := maxNo;
maxNo := maxNo+1;
UserID.text := intToStr(maxNo);
fieldByName('姓名').AsString := UserName.text;
fieldByName('性别').AsString:=gender.Text;
fieldByName('生日').AsDateTime:=birthday.Date;
fieldByName('身份证号码').AsString := CardNum.text;
fieldByName('级别').AsString:='普通';
fieldByName('电话').AsString:=tel.Text;
fieldByName('地址').AsString:=address.Text;
fieldByName('任职时间').AsDateTime:=joinTime.Date;
fieldByName('每小时收费').AsString:=arrearage.Text;
fieldByName('备注').AsString:=note.Text;
post;
close;
end;
except
on ex:EConvertError do
begin
messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
end;
end;{end of try}
// 更新表格使它同步显示添加内容
with dm.QueryLeader do
begin
close;
sql.Clear;
sql.Add('select * from leader');
open;
end;
// 显示添加成功消息
messageDlg('新导游添加成功!',mtWarning,[mbOk],0);
// 设置对话框焦点
activeControl:=UserName;
end;
procedure TfrmCustomer.SortAscClick(Sender: TObject);
var
context : string;
begin
if( id.Checked = true )
then context := '编号'
else if ( name.Checked = true )
then context := '姓名'
else if ( enrolltime.Checked )
then context := '任职时间'
else if ( level.checked )
then context := '级别';
//改变查询语句
dm.QueryLeader.close;
dm.QueryLeader.SQL.Clear;
dm.QueryLeader.SQL.Add('select * from leader order by '+context+' asc');
//重新查询
try
dm.QueryLeader.Open;
except
dm.QueryLeader.ExecSQL;
end;
end;
procedure TfrmCustomer.SortDescClick(Sender: TObject);
var
context : string;
begin
if( id.Checked = true )
then context := '编号'
else if ( name.Checked = true )
then context := '姓名'
else if ( enrolltime.Checked )
then context := '任职时间'
else if ( level.checked )
then context := '级别';
//改变查询语句
dm.QueryLeader.close;
dm.QueryLeader.SQL.Clear;
dm.QueryLeader.SQL.Add('select * from leader order by '+context+' desc');
//重新查询
try
dm.QueryLeader.Open;
except
dm.QueryLeader.ExecSQL;
end;
end;
procedure TfrmCustomer.idClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
dm.QueryLeader.close;
dm.QueryLeader.SQL.Clear;
dm.QueryLeader.SQL.Add('select * from leader order by 编号 ' + sorttype);
//重新查询
try
dm.QueryLeader.Open;
except
dm.QueryLeader.ExecSQL;
end;
end;
procedure TfrmCustomer.nameClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
dm.QueryLeader.close;
dm.QueryLeader.SQL.Clear;
dm.QueryLeader.SQL.Add('select * from leader order by 姓名 ' + sorttype);
//重新查询
try
dm.QueryLeader.Open;
except
dm.QueryLeader.ExecSQL;
end;
end;
procedure TfrmCustomer.enrolltimeClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
dm.QueryLeader.close;
dm.QueryLeader.SQL.Clear;
dm.QueryLeader.SQL.Add('select * from leader order by 任职时间 ' + sorttype);
//重新查询
try
dm.QueryLeader.Open;
except
dm.QueryLeader.ExecSQL;
end;
end;
procedure TfrmCustomer.levelClick(Sender: TObject);
var
sorttype : string;
begin
//确定排序方式
if ( sortasc.Checked )
then
sorttype := 'asc'
else
sorttype := 'desc';
//更新表格
//改变查询语句
dm.QueryLeader.close;
dm.QueryLeader.SQL.Clear;
dm.QueryLeader.SQL.Add('select * from leader order by 级别 ' + sorttype);
//重新查询
try
dm.QueryLeader.Open;
except
dm.QueryLeader.ExecSQL;
end;
end;
procedure TfrmCustomer.DBGrid1CellClick(Column: TColumn);
begin
// messageDlg('hehe',mtWarning,[mbOk],0);
end;
procedure TfrmCustomer.btnClearClick(Sender: TObject);
begin
UserName.Text := '';
// UserID.Text := '';
gender.ItemIndex := 0;
birthday.DateTime := now;
joinTime.DateTime := now;
CardNum.Text := '';
arrearage.text := '';
tel.text := '';
address.text := '';
note.text := '';
end;
procedure TfrmCustomer.btnDeleteClick(Sender: TObject);
begin
//
frmDelCustomer := TfrmDelCustomer.Create(self);
frmDelCustomer.ShowModal;
//更新表格
dm.QueryLeader.Close;
dm.QueryLeader.Open;
end;
procedure TfrmCustomer.btnModifyClick(Sender: TObject);
begin
//
frmModifyCustomer := TfrmModifyCustomer.Create(self);
frmModifyCustomer.ShowModal;
//更新表格
dm.QueryLeader.Close;
dm.QueryLeader.Open;
end;
procedure TfrmCustomer.FormShow(Sender: TObject);
var
maxNo, tmp:integer;
begin
birthday.Date:=strToDate('1980-1-1');
joinTime.Date:=now;
try
{获取新添加用户的编号}
with dm.TLeader do
begin
open;
first;
maxNo:=fieldByName('编号').AsInteger;
while not eof do
begin
tmp:=fieldByName('编号').AsInteger;
if maxNo<tmp then maxNo:=tmp;
next;
end;
close;
end;
UserID.Text:=intToStr(maxNo+1);
activeControl:=UserName;
except
on E: Exception do
messageDlg(' try form show 出错',mtWarning,[mbOk],0);
end;{end of try}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -