📄 unit_createcard.pas
字号:
edt_Cardno.Enabled := temp;
edt_Cusno.Enabled := temp;
edt_Cusname.Enabled := temp;
edt_Password1.Enabled:= temp;
edt_Password2.Enabled:= temp;
cbb_CardType.Enabled := temp;
dtp_CreateDate.Enabled:= temp;
edt_Empno.Enabled := temp;
edt_MinCost.Enabled := temp;
edt_Discount.Enabled := temp;
edt_Curcurrency.Enabled:= temp;
edt_Storecurrency.Enabled:= temp;
edt_WarningCurrency.Enabled:= temp;
edt_CostScore.Enabled :=temp;
mm_remark.Enabled :=temp;
if temp then edt_Cardno.SetFocus;
end;
{*****************用户定义过程***********************}
procedure Tfrm_createcard.FormClose(Sender: TObject;
var Action: TCloseAction);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_Card then
if sbtn_append.Enabled then
begin
if edt_cardno.Enabled then
begin
i := MessageBox(handle,'在窗口关闭的同时,你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
begin
if SaveCustomerCardInfo then i:=7 else i:=2;
end;
if i=2 then
begin
action := canone;
exit;
end;
end;
end;
action:=cafree;
frm_createcard:=nil;
end;
procedure Tfrm_createcard.sbtn_closeClick(Sender: TObject);
begin
close;
end;
procedure Tfrm_createcard.FormResize(Sender: TObject);
begin
StringGridAutoSize(sg_Customer);
end;
procedure Tfrm_createcard.sbtn_appendClick(Sender: TObject);
var
i : integer;
temp : string;
begin
if pagecontrol1.ActivePage = sht_Card then //to determine whethter sht_content is shown
if (not AppendOrEdit) and edt_Cardno.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 SaveCustomerCardInfo then i:=2;
if i=2 then exit;
end;
AppendOrEdit := true;
pagecontrol1.ActivePage := sht_card;
MakeEnabled(true);
ClearCustomerCardInfo;
//设置密码为可修改
edt_password1.ReadOnly :=false;
edt_password2.ReadOnly :=false;
//设置原始数据
temp:=GetDateString('DBMeirong');
temp:=copy(temp,1,4)+copy(temp,6,2)+copy(temp,9,2);
edt_Cardno.Text :=GetNo('DBMeirong','CustomerCard','','','Card_no',temp,2);
end;
procedure Tfrm_createcard.sg_CustomerSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if ARow = sg_Customer.RowCount - 1 then
CanSelect:= false
else
begin
sbtn_back.Enabled := true;
sbtn_front.Enabled := true;
if ARow = sg_Customer.RowCount - 2 then sbtn_back.Enabled := false;
if ARow = 1 then sbtn_front.Enabled := false;
CanSelect := true;
end;
end;
procedure Tfrm_createcard.sbtn_editClick(Sender: TObject);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_Card then
if AppendOrEdit and edt_Cardno.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveCustomerCardInfo then i:=2;
if i=2 then exit;
end;
if sg_Customer.Cells[0,sg_Customer.Row]='' then exit;
if pagecontrol1.ActivePage <> sht_Card then pagecontrol1.ActivePage := sht_Card;
if AppendOrEdit then begin GetCustomerCardInfo; edt_password1.ReadOnly :=true; edt_password2.ReadOnly :=false; end;
AppendOrEdit := false;
MakeEnabled(true);
edt_Cardno.Enabled := false;
end;
procedure Tfrm_createcard.sbtn_saveClick(Sender: TObject);
var
i : integer;
temp : string;
begin
if not SaveCustomerCardInfo then exit;
if AppendOrEdit then
begin
StringGridInsert(sg_Customer);
i:=1;
end else i:=sg_Customer.Row ;
with sg_Customer do
begin
Cells[0,i] := trim(edt_Cardno.Text );
Cells[1,i] := trim(edt_cusno.Text );
Cells[2,i] := trim(edt_cusname.Text );
Cells[3,i] := trim(DateToString(dtp_createdate.Date));
Cells[4,i] := trim(cbb_cardtype.Text );
Cells[5,i] := trim(edt_Empno.Text );
Cells[6,i] := trim(mm_remark.Text );
end;
if AppendOrEdit then
begin
ClearCustomerCardInfo;
temp := GetDateString('DBMeirong');
temp := copy(temp,1,4) + copy(temp,6,2) + copy(temp,9,2);
edt_Cardno.Text := GetNo('DBMeirong','CustomerCard','','','Card_no',temp,2);
if sg_Customer.RowCount > 3 then sbtn_back.Enabled := true;
end else MakeEnabled(false);
end;
procedure Tfrm_createcard.sbtn_deleteClick(Sender: TObject);
begin
if sg_Customer.cells[0,sg_Customer.Row]='' then exit;
if MessageBox(handle,'你确定要删除该客户卡号信息吗?','询问',mb_yesno+mb_iconquestion)<> IDYes then exit;
with dmod.qrydata do
begin
close;
SQL.Text := 'delete from CustomerCard where card_no='+#39+sg_Customer.Cells[0,sg_Customer.Row]+#39;
ExecSQL;
end;
StringGridDelete(sg_Customer,sg_Customer.Row);
if sg_Customer.Row = sg_Customer.RowCount - 1 then
begin
if sg_Customer.RowCount > 2 then
sg_Customer.Row := sg_Customer.Row - 1
else
sbtn_back.Enabled := false;
end;
if sg_Customer.Row = 1 then sbtn_front.Enabled := false;
if sg_Customer.Row = sg_Customer.RowCount - 2 then sbtn_back.Enabled := false;
end;
procedure Tfrm_createcard.sbtn_backClick(Sender: TObject);
var
i: integer;
begin
if pagecontrol1.ActivePage = sht_Card then
if edt_empno.Enabled then
if sbtn_append.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //select yes
if not SaveCustomerCardInfo then i:=2; //if save error
if i=2 then exit;
end;
if sg_Customer.Row > sg_Customer.RowCount-2 then
begin
sbtn_back.Enabled := false;
exit;
end;
sbtn_front.Enabled := true;
sg_Customer.Row := sg_Customer.Row+1;
if pagecontrol1.ActivePage = sht_Card then
begin
GetCustomerCardInfo();
MakeEnabled(false);
end;
end;
procedure Tfrm_createcard.sbtn_frontClick(Sender: TObject);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_card then
if edt_Empno.Enabled then
if sbtn_append.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveCustomerCardInfo then i:=2;
if i=2 then exit;
end;
if sg_Customer.Row=1 then
begin
sbtn_front.Enabled := false;
exit;
end;
sbtn_back.Enabled := true;
sg_Customer.Row := sg_Customer.Row-1;
if pagecontrol1.ActivePage = sht_card then
begin
GetCustomerCardInfo();
MakeEnabled(false);
end;
end;
procedure Tfrm_createcard.SpeedButton1Click(Sender: TObject);
begin
DoDictionary;
end;
procedure Tfrm_createcard.cbb_CardTypeEnter(Sender: TObject);
begin
with dmod.qrydata do
begin
close;
SQL.Text :='select type_id,type_name from MemberCardType';
Open;
while not eof do
begin
cbb_cardtype.Items.Add(FieldByName('type_id').AsString + '-' + FieldByName('type_name').AsString);
next;
end;
end;
end;
procedure Tfrm_createcard.cbb_CardTypeExit(Sender: TObject);
var
temp_typeid:string;
begin
if cbb_Cardtype.Text ='' then exit;
temp_typeid:=cbb_Cardtype.Text ;
with dmod.qrydata do
begin
close;
SQL.Text :='select mincost,discount from MemberCardType where type_id='+#39+StringGetChar(temp_typeid,'-')+#39;
Open;
if not eof then
begin
edt_MinCost.Text := FieldByname('mincost').AsString ;
edt_Discount.Text := FieldByName('discount').AsString ;
end;
end;
end;
procedure Tfrm_createcard.edt_CusNoExit(Sender: TObject);
begin
if edt_CusNo.Text ='' then exit;
with dmod.qrydata do
begin
close;
SQL.Text :='select cus_name from customer where cus_no='+#39+trim(edt_Cusno.Text)+#39;
Open;
if not eof then
edt_cusname.Text :=FieldByName('cus_name').AsString
else begin
MessageBox(self.handle,'该客户编号不存在,请重试!','提示',mb_ok+mb_iconinformation);
edt_cusname.SetFocus ;
end;
end;
end;
procedure Tfrm_createcard.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_Cardno.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_Customer.Cells [0,sg_Customer.Row]='') and not AppendOrEdit then AllowChange:=true;
end;
procedure Tfrm_createcard.sht_CardShow(Sender: TObject);
begin
PageIndex := 1;
if not AppendOrEdit then
begin
if sg_Customer.Cells[0,sg_Customer.Row]<>'' then GetCustomerCardInfo;
MakeEnabled(false);
end;
end;
procedure Tfrm_createcard.sht_CustomerShow(Sender: TObject);
begin
PageIndex:=0;
if not sbtn_append.Enabled then exit;
sbtn_delete.Enabled := true;
sbtn_save.Enabled := false;
end;
procedure Tfrm_createcard.edt_Password2Exit(Sender: TObject);
begin
if trim(edt_password2.Text)<>trim(edt_password1.Text) then
begin
MessageBox(handle,'两次输入的密码不一样,请重试!','提示',mb_ok+mb_iconinformation);
edt_password1.SetFocus ;
end;
end;
procedure Tfrm_createcard.sbtn_printClick(Sender: TObject);
begin
DoReportCustomerCard;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -