⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_dictionary.pas

📁 用delphi开发的美容院管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
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 + -