private mySeries:TChartSeries; { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); begin Session.GetAliasNames(AliasCombo.Items); AliasCombo.ItemIndex:=0; AliasComboChange(self); AddSerBtn.Enabled:=false; CheckBox1.Checked:=True; CheckBox2.Enabled:=false; Timer1.Enabled:=false; end;procedure TForm1.AliasComboChange(Sender: TObject); begin try begin Session.GetTableNames(AliasCombo.Items[AliasCombo.ItemIndex],'',true,false,TableNameCombo.Items); TableNameCombo.ItemIndex:=0; Table1.DatabaseName:=AliasCombo.Items[AliasCombo.ItemIndex]; TableNameComboChange(self); end; except showmessage('用户名或密码有错误,请重输。'); end; end;procedure TForm1.TableNameComboChange(Sender: TObject); var i:integer; begin XLabelCombo.Items.Clear; XCombo.items.Clear; YCombo.items.Clear; XLabelCombo.Text:=''; XCombo.Text:=''; YCombo.Text:=''; Table1.TableName:=TableNameCombo.Items.Strings[TableNameCombo.ItemIndex]; Table1.getfieldnames(XLabelCombo.Items); Table1.open; for i:=0 to XLabelCombo.Items.Count-1 do begin if Table1.fields[i].DataType in [ ftSmallint, ftInteger, ftWord,ftFloat, ftCurrency, ftDate, ftTime, ftDateTime] then begin XCombo.items.Add(XLabelCombo.Items.Strings[i]); YCombo.items.Add(XLabelCombo.Items.Strings[i]); end; end; Table1.close; end;procedure TForm1.RadioGroup1Click(Sender: TObject); begin if not AddSerBtn.Enabled then AddSerBtn.Enabled:=true; end;procedure TForm1.AddSerBtnClick(Sender: TObject); var mytable:TTable; begin case RadioGroup1.ItemIndex of 0: mySeries:=TLineSeries.Create(self); 1: mySeries:=TBarSeries.Create(self); 2: begin mySeries:=TPieSeries.Create(self); CheckBox2.Enabled:=True; end; end; DBChart1.AddSeries(mySeries); mytable:=TTable.Create(self); with mytable do begin close; DatabaseName:=AliasCombo.Items.Strings[AliasCombo.ItemIndex]; TableName:=TableNameCombo.Items.Strings[TableNameCombo.ItemIndex]; mySeries.DataSource:=mytable; mySeries.XLabelsSource:=XLabelCombo.Items.Strings[XLabelCombo.ItemIndex]; mySeries.XValues.ValueSource:=XCombo.Items.Strings[XCombo.ItemIndex]; mySeries.YValues.ValueSource:=YCombo.Items.Strings[YCombo.ItemIndex]; open; end; end;procedure TForm1.Timer1Timer(Sender: TObject); begin (mySeries as TPieSeries).Rotate(10); end;procedure TForm1.CheckBox1Click(Sender: TObject); begin if CheckBox1.Checked then DBChart1.View3D:=True else DBChart1.View3D:=false; end;procedure TForm1.CheckBox2Click(Sender: TObject); begin if CheckBox2.Checked then Timer1.Enabled:=True else Timer1.Enabled:=false; end;procedure TForm1.EditBtnClick(Sender: TObject); begin ChartEditor1.Execute; end;procedure TForm1.PrintBtnClick(Sender: TObject); begin ChartPreviewer1.Execute; end;procedure TForm1.CloseBtnClick(Sender: TObject); begin Close; end;procedure TForm1.ExportBtnClick(Sender: TObject); var myexport: TTeeExportForm; begin myexport:=TTeeExportForm.Create(self); myexport.ExportPanel:=DBChart1; myexport.showModal; end; end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DB, DBTables, StdCtrls, TeeEdit, TeeProcs, TeEngine,Series,
Chart, DBChart,TeExport, Grids, DBGrids;type
TForm1 = class(TForm)
DBChart1: TDBChart;
ChartPreviewer1: TChartPreviewer;
ChartEditor1: TChartEditor;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
RadioGroup1: TRadioGroup;
AliasCombo: TComboBox;
TableNameCombo: TComboBox;
XLabelCombo: TComboBox;
XCombo: TComboBox;
YCombo: TComboBox;
AddSerBtn: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
EditBtn: TButton;
PrintBtn: TButton;
ExportBtn: TButton;
CloseBtn: TButton;
Table1: TTable;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure AliasComboChange(Sender: TObject);
procedure TableNameComboChange(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure AddSerBtnClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure EditBtnClick(Sender: TObject);
procedure PrintBtnClick(Sender: TObject);
procedure CloseBtnClick(Sender: TObject);
procedure ExportBtnClick(Sender: TObject);
private
mySeries:TChartSeries;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Session.GetAliasNames(AliasCombo.Items);
AliasCombo.ItemIndex:=0;
AliasComboChange(self);
AddSerBtn.Enabled:=false;
CheckBox1.Checked:=True;
CheckBox2.Enabled:=false;
Timer1.Enabled:=false;
end;procedure TForm1.AliasComboChange(Sender: TObject);
begin
try
begin
Session.GetTableNames(AliasCombo.Items[AliasCombo.ItemIndex],'',true,false,TableNameCombo.Items);
TableNameCombo.ItemIndex:=0;
Table1.DatabaseName:=AliasCombo.Items[AliasCombo.ItemIndex];
TableNameComboChange(self);
end;
except
showmessage('用户名或密码有错误,请重输。');
end;
end;procedure TForm1.TableNameComboChange(Sender: TObject);
var
i:integer;
begin
XLabelCombo.Items.Clear;
XCombo.items.Clear;
YCombo.items.Clear;
XLabelCombo.Text:='';
XCombo.Text:='';
YCombo.Text:='';
Table1.TableName:=TableNameCombo.Items.Strings[TableNameCombo.ItemIndex];
Table1.getfieldnames(XLabelCombo.Items);
Table1.open;
for i:=0 to XLabelCombo.Items.Count-1 do
begin
if Table1.fields[i].DataType in [ ftSmallint, ftInteger, ftWord,ftFloat, ftCurrency,
ftDate, ftTime, ftDateTime] then
begin
XCombo.items.Add(XLabelCombo.Items.Strings[i]);
YCombo.items.Add(XLabelCombo.Items.Strings[i]);
end;
end;
Table1.close;
end;procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if not AddSerBtn.Enabled then
AddSerBtn.Enabled:=true;
end;procedure TForm1.AddSerBtnClick(Sender: TObject);
var
mytable:TTable;
begin
case RadioGroup1.ItemIndex of
0: mySeries:=TLineSeries.Create(self);
1: mySeries:=TBarSeries.Create(self);
2: begin
mySeries:=TPieSeries.Create(self);
CheckBox2.Enabled:=True;
end;
end;
DBChart1.AddSeries(mySeries);
mytable:=TTable.Create(self);
with mytable do
begin
close;
DatabaseName:=AliasCombo.Items.Strings[AliasCombo.ItemIndex];
TableName:=TableNameCombo.Items.Strings[TableNameCombo.ItemIndex];
mySeries.DataSource:=mytable;
mySeries.XLabelsSource:=XLabelCombo.Items.Strings[XLabelCombo.ItemIndex];
mySeries.XValues.ValueSource:=XCombo.Items.Strings[XCombo.ItemIndex];
mySeries.YValues.ValueSource:=YCombo.Items.Strings[YCombo.ItemIndex];
open;
end;
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
(mySeries as TPieSeries).Rotate(10);
end;procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
DBChart1.View3D:=True
else
DBChart1.View3D:=false;
end;procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked then
Timer1.Enabled:=True
else
Timer1.Enabled:=false;
end;procedure TForm1.EditBtnClick(Sender: TObject);
begin
ChartEditor1.Execute;
end;procedure TForm1.PrintBtnClick(Sender: TObject);
begin
ChartPreviewer1.Execute;
end;procedure TForm1.CloseBtnClick(Sender: TObject);
begin
Close;
end;procedure TForm1.ExportBtnClick(Sender: TObject);
var
myexport: TTeeExportForm;
begin
myexport:=TTeeExportForm.Create(self);
myexport.ExportPanel:=DBChart1;
myexport.showModal;
end;
end.