📄 mc_dcfxt.pas
字号:
unit MC_DCFXT;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
TeEngine, Series, TeeProcs, Chart, ExtCtrls,Db, DBTables, ComCtrls, StdCtrls, Grids, Buttons,
ImgList, DBGrids;
type
TDCFXT = class(TForm)
Query1: TQuery;
GroupBox1: TGroupBox;
Panel1: TPanel;
GroupBox2: TGroupBox;
TreeView1: TTreeView;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
ImageList1: TImageList;
DBGrid1: TDBGrid;
Panel2: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Query2: TQuery;
DataSource1: TDataSource;
Query2BDEDesigner: TIntegerField;
Query2BDEDesigner2: TStringField;
Query2BDEDesigner3: TIntegerField;
Query2BDEDesigner4: TStringField;
Query2BDEDesigner5: TStringField;
Query2BDEDesigner6: TStringField;
Query2BDEDesigner7: TIntegerField;
Query2BDEDesigner8: TFloatField;
Query2BDEDesigner9: TFloatField;
Query2BDEDesigner10: TDateTimeField;
Query2BDEDesigner11: TDateTimeField;
Query2BDEDesigner12: TIntegerField;
Query2BDEDesigner13: TStringField;
Query2BDEDesigner14: TStringField;
Query2BDEDesigner15: TIntegerField;
Query2BDEDesigner16: TStringField;
Query3: TQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
ZJ:String;
List1:TTreeNode;
{ Private declarations }
public
{ Public declarations }
end;
var
DCFXT: TDCFXT;
implementation
{$R *.DFM}
procedure TDCFXT.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DCFXT.Release;
DCFXT:=Nil;
end;
procedure TDCFXT.FormShow(Sender: TObject); //初始化树状视图组件
var List:Array[0..5] of TTreeNode;
A,b:integer;
begin
Query1.Open;
while not Query1.Eof do //将菜系名称用树状视图组件显示
begin
List[0]:=TreeView1.Items.AddChild(TreeView1.Items[0],Query1.FieldByName('菜系名称').AsString); //创建子节点
List[0].ImageIndex:=1; //指定图片
List[0].SelectedIndex:=1;
Query1.Next;
end;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From 菜谱费用信息表'); //选择菜谱
Query1.Open;
While not Query1.Eof do //将菜谱菜名作为菜系名称的子节点
begin
For a:=0 to TreeView1.Items[0].Count-1 do //将菜谱指定到所属菜系节点下
begin
if TreeView1.Items[0].Item[a].Text=Query1.FieldByName('菜系类别').AsString then
begin
List[0]:=TreeView1.Items.AddChild(TreeView1.Items[0].Item[a],Query1.FieldByName('菜名').AsString);
List[0].ImageIndex:=2; //指定图片
List[0].SelectedIndex:=2;
Break;
end;
end;
Query1.Next;
end;
DateTimePicker1.Date:=Date-365; //设置默认时间段为一年
DateTimePicker2.Date:=Date; //设置结束日期为系统日期
List1:=TreeView1.Items[0];
ZJ:='ALL';
TreeView1.Items[0].Expanded:=True; //显示菜系节点
end;
procedure TDCFXT.TreeView1Click(Sender: TObject); //选择分析内容
begin
List1:=TreeView1.Selected;
if List1.ImageIndex=0 then ZJ:='ALL'; //选择根节点
if List1.ImageIndex=1 then ZJ:=List1.Text; //选择菜系节点
if List1.ImageIndex=2 then ZJ:=List1.Text; //选择菜普节点
end;
procedure TDCFXT.BitBtn1Click(Sender: TObject); //统计点菜信息
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Select * From 点菜历史信息表'); //选择点菜历史信息表
If List1.ImageIndex = 0 Then //选择根节点
begin
Query2.SQL.Add('where 类型 in (Select 菜系名称 From 菜系类别信息表 )'); //选择菜系
Query2.SQL.Add('and 结单日期 >= :A and 结单日期 <= :B ORDER BY 结单日期 ASC'); //设置分析时间
Query2.ParamByName('A').AsDateTime:=DateTimePicker1.DateTime;
Query2.ParamByName('B').AsDateTime:=DateTimePicker2.DateTime;
Query2.Open;
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('Select Count(DisTinCt 房间台号),Sum(数量),Sum(合计) From 点菜历史信息表'); //汇总点菜信息
Query3.SQL.Add('where 类型 in (Select 菜系名称 From 菜系类别信息表 )');
Query3.SQL.Add('and 结单日期 >= :A and 结单日期 <= :B'); //设置汇总时间段
Query3.ParamByName('A').AsDateTime:=DateTimePicker1.DateTime;
Query3.ParamByName('B').AsDateTime:=DateTimePicker2.DateTime;
Query3.Open;
Label6.Caption:=Query3.Fields[0].AsString; //显示汇总房台数
Label7.Caption:=Query3.Fields[1].AsString; //显示汇总点菜数量
Label8.Caption:=Query3.Fields[2].AsString; //显示汇总点菜金额
End
Else
If List1.ImageIndex = 1 Then //选择菜系节点
begin
Query2.SQL.Add('Where 类型 = :C'); //选择菜系
Query2.SQL.Add('and 结单日期 >= :A and 结单日期 <= :B ORDER BY 结单日期 ASC'); //设置时间段和排序字段
Query2.ParamByName('A').AsDateTime:=DateTimePicker1.DateTime;
Query2.ParamByName('B').AsDateTime:=DateTimePicker2.DateTime;
Query2.ParamByName('C').AsString:=ZJ;
Query2.Open;
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('Select Count(DisTinCt 房间台号),Sum(数量),Sum(合计) From 点菜历史信息表');
Query3.SQL.Add('Where 类型 = :C'); //选择汇总菜系
Query3.SQL.Add('and 结单日期 >= :A and 结单日期 <= :B'); //设置汇总时间段
Query3.ParamByName('A').AsDateTime:=DateTimePicker1.DateTime;
Query3.ParamByName('B').AsDateTime:=DateTimePicker2.DateTime;
Query3.ParamByName('C').AsString:=ZJ;
Query3.Open;
End
Else
begin
Query2.SQL.Add('Where 名称 = :C');
Query2.SQL.Add('and 结单日期 >= :A and 结单日期 <= :B');
Query2.SQL.Add('ORDER BY 结单日期 ASC');
Query2.ParamByName('A').AsDateTime:=DateTimePicker1.DateTime;
Query2.ParamByName('B').AsDateTime:=DateTimePicker2.DateTime;
Query2.ParamByName('C').AsString:=ZJ;
Query2.Open;
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('Select Count(DisTinCt 房间台号),Sum(数量),Sum(合计) From 点菜历史信息表');
Query3.SQL.Add('Where 名称 = :C');
Query3.SQL.Add('and 结单日期 >= :A and 结单日期 <= :B');
Query3.ParamByName('A').AsDateTime:=DateTimePicker1.DateTime;
Query3.ParamByName('B').AsDateTime:=DateTimePicker2.DateTime;
Query3.ParamByName('C').AsString:=ZJ;
Query3.Open;
end;
Label6.Caption:=Query3.Fields[0].AsString; //显示汇总房台数
Label7.Caption:=Query3.Fields[1].AsString; //显示汇总点菜数量
Label8.Caption:=Query3.Fields[2].AsString; //显示汇总点菜金额
end;
procedure TDCFXT.BitBtn2Click(Sender: TObject); //清空统计结果
begin
Query2.Close;
Label6.Caption:='0';
Label7.Caption:='0';
Label8.Caption:='0';
end;
procedure TDCFXT.BitBtn3Click(Sender: TObject); //退出点菜分析
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -