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

📄 unit_cp.pas

📁 一个小型餐饮管理系统,可支持小票打印.还存在一些小问题,希望朋友们帮助完成. QQ:15372627 E-mail:hdw802.163.com
💻 PAS
字号:
unit Unit_CP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, ExtCtrls,DB, DBClient,Data_DL,Grids;

Type TCp=Record
 ID,IID,SS_ID,Cpunit,LV:Integer;
 RateFlag,DelFlag:Boolean;
 Type_Name,HotKey:String;
 CpDJ:Currency;
end;

type
 TCP_info=class(TObject)

 private
  Mydata:TDL_Data;
  SCds,MCds:TclientDataSet;
  Str:string;
 public
  constructor create;
  destructor destroy;override;
  //获取计量单位列表
  Function GetJLDWList:TStrings;

  //获取商品分类列表
  Function GetProjType:TStrings;

  //新增商品分类
  Procedure AddProjType(TmpCpinfo:Tcp);

  //根据商品分类名称,返回分类ID
  Function GetProjTypeIID(TmpProjTypeName:String):Integer;

  //根据计量单位名称返回计量单位ID
  Function GetJLDWID(TmpJLName:String):Integer;

  //返回分类名称中IID的最大值
  Function GetMaxTypeProj_IID:Integer;
  
  //根据指定菜品返回菜品ID号
  Function Get_CpID(CpType,CpName:String):Integer;

  //根据菜品ID号返回菜品信息
  Function GetCpInfo(CpId:Integer):TCP;

  //新增菜品信息
  Procedure AddNewCp(TmpCpInfo:Tcp);

  //获取指定代码的菜品列表,用于消费项目(清单)的内容
  Function GetAllCpList(Hotkey:String):OleVariant;

 end;

implementation

{ TCP_info CP_INFO表的管理}

function TCP_info.GetCpInfo(CpId: Integer): TCP;
Var
 Tmp:TCP;
begin
 Str:='Select * From Cp_info Where Id='+IntToStr(CpID);
 Mcds.Data:=MyData.Open_SQL(Str);
 Tmp.ID:=CPID;
 Tmp.IID:=Mcds.FieldByName('IID').AsInteger;
 Tmp.Type_Name:=Mcds.FieldByName('Type_Name').AsString;
 Tmp.SS_ID:=Mcds.FieldByName('SS_ID').AsInteger;
 Tmp.LV:=Mcds.FieldByName('Lv').AsInteger;
 Tmp.CpDJ:=Mcds.FieldByName('CpDJ').AsCurrency;
 Tmp.Cpunit:=Mcds.FieldByName('Cpunit').AsInteger;
 Tmp.RateFlag:=Mcds.FieldByName('RateFlag').AsBoolean;
 Tmp.HotKey:=Mcds.FieldByName('Hotkey').AsString;
 Tmp.DelFlag:=Mcds.FieldByName('DelFlag').AsBoolean;
 Result:=Tmp;
end;

constructor TCP_info.create;
begin
 Mydata:=TDL_Data.Create(nil);
 SCds:=TClientDataSet.Create(nil);
 Mcds:=TClientDataSet.Create(nil);
end;

destructor TCP_info.destroy;
begin
  FreeAndNil(MYdata);
  FreeAndNil(SCds);
  FreeAndNil(Mcds);
  inherited;
end;

function TCP_info.Get_CpID(CpType,CpName: String): Integer;
Var
 Tmp_CpType_IID:Integer;
begin
 Result:=-1;
 Str:='Select * from Cp_info Where Type_name='''+Trim(CpType)+'''';
 Mcds.Data:=MyData.Open_SQL(Str);

 Tmp_CpType_IID:=Mcds.FieldByName('IID').AsInteger;
 Str:='Select * From Cp_Info Where (Type_Name='''+Trim(CpName)+''') And (';
 Str:=Str+'SS_ID='+InttoStr(Tmp_CpType_IID)+')';
 Mcds.Data:=MyData.Open_SQL(Str);
 Result:=Mcds.FieldByName('ID').AsInteger;
end;

procedure TCP_info.AddNewCp(TmpCpInfo: Tcp);
begin
 Str:='Insert Into Cp_info(IID,TYPE_NAME,SS_ID,LV,CPDJ,CPUNIT,RATEFLAG,HOTKEY,DELFLAG) Values (';
 Str:=Str+IntToStr(TmpCpInfo.IID)+',';
 Str:=Str+''''+Trim(TmpCpInfo.Type_Name)+''',';
 Str:=Str+IntToStr(TmpCpInfo.SS_ID)+',';
 Str:=Str+IntToStr(TmpCpInfo.LV)+',';
 Str:=Str+FloatToStr(TmpCpInfo.CpDJ)+',';
 Str:=Str+IntToStr(TmpCpInfo.Cpunit)+',';
 Str:=Str+'1'+',';
 Str:=Str+''''+TmpCpInfo.HotKey+''',';
 Str:=Str+'0'+')';
 MyData.Exec_SQL(Str);
end;

function TCP_info.GetJLDWList: TStrings;
Var
 Tmp:TStrings;
begin
 Tmp:=TStringList.Create;
 Mcds.Data:=Mydata.Open_SQL('Select * from JLDW Order By Id');
 While Not MCds.Eof Do
 Begin
  Tmp.Add(Mcds.FieldByName('Name').AsString);
  Mcds.Next;
 End;
 Result:=Tmp;
end;

function TCP_info.GetProjType: TStrings;
 Var
 Tmp:TStrings;
begin
 Tmp:=TStringList.Create;
 Mcds.Data:=Mydata.Open_SQL('Select * from CP_info Where (SS_ID=-1) Order By Id');
 While Not MCds.Eof Do
 Begin
  Tmp.Add(Mcds.FieldByName('Type_Name').AsString);
  Mcds.Next;
 End;
 Result:=Tmp;
end;

function TCP_info.GetProjTypeIID(TmpProjTypeName: String): Integer;
begin
 Result:=-1;
 Str:='Select IID From Cp_info Where Type_Name='''+Trim(TmpProjTypeName)+'''';
 Mcds.Data:=Mydata.Open_SQL(Str);
 Result:=Mcds.FieldByName('IID').AsInteger;
end;

function TCP_info.GetJLDWID(TmpJLName: String): Integer;
begin
 Result:=-1;
 Str:='Select ID From JLDW Where Name='''+Trim(TmpJLName)+'''';
 MCds.Data:=MyData.Open_SQL(Str);
 Result:=Mcds.FieldByName('ID').AsInteger;
end;

procedure TCP_info.AddProjType(TmpCpinfo:Tcp);
begin
Str:='Insert Into Cp_info(IID,TYPE_NAME,SS_ID,LV,CPDJ,RATEFLAG,DELFLAG) Values (';
 Str:=Str+IntToStr(TmpCpInfo.IID)+',';
 Str:=Str+''''+Trim(TmpCpInfo.Type_Name)+''',';
 Str:=Str+IntToStr(-1)+',';
 Str:=Str+IntToStr(1)+',';
 Str:=Str+FloatToStr(0)+',';
 Str:=Str+'1'+',';
 Str:=Str+'0'+')';
 MyData.Exec_SQL(Str);
end;

function TCP_info.GetMaxTypeProj_IID: Integer;
begin
 Result:=-1;
 Str:='Select max(IID) As MaxIID From Cp_info';
 Mcds.Data:=Mydata.Open_SQL(Str);
 Result:=Mcds.FieldByName('MAXIID').AsInteger;
end;

function TCP_info.GetAllCpList(Hotkey: String): OleVariant;
begin
 If Trim(HotKey)<>'' Then
 begin
  Str:='Select * from view_cpinfo Where 录入热键 like '''+'%'+trim(Hotkey)+'%'+'''';
  Str:=Str+'order by id';
 end
 Else
  Str:='Select * from View_Cpinfo order by id';
  Result:=Mydata.Open_SQL(Str);
end;

end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -