2012-03-22 23 views
3

我一直在研究生成用於FusionCharts的XML數據的Web服務器。經過幾天的嘗試,在Delphi中想出一個標準化的對象結構來包裝這些圖表的XML生產,我已經決定看看是否有人已經這樣做了。Delphi的FusionCharts XML對象結構?

我想要做的是在Delphi中構建一個對象結構,它包裝爲FusionCharts生成XML數據所需的功能。有42種可能的圖表類型,每種圖表需要稍微不同的XML結構。我開始構建的對象結構簡單地包裝了指定這些圖表之一的公共屬性的能力,並根據這些屬性即時生成XML數據。它當然也包括處理多個數據集,每個數據集都用於圖表中的不同系列。也有一些古怪的圖表與可能的數據集組合在一起,這是我在試圖實現這種結構時迷失的地方。

我很快意識到這是一項艱鉅的任務,並希望看到有人已經做過這樣的事情。我知道有一個VCL庫在應用程序中顯示FusionCharts,但這不是我所需要的。我只需要簡單地生成要通過Web服務器傳回給HTTP客戶端的XML數據。

這已經完成了嗎?如果沒有,那麼有關如何完成此任務的任何提示或指示?我正在準備製作一個名爲TFusionChart的對象,並將其中的所有內容(包含ChartType屬性)都包含在內,但有42個可能的圖表,這將是一個巨大的混亂。我也可以創建42個不同的對象,每個圖表一個,但是這會有冗餘的代碼。

PS - 我願意爲這個問題開始賞金,這很重要。

UPDATE

只是爲了說明我的現有結構一點點,我有一個基礎部件稱爲TFusionChart。該課程涵蓋了所有圖表的共同點,包括類別名稱,標題,背景等。實際圖表中沒有一個是基於此。從這門課開始,我有TFusionChart2DTFusionChart3D。然後我又有4個叫做TFusionChartSingle2D,TFusionChartMulti2D,TFusionChartSingle3DTFusionChartMulti3D。從這四個類開始,我開始創建實際的圖表組件。我計劃爲每個可用的圖表提供一個組件。

我面臨的問題是如何管理要包含的數據的混淆。有些圖表可以有一個組合,例如:列中有多個系列,一系列系列,以及列中有堆疊的數據。僅這一張圖表就會有一種非常獨特的數據存儲方式,很難與其他類型的圖表共享,例如簡單的單一系列柱形圖。

我嘗試了XML數據綁定功能,如下面的答案中所述,但這太大規模的解決方案,我放棄了它。再次,因爲有42種類型的圖表。每張圖表代表幾千行代碼。

+6

請問我可以得到關於投票的解釋嗎? – 2012-03-22 00:58:00

+0

你的意思是Fusioncharts v3.2? – menjaraz 2012-03-22 07:24:57

回答

1

我會嘗試爲每個圖表類型創建一個類,但使用基類將相似的圖表放在一起。該類只能是圖表數據和圖表設置的「數據持有者」,並將XML輸出創建委託給單獨的類。這樣可以輕鬆嘗試在輸出生成的不同解決方案之間切換,或者插入其他輸出格式。

+0

這實際上是我如何開始它,首先'TFusionChart',然後'TFusionChart3D'和'TFusionChart2D',然後'TFusionChartSingle2D','TFusionChartMulti2D'等,然後我基於所有的實際圖表。前3個不用作任何圖表的基礎。 – 2012-03-23 01:59:21

1

我建議您使用XML綁定來構建XML生成的類層次結構。

爲宗旨,你可以參考相關的FusionCharts的以下XSD資源

請不要忘記分享,如果你發現其他uptodate XSD資源。


編輯:

使用XML綁定顯得過於是矯枉過正,作爲OP指出,我建議的替代使用它們:

  1. 剝去每一個不必要的功能來獲得裸XSD仍與Fusioncharts規範兼容,也符合OP要求。
  2. 過程裸XSD適當的工具來獲得相應的XMI文件(例如:企業公司建築師
  3. 飼料例工具與XMI文件,並坐下來真正的工作:的設計用於Fusioncharts XML代的光班級
+0

XML綁定似乎是一個非常強大的工具,除了遵循幾個不同的教程並完成所描述的內容外,我遇到了一些錯誤「接口不支持」(這是另一個問題)。但是,謝謝! – 2012-03-22 16:59:20

+0

歡迎您! – menjaraz 2012-03-22 17:14:21

+0

這已經變得如此巨大,我決定不使用XML綁定並從頭開始構建我的結構。這很簡單,因爲42個單元有成千上萬行代碼,這有點矯枉過正。我甚至不需要每一個可能的功能,我也想製作一個組件。 – 2012-03-23 01:57:33