?? customer.pas.~2~
字號:
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 + -