xml - Delphi 的 FusionCharts XML 对象结构?

标签 xml delphi fusioncharts

我一直在开发一个 Web 服务器,它可以生成用于 FusionCharts 的 XML 数据。经过几天尝试在 Delphi 中提出标准化对象结构来包装这些图表的 XML 生成,但没有成功,我决定看看是否有人已经这样做了。

我想做的是在 Delphi 中构建一个对象结构,它包装了为 FusionCharts 生成 XML 数据所需的功能。有 42 种可能的图表类型,每一种都需要稍微不同的 XML 结构。我开始构建的对象结构简单地包装了指定此类图表之一的公共(public)属性并根据这些属性动态生成 XML 数据的能力。当然,它还包括处理多个数据集,每个数据集用于图表中的不同系列。还有一些奇怪的图表,其中包含可能的数据集组合,这是我在尝试实现此结构时迷失的地方。

我很快意识到这是一项艰巨的任务,想看看是否有人已经做过这样的事情。我知道有一个 VCL 库可以在应用程序中显示 FusionCharts,但这不是我需要的。我只需要简单地生成要通过 Web 服务器传回 HTTP 客户端的 XML 数据。

这已经完成了吗?如果没有,那么关于如何完成此操作的任何提示或指示?我正准备制作一个名为 TFusionChart 的对象并将所有内容包装在其中(使用 ChartType 属性),但是有 42 种可能的图表,这将是巨大的困惑。我也可以创建 42 个不同的对象,每个图表一个,但这会产生冗余代码。

PS - 我愿意为这个问题发起赏金,这很重要。

更新

为了稍微解释一下我的现有结构,我有一个名为 TFusionChart 的基础组件。这个类包含所有图表共有的所有内容,包括类别名称、标题、背景等。实际图表都不是基于此。从这个类中,我得到了 TFusionChart2DTFusionChart3D。然后我还有 4 个名为 TFusionChartSingle2DTFusionChartMulti2DTFusionChartSingle3DTFusionChartMulti3D。从这 4 个类开始,我开始创建实际的图表组件。我计划为每个可能的可用图表创建一个组件。

我面临的问题是对如何管理要包含的数据感到困惑。一些图表可以有一个组合,例如:列中的多个系列、一个线系列和列中的堆叠数据。仅此一个图表就有一种非常独特的数据存储方式,很难与其他类型的图表共享,例如,简单的单系列柱形图。

我尝试了下面答案中描述的 XML 数据绑定(bind)功能,但是这个解决方案过于庞大,我放弃了它。同样,因为有 42 种图表。每个图表都意味着几千行代码。

最佳答案

我会尝试为每种图表类型创建一个类,但使用基类将相似的图表放在一起。该类应该只是图表数据和图表设置的“数据持有者”,并将 XML 输出创建委托(delegate)给单独的类。这使得尝试在不同的输出生成解决方案之间切换或插入其他输出格式变得容易。

关于xml - Delphi 的 FusionCharts XML 对象结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814910/

相关文章:

javascript - 当 Angular 表中的值大于最大值时,如何将刻度盘设置为最大值?

angularjs - 链接无法与 FusionCharts 一起使用 LinkedChart

java - 如何让 DOM 可以读取 xml 文件?

iphone - 火猴到 iPhone

delphi - 删除 Delphi Intraweb 上的元标记 <meta Name ="GENERATOR"content="IntraWeb >

Delphi Prism Cirrus 访问和设置函数的结果

android - 未处理的异常 : Android. Views.InflateException:二进制 XML 文件行 #1:二进制 XML 文件行 #1:类 fragment 膨胀时出错

java - XML 架构文件到字符串

java - XML 可以像 "double-array"一样有 "string-array"吗? (安卓)

javascript - 如何根据 HTML 中包含的特定脚本排除 Google 跟踪代码管理器中的标记