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

📄 unit_daystatistic.pas

📁 用delphi开发的美容院管理系统
💻 PAS
字号:
unit Unit_DayStatistic;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, Grids, ExtCtrls, Buttons, StdCtrls;

type
  Tfrm_daystatistic = class(TForm)
    Panel1: TPanel;
    sg: TStringGrid;
    StatusBar1: TStatusBar;
    sbtn_close: TSpeedButton;
    sbtn_front: TSpeedButton;
    sbtn_back: TSpeedButton;
    Label1: TLabel;
    dtp_dayStatistic: TDateTimePicker;
    sbtn_daystatistic: TSpeedButton;
    sbtn_print: TSpeedButton;
    procedure sbtn_closeClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbtn_daystatisticClick(Sender: TObject);
    procedure sgSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sbtn_backClick(Sender: TObject);
    procedure sbtn_frontClick(Sender: TObject);
    procedure sbtn_printClick(Sender: TObject);
  private
    { Private declarations }
    procedure SearchDayStatistic(temp:string);
    procedure ComputeStatisticNumber;
  public
    { Public declarations }
    procedure daystatistic_ref;
  end;

var
  frm_daystatistic: Tfrm_daystatistic;

implementation
  uses unit_DataModule,unit_TotalPublic,PublicFunOrPro;
{$R *.dfm}

{*****************************************************}
procedure Tfrm_daystatistic.daystatistic_ref ;
begin
  with sg do
  begin
    cells[0,0]:='消费编号';
    cells[1,0]:='顾客编号';
    cells[2,0]:='顾客姓名';
    cells[3,0]:='消费总计';
    cells[4,0]:='打折合计';
    cells[5,0]:='总计共收';
    cells[6,0]:='应该找零';
    cells[7,0]:='结算方式';
  end;
  dtp_DayStatistic.Date := Date;
  sbtn_print.Enabled := GetPower(SysUserId,'日营业额统计','打印权');

end;

procedure Tfrm_daystatistic.SearchDayStatistic(temp:string) ;
var
  i:integer;
begin
  StringGridClear(sg);
  with dmod.qrydata do
  begin
    Close;
    SQL.Text :='select cost_no,cc.cus_no,cus_name,cost_sum,discount_sum,payment,change,check_type from CustomerCost cc,Customer c '+
               'where cc.cus_no=c.cus_no and cc.cost_date='+#39+temp+#39;
    Open;
    i:=1;
    while not eof do
    begin
      with sg do
      begin
        cells[0,i]:=FieldByName('cost_no').AsString ;
        cells[1,i]:=FieldByName('cus_no').AsString;
        cells[2,i]:=FieldByName('cus_name').AsString;
        cells[3,i]:=FloatToStr(FieldByName('cost_sum').AsFloat);
        cells[4,i]:=FloatToStr(FieldByName('discount_sum').AsFloat);
        cells[5,i]:=FloatToStr(FieldByName('payment').AsFloat);
        cells[6,i]:=FloatToStr(FieldByName('change').AsFloat);
        if FieldByName('check_type').AsString='0' then
          cells[7,i]:='现金结算'
        else
          cells[7,i]:='顾客卡结算';
      end;
      inc(i);
      next;
    end;
  end;
  if i<>1 then sg.RowCount :=i+1;
end;

procedure Tfrm_daystatistic.ComputeStatisticNumber ;
var
  i,totalconsumer,member,notmember:integer;
  totalsum:double;
begin
  totalconsumer:=sg.RowCount-2;
  member:=0;
  notmember:=0;
  totalsum:=0.0;
  for i:=1 to sg.RowCount-2 do
  begin
    if sg.cells[2,i]<>'散客' then
      member:=member+1
    else
      notmember:=notmember+1;

    totalsum:=totalsum+StrToFloat(sg.cells[4,i]);
  end;
  StatusBar1.Panels[0].Text :='消费总人数:'+IntToStr(totalconsumer);
  StatusBar1.Panels[1].Text :='会员人数:'+IntToStr(member);
  StatusBar1.Panels[2].Text :='散客人数:'+IntToStr(notmember);
  StatusBar1.Panels[3].Text :='营业总额:'+FloatToStr(totalsum);
end;
{*****************************************************}
procedure Tfrm_daystatistic.sbtn_closeClick(Sender: TObject);
begin
  close;
end;

procedure Tfrm_daystatistic.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action:=cafree;
  frm_daystatistic:=nil;
end;

procedure Tfrm_daystatistic.sbtn_daystatisticClick(Sender: TObject);
begin
  SearchDayStatistic(DateToString(dtp_daystatistic.Date));
  ComputeStatisticNumber;
end;

procedure Tfrm_daystatistic.sgSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if ARow = sg.RowCount - 1 then
    CanSelect:= false
  else
  begin
    sbtn_back.Enabled := true;
    sbtn_front.Enabled := true;
    if ARow = sg.RowCount - 2 then sbtn_back.Enabled := false;
    if ARow = 1 then sbtn_front.Enabled := false;
    CanSelect := true;
  end;
end;

procedure Tfrm_daystatistic.sbtn_backClick(Sender: TObject);
begin
  if sg.Row > sg.RowCount-2 then
  begin
     sbtn_back.Enabled := false;
     exit;
  end;
  sbtn_front.Enabled := true;
  sg.Row := sg.Row+1;
end;

procedure Tfrm_daystatistic.sbtn_frontClick(Sender: TObject);
begin
  if sg.Row=1 then
  begin
    sbtn_front.Enabled := false;
    exit;
  end;

  sbtn_back.Enabled := true;
  sg.Row := sg.Row-1;
end;

procedure Tfrm_daystatistic.sbtn_printClick(Sender: TObject);
begin
  DoReportDayStatistic;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -