📄 chart_scxs.pas
字号:
unit CHART_SCXS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CHART_BASS, DB, DBTables, ComCtrls, TFlatCheckBoxUnit,
DsFancyButton, TFlatSpeedButtonUnit, TeEngine, Series, TeeProcs, Chart,
DbChart, ExtCtrls, MenuBar, ToolWin, StdCtrls, TFlatCheckListBoxUnit,myself;
type
TFrm_chart_scxs = class(TFrm_chart_bass)
Panel_field: TPanel;
Label1: TLabel;
CLB_name: TFlatCheckListBox;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DTP_beginChange(Sender: TObject);
procedure DTP_endChange(Sender: TObject);
procedure CLB_nameClickCheck(Sender: TObject);
procedure SB_queryClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_chart_scxs: TFrm_chart_scxs;
implementation
uses PROGRASS;
{$R *.dfm}
procedure TFrm_chart_scxs.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 depot where type="外部"';
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_scxs.FormShow(Sender: TObject);
begin
inherited;
SB_query.Click ;
end;
procedure TFrm_chart_scxs.DTP_beginChange(Sender: TObject);
begin
inherited;
series_one.Clear ;
Series_two.Clear ;
end;
procedure TFrm_chart_scxs.DTP_endChange(Sender: TObject);
begin
inherited;
series_one.Clear ;
Series_two.Clear ;
end;
procedure TFrm_chart_scxs.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_scxs.SB_queryClick(Sender: TObject);
var
D_number:double;
S_DEPOTname,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_DEPOTname:=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 DEPOT ON (Sellrecord.DEPOTID = DEPOT.Id)'
+' WHERE DEPOT.Name = "'+S_DEPOTname+'"'
+' AND Sellrecord.MYDATE>="'+ S_begindate+ '" AND Sellrecord.MYDATE<="'+S_enddate+'"';
open;
D_number:=query_data.fieldbyname('COUNTNUMBER').AsFloat ;
series_one.AddBar(D_number,S_DEPOTname,CLBLUE);
close;
sql.Text:='SELECT SUM( xsthrecord.NUMBER * xsthrecord.PRICE ) COUNTNUMBER'
+' FROM xsthrecord INNER JOIN DEPOT ON (xsthrecord.DEPOTID = DEPOT.Id)'
+' WHERE DEPOT.Name = "'+S_DEPOTname+'"'
+' AND xsthrecord.MYDATE>="'+ S_begindate+ '" AND xsthrecord.MYDATE<="'+S_enddate+'"';
open;
D_number:=query_data.fieldbyname('COUNTNUMBER').AsFloat ;
series_two.AddBar(D_number,S_DEPOTname,CLRED);
end;
end;
end;
frm_prograss.free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -