给你一篇例子吧!(对比图,全都是动态生成的)
var
qstForm: TqstForm;
MyChart:Array of TLineSeries;
MyQuery:Array of TQuery;
implementation
{$R *.DFM}
procedure TqstForm.FormCreate(Sender: TObject);
var
node,nodes:ttreenode;
num,i,Sum:Integer;
begin
DateTimePicker1.Width:=105;
DateTimePicker2.Width:=105;
DateTimePicker1.DateTime:=Now()-1;
datetimepicker2.datetime:=now();
if not Table1.Active then
Table1.Active:=true;
if not Table2.Active then
Table2.Active:=true;
if Not table3.Active then
table3.open;
node:=nil;
nodes:=nil;
node:=TreeView1.Items.Add(node,Table3.fieldbyname('centername').asstring);
node.ImageIndex:=0;
node.SelectedIndex:=0;
nodes:=node;
while not Table1.Eof do
begin
node:=TreeView1.Items.AddChild(node,Table1.fieldbyname('centername').asstring);
node.ImageIndex:=1;
node.SelectedIndex:=1;
Table1.Next;
node:=nodes;
end;
while not Table2.Eof do
begin
num:=Table2.fieldbyname('centerno').asinteger;
for i:=0 to TreeView1.Items.Count-1 do
begin
node:=TreeView1.Items[i];
if Table1.Locate('centername',TreeView1.Items[i].Text,[]) then
begin
if strtoint(trim(Table1.FieldByName('centerno').asstring))=num then
begin
node:=TreeView1.Items.Addchild(node,Table2.fieldbyname('SurveyPointname').asstring);
node.ImageIndex:=2;
node.SelectedIndex:=2;
end;
end;
end;
Table2.Next;
end;
Sum:=Table2.RecordCount;
SetLength(MyChart,Sum+3);
SetLength(MyQuery,Sum+3);
Table2.First; I:=3;
while Not Table2.Eof do
begin
MyChart[I]:=TLineSeries.Create(Self);
MyChart[I].ParentChart:=DBChart3;
MyQuery[I]:=TQuery.Create(Self);
MyQuery[I].DatabaseName:=Database1.DatabaseName;
Inc(I); Table2.Next;
end;
procedure TqstForm.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
Str,Id,FName:string;
I:integer;
begin
Str:=''; Id:=''; FName:='';
case node.Level of
1:begin
Table2.First; I:=3;
while Not Table2.Eof do
begin
Id:=Table2.fieldbyname('surveypointno').AsString;
FName:=Table2.FieldValues['surveypointname'];
MyQuery[I].SQL.Clear;
Str:='select surveytime 时间,middlevalue1 水位,finalvalue1 流量'+
' from a11czzk1 where surveypointno='+''''+id+''''+
' and surveytime>='+''''+datetostr(DateTimePicker1.Time)+''''+
' and surveytime<='+''''+datetostr(DateTimePicker2.Time+1)+'''';
MyQuery[I].SQL.Add(Str);
MyQuery[I].Open;