【问题标题】:Using Delphi TChart to display information from a database使用 Delphi TChart 显示数据库中的信息
【发布时间】:2015-11-16 20:08:25
【问题描述】:

我想在 Delphi 中创建一个饼图,向用户显示参加特定运动的人数。

以下 SQL 语句从数据库中获取信息并将人数存储在一个变量中。数据库中的数据类型是yes/no,所以参加特定运动的人会打勾,不参加的人不会。 sql语句将确定有多少人参加一项特定的运动(如果数据库中有勾号)

qry.sql.clear;
qry.sql.add('SELECT Count(tennis) AS [NoTennis] FROM [Sports] WHERE Tennis = True');
qry.Open;
iTennis := qry['NoTennis'];   {integer variable}

所有其他运动都会如此重复,例如游泳、曲棍球等

之后,这些数据必须在饼图中表示。我有以下代码...

Chart1.Series[0].AddXY(iTennis, 1, 'Tennis', clTeeColor);

这显然也适用于所有其他运动。但是,它不会在运行时显示我的数据,而是显示有关键盘和驾驶者等的随机数据。要查看我在说什么,请单击
(来源:asiplease.net

如何让 TChart 更改它的数据?是 SQL 语句还是添加了 x 和 y 值导致了问题?

【问题讨论】:

  • 别担心。这些是在设计时显示的示例数据,用于帮助您配置图表,因为您可以看到预览。无论如何,您可以考虑一次获取所有统计信息(在单个查询中)并使用TDBChart
  • 或者更好地构建一个结构(类)来保存您将呈现的所有数据和一个演示者,以设置图表。用数据填充实例并呈现它。之后,从哪里获取数据并不重要。首先构建演示者并对其进行测试。然后用数据库中的数据填充实例并呈现它。
  • 您能否提供一个简单的示例项目,使用示例数据库,我们可以“按原样”运行以重现这里的问题吗?谢谢。
  • 这是一个设计时快照,在运行时它仍然无法工作

标签: sql database delphi pie-chart teechart


【解决方案1】:

您正在显示一个饼图。图表类型与您将数据添加到图表的方式相关。我记得 AddXy 仅适用于基于折线的图表。试试

Chart1.Series[0].Add(123, 'Tennis');

见 steema documentation

要清除之前生成的系列值,请使用

Chart1.Series[0].Clear();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 2011-10-08
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    相关资源
    最近更新 更多