翻譯|使用教程|編輯:況魚杰|2019-07-22 14:20:29.980|閱讀 492 次
概述:TeeChart Pro功能是一個系列,幾乎可以是任何系列類型,可以是應用代數函數,也可以是數據源。所有函數都派生自TTeeFunction組件并繼承TeeFunction的Period屬性。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
TeeChart Pro VCL/FMX是一款主流的圖表制作工具。提供了數百種用于可視化的2D、3D圖形樣式、56種數學、統計和金融函數,以及不限數量的坐標軸和30種調色板組件。TeeChart Pro VCL/FMX教程將會以連載的形式持續為大家帶來TeeChart Pro VCL/FMX的使用方法。
本篇教程為大家帶來的是TeeChart Pro VCL/FMX中XML導出和導入這一節,在TeeChart版本5及更高版本中,支持圖表系列數據的XML輸出;版本6及更高版本支持XML格式的數據輸入。
本教程顯示了有關以XML格式導出和導入圖表數據的詳細說明。
導出
使用圖表導出對話框,可以在設計時或運行時輕松地將圖表數據導出為XML格式:
在此對話框中,您可以選擇要導出的系列(或導出所有系列),以及是否要導出點索引(0,1,2 ...等),點文本(標簽)或顏色。復制按鈕將會生成XML文本并將其復制到Windows或Linux剪貼板;保存按鈕創建一個新的XML文件。
例如,可以使用Internet Explorer打開XML文件。
包含單個系列的示例XML文件
導出多個系列時,XML格式有點不同:
包含單個系列的示例XML文件
按代碼導出
TeeChart提供了一個以XML格式導出系列數據的類,該類位于TeeStore.pas單元中,其名稱為TSeriesDataXML。
保存到文件的示例:
Uses TeeStore; with TSeriesDataXML.Create(Chart1, Series1) do try SaveToFile('c:\sample.xml'); finally Free; end;
如果要導出Chart1中的所有系列,需要傳遞nil而不是在Create構造函數的最后一個參數中傳遞Series1。
該類還提供了將XML輸出轉換為字符串的函數:
var S : String; with TSeriesDataXML.Create(Chart1, Series1) do try S:=AsString; finally Free; end;
如果是有幾個屬性控制要導出的數據類型,例如是否包含點顏色:
with TSeriesDataXML.Create(Chart1, Series1) do try IncludeColors:=True; SaveToFile('c:\sample.xml'); finally Free; end;
到目前為止,我們已經看到如何生成包含TeeChart系列點的XML數據。接下來就是將這個XML導入圖表。
導入XML數據
TeeChart Pro包含一個自動加載XML數據的組件,該組件位于TeeXML.pas單元,類名稱為TTeeXMLSource。
加載XML圖表所需的最小屬性是Chart和FileName。Chart屬性指示添加XML數據的位置(哪個Chart);FileName屬性也可以是Web地址(URL);Load方法啟動將XML數據加載到圖表系列中。
讓我們創建一個新的應用程序并刪除Chart1組件和TeeXMLSource1組件。
uses Series; procedure TForm1.FormCreate(Sender: TObject); begin RegisterTeeStandardSeries; // make sure "Line" style is loaded. TeeXMLSource1.Chart:=Chart1; TeeXMLSource1.FileName:='//www.steema.com/support/teechart/6/tutorials/xml/TeeChartSampleManySeries.xml'; TeeXMLSource1.Load; end;
//www.steema.com/support/teechart/6/tutorials/xml/TeeChartSampleManySeries.xml:
注意:在上面的示例中,可以通過添加TeeChart工具欄或將TeeGally單元添加到uses來省略對RegisterTeeStandardSeries的調用,它只是注冊基本的圖表樣式(線條,條形圖,餅圖等),因此XML導入過程可以根據xml文件中的系列樣式自動創建系列。
生成的圖表是:
從Web URL加載遠程XML文件也很簡單:
procedure TForm1.FormCreate(Sender: TObject); begin TeeXMLSource1.Chart:=Chart1; TeeXMLSource1.FileName:='//www.steema.com/SampleData.xml'; TeeXMLSource1.Load; end;
只加載一個系列
XML源組件具有SeriesNode屬性,可用于僅加載一個系列(如果XML文件包含多個系列)。
TeeXMLSource1.SeriesNode:='Series2';
加載到現有系列
如果要將XML文件中包含的一個系列數據加載到現有系列中,請設置Series屬性:
TeeXMLSource1.Series:=Series1; TeeXMLSource1.SeriesNode:='Series2';
上面的代碼將把與Series2對應的XML數據加載到Series1中。
注意:
如果系列類不同(例如,XML Series2是Line,而Series1是Bar),則最終輸出將是Series1填充零點。
為什么?
Series2的XML數據將點值定義為Y值,而Series1(Bar系列)則將點定義為Bar。
這個問題有兩種解決方案:
設置Series1 valuesource屬性以匹配XML點的名稱:
Series1.YValues.ValueSource := 'Y';
設置XMLSource組件的ValueSource屬性以匹配Series1 valuesource的名稱:
TeeXMLSource1.ValueSource := 'Y';
附加功能
TeeXMLSource組件還包括一個XMLDocument屬性,該屬性將會返回對解析和加載XML數據內部對象的OleVariant引用。此屬性是指實現Microsoft的IXMLDomDocument接口的后期綁定創建的實例。
TeeChart能否使用早期綁定的實例來避免可能出現的版本不兼容的問題,具體取決于您的Windows版本,Internet Explorer版本等。
TeeXMLSource組件的另一個有用屬性是TStringList類型的XML。您可以使用此屬性來設置XML數據,而不是使用FileName屬性,這樣,就不需要XML外部文件。
關注慧聚IT微信公眾號 ???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: