📄 c_ydcysk.pas
字号:
unit C_Ydcysk;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, C_StdJd, DosMove, StdCtrls, Buttons, ExtCtrls, DB, DBTables,
Mask, DBCtrls, ComCtrls, C_Define, DateUtils;
type
TYdcyskForm = class(TStdJdForm)
tblYdcy: TTable;
dsYdcy: TDataSource;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBComboBox1: TDBComboBox;
ListView1: TListView;
tblCtzt: TTable;
Label10: TLabel;
lblKrxm: TLabel;
Label12: TLabel;
lblLxr: TLabel;
btnYdqr: TBitBtn;
btnYdqx: TBitBtn;
lblState: TStaticText;
Label11: TLabel;
Label13: TLabel;
RadioGroup1: TRadioGroup;
Label6: TLabel;
DBMemo1: TDBMemo;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
Label7: TLabel;
edtCtbh: TEdit;
btnSelect: TBitBtn;
tblYdcyD_YDBH: TStringField;
tblYdcyD_CTBH: TStringField;
tblYdcyD_CTMC: TStringField;
tblYdcyD_KRBH: TStringField;
tblYdcyD_KRXM: TStringField;
tblYdcyD_YDRQ: TDateTimeField;
tblYdcyD_SYRQ: TDateTimeField;
tblYdcyD_SYSJ: TDateTimeField;
tblYdcyD_SJDM: TStringField;
tblYdcyD_YCBZ: TStringField;
tblYdcyD_YCLX: TIntegerField;
tblYdcyD_RS: TIntegerField;
tblYdcyD_XFSL: TFloatField;
tblYdcyD_XFJE: TFloatField;
tblYdcyD_YDBZ: TStringField;
tblYdcyD_RZBZ: TStringField;
tblYdcyD_KTBZ: TStringField;
tblYdcyD_JSBZ: TStringField;
tblYdcyD_BZ: TBlobField;
tblYdcyD_CZYXM: TStringField;
tblYdcyD_DJ: TFloatField;
btnPrint: TBitBtn;
Label8: TLabel;
lblLxdh: TLabel;
procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure tblYdcyNewRecord(DataSet: TDataSet);
procedure btnOKClick(Sender: TObject);
procedure tblYdcyBeforePost(DataSet: TDataSet);
procedure btnCancClick(Sender: TObject);
procedure DBEdit3Exit(Sender: TObject);
procedure btnYdqrClick(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure btnSelectClick(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
procedure btnYdqxClick(Sender: TObject);
private
{ Private declarations }
FKrbh: string;
FYdbh: string;
FYdrq: TDateTime;
FSyrq: TDateTime;
FSysj: TDateTime;
FSjdm: string;
FXfje: Currency;
FYcbz: string;
FRzbz: string;
FBz : TStringList;
IsAppend: Boolean;
procedure ShowCtbh;
procedure ShowYdctbh;
procedure ShowState;
function GetCtbh(const s: string): string;
function GetCtmc(const s: string): string;
procedure UpdateCtbh(const ACtbh,ACtmc: string);
function IsValid: Boolean;
public
{ Public declarations }
end;
var
YdcyskForm: TYdcyskForm;
procedure YdcyskNew(const AKrbh: string);
procedure YdcyskEdit(const AKrbh,AYdbh: string);
implementation
uses C_HotelData, C_YdcyskPrint;
{$R *.dfm}
//新增预定
procedure YdcyskNew(const AKrbh: string);
begin
YdcyskForm := TYdcyskForm.Create(Application);
try
with YdcyskForm do
begin
//初始化
FKrbh := AKrbh;
FYdrq := Date;
FSyrq := Today;
FSysj := Time;//EnCodeTime(7,0,0,0);
FSjdm := Morning;
IsAppend := True;
lblKrxm.Caption := HotelData.FindUserBh('YDXX','D_KRXM','D_KRBH',FKrbh);
lblLxr.Caption := HotelData.FindUserBh('YDXX','D_DWMC','D_KRBH',FKrbh);
lblLxdh.Caption := HotelData.FindUserBh('YDXX','D_LXDH','D_KRBH',FKrbh);
//显示餐厅编号
ShowCtbh;
try
tblYdcy.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
tblYdcy.Insert;
//显示预定状态
ShowState;
ShowModal;
end;
finally
YdcyskForm.tblYdcy.Close;
YdcyskForm.Free;
end;
end;
//编辑
procedure YdcyskEdit(const AKrbh,AYdbh: string);
begin
YdcyskForm := TYdcyskForm.Create(Application);
try
with YdcyskForm do
begin
//初始化
FKrbh := AKrbh;
FYdrq := Date;
FSyrq := Date;
FSysj := Time;
FSjdm := Morning;
FYdbh := AYdbh;
IsAppend := False;
lblKrxm.Caption := HotelData.FindUserBh('YDXX','D_KRXM','D_KRBH',FKrbh);
lblLXr.Caption := HotelData.FindUserBh('YDXX','D_DWMC','D_KRBH',FKrbh);
lblLxdh.Caption := HotelData.FindUserBh('YDXX','D_LXDH','D_KRBH',FKrbh);
ShowCtbh;
try
tblYdcy.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
tblYdcy.Filter := 'D_YDBH='''+AYdbh+'''';
tblYdcy.Filtered := True;
//显示已经预定的餐厅
ShowYdctbh;
//定位到总单
if tblYdcy.FindKey([AYdbh,'0']) then
tblYdcy.Edit;
ShowState;
//定餐标准
RadioGroup1.ItemIndex := tblYdcyD_YCLX.Value;
RadioGroup1Click(nil);
ShowModal;
end;
finally
YdcyskForm.tblYdcy.Filter := '';
YdcyskForm.tblYdcy.Filtered := False;
YdcyskForm.tblYdcy.Close;
YdcyskForm.Free;
end;
end;
//显示预定状态
procedure TYdcyskForm.ShowState;
begin
if tblYdcyD_RZBZ.AsBoolean then
begin
lblState.Caption := '已确认';
lblState.Font.Color := clGreen;
FRzbz := 'T';
end
else
begin
lblState.Caption := '未确认';
lblState.Font.Color := clYellow;
FRzbz := 'F';
end;
btnYdqr.Enabled := not tblYdcyD_RZBZ.AsBoolean;
//btnYdqx.Enabled := btnYdqr.Enabled;
end;
//显示已经预定的餐厅
procedure TYdcyskForm.ShowYdctbh;
var
i: Integer;
begin
tblYdcy.First;
while not tblYdcy.Eof do
begin
for i:=0 to ListView1.Items.Count - 1 do
if GetCtbh(ListView1.Items[i].Caption)=tblYdcyD_CTBH.Value then
ListView1.Items[i].Checked := True;
tblYdcy.Next;
end;
end;
//显示餐厅编号
procedure TYdcyskForm.ShowCtbh;
var
ListItem: TListItem;
aCtmc : string;
begin
try
try
tblCtzt.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
tblCtzt.First;
while not tblCtzt.Eof do
begin
//edit by ls .20021210
aCtmc := tblCtzt.FieldbyName('D_CTMC').AsString;
if (Copy(tblCtzt.FieldByName('D_CTMC').AsString,1,6)='星海厅') then
begin
aCtmc := '星海厅';
if tblCtzt.FieldByName('D_CTMC').AsString > '星海厅01' then
begin
tblCtzt.Next;
Continue;
end;
end else
if (Copy(tblCtzt.FieldByName('D_CTMC').AsString,1,6)='凌云厅') then
begin
aCtmc := '凌云厅';
if tblCtzt.FieldByName('D_CTMC').AsString > '凌云厅01' then
begin
tblCtzt.Next;
Continue;
end;
end else
if (Copy(tblCtzt.FieldByName('D_CTMC').AsString,1,6)='千禧厅') then
begin
aCtmc := '千禧厅';
if tblCtzt.FieldByName('D_CTMC').AsString > '千禧厅01' then
begin
tblCtzt.Next;
Continue;
end;
end;
ListItem := ListView1.Items.Add;
//ListItem.Caption := tblCtzt.FieldByName('D_CTBH').AsString
// +'|'+tblCtzt.FieldByName('D_CTMC').AsString;
ListItem.Caption := tblCtzt.FieldByName('D_CTBH').AsString
+'|'+aCtmc;
tblCtzt.Next;
end;
finally
tblCtzt.Close;
ListView1.Items.EndUpdate;
end;
end;
procedure TYdcyskForm.ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
inherited;
if Selected then
Item.Checked := True;
end;
procedure TYdcyskForm.tblYdcyNewRecord(DataSet: TDataSet);
begin
inherited;
tblYdcyD_KRBH.Value := FKrbh;
tblYdcyD_YDRQ.Value := FYdrq;
tblYdcyD_SYRQ.Value := FSyrq;
tblYdcyD_SYSJ.Value := FSysj;
tblYdcyD_SJDM.Value := FSjdm;
tblYdcyD_JSBZ.Value := JS_NO;
tblYdcyD_YDBZ.Value := YDCY_SK;
tblYdcyD_XFSL.Value := 1;
tblYdcyD_KRXM.Value := lblKrxm.Caption;
tblYdcyD_CZYXM.Value:= CZY.CzyXm;
end;
//获取餐厅编号
function TYdcyskForm.GetCtbh(const s: string): string;
var
p: Integer;
begin
p := Pos('|',s);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -