📄 c_ctmain.pas
字号:
unit C_ctmain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, ToolWin, ComCtrls, Menus, Grids,
DB, DBTables, C_CtDefine, ImgList, TeEngine, Series, TeeProcs, Chart,
DBGrids, XPMenu, IniFiles, DBCtrls;
type
TCtmainForm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
ToolBar1: TToolBar;
btnXt: TBitBtn;
btnKt: TBitBtn;
btnZt: TBitBtn;
btnBt: TBitBtn;
btnQt: TBitBtn;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
Panel4: TPanel;
sgdCtzt: TStringGrid;
tblCtzt: TTable;
ImageList1: TImageList;
N17: TMenuItem;
N18: TMenuItem;
btnQuit: TBitBtn;
btnRefresh: TBitBtn;
tblCtdc: TTable;
dsCtdc: TDataSource;
tblCtdcD_CTMC: TStringField;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
qryYdcy: TQuery;
tblCtztD_CTBH: TStringField;
tblCtztD_CTMC: TStringField;
tblCtztD_CTZT: TStringField;
tblCtztD_DCBH: TStringField;
tblCtztD_KRXM: TStringField;
tblCtztD_KRSL: TIntegerField;
tblCtztD_XFRQ: TDateTimeField;
tblCtztD_XFSJ: TDateTimeField;
tblCtztD_JZRQ: TDateTimeField;
tblCtztD_JZSJ: TDateTimeField;
tblCtdcD_DCBH: TStringField;
tblCtdcD_CTBH: TStringField;
tblCtdcD_XMBH: TStringField;
tblCtdcD_DCLB: TStringField;
tblCtdcD_XFRQ: TDateTimeField;
tblCtdcD_XFSJ: TDateTimeField;
tblCtdcD_SJDM: TStringField;
tblCtdcD_KRSL: TIntegerField;
tblCtdcD_YCBZ: TStringField;
tblCtdcD_KRXM: TStringField;
tblCtdcD_JSBZ: TStringField;
tblCtdcD_JZFS: TStringField;
tblCtdcD_KHBH: TStringField;
tblCtdcD_XYKBH: TStringField;
tblCtdcD_XFJE: TFloatField;
tblCtdcD_YHJE: TFloatField;
tblCtdcD_CZYXM: TStringField;
tblCtdcD_YDBH: TStringField;
tblCtdcD_BZ: TStringField;
Splitter2: TSplitter;
N25: TMenuItem;
N26: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
N31: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
btnYd: TBitBtn;
DBGrid1: TDBGrid;
btnJt: TBitBtn;
N32: TMenuItem;
Panel3: TPanel;
Chart1: TChart;
Series1: THorizBarSeries;
GroupBox1: TGroupBox;
lblXfze: TLabel;
lblJzze: TLabel;
lblRmb: TLabel;
lblXyk: TLabel;
lblZp: TLabel;
lblJzxj: TLabel;
lblQt: TLabel;
Bevel1: TBevel;
lblYdze: TLabel;
N33: TMenuItem;
N34: TMenuItem;
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sgdCtztDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure sgdCtztSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure sgdCtztDblClick(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure btnXtClick(Sender: TObject);
procedure btnZtClick(Sender: TObject);
procedure btnBtClick(Sender: TObject);
procedure btnQtClick(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure btnRefreshClick(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure N20Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N23Click(Sender: TObject);
procedure N24Click(Sender: TObject);
procedure tblYdcyD_YDBZGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure N26Click(Sender: TObject);
procedure N30Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure btnYdClick(Sender: TObject);
procedure btnJtClick(Sender: TObject);
procedure sgdCtztKeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1DblClick(Sender: TObject);
procedure N33Click(Sender: TObject);
procedure OnWjzcx(Sender: TObject);
private
{ Private declarations }
procedure ShowCzl(AZs,ASy: Integer);
procedure ShowXx;
public
{ Public declarations }
FCtNum: Integer;
FSelect: Integer;
FCtzt: array of TCtzt;
procedure ShowCtzt;
procedure Ydcykt(const ADcbh,ACtbh,AKrxm,AYcbz,AYdbz: string;AYcje: Currency);
end;
const
ColNum = 12;//每行显示的个数
var
CtmainForm: TCtmainForm;
implementation
uses C_ctxfxm,
C_ctth,
C_cddm,
C_Ctkt,
C_ctdc,
C_Ctxt,
C_CtData,
C_Fcfjz,
C_Yycx,
C_Xhtj,
C_Dcbd,
C_Ctxtm,
C_Klsz,
C_Password,
C_About,
C_Xtsz, C_Yytj, C_Ctyd, C_Ctjt, C_Wjzcx;
{$R *.dfm}
//显示餐厅状态
procedure TCtmainForm.ShowCtzt;
var
I,ASy: Integer;
s: string;
begin
ASy := 0;
tblCtzt.Refresh;
FCtNum := tblCtzt.RecordCount;
SetLength(FCtzt,FCtNum);
sgdCtzt.ColCount := ColNum;
sgdCtzt.RowCount := (FCtNum div ColNum) + 1;
tblCtzt.First;
qryYdcy.Close;
qryYdcy.ParamByName('RQ').AsDate := Date;
qryYdcy.Open;
i := 0;
while not tblCtzt.Eof do
begin
FCtzt[i].ACtbh := tblCtztD_CTBH.Value;
FCtzt[i].ACtmc := tblCtztD_CTMC.Value;
FCtzt[i].ACtzt := tblCtztD_CTZT.Value;
FCtzt[i].ADcbh := tblCtztD_DCBH.Value;
FCtzt[i].AXfrq := tblCtztD_XFRQ.Value;
FCtzt[i].AXfsj := tblCtztD_XFSJ.Value;
FCtzt[i].AJzrq := tblCtztD_JZRQ.Value;
FCtzt[i].AJzsj := tblCtztD_JZSJ.Value;
FCtzt[i].AKrsl := tblCtztD_KRSL.Value;
FCtzt[i].AKrxm := tblCtztD_KRXM.Value;
FCtzt[i].AYdbz := '';
FCtzt[i].ASjdm := '';
if qryYdcy.Locate('D_CTBH',FCtzt[i].ACtbh,[]) then
begin
if IS_YDXS then
FCtzt[i].AColor := clRed
else
FCtzt[i].AColor := cl3DLight;
FCtzt[i].AYdbz := qryYdcy.FieldByName('D_KRXM').AsString;// '★';
FCtzt[i].ASjdm := qryYdcy.FieldbyName('D_SJDM').AsString;
end;
//统计消费
if FCtzt[i].ACtzt <> CTZT_OK then
begin
s := 'select sum(D_DJ*(D_XFSL-D_THSL)) from DCMX where (D_DCBH="'
+FCtzt[i].ADcbh
+'")and(D_CTBH="'
+FCtzt[i].ACtbh
+'")and(D_DEL="F")';
//edit by ls. 20020902 取整
FCtzt[i].AXfje := Trunc(CtData.SumJe(s)+0.99);
end
else
FCtzt[i].AXfje := 0;
if FCtzt[i].ACtzt = CTZT_OK then
begin
if FCtzt[i].AYdbz = '' then
FCtzt[i].AColor := cl3DLight;
FCtzt[i].AImage := 0;
end;
if FCtzt[i].ACtzt = CTZT_USE then
begin
FCtzt[i].AColor := clSkyBlue;
FCtzt[i].AImage := 1;
Inc(ASy);
end;
if FCtzt[i].ACtzt = CTZT_JZ then
begin
FCtzt[i].AColor := clYellow;
FCtzt[i].AImage := 2;
Inc(ASy);
end;
Inc(i);
tblCtzt.Next;
end;
qryYdcy.Close;
sgdCtzt.Refresh;
tblCtdc.Refresh;
ShowXx;
ShowCzl(FCtNum,ASy);
end;
//edit by ls. 20020903
procedure TCtmainForm.ShowXx;
var
AXfze,AJzze,ARmb,AXyk,AZp,AJzxj,AQt,AYdze: Currency;
s : string;
begin
ARmb := 0;AXyk := 0;
AZp := 0;AQt := 0;
GroupBox1.Caption := '结帐员 '+Czy.CzyXm;
s := 'select sum(D_DJ*(D_XFSL-D_THSL)) from DCMX where D_DEL="F"';
AXfze := CtData.SumJe(s);
s := 'select sum(D_XFJE) from CTDC where (D_CZYXM="'+CZY.CzyXm+'")and(D_CTBH="0")and(D_DCLB="'+DCLB_QT+'")';
AXfze := AXfze + CtData.SumJe(s);
s := 'select sum(D_XFJE) from YDCY where (D_CTBH="0")and(D_RZBZ="T")and(D_SYRQ=:D)';
with Ctdata.qrySum do
begin
Close;
SQL.Clear;
SQL.Add(s);
ParamByName('D').AsDate := Date;
Open;
if Fields[0].IsNull then AYdze := 0
else AYdze := Fields[0].AsCurrency;
end;
s := 'select D_JZFS,sum(D_XFJE),sum(D_YHJE) from CTDC where (D_CZYXM="'+CZY.CzyXm+'")and(D_JZFS<>"")and(D_CTBH="0") group by D_JZFS';
with CtData.qrySum do
begin
Close;
SQL.Clear;
SQL.Add(s);
Open;
First;
while not Eof do
begin
if FieldByName('D_JZFS').AsString = JZFS_RMB then
ARmb := ARmb + Fields[1].AsCurrency - Fields[2].AsCurrency
else if FieldByName('D_JZFS').AsString = JZFS_XYK then
AXyk := AXyk + Fields[1].AsCurrency - Fields[2].AsCurrency
else if FieldByName('D_JZFS').AsString = JZFS_ZP then
AZp := AZp + Fields[1].AsCurrency - Fields[2].AsCurrency
else
AQt := AQt + Fields[1].AsCurrency - Fields[2].AsCurrency;
Next;
end;
Close;
end;
AJzze := ARmb+AXyk+AZp+AQt;
AJzxj := ARmb+AXyk+AZp;
lblXfze.Caption := '消费总额:'+FormatFloat('#.##',AXfze);
lblYdze.Caption := '预定总额:'+FormatFloat('#.##',AYdze);
lblJzze.Caption := '结帐总额:'+FormatFloat('#.##',AJzze);
lblRmb.Caption := '人 民 币:'+FormatFloat('#.##',ARmb);
lblXyk.Caption := '信 用 卡:'+FormatFloat('#.##',AXyk);
lblZp.Caption := '支 票:'+FormatFloat('#.##',AZp);
lblJzxj.Caption := '餐厅收回:'+FormatFloat('#.##',AJzxj);
lblQt.Caption := '其 他:'+FormatFloat('#.##',AQt);
end;
//显示出租率
procedure TCtmainForm.ShowCzl(AZs,ASy: Integer);
begin
Series1.Clear;
Series1.AddBar(ASy/(AZs-ASy)*100,'使用率',clRed);
//Series1.AddPie(AZs-ASy,'空闲',cl3DLight);
//Series1.AddPie(ASy,'使用',clSkyBlue);
end;
//消费项目定义
procedure TCtmainForm.N12Click(Sender: TObject);
begin
Ctxfxmdy;
end;
//餐厅定义
procedure TCtmainForm.N13Click(Sender: TObject);
begin
CtthDy;
end;
//菜单定义
procedure TCtmainForm.N14Click(Sender: TObject);
begin
Cddmdy;
end;
//初始化
procedure TCtmainForm.FormShow(Sender: TObject);
var
IniFile : TIniFile;
begin
if ParamStr(1)='' then
begin
if (not CzyDl)or(not CtData.CheckYgqx(CZY.CzyBh,'餐饮管理系统')) then
Application.Terminate;
end
else
begin
CZY.CzyBh := ParamStr(1);
CZY.CzyXm := ParamStr(2);
end;
Caption := '餐饮管理系统(操作员:' + CZY.CzyXm+')';
APP_DIR := ExtractFilePath(Application.ExeName);
IniFile := TIniFile.Create(APP_DIR+'\'+INI_FILENAME);
PORTNUM := IniFile.ReadInteger('PORT','ICPORTNUM',0);
IniFile.Free;
tblCtzt.Open;
tblCtdc.Open;
FSelect := 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -