我的teechart数据系列使用数据管道作为我的源。我拥有的作为数据源的表有60行数据,但我只想基于其中的3行绘制图形。对于我正在绘制图形的列,其他57行的数据是0。我想要的图形(基于3行)将显示6个大条(2列x 3行),但由于该系列有57个未使用和看不见的行,6个条非常薄。如何将数据源中的数据限制为只有3行?
下图显示了我想要的结果(6个大条)和我得到的结果(6个细条)。


发布于 2018-07-17 14:46:18
正如@John Easley在this comment中所说,您可以对其进行过滤,而不是将表分配给序列。
即使用TeeChart组件附带的"TeeChart专业数据库“中的"Employee”表。下面是完整的数据:

您可以循环该表并使用Add/AddXY将条件批准的值添加到您的序列中:
uses Series;
procedure TForm1.FormCreate(Sender: TObject);
begin
with Chart1.AddSeries(TBarSeries) do
begin
Marks.Style:=smsValue;
Table1.Open;
while not Table1.Eof do
begin
if Table1.FieldByName('SALARY').AsFloat > 42000 then
Add(Table1.FieldByName('SALARY').AsFloat, Table1.FieldByName('LASTNAME').AsString);
Table1.Next;
end;
Table1.Close;
end;
end;

发布于 2018-07-18 01:21:16
谢谢你的回答。
因为我使用的是ReportBuilder和RAP,所以我的做法略有不同,但概念是相同的。
在我的报告模板中,我创建了一个设置为手动数据的Teechart。然后,我使用以下代码添加XY点:
ChartManual.chart.series[0].clear; ChartManual.chart.series[0].AddXY(1,100,'A',RGB(0,0,252)); ChartManual.chart.series[0].AddXY(2,200,'B',RGB(0,0,252)); ...etc
找到准确的RAP语法有点困难,所以我希望这能对其他遇到这种情况的人有所帮助。
再次感谢
J
https://stackoverflow.com/questions/51365043
复制相似问题