📄 unit_yd.pas
字号:
unit Unit_YD;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ExtCtrls,DB, DBClient,Data_DL,Grids;
Type
TYdRec=Record
Yd_Code,Dc_Name,Tel,Phone,Memo:String;
Time_ID,Yd_Room_ID,Ct_Name_ID,Admin_ID,AutoStop:Integer;
YD_Time,Stop_Time,OperTime:TdateTime;
Money:Currency;
End;
type
TYD_info=class(TObject)
private
Mydata:TDL_Data;
SCds,MCds:TclientDataSet;
Str:string;
public
constructor create;
destructor destroy;override;
//新增预订记录
Procedure Add_Yd_Rec(TmpRec:TYdRec);
//根据预订编码返回预订记录ID号
Function Get_Yd_ID(Tmp_YD_code:String):Integer;
//生成预订编码
Function YdCurr_Code:String;
//更新预订编码
Procedure UpdateYdCode;
//获取预订时段列表
Function TimeField:TStrings;
//返回预订时段信息表
Function TimeFieldInfo:OLEVariant;
//增加预订时段
Procedure AddTimeField(TimeName:String;BTime,ETime:TDateTime);
//修改预订时段
Procedure UpdateTimeField(ID:Integer;TimeName:String;BTime,ETime:TDateTime);
//删除预订时段
Procedure DelTimefield(ID:Integer);
//获取所有预订信息
Function AllYDinfo:OLEVariant;
End;
implementation
{ TYD_info }
procedure TYD_info.AddTimeField(TimeName:String;BTime,ETime:TDateTime);
begin
Str:='Insert Into TimeField(TimeName,BeginTime,EndTime) Values (';
Str:=Str+''''+Trim(timeName)+''',';
Str:=Str+''''+TimeToStr(BTime)+''',';
Str:=Str+''''+timeToStr(ETime)+''')';
MyData.Exec_SQL(Str);
end;
procedure TYD_info.Add_Yd_Rec(TmpRec: TYdRec);
begin
Str:='Insert Into YD_info(Yd_Code,Dc_Name,Tel,Phone,Time_ID,Yd_Time,';
Str:=Str+'Stop_Time,YD_room_ID,CT_Name_ID,Memo,Money,AutoStop,Admin_ID,';
Str:=Str+'OperTime) Values (';
Str:=Str+''''+TmpRec.Yd_Code+''',';
Str:=Str+''''+TmpRec.Dc_Name+''',';
Str:=Str+''''+TmpRec.Tel+''',';
Str:=Str+''''+TmpRec.Phone+''',';
Str:=Str+IntToStr(TmpRec.Time_ID)+',';
Str:=Str+''''+DateTimeToStr(TmpRec.YD_Time)+''',';
Str:=Str+''''+DateTimeToStr(TmpRec.Stop_Time)+''',';
Str:=Str+IntToStr(TmpRec.Yd_Room_ID)+',';
Str:=Str+IntToStr(TmpRec.Ct_Name_ID)+',';
Str:=Str+''''+TmpRec.Memo+''',';
Str:=Str+FloatToStr(TmpRec.Money)+',';
Str:=Str+IntToStr(TmpRec.AutoStop)+',';
Str:=Str+IntToStr(TmpRec.Admin_ID)+',';
Str:=Str+''''+DateTimeToStr(TmpRec.OperTime)+''')';
MyData.Exec_SQL(Str);
end;
function TYD_info.AllYDinfo: OLEVariant;
begin
Str:='Select * from View_YdInfo Where 取消时间>='''+DateTimeToStr(Now)+'''';
Result:=MyData.Open_SQL(Str);
end;
constructor TYD_info.create;
begin
Mydata:=TDL_Data.Create(nil);
SCds:=TClientDataSet.Create(nil);
Mcds:=TClientDataSet.Create(nil);
end;
procedure TYD_info.DelTimefield(ID: Integer);
begin
Str:='delete From TimeField Where Id='+IntToStr(ID);
if MessageDlg('是否真的要删除预订时段设定?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then
MyData.Exec_SQL(Str)
Else
Exit;
end;
destructor TYD_info.destroy;
begin
FreeAndNil(MYdata);
FreeAndNil(SCds);
FreeAndNil(Mcds);
inherited;
end;
function TYD_info.Get_Yd_ID(Tmp_YD_code: String): Integer;
begin
Result:=-1;
Str:='Select * From Yd_info Where Yd_Code='''+Trim(Tmp_YD_Code)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.FieldByName('ID').AsInteger;
end;
function TYD_info.TimeField: TStrings;
Var
Tmp:TStrings;
begin
Tmp:=TStringList.Create;
Mcds.Data:=Mydata.Open_SQL('Select * from TimeField Order By Id');
While Not MCds.Eof Do
Begin
Tmp.Add(Mcds.FieldByName('TimeName').AsString+'|'+Mcds.FieldByName('BeginTime').AsString+'--'+Mcds.FieldByName('EndTime').AsString);
Mcds.Next;
End;
Result:=Tmp;
end;
function TYD_info.TimeFieldInfo: OLEVariant;
begin
Str:='Select * from TimeField ';
Result:=Mydata.Open_SQL(Str);
end;
procedure TYD_info.UpdateTimeField(ID: Integer; TimeName:String;BTime, ETime: TDateTime);
begin
Str:='Update TimeField Set TimeName='''+timeName+''',';
Str:=Str+'beginTime='''+TimeTostr(BTime)+''',';
Str:=Str+'EndTime='''+TimeToStr(ETime)+''' ';
Str:=Str+'Where Id='+IntTostr(ID);
MyData.Exec_SQL(Str);
end;
procedure TYD_info.UpdateYdCode;
var
TmpCnt:integer;
begin
Str:='Select * From XF_Counter Where Xf_Date='''+DateToStr(Now)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
TmpCnt:=Mcds.FieldByName('ydh').AsInteger;
Str:='Update Xf_Counter Set ydh='+IntToStr(TmpCnt+1);
Str:=Str+' Where Xf_Date='''+DateToStr(Now)+'''';
MyData.Exec_SQL(Str);
end;
function TYD_info.YdCurr_Code: String;
Var
Tmp,CntS:String;
TmpCnt,CntLen,i:Integer;
begin
TmpCnt:=-1;
CntS:='';
Tmp:=FormatDateTime('YYMMDD',Now);
Str:='Select * From XF_Counter Where Xf_Date='''+DateToStr(Now)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
If Mcds.RecordCount=0 Then
Begin
Str:='Insert Into XF_Counter(ydh,Xf_Date) Values (1,'''+DateToStr(Now)+''')';
MyData.Exec_SQL(Str);
TmpCnt:=1;
end
Else
TmpCnt:=MCds.FieldByName('ydh').AsInteger;
CntLen:=Length(IntToStr(TmpCnt));
if CntLen<4 Then
For i:=CntLen To 3 do
Cnts:=Cnts+'0';
Result:='YD-'+Tmp+Cnts+IntToStr(TmpCnt);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -