📄 unit_customer.pas
字号:
unit Unit_Customer;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, Grids;
type
Tfrm_customer = class(TForm)
pnlTop: TPanel;
sbtn_front: TSpeedButton;
sbtn_back: TSpeedButton;
sbtn_append: TSpeedButton;
sbtn_edit: TSpeedButton;
sbtn_save: TSpeedButton;
sbtn_print: TSpeedButton;
sbtn_close: TSpeedButton;
sbtn_delete: TSpeedButton;
PageControl1: TPageControl;
sht_main: TTabSheet;
sht_content: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
edt_Cusno: TEdit;
edt_Cusname: TEdit;
edt_Phone: TEdit;
edt_Mobile: TEdit;
mm_Remark: TMemo;
cbb_Sex: TComboBox;
Label4: TLabel;
edt_zipcode: TEdit;
Label5: TLabel;
cbb_Type: TComboBox;
GroupBox1: TGroupBox;
Label6: TLabel;
Label8: TLabel;
Label13: TLabel;
Label14: TLabel;
Label7: TLabel;
edt_Address: TEdit;
edt_Email: TEdit;
edt_Oicq: TEdit;
edt_Homepage: TEdit;
edt_Msn: TEdit;
RadioGroup1: TRadioGroup;
sbtn_AddCusType: TSpeedButton;
Label3: TLabel;
dtp_Register: TDateTimePicker;
sg: TStringGrid;
procedure sbtn_closeClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sbtn_appendClick(Sender: TObject);
procedure sbtn_editClick(Sender: TObject);
procedure sbtn_saveClick(Sender: TObject);
procedure sbtn_deleteClick(Sender: TObject);
procedure sbtn_backClick(Sender: TObject);
procedure sbtn_frontClick(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure cbb_TypeEnter(Sender: TObject);
procedure sbtn_AddCusTypeClick(Sender: TObject);
procedure sgSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure sht_contentShow(Sender: TObject);
procedure sht_mainShow(Sender: TObject);
procedure sgDblClick(Sender: TObject);
procedure sbtn_printClick(Sender: TObject);
private
{ Private declarations }
PageIndex : integer;
AppendOrEdit,DoChange : boolean;
Cusno : string;
procedure ClearInfo();
procedure SearchInfo();
function SaveInfo():boolean;
procedure GetInfo();
procedure MakeEnabled(temp:boolean);
public
{ Public declarations }
procedure ref();
end;
var
frm_customer: Tfrm_customer;
implementation
uses unit_DataModule,unit_TotalPublic,PublicFunOrPro;
{$R *.dfm}
{********************************客户操作过程****************************}
procedure Tfrm_customer.ref ();
begin
pagecontrol1.ActivePage := sht_main;
with sg do
begin
sg.Cells[0,0] := '顾客编号';
sg.Cells[1,0] := '顾客名称';
sg.Cells[2,0] := '性别';
sg.Cells[3,0] := '顾客类别';
sg.Cells[4,0] := '注册日期';
end;
formresize(nil);
SearchInfo;
sbtn_append.Enabled := GetPower(SysUserId,'客户信息','修改权');
sbtn_edit.Enabled := sbtn_append.Enabled ;
sbtn_delete.Enabled := sbtn_append.Enabled;
sbtn_print.Enabled := GetPower(SysUserId,'客户信息','打印权');
end;
procedure Tfrm_customer.SearchInfo();
var
i : integer;
begin
StringGridClear(sg);
with dmod.qrydata do
begin
close;
SQL.Text := 'select cus_no,cus_name,cus_sex,cus_type,cus_register from customer ' +
'order by cus_register desc,cus_no';
Open;
i:=1;
while not eof do
begin
sg.Cells[0,i] := FieldByName('cus_no').AsString ;
sg.Cells[1,i] := FieldByName('cus_name').AsString ;
sg.Cells[2,i] := FieldByName('cus_sex').AsString ;
sg.Cells[3,i] := FieldByName('cus_type').AsString ;
sg.Cells[4,i] := DateToString(FieldByName('cus_register').AsDateTime) ;
inc(i);
next;
end;
end;
if i<>1 then sg.RowCount := i+1;
sbtn_front.Enabled := false;
sbtn_back.Enabled := false;
if sg.RowCount >3 then sbtn_back.Enabled := true;
end;
procedure Tfrm_customer.GetInfo ();
begin
if sg.Cells[0,sg.row]='' then exit;
Cusno := sg.Cells[0,sg.Row];
with dmod.qrydata do
begin
close;
SQL.Text := 'select * from Customer where cus_no='+#39+Cusno+#39;
open;
edt_Cusno.Text := Cusno;
edt_Cusname.Text := FieldByName('Cus_name').AsString ;
cbb_Sex.Text := FieldByName('Cus_sex').AsString ;
cbb_type.Text := FieldByName('Cus_type').AsString ;
edt_Phone.Text := FieldByName('Cus_phone').AsString ;
edt_Mobile.Text := FieldByName('Cus_mobile').AsString ;
edt_Email.Text := FieldByName('Cus_email').AsString ;
edt_HomePage.Text := FieldByName('Cus_homepage').AsString ;
edt_Oicq.Text := FieldByName('Cus_oicq').AsString ;
edt_Msn.Text := FieldByName('Cus_msn').AsString ;
edt_Address.Text := FieldByName('Cus_address').AsString ;
edt_Zipcode.Text := FieldByName('Cus_zipcode').AsString ;
dtp_Register.Date := FieldByname('cus_register').AsDateTime ;
mm_Remark.Text := FieldByName('Cus_remark').AsString ;
RadioGroup1.ItemIndex := StrToInt(FieldByName('cus_security').AsString);
end;
end;
function Tfrm_customer.SaveInfo ():boolean;
var
temp_type:string;
begin
result := true;
DoChange := true;
//to determine if the following two fields are filled or not
if trim(edt_Cusno.Text)='' then
begin
MessageBox(handle,'请输入客户编号!','提示',mb_ok+mb_iconinformation);
result := false;
DoChange := false;
edt_Cusno.SetFocus ;
exit;
end;
if trim(edt_Cusname.Text)='' then
begin
MessageBox(handle,'请输入客户姓名!','提示',mb_ok+mb_iconinformation);
result := false;
DoChange := false;
edt_Cusname.SetFocus ;
exit;
end;
//to determine whether the employee has existed or not
Cusno := trim(edt_Cusno.Text );
if AppendOrEdit then
with dmod.qrydata do
begin
close;
SQL.Text := 'select cus_no from customer where Cus_no=:no';
ParamByName('no').AsString := Cusno;
open;
if not eof then
begin
MessageBox(self.Handle ,'该客户编号已经存在,请重新确认!','提示',mb_ok+mb_iconinformation);
edt_Cusno.SetFocus ;
result := false;
exit;
end;
end;
with dmod.qrydata do
begin
close;
SQL.Text := 'select Cus_no from Customer where Cus_name=:name';
ParamByname('name').AsString := trim(edt_Cusname.Text);
open;
if not eof then
if FieldByName('Cus_no').AsString <> Cusno then
begin
MessageBox(self.Handle ,'该客户姓名已经存在,请重新确认!','提示',mb_ok+mb_iconinformation);
edt_Cusname.SetFocus ;
result := false;
exit;
end;
end;
//try to save the information
temp_type:=trim(cbb_type.Text);
try
dmod.Database.StartTransaction ;
with dmod.qrydata do
begin
close;
SQL.Text := 'delete from Customer where Cus_no='+#39+Cusno+#39;
ExecSQL;
close;
SQL.Text := 'insert into Customer(cus_no,cus_name,cus_sex,cus_type,cus_phone,cus_mobile,cus_email,cus_homepage' +
',cus_oicq,cus_msn,cus_register,cus_address,cus_zipcode,cus_remark,cus_security) '+
'values (:no,:name,:sex,:type,:phone,:mobile,:email,:homepage' +
',:oicq,:msn,:register,:address,:zipcode,:remark,:security)';
ParamByName('no').AsString := trim(edt_Cusno.Text);
ParamByName('name').AsString := trim(edt_Cusname.Text );
ParamByName('sex').AsString := trim(cbb_Sex.Text );
ParamByName('type').AsString := StringGetChar(temp_type,'-') ;
ParamByName('phone').AsString:= trim(edt_Phone.Text );
ParamByName('mobile').AsString := trim(edt_mobile.Text );
ParamByName('email').AsString:= trim(edt_Email.Text );
ParamByName('Homepage').AsString := trim(edt_Homepage.Text );
ParamByName('oicq').AsString:= trim(edt_Oicq.Text );
ParamByName('msn').AsString := trim(edt_Msn.Text );
ParamByName('register').AsDate := dtp_register.Date ;
ParamByName('address').AsString := trim(edt_Address.Text );
ParamByName('zipcode').AsString := trim(edt_Zipcode.Text );
ParamByName('remark').AsString := mm_remark.Text ;
ParamByName('security').AsInteger := RadioGroup1.ItemIndex ;
ExecSQL;
end;
finally
try
dmod.Database.Commit ;
except
dmod.Database.Rollback ;
MessageBox(handle,'操作失败,请重试!','提示',mb_ok+mb_iconinformation);
result := false;
end;
end;
end;
//to clear information
procedure Tfrm_customer.ClearInfo();
begin
edt_Cusno.Text := '';
edt_Cusname.Text := '';
cbb_sex.Text := '';
cbb_type.Text := '';
edt_phone.Text := '';
edt_mobile.Text := '';
edt_email.Text := '';
edt_homepage.Text := '';
edt_oicq.Text := '';
edt_msn.Text := '';
edt_address.Text := '';
edt_zipcode.Text := '';
dtp_register.Date := Date;
edt_cusno.SetFocus ;
end;
procedure Tfrm_customer.MakeEnabled(temp:boolean);
begin
if sbtn_append.Enabled then
sbtn_save.Enabled := temp
else
sbtn_save.Enabled := false;
sbtn_delete.Enabled := false;
edt_Cusno.Enabled := temp;
edt_Cusname.Enabled := temp;
cbb_Sex.Enabled := temp;
cbb_Type.Enabled := temp;
edt_Phone.Enabled := temp;
edt_Mobile.Enabled := temp;
edt_Email.Enabled := temp;
edt_Homepage.Enabled:= temp;
edt_Oicq.Enabled := temp;
edt_Msn.Enabled := temp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -