📄 unit_customer.pas
字号:
dtp_Register.Enabled:= temp;
edt_Address.Enabled := temp;
edt_Zipcode.Enabled := temp;
mm_Remark.Enabled := temp;
if temp then edt_Cusno.SetFocus;
end;
{********************************客户操作过程****************************}
procedure Tfrm_customer.sbtn_closeClick(Sender: TObject);
begin
close;
end;
procedure Tfrm_customer.FormResize(Sender: TObject);
begin
StringGridAutoSize(sg);
end;
procedure Tfrm_customer.FormClose(Sender: TObject;
var Action: TCloseAction);
var
i:integer;
begin
if PageControl1.ActivePage = sht_content then
if sbtn_append.Enabled then
begin
if edt_CusNo.enabled then
begin
i:=MessageBox(handle,'在窗口关闭的同时,您要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //点击是
begin
if SaveInfo then i:=7 else i:=2;
end;
if i=2 then //点击取消
begin
action:=canone;
exit;
end;
end;
end;
action:= cafree;
frm_customer := nil;
end;
procedure Tfrm_customer.sbtn_appendClick(Sender: TObject);
var
i : integer;
temp : string;
begin
if pagecontrol1.ActivePage = sht_content then //to determine whethter sht_content is shown
if (not AppendOrEdit) and edt_Cusno.Enabled then //to determine status of Edit and Components' Enabled
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //select yes
if not SaveInfo then i:=2;
if i=2 then exit;
end;
AppendOrEdit := true; //to set AppendOrEdit to status of Append
pagecontrol1.ActivePage := sht_content; //to change page to content
MakeEnabled(true); //to determine button's status
ClearInfo; //to clear information of components
temp:=GetDateString('DBMeirong');//to get current datetime such as 2003-10-13 13:37:03
temp:=copy(temp,1,4)+copy(temp,6,2)+copy(temp,9,2); //to set value of temp like '20031013'
edt_Cusno.Text :=GetNo('DBMeirong','Customer','','','Cus_no',temp,2); //to set value of Empno like '2003101301'
end;
procedure Tfrm_customer.sbtn_editClick(Sender: TObject);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_content then
if AppendOrEdit and edt_Cusno.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveInfo then i:=2;
if i=2 then exit;
end;
if sg.Cells[0,sg.Row]='' then exit;
if pagecontrol1.ActivePage <> sht_content then pagecontrol1.ActivePage := sht_content;
if AppendOrEdit then GetInfo;
AppendOrEdit := false;
MakeEnabled(true);
edt_Cusno.Enabled := false;
end;
procedure Tfrm_customer.sbtn_saveClick(Sender: TObject);
var
i:integer;
temp:string;
begin
if not SaveInfo then exit;
if AppendOrEdit then
begin
StringGridInsert(sg);
i:=1;
end else i:=sg.Row ;
with sg do
begin
sg.Cells[0,i] := trim(edt_Cusno.Text );
sg.Cells[1,i] := trim(edt_Cusname.Text );
sg.Cells[2,i] := trim(cbb_Sex.Text );
sg.Cells[3,i] := trim(cbb_type.Text);
sg.Cells[4,i] := DateToStr(dtp_register.Date);
end;
if AppendOrEdit then
begin
ClearInfo;
temp := GetDateString('DBMeirong');
temp := copy(temp,1,4) + copy(temp,6,2) + copy(temp,9,2);
edt_Cusno.Text := GetNo('DBMeirong','Customer','','','Cus_no',temp,2);
if sg.RowCount > 3 then sbtn_back.Enabled := true;
end else MakeEnabled(false);
end;
procedure Tfrm_customer.sbtn_deleteClick(Sender: TObject);
begin
if sg.cells[0,sg.Row]='' then exit;
if MessageBox(handle,'你确定要删除该员工信息吗?','询问',mb_yesno+mb_iconquestion)<> IDYes then exit;
with dmod.qrydata do
begin
close;
SQL.Text := 'delete from Customer where cus_no='+#39+sg.Cells[0,sg.Row]+#39;
ExecSQL;
end;
StringGridDelete(sg,sg.Row);
if sg.Row = sg.RowCount - 1 then
begin
if sg.RowCount > 2 then
sg.Row := sg.Row - 1
else
sbtn_back.Enabled := false;
end;
if sg.Row = 1 then sbtn_front.Enabled := false;
if sg.Row = sg.RowCount - 2 then sbtn_back.Enabled := false;
end;
procedure Tfrm_customer.sbtn_backClick(Sender: TObject);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_content then
if edt_Cusno.Enabled then
if sbtn_append.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //select yes
if not SaveInfo then i:=2; //if save error
if i=2 then exit;
end;
if sg.Row > sg.RowCount-2 then
begin
sbtn_back.Enabled := false;
exit;
end;
sbtn_front.Enabled := true;
sg.Row := sg.Row+1;
if pagecontrol1.ActivePage = sht_content then
begin
GetInfo();
MakeEnabled(false);
end;
end;
procedure Tfrm_customer.sbtn_frontClick(Sender: TObject);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_content then
if edt_Cusno.Enabled then
if sbtn_append.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveInfo then i:=2;
if i=2 then exit;
end;
if sg.Row=1 then
begin
sbtn_front.Enabled := false;
exit;
end;
sbtn_back.Enabled := true;
sg.Row := sg.Row-1;
if pagecontrol1.ActivePage = sht_content then
begin
GetInfo();
MakeEnabled(false);
end;
end;
procedure Tfrm_customer.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
var
i:integer;
begin
AllowChange := true;
if not sbtn_append.Enabled then exit;
if PageIndex=1 then
begin
if edt_Cusno.Enabled then
begin
AppendOrEdit := false;
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //
begin
sbtn_saveClick(nil);
if not DoChange then i:=2;
end;
if i=7 then MakeEnabled(true);
if i=2 then AllowChange:=true;
end;
end else if (sg.Cells [0,sg.Row]='') and not AppendOrEdit then AllowChange:=true;
end;
procedure Tfrm_customer.cbb_TypeEnter(Sender: TObject);
begin
cbb_type.Clear ;
with dmod.qrydata do
begin
close;
SQL.Text :='select type_id,type_name from CustomerType order by type_id';
Open;
while not eof do
begin
cbb_type.Items.Add(FieldByName('type_id').AsString+'-'+FieldByName('type_name').AsString );
next;
end;
end;
end;
procedure Tfrm_customer.sbtn_AddCusTypeClick(Sender: TObject);
begin
DoDictionary;
end;
procedure Tfrm_customer.sgSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
if ARow = sg.RowCount - 1 then
CanSelect:= false
else
begin
sbtn_back.Enabled := true;
sbtn_front.Enabled := true;
if ARow = sg.RowCount - 2 then sbtn_back.Enabled := false;
if ARow = 1 then sbtn_front.Enabled := false;
CanSelect := true;
end;
end;
procedure Tfrm_customer.FormKeyPress(Sender: TObject; var Key: Char);
var
temp,temp1:boolean;
begin
temp := false;
temp1:= true;
if (key=#13) and sbtn_save.Enabled then
begin
temp := true;
if (ActiveControl is TMemo) then
if TMemo(ActiveControl).Name = 'mm_Remark' then temp1:=false;
end;
if temp then
begin
if temp1 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0)
end else if sbtn_save.Enabled then sbtn_saveClick(nil);
end;
end;
procedure Tfrm_customer.sht_contentShow(Sender: TObject);
begin
PageIndex := 1;
if not AppendOrEdit then
begin
if sg.Cells[0,sg.Row]<>'' then GetInfo;
MakeEnabled(false);
end;
end;
procedure Tfrm_customer.sht_mainShow(Sender: TObject);
begin
PageIndex:=0;
if not sbtn_append.Enabled then exit;
sbtn_delete.Enabled := true;
sbtn_save.Enabled := false;
end;
procedure Tfrm_customer.sgDblClick(Sender: TObject);
begin
sbtn_editClick(nil);
end;
procedure Tfrm_customer.sbtn_printClick(Sender: TObject);
begin
DoReportCustomer;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -