📄 unit_cp.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 + -