📄 unit_dictionary.pas
字号:
unit Unit_Dictionary;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Grids, StdCtrls, Buttons, ExtCtrls,Math;
type
Tfrm_dictionary = class(TForm)
PageControl1: TPageControl;
sht_EmpType: TTabSheet;
sht_CusType: TTabSheet;
sg_EmpType: TStringGrid;
Panel1: TPanel;
sbtn_append: TSpeedButton;
sbtn_edit: TSpeedButton;
sbtn_delete: TSpeedButton;
sbtn_close: TSpeedButton;
sbtn_front: TSpeedButton;
sbtn_back: TSpeedButton;
sg_CusType: TStringGrid;
Label1: TLabel;
Label2: TLabel;
sbtn_save: TSpeedButton;
sht_ServiceItemType: TTabSheet;
sg_SerType: TStringGrid;
Label3: TLabel;
sht_ServiceItem: TTabSheet;
sg_ItemType: TStringGrid;
sht_MemberCardType: TTabSheet;
sg_CardType: TStringGrid;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
edt_EmpTypeid: TEdit;
edt_EmpTypename: TEdit;
edt_EmpTyperemark: TMemo;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
edt_CusTypename: TEdit;
edt_CusTypeid: TEdit;
edt_CusTypeRemark: TMemo;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
edt_SerTypename: TEdit;
edt_SerTypeId: TEdit;
edt_SerTyperemark: TMemo;
Label13: TLabel;
Label14: TLabel;
edt_ItemTypeid: TEdit;
edt_ItemTypename: TEdit;
cbb_SerType: TComboBox;
Label16: TLabel;
edt_ItemTypePrice: TEdit;
edt_ItemTyperemark: TMemo;
Label15: TLabel;
Label17: TLabel;
edt_CardTypeid: TEdit;
Label18: TLabel;
edt_CardTypeName: TEdit;
edt_Discount: TEdit;
Label20: TLabel;
edt_CardTyperemark: TMemo;
Label19: TLabel;
edt_MinCost: TEdit;
sht_ServiceMealType: TTabSheet;
sg_MealType: TStringGrid;
Label21: TLabel;
edt_MealTypeid: TEdit;
Label22: TLabel;
edt_MealTypeName: TEdit;
sht_ServiceMeal: TTabSheet;
sg_MealType2: TStringGrid;
Label23: TLabel;
edt_MealTyperemark: TMemo;
sg_ItemType2: TStringGrid;
cbb_MealType: TComboBox;
sbtn_Add: TSpeedButton;
Label24: TLabel;
Label25: TLabel;
edt_TotalSum: TEdit;
edt_PromotionSum: TEdit;
Label26: TLabel;
Label27: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label38: TLabel;
Label28: TLabel;
Label37: TLabel;
Label39: TLabel;
Label40: TLabel;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
procedure sbtn_closeClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sbtn_appendClick(Sender: TObject);
procedure sbtn_saveClick(Sender: TObject);
procedure sbtn_backClick(Sender: TObject);
procedure sbtn_frontClick(Sender: TObject);
procedure sbtn_deleteClick(Sender: TObject);
procedure sbtn_editClick(Sender: TObject);
procedure sg_EmpTypeDblClick(Sender: TObject);
procedure sg_EmpTypeSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure sg_CusTypeSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure sg_SerTypeSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure sg_ItemTypeSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure sg_SerTypeDblClick(Sender: TObject);
procedure sg_CusTypeDblClick(Sender: TObject);
procedure cbb_SerTypeEnter(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure sg_CardTypeDblClick(Sender: TObject);
procedure sg_ItemTypeDblClick(Sender: TObject);
procedure sg_MealTypeSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure cbb_MealTypeEnter(Sender: TObject);
procedure sbtn_AddClick(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure sg_MealType2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure edt_ItemTypePriceExit(Sender: TObject);
procedure edt_MinCostExit(Sender: TObject);
procedure edt_DiscountExit(Sender: TObject);
private
{ Private declarations }
EmpTypeAppendOrEdit,CusTypeAppendOrEdit,SerTypeAppendOrEdit,ItemTypeAppendOrEdit,MealTypeAppendOrEdit,CardTypeAppendOrEdit:boolean;
EmpTypeId,CusTypeId,SerTypeId,ItemTypeId,MealTypeid,CardTypeId:string;
procedure MakeEmpTypeEnabled(temp:boolean);
procedure MakeCusTypeEnabled(temp:boolean);
procedure MakeServiceItemTypeEnabled(temp:boolean);
procedure MakeServiceItemEnabled(temp:boolean);
procedure MakeServiceMealTypeEnabled(temp:boolean);
procedure MakeMemberCardTypeEnabled(temp:boolean);
procedure SearchEmpTypeInfo();
procedure SearchCusTypeInfo();
procedure SearchServiceItemTypeInfo();
procedure SearchServiceItemInfo();
procedure SearchServiceMealTypeInfo();
procedure SearchServiceMealInfo();
procedure SearchServiceMealItemInfo(temp:string);
procedure SearchServiceItem2Info();
procedure SearchMemberCardTypeInfo();
procedure ClearEmpTypeInfo();
procedure ClearCusTypeInfo();
procedure ClearServiceItemTypeInfo();
procedure ClearServiceItemInfo();
procedure ClearServiceMealTypeInfo();
procedure ClearMemberCardTypeInfo();
function SaveEmpTypeInfo():boolean;
function SaveCusTypeInfo():boolean;
function SaveServiceItemTypeInfo():boolean;
function SaveServiceItemInfo():boolean;
function SaveServiceMealTypeInfo():boolean;
function SaveServiceMealInfo():boolean;
function SaveMemberCardTypeInfo():boolean;
function CalculateTotalSum():double;
public
{ Public declarations }
procedure dic_ref;
procedure cus_ref;
procedure emp_ref;
procedure ServiceItemType_ref;
procedure ServiceItem_ref;
procedure ServiceMealType_ref;
procedure ServiceMeal_ref;
procedure MemberCardType_ref;
end;
var
frm_dictionary: Tfrm_dictionary;
implementation
uses unit_DataModule,unit_TotalPublic,PublicFunOrPro;
{$R *.dfm}
procedure Tfrm_dictionary.dic_ref ;
begin
sbtn_append.Enabled := GetPower(SysUserId,'用户字典','修改权');
sbtn_edit.Enabled := sbtn_append.Enabled ;
sbtn_delete.Enabled := sbtn_append.Enabled ;
end;
function Tfrm_dictionary.CalculateTotalSum():double;
var
total_sum:double;
i:integer;
begin
total_sum:=0.0;
for i:=1 to sg_ItemType2.RowCount -2 do
begin
total_sum := total_sum+StrToFloat(sg_ItemType2.cells[2,i]);
end;
result:=total_sum;
end;
{*********************EmployeeType******************************}
//进行员工类别的初始化
procedure Tfrm_dictionary.emp_ref;
begin
with sg_EmpType do
begin
cells[0,0] := '序号';
cells[1,0] := '员工类别';
cells[2,0] := '类别描述';
end;
SearchEmpTypeInfo();
end;
//进行员工类别记录的查询
procedure Tfrm_dictionary.SearchEmpTypeInfo ();
var
i:integer;
begin
with dmod.qrydata do
begin
close;
SQL.Text := 'select type_id,type_name,type_remark from EmployeeType';
Open;
i:=1;
while not eof do
begin
sg_EmpType.Cells[0,i] := FieldByName('type_id').AsString ;
sg_EmpType.Cells[1,i] := FieldByName('type_name').AsString ;
sg_EmpType.Cells[2,i] := FieldbyName('type_remark').AsString ;
inc(i);
next;
end;
end;
if i<>1 then sg_EmpType.RowCount := i+1;
sbtn_front.Enabled := false;
sbtn_back.Enabled := false;
if sg_EmpType.RowCount >3 then sbtn_back.Enabled := true;
end;
//进行员工类别数据的保存
function Tfrm_dictionary.SaveEmpTypeInfo():boolean;
begin
result := true;
if trim(edt_EmpTypename.Text)='' then
begin
Messagebox(handle,'请输入员工类别名称!','提示',mb_ok+mb_iconinformation);
result:=false;
edt_EmpTypename.SetFocus ;
exit;
end;
EmpTypeid:=trim(edt_Emptypeid.Text );
if EmpTypeAppendOrEdit then //如果是新增加员工类别
with dmod.qrydata do
begin
close;
SQL.Text := 'select type_id from EmployeeType where type_id=:typeid';
ParamByName('typeid').AsString := EmpTypeid;
Open;
if not eof then //如果员工编号已经存在
begin
MessageBox(self.handle,'该员工类别编号已经存在,请重新确认!','提示',mb_ok+mb_iconinformation);
edt_EmpTypeid.SetFocus ;
result:=false;
exit;
end;
end;
with dmod.qrydata do
begin
close;
SQL.Text := 'select type_id from EmployeeType where type_name=:typename';
ParamByname('typename').AsString := trim(edt_EmpTypename.Text);
open;
if not eof then
if FieldByName('type_id').AsString <> Emptypeid then
begin
MessageBox(self.Handle ,'该员工姓名已经存在,请重新确认!','提示',mb_ok+mb_iconinformation);
edt_EmpTypename.SetFocus ;
result := false;
exit;
end;
end;
try
dmod.Database.StartTransaction ;
with dmod.qrydata do
begin
close;
SQL.Text := 'delete from EmployeeType where type_id=:typeid';
ParamByName('typeid').AsString := EmpTypeId;
ExecSQL;
close;
SQL.Text := 'insert into EmployeeType(type_id,type_name,type_remark) values(:typeid,:typename,:typeremark)';
ParamByName('typeid').AsString := trim(edt_Emptypeid.Text );
ParamByName('typename').AsString := trim(edt_Emptypename.Text );
ParamByName('typeremark').AsString := trim(edt_Emptyperemark.Text );
ExecSQL;
end;
finally
try
dmod.Database.Commit ;
except
dmod.Database.Rollback ;
MessageBox(handle,'操作失败,请重试!','提示',mb_ok+mb_iconinformation);
result:=false;
end;
end;
end;
//进行员工信息的清除
procedure Tfrm_dictionary.ClearEmpTypeInfo();
begin
edt_EmpTypeid.Text :='';
edt_EmpTypename.Text :='';
edt_EmpTyperemark.Text :='';
end;
//进行员工信息的按钮设置
procedure Tfrm_dictionary.MakeEmpTypeEnabled(temp:boolean);
begin
if sbtn_append.Enabled then
sbtn_save.Enabled := true
else
sbtn_save.Enabled := false;
sbtn_delete.Enabled :=false;
edt_EmpTypeid.Enabled := temp;
edt_EmpTypename.Enabled := temp;
edt_EmpTyperemark.Enabled := temp;
end;
{***********************EmployeeType**************************}
{***********************CustomerType**************************}
//进行客户类型的初始化
procedure Tfrm_dictionary.cus_ref;
begin
with sg_CusType do
begin
cells[0,0] := '序号';
cells[1,0] := '顾客类别';
cells[2,0] := '类别描述';
end;
SearchCusTypeInfo();
end;
//进行客户类型的查询列表
procedure Tfrm_dictionary.SearchCusTypeInfo();
var
i:integer;
begin
with dmod.qrydata do
begin
close;
SQL.Text := 'select type_id,type_name,type_remark from CustomerType order by type_id desc';
Open;
i:=1;
while not eof do
begin
sg_CusType.Cells[0,i] := FieldByName('type_id').AsString ;
sg_CusType.Cells[1,i] := FieldByName('type_name').AsString ;
sg_CusType.Cells[2,i] := FieldbyName('type_remark').AsString ;
inc(i);
next;
end;
end;
if i<>1 then sg_CusType.RowCount := i+1;
sbtn_front.Enabled := false;
sbtn_back.Enabled := false;
if sg_CusType.RowCount >3 then sbtn_back.Enabled := true;
end;
//进行客户类别的清除
procedure Tfrm_dictionary.ClearCusTypeInfo ();
begin
edt_CusTypeid.Text :='';
edt_CusTypename.Text :='';
edt_CusTyperemark.Text :='';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -