• <menu id="w2i4a"></menu>
  • logo 【TeeChart VCL/FMX】教程2019

    文檔首頁(yè)>>【TeeChart VCL/FMX】教程2019>>TeeChart Pro VCL/FMX教程(十五):XML導(dǎo)出和導(dǎo)入

    TeeChart Pro VCL/FMX教程(十五):XML導(dǎo)出和導(dǎo)入


        TeeChart Pro VCL/FMX是一款主流的圖表制作工具。提供了數(shù)百種用于可視化的2D、3D圖形樣式、56種數(shù)學(xué)、統(tǒng)計(jì)和金融函數(shù),以及不限數(shù)量的坐標(biāo)軸和30種調(diào)色板組件。TeeChart Pro VCL/FMX教程將會(huì)以連載的形式持續(xù)為大家?guī)?lái)TeeChart Pro VCL/FMX的使用方法。 

    點(diǎn)擊下載TeeChart Pro VCL/FMX最新試用版


        本篇教程為大家?guī)?lái)的是TeeChart Pro VCL/FMX中XML導(dǎo)出和導(dǎo)入這一節(jié),在TeeChart版本5及更高版本中,支持圖表系列數(shù)據(jù)的XML輸出;版本6及更高版本支持XML格式的數(shù)據(jù)輸入。

        本教程顯示了有關(guān)以XML格式導(dǎo)出和導(dǎo)入圖表數(shù)據(jù)的詳細(xì)說(shuō)明。

    導(dǎo)出

        使用圖表導(dǎo)出對(duì)話框,可以在設(shè)計(jì)時(shí)或運(yùn)行時(shí)輕松地將圖表數(shù)據(jù)導(dǎo)出為XML格式:

    TeeChart導(dǎo)出對(duì)話框,數(shù)據(jù)選項(xiàng)卡。

        在此對(duì)話框中,您可以選擇要導(dǎo)出的系列(或?qū)С鏊邢盗校?,以及是否要?dǎo)出點(diǎn)索引(0,1,2 ...等),點(diǎn)文本(標(biāo)簽)或顏色。復(fù)制按鈕將會(huì)生成XML文本并將其復(fù)制到Windows或Linux剪貼板;保存按鈕創(chuàng)建一個(gè)新的XML文件。

        例如,可以使用Internet Explorer打開(kāi)XML文件。

    包含單個(gè)系列的示例XML文件


        導(dǎo)出多個(gè)系列時(shí),XML格式有點(diǎn)不同:

    包含單個(gè)系列的示例XML文件


    按代碼導(dǎo)出

        TeeChart提供了一個(gè)以XML格式導(dǎo)出系列數(shù)據(jù)的類,該類位于TeeStore.pas單元中,其名稱為TSeriesDataXML。

    保存到文件的示例:

    Uses TeeStore;
    
    with TSeriesDataXML.Create(Chart1, Series1) do
    try
      SaveToFile('c:\sample.xml');
    finally
      Free;
    end;

        如果要導(dǎo)出Chart1中的所有系列,需要傳遞nil而不是在Create構(gòu)造函數(shù)的最后一個(gè)參數(shù)中傳遞Series1。

    該類還提供了將XML輸出轉(zhuǎn)換為字符串的函數(shù):

    var S : String;
    with TSeriesDataXML.Create(Chart1, Series1) do
    try
      S:=AsString;
    finally
      Free;
    end;

    如果是有幾個(gè)屬性控制要導(dǎo)出的數(shù)據(jù)類型,例如是否包含點(diǎn)顏色:

    with TSeriesDataXML.Create(Chart1, Series1) do
    try  IncludeColors:=True;
      SaveToFile('c:\sample.xml');
    finally
      Free;
    end;

        到目前為止,我們已經(jīng)看到如何生成包含TeeChart系列點(diǎn)的XML數(shù)據(jù)。接下來(lái)就是將這個(gè)XML導(dǎo)入圖表。

    導(dǎo)入XML數(shù)據(jù)

        TeeChart Pro包含一個(gè)自動(dòng)加載XML數(shù)據(jù)的組件,該組件位于TeeXML.pas單元,類名稱為TTeeXMLSource。 Delphi工具欄中的TeeXMLSource組件

        加載XML圖表所需的最小屬性是Chart和FileName。Chart屬性指示添加X(jué)ML數(shù)據(jù)的位置(哪個(gè)Chart);FileName屬性也可以是Web地址(URL);Load方法啟動(dòng)將XML數(shù)據(jù)加載到圖表系列中。

    讓我們創(chuàng)建一個(gè)新的應(yīng)用程序并刪除Chart1組件和TeeXMLSource1組件。

    uses Series;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      RegisterTeeStandardSeries; // make sure "Line" style is loaded.
    
      TeeXMLSource1.Chart:=Chart1;
      TeeXMLSource1.FileName:='http://www.steema.com/support/teechart/6/tutorials/xml/TeeChartSampleManySeries.xml';
      TeeXMLSource1.Load;
    end;

    http://www.steema.com/support/teechart/6/tutorials/xml/TeeChartSampleManySeries.xml:


        注意:在上面的示例中,可以通過(guò)添加TeeChart工具欄或?qū)eeGally單元添加到uses來(lái)省略對(duì)RegisterTeeStandardSeries的調(diào)用,它只是注冊(cè)基本的圖表樣式(線條,條形圖,餅圖等),因此XML導(dǎo)入過(guò)程可以根據(jù)xml文件中的系列樣式自動(dòng)創(chuàng)建系列。

    生成的圖表是:

    圖表加載示例xml文件。

        從Web URL加載遠(yuǎn)程XML文件也很簡(jiǎn)單:

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      TeeXMLSource1.Chart:=Chart1;
      TeeXMLSource1.FileName:='http://www.steema.com/SampleData.xml';
      TeeXMLSource1.Load;
    end;

    從web url加載示例xml文件的圖表。

    只加載一個(gè)系列

        XML源組件具有SeriesNode屬性,可用于僅加載一個(gè)系列(如果XML文件包含多個(gè)系列)。

    TeeXMLSource1.SeriesNode:='Series2';

    加載到現(xiàn)有系列

        如果要將XML文件中包含的一個(gè)系列數(shù)據(jù)加載到現(xiàn)有系列中,請(qǐng)?jiān)O(shè)置Series屬性:

    TeeXMLSource1.Series:=Series1; 
    TeeXMLSource1.SeriesNode:='Series2';

    上面的代碼將把與Series2對(duì)應(yīng)的XML數(shù)據(jù)加載到Series1中。

    注意:

        如果系列類不同(例如,XML Series2是Line,而Series1是Bar),則最終輸出將是Series1填充零點(diǎn)。

    為什么?

        Series2的XML數(shù)據(jù)將點(diǎn)值定義為Y值,而Series1(Bar系列)則將點(diǎn)定義為Bar。

        這個(gè)問(wèn)題有兩種解決方案:

    • 設(shè)置Series1 valuesource屬性以匹配XML點(diǎn)的名稱:

    Series1.YValues.ValueSource := 'Y';
    • 設(shè)置XMLSource組件的ValueSource屬性以匹配Series1 valuesource的名稱:

    TeeXMLSource1.ValueSource := 'Y';

    附加功能

        TeeXMLSource組件還包括一個(gè)XMLDocument屬性,該屬性將會(huì)返回對(duì)解析和加載XML數(shù)據(jù)內(nèi)部對(duì)象的OleVariant引用。此屬性是指實(shí)現(xiàn)Microsoft的IXMLDomDocument接口的后期綁定創(chuàng)建的實(shí)例。

        TeeChart能否使用早期綁定的實(shí)例來(lái)避免可能出現(xiàn)的版本不兼容的問(wèn)題,具體取決于您的Windows版本,Internet Explorer版本等。

        TeeXMLSource組件的另一個(gè)有用屬性是TStringList類型的XML。您可以使用此屬性來(lái)設(shè)置XML數(shù)據(jù),而不是使用FileName屬性,這樣,就不需要XML外部文件。


                    關(guān)注慧聚IT微信公眾號(hào) ???,了解產(chǎn)品的最新動(dòng)態(tài)及最新資訊。

    dd2629f30d553d56ccaf7164fdcb784e-sz_28327.webp.jpg


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();