📄 chart_ywyxs.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 + -