⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc_dcfxt.pas

📁 异洲酒店管理系统
💻 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 + -