Database Delphi TeeChart仅显示数据集中的一条记录
使用Delphi Steema TeeChart组件,如果我使用用户界面将一个BarSeries链接到一个数据集,它会显示得很好,但是如果我使用代码(我需要这样做),它只显示一个条,即使我在数据库中有多条记录。我做错了什么 代码:Database Delphi TeeChart仅显示数据集中的一条记录,database,delphi,teechart,Database,Delphi,Teechart,使用Delphi Steema TeeChart组件,如果我使用用户界面将一个BarSeries链接到一个数据集,它会显示得很好,但是如果我使用代码(我需要这样做),它只显示一个条,即使我在数据库中有多条记录。我做错了什么 代码: ADataSet是一个DevXpress MemData(TdxMemData)。当我运行程序时,X轴仅显示一个条,即数据集中的第一条记录,即使数据集中有4条记录。TChart在每次设置时刷新查询 ADataSet.Active:=真 因此,将此命令移到块的末尾(例如
ADataSet是一个DevXpress MemData(TdxMemData)。当我运行程序时,X轴仅显示一个条,即数据集中的第一条记录,即使数据集中有4条记录。TChart在每次设置时刷新查询 ADataSet.Active:=真 因此,将此命令移到块的末尾(例如,在设置系列属性之后)。此代码对我适用(使用带有字段ID和高度的Access数据库,我在表单上删除了一个TDBChart、TADODataSet和一个TButton): 请注意,数据源应该是TTable、TQuery或TDataSet(而不是TDataSource-go-figure!)
希望这有帮助。组件的名称是“tchart”,因此您可能需要编辑标题和文本。还有几个其他StackOverflow问题标记为“tchart”,因此这将有助于搜索类似的问题。我理解,我使用TeeChart强调这是Steema的组件,而不是Delphi的默认组件。谢谢,这很有效。我去掉了数据源,改为这样做了,它成功了:Bar.DataSource:=ADataSetGreat!我很高兴这有帮助。谢谢,但这没有帮助。我将LoadFromDataSet和Active:=true移动到TBarSeries设置位置的下方,但它仍然只显示了一条记录。因为它显示了一条记录,所以它必须知道数据集是活动的,并且里面有记录,但不确定为什么它没有显示所有记录。您是否尝试过暂时切换到通用的delphi数据集(例如,仅一个指向Excel电子表格的tadodataset,类似于这样简单的东西)来分离此问题的供应商(dbx和steema)\
var
i:Integer;
Bar:TBarSeries;
begin
ADataSet.Close;
ADataSet.LoadFromDataSet(mtbl);
ADataSet.Active := true;
ADataSet.First;
ASource.DataSet := ADataSet;
Bar := TBarSeries.Create(AChart);
Bar.Assign(Series2);
Bar.ParentChart := AChart;
Bar.DataSource := ASource;
Bar.XLabelsSource := 'Date';
Bar.YValues.ValueSource := 'Load';
for i := 0 to AChart.SeriesCount - 1 do
begin
AChart.Series[i].CheckDataSource;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Bar : TBarSeries;
begin
ADODataSet1.Close;
ADODataSet1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;...';
Bar := TBarSeries.Create(DBChart1);
DBChart1.AddSeries(Bar);
Bar.ParentChart := DBChart1;
Bar.DataSource := ADODataSet1;
Bar.XLabelsSource := 'ID';
Bar.YValues.ValueSource := 'Height';
ADODataSet1.Active := true;
end;