📄 unit_createcard.pas
字号:
unit Unit_CreateCard;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, Buttons, Grids, StdCtrls;
type
Tfrm_createcard = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
sht_Customer: TTabSheet;
sht_Card: TTabSheet;
sbtn_front: TSpeedButton;
sbtn_back: TSpeedButton;
sbtn_append: TSpeedButton;
sbtn_edit: TSpeedButton;
sbtn_save: TSpeedButton;
sbtn_delete: TSpeedButton;
sbtn_print: TSpeedButton;
sbtn_close: TSpeedButton;
sg_Customer: TStringGrid;
Label1: TLabel;
edt_CardNo: TEdit;
Label2: TLabel;
edt_CusNo: TEdit;
Label3: TLabel;
edt_CusName: TEdit;
Label4: TLabel;
Label5: TLabel;
edt_MinCost: TEdit;
Label6: TLabel;
edt_Discount: TEdit;
Label7: TLabel;
edt_curcurrency: TEdit;
Label8: TLabel;
edt_Storecurrency: TEdit;
Label9: TLabel;
edt_Warningcurrency: TEdit;
Label10: TLabel;
edt_Costscore: TEdit;
Label11: TLabel;
Label12: TLabel;
edt_Password1: TEdit;
Label13: TLabel;
edt_Password2: TEdit;
mm_remark: TMemo;
Label14: TLabel;
dtp_CreateDate: TDateTimePicker;
Label15: TLabel;
edt_Empno: TEdit;
SpeedButton1: TSpeedButton;
cbb_CardType: TComboBox;
StatusBar1: TStatusBar;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sbtn_closeClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure sbtn_appendClick(Sender: TObject);
procedure sg_CustomerSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
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 SpeedButton1Click(Sender: TObject);
procedure cbb_CardTypeEnter(Sender: TObject);
procedure cbb_CardTypeExit(Sender: TObject);
procedure edt_CusNoExit(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure sht_CardShow(Sender: TObject);
procedure sht_CustomerShow(Sender: TObject);
procedure edt_Password2Exit(Sender: TObject);
procedure sbtn_printClick(Sender: TObject);
private
{ Private declarations }
PageIndex : integer;
AppendOrEdit,DoChange:boolean;
CardNo:String;
procedure SearchCustomerCardInfo;
procedure ClearCustomerCardInfo;
function SaveCustomerCardInfo:boolean;
procedure MakeEnabled(temp:boolean);
procedure GetCustomerCardInfo;
public
{ Public declarations }
procedure createcard_ref;
end;
var
frm_createcard: Tfrm_createcard;
implementation
uses unit_DataModule,unit_TotalPublic,PublicFunOrPro;
{$R *.dfm}
{*****************用户定义过程***********************}
procedure Tfrm_createcard.createcard_ref ;
begin
pagecontrol1.ActivePage := sht_Customer;
dtp_CreateDate.Date := Date;
StatusBar1.Panels[0].Text :='当前操作员工:'+SysUserId;
edt_Empno.Text := SysUserId;
edt_curcurrency.Text :='0.00';
edt_storecurrency.Text :='0.00';
edt_warningcurrency.Text :='0.00';
edt_costscore.Text :='0';
with sg_Customer do
begin
cells[0,0]:='客户卡号';
cells[1,0]:='客户编号';
cells[2,0]:='客户姓名';
cells[3,0]:='办卡日期';
cells[4,0]:='办卡类型';
cells[5,0]:='办卡员工';
cells[6,0]:='备注';
end;
formresize(nil);
SearchCustomerCardInfo();
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_createcard.SearchCustomerCardInfo ;
var
i:integer;
begin
with dmod.qrydata do
begin
close;
SQL.Text:='select card_no,customercard.cus_no,cus_name,create_date,card_type,type_name,emp_no,card_remark from customercard,membercardtype,customer '+
' where customercard.card_type=membercardtype.type_id and customer.cus_no=customercard.cus_no';
Open;
i:=1;
while not eof do
begin
with sg_Customer do
begin
cells[0,i]:=FieldByName('card_no').asstring;
cells[1,i]:=FieldByName('cus_no').asstring;
cells[2,i]:=FieldByName('cus_name').asstring;
cells[3,i]:=FieldByName('create_date').AsString ;
cells[4,i]:=FieldByName('card_type').asstring+'-'+FieldByName('type_name').AsString;
cells[5,i]:=FieldByName('emp_no').AsString ;
cells[6,i]:=FieldByName('card_remark').asstring;
end;
inc(i);
next;
end;
end;
if i<>1 then sg_Customer.RowCount :=i+1;
end;
function Tfrm_createcard.SaveCustomerCardInfo :boolean;
var
temp_cardtype,temp_changeno:string;
begin
result := true;
DoChange := true;
//to determine if the following two fields are filled or not
if trim(edt_Cardno.Text)='' then
begin
MessageBox(handle,'请输入客户卡号!','提示',mb_ok+mb_iconinformation);
result := false;
DoChange := false;
edt_Cardno.SetFocus ;
exit;
end;
if trim(edt_Cusno.Text)='' then
begin
MessageBox(handle,'请输入客户编号!','提示',mb_ok+mb_iconinformation);
result := false;
DoChange := false;
edt_Cusno.SetFocus ;
exit;
end;
//to determine whether the Card no has existed or not
Cardno := trim(edt_Cardno.Text );
if AppendOrEdit then
with dmod.qrydata do
begin
close;
SQL.Text := 'select Card_no from Customercard where Card_no=:no';
ParamByName('no').AsString := Cardno;
open;
if not eof then
begin
MessageBox(self.Handle ,'该客户卡号已经存在,请重新确认!','提示',mb_ok+mb_iconinformation);
edt_Cardno.SetFocus ;
result := false;
exit;
end;
end;
with dmod.qrydata do
begin
Close;
SQL.Text :='select cus_no from CustomerCard where cus_no=:no';
ParamByName('no').AsString := trim(edt_Cusno.Text);
Open;
if not eof then
begin
MessageBox(self.Handle ,'该客户编号已经存在,请重新确认!','提示',mb_ok+mb_iconinformation);
edt_Cusno.SetFocus ;
result := false;
exit;
end;
end;
//try to save the information
temp_cardtype:=trim(cbb_cardtype.Text);
temp_changeno:=GetDateString('DBMeirong');
temp_changeno:=copy(temp_changeno,1,4)+copy(temp_changeno,6,2)+copy(temp_changeno,9,2);
temp_changeno:=GetNo('DBMeirong','CustomerCardChange','','','change_no',temp_changeno,2);
try
dmod.Database.StartTransaction ;
with dmod.qrydata do
begin
close;
SQL.Text := 'delete from CustomerCard where card_no='+#39+Cardno+#39;
ExecSQL;
close;
SQL.Text := 'insert into CustomerCard(Card_no,Cus_no,password,card_type,create_date' +
',emp_no,cur_currency,store_currency,warning_currency,cost_score,card_remark,last_time,last_currency)'+
' values (:cardno,:cusno,:password,:cardtype,:createdate,:empno' +
',:curcurrency,:storecurrency,:warningcurrency,:costscore,:cardremark,:lasttime,:lastcurrency)';
ParamByName('cardno').AsString := trim(edt_Cardno.Text);
ParamByName('cusno').AsString := trim(edt_Cusno.Text );
ParamByName('password').AsString := trim(edt_Password1.Text) ;
ParamByName('cardtype').AsString := StringGetChar(temp_cardtype,'-');
ParamByName('createdate').AsDate:= dtp_createDate.Date ;
ParamByName('empno').AsString := trim(edt_Empno.Text );
ParamByName('curcurrency').AsFloat := StrToFloat(trim(edt_Curcurrency.Text ));
ParamByName('storecurrency').AsFloat:=StrToFloat(trim(edt_StoreCurrency.Text) );
ParamByName('warningcurrency').AsFloat := StrToFloat(trim(edt_WarningCurrency.Text) );
ParamByName('costscore').AsFloat := StrToFloat(trim(edt_CostScore.Text));
ParamByName('cardremark').AsString := mm_remark.Text ;
ParamByName('lasttime').asDate := dtp_createdate.Date ;
ParamByName('lastcurrency').AsFloat := StrToFloat(trim(edt_StoreCurrency.Text) );
ExecSQL;
Close;
SQL.Text :='insert into CustomerCardChange(change_no,card_no,cus_no,emp_no,change_date,change_remark) '+
'values(:changeno,:cardno,:cusno,:empno,:changedate,:changeremark)';
ParamByName('changeno').Asstring:=temp_changeno;
ParamByName('cardno').Asstring:=trim(edt_Cardno.Text);
ParamByName('cusno').Asstring:=trim(edt_cusno.Text);
ParamByName('empno').Asstring:=trim(edt_empno.Text);
ParamByName('changedate').AsDateTime :=dtp_createDate.DateTime ;
if AppendOrEdit then
ParamByName('changeremark').Asstring:='新建办卡,并且保存'
else
ParamByName('changeremark').Asstring:='修改记录,并且保存';
ExecSQL;
end;
finally
try
dmod.Database.Commit ;
except
dmod.Database.Rollback ;
MessageBox(handle,'操作失败,请重试!','提示',mb_ok+mb_iconinformation);
result := false;
end;
end;
end;
procedure Tfrm_createcard.GetCustomerCardInfo ;
var
temp_cardtype:string;
begin
if sg_Customer.Cells[0,sg_Customer.row]='' then exit;
Cardno := sg_Customer.Cells[0,sg_Customer.Row];
with dmod.qrydata do
begin
close;
SQL.Text := 'select CustomerCard.cus_no,cus_name,password,card_type,type_name,create_date,emp_no,cur_currency,store_currency,warning_currency,cost_score,card_remark'+
' from CustomerCard,MemberCardType,Customer where CustomerCard.card_type=MemberCardType.type_id and CustomerCard.cus_no=Customer.cus_no and card_no='+#39+cardno+#39;
open;
edt_CardNo.Text := Cardno;
edt_cusno.Text := fieldByname('cus_no').AsString ;
edt_cusname.Text := FieldByName('cus_name').AsString ;
edt_password1.Text:= FieldByName('password').AsString ;
edt_password2.Text:= FieldByName('password').AsString ;
cbb_cardtype.Text := FieldByName('card_type').AsString+'-'+FieldByName('type_name').AsString ;
dtp_createdate.Date :=FieldByName('create_Date').AsDateTime ;
edt_empno.text := FieldByName('Emp_no').Asstring ;
edt_Curcurrency.Text := FloatToStr(FieldByName('cur_currency').AsFloat) ;
edt_Storecurrency.Text := FloatToStr(FieldByName('store_currency').AsFloat);
edt_Warningcurrency.Text:= FloatToStr(FieldByName('warning_currency').AsFloat) ;
edt_CostScore.Text := FloatToStr(FieldByName('cost_score').AsFloat) ;
mm_remark.Text := FieldByName('card_remark').AsString ;
temp_cardtype:=FieldByName('card_type').AsString;
end;
with dmod.qrydata do
begin
Close;
SQL.Text :='select mincost,discount from MemberCardType where type_id='+#39+temp_cardtype+#39;
Open;
if not eof then
begin
edt_MinCost.Text :=FieldByName('mincost').AsString ;
edt_Discount.Text :=FieldByName('discount').AsString ;
end;
end;
//设置密码为不可修改
edt_password1.ReadOnly :=true;
edt_password2.ReadOnly :=true;
end;
procedure Tfrm_createcard.ClearCustomerCardInfo ;
begin
edt_Cardno.Text :='';
edt_Cusno.Text :='';
edt_Password1.Text :='';
edt_Password2.Text :='';
edt_Cusname.Text :='';
cbb_CardType.Text :='';
edt_MinCost.Text :='';
edt_Discount.Text :='';
edt_Curcurrency.Text :='';
edt_StoreCurrency.Text :='';
edt_WarningCurrency.Text :='';
edt_CostScore.Text :='';
dtp_CreateDate.Date:=Date;
mm_remark.Text :='';
end;
procedure Tfrm_createcard.MakeEnabled(temp:boolean);
begin
if sbtn_append.Enabled then
sbtn_save.Enabled := temp
else
sbtn_save.Enabled := false;
sbtn_delete.Enabled := false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -