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

📄 chart_ywyxs.pas

📁 商场管理系统源码 一套值得初学者学习的源码包含全部源码,控件
💻 PAS
字号:
unit CHART_YWYXS;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, CHART_BASS, DB, DBTables, DsFancyButton, TFlatSpeedButtonUnit,
  TeEngine, Series, TeeProcs, Chart, DbChart, ExtCtrls, ComCtrls, MenuBar,
  ToolWin, StdCtrls,frmmain, TFlatCheckBoxUnit,myself,
  TFlatCheckListBoxUnit, CheckLst;

type
  TFrm_chart_ywyxs = class(TFrm_chart_bass)
    Panel_field: TPanel;
    CLB_name: TFlatCheckListBox;
    Label1: TLabel;
    procedure SB_queryClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CLB_nameClickCheck(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DTP_beginChange(Sender: TObject);
    procedure DTP_endChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_chart_ywyxs: TFrm_chart_ywyxs;

implementation

uses PROGRASS;

{$R *.dfm}

procedure TFrm_chart_ywyxs.SB_queryClick(Sender: TObject);
var
   D_number:double;
   S_peoplename,S_begindate,S_enddate:string;
   I_index:integer;
begin
  inherited;
   S_begindate:=formatdatetime('yyyy-mm-dd',dtp_begin.Date );
   S_enddate:=formatdatetime('yyyy-mm-dd',dtp_end.Date );
   if S_begindate>S_enddate then            //开始日期大于结束日期
   begin
      messagedlg(Errormsg0012+'0026',mtError,[mbok],0);
      dtp_begin.SetFocus ;
      exit;
   end;
   series_one.Clear ;
   Series_two.Clear ;
   application.CreateForm (TFrm_prograss,Frm_prograss);
   Frm_prograss.P_message.Caption :='系统正在读取数据,请稍候……';
   frm_prograss.FormStyle :=fsStayOnTop;
   frm_prograss.show;
   frm_prograss.Update ;
   application.ProcessMessages ;

   for I_index:=1 to clb_name.Items.Count -1 do
   begin
      if clb_name.Checked[I_index] then
      begin
         S_peoplename:=clb_name.Items.Strings[I_index];
         with query_data do
         begin
            close;
            sql.Text:='SELECT SUM(  Sellrecord.NUMBER * Sellrecord.PRICE  ) COUNTNUMBER'
                  +' FROM Sellrecord INNER JOIN People ON  (Sellrecord.PEOPLEID = People.Id)'
                  +' WHERE  People.Name = "'+S_peoplename+'"'
                  +' AND Sellrecord.MYDATE>="'+ S_begindate+ '" AND Sellrecord.MYDATE<="'+S_enddate+'"';
            open;
            D_number:=query_data.fieldbyname('COUNTNUMBER').AsFloat ;
            series_one.AddBar(D_number,S_peoplename,CLBLUE);
            close;
            sql.Text:='SELECT SUM(  xsthrecord.NUMBER * xsthrecord.PRICE  ) COUNTNUMBER'
                  +' FROM xsthrecord INNER JOIN People ON  (xsthrecord.PEOPLEID = People.Id)'
                  +' WHERE  People.Name = "'+S_peoplename+'"'
                  +' AND xsthrecord.MYDATE>="'+ S_begindate+ '" AND xsthrecord.MYDATE<="'+S_enddate+'"';
            open;
            D_number:=query_data.fieldbyname('COUNTNUMBER').AsFloat ;
            series_two.AddBar(D_number,S_peoplename,CLRED);
         end;
      end;
   end;

   frm_prograss.free;
end;

procedure TFrm_chart_ywyxs.FormCreate(Sender: TObject);
begin
  inherited;
   self.Caption :=application.Title + ' - 业务员销售分析';
   DBC_data.Title.Font.Color :=clNavy;
   DBC_data.Title.Text.Clear ;
   DBC_data.Title.Text.Add ('业务员销售对比图');
   DBC_data.LeftAxis.Title.Font.Color :=clNavy;
   DBC_data.LeftAxis.Title.Caption :='金额(人民币)';
   series_one.Title :='销售量';
   series_two.Title :='退货量';
   with query_data do
   begin
      close;
      sql.Clear ;
      sql.Text :='select name from people where usertype="在职"';
      open;
      clb_name.Clear ;
      clb_name.Items.Append('所有');
      while not eof do
      begin
         clb_name.Items.Append(fieldbyname('name').asstring);
         next;
      end;
      clb_name.Checked[0]:=true;
      CLB_nameClickCheck(sender);
      close;
   end;
end;

procedure TFrm_chart_ywyxs.CLB_nameClickCheck(Sender: TObject);
var
   I_index:integer;
begin
  inherited;
   series_one.Clear ;
   Series_two.Clear ;
   if clb_name.Checked[0] then
   begin
      for I_index:=1 to clb_name.Items.Count -1 do
      begin
         clb_name.Checked[I_index]:=true;
      end;
   end
   else
   for I_index:=1 to clb_name.Items.Count -1 do
   begin
      if not clb_name.Checked[I_index] then
      begin
         clb_name.Checked[0]:=false;
         break;
      end;
   end;
   sb_query.Enabled :=true;
end;

procedure TFrm_chart_ywyxs.FormShow(Sender: TObject);
begin
  inherited;
   SB_query.Click ;
end;

procedure TFrm_chart_ywyxs.DTP_beginChange(Sender: TObject);
begin
  inherited;
   series_one.Clear ;
   Series_two.Clear ;
end;

procedure TFrm_chart_ywyxs.DTP_endChange(Sender: TObject);
begin
  inherited;
   series_one.Clear ;
   Series_two.Clear ;
end;

end.

⌨️ 快捷键说明

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