• <menu id="w2i4a"></menu>
  • logo Teechart應(yīng)用技術(shù)詳解——快速圖表制作工具

    文檔首頁>>Teechart應(yīng)用技術(shù)詳解——快速圖表制作工具>>Teechart圖表應(yīng)用技術(shù)詳解—第七章之主明細式圖表應(yīng)用

    Teechart圖表應(yīng)用技術(shù)詳解—第七章之主明細式圖表應(yīng)用


    Steema公司和慧都科技針對中國市場聯(lián)合推出中文版TeeChart for .NET圖表控件,一共漢化2000個詞條(17000個單詞),漢化文檔35000個單詞,包括控件設(shè)計時與運行時的界面漢化以及控件使用向?qū)臋n的漢化,總漢化90%以上!

    TeeChart for .NET中文版讓您在使用和學習上沒有任何語言障礙,至少可以節(jié)省30%的開發(fā)時間。TeeChart for .NET中文版具有易上手,使用方便,穩(wěn)定性好,性價比高,價格優(yōu)惠等優(yōu)勢,并且針對Web應(yīng)用提供無限制服務(wù)器分發(fā)授權(quán)方式,非常有利于產(chǎn)品集成。

    點擊下載TeeChart for .NET最新試用版


    主明細式圖表應(yīng)用( Master- Detail)

    當需要根據(jù)主表的選擇,在副表中查找與主表相關(guān)的信息時,采用主一明細方式查詢是一個很好的選擇,這時如果能將查詢結(jié)果以圖表形式表示那就更是錦上添花了。下面以一個企業(yè)備有客戶的基本信息和經(jīng)濟往來賬目,需要根據(jù)主表中某一客戶的基本信息,以圖表和表格的形式顯示與該客戶的經(jīng)濟往來情況為例,介紹如何實現(xiàn)以主一明細表方式進行圖表查詢顯示。

    實例組件屬性設(shè)置

    利用Delphi7自帶的數(shù)據(jù)庫實例演示主一明細功能的實現(xiàn),用隨Delphi7一起安裝的BDE( Borland Database Administrator)管理員,可以看到有別名為 DBDEMOS的數(shù)據(jù)庫,提供了一些演示數(shù)據(jù),為敘述方便以DBDEMOS數(shù)據(jù)庫中的客戶表Customer.db和定單表Orders.db為例說明。

    實例設(shè)計階段的界面如下圖所示,組件屬性設(shè)置如下表所示。

    主明細式圖表演示設(shè)計階段界面

    主明細式圖表演示有關(guān)屬性設(shè)置


    屬性 設(shè)定值 說明
    TDBChart
    Name
    DBChart1
    圖表組件
    TAreaSeries
    Name
    Series1
    序列組件名稱
    Datasource
    Table2
    序列的數(shù)據(jù)源是Table2(結(jié)果)
    ParentChart
    DBChart1
    表示該序列屬于DBChart1組件
    TTable
    Name
    Table1
    表組件名稱
    Datasource
    DBDEMOS
    數(shù)據(jù)庫別名, Delphi自帶數(shù)據(jù)庫
    TableName
    Customer.db
    有關(guān)客戶基本信息的表
    TDataSource
    Name
    DataSource1
    為 DBNavigator1提供數(shù)據(jù)源
    DataSet
    Table1
    TTable
    Name
    Table2
    表組件名稱
    DatabaseName DBDEMOS
    數(shù)據(jù)庫別名, Delphi自帶數(shù)據(jù)庫
    TableName
    Orders.db
    數(shù)據(jù)庫表名,有關(guān)定單信息的表
    MasterSource DataSource1
    控制Table2的主源
    MasterFileds CustNo
    調(diào)用Field Link Designer對話框
    IndexName CustNo 上步完成后自動填
    TDBGrid
    Name
    DBGrid1
    用于顯示主表(客戶信息)
    DataSource
    DataSource1
    TDBGrid
    Name
    DBGrid2
    這個柵格顯示明細,由主表控制,不
    用設(shè)數(shù)據(jù)源 DataSource
    TDBNavigator
    Name
    DBNavigator1
    數(shù)據(jù)導(dǎo)航
    DataSource
    DataSource1
    Series1
    DataSource
    參見摘要排序應(yīng)用圖3
    參見下面的序列的數(shù)據(jù)源設(shè)置
    TButton Name Nutton2 退出按鈕
    Caption &E.退出

    序列的數(shù)據(jù)源設(shè)置

    當在圖表編輯器中設(shè)置序列的數(shù)據(jù)源屬性時,按下圖所示進行設(shè)置。注意,序列的數(shù)據(jù)來自Table2,但實際顯示時是要滿足特定條件的數(shù)據(jù)才能顯示, Customer.CustNo= Orders.CustNo,Table2中不滿足這個條件的數(shù)據(jù)是不顯示的,這就是主一明細表顯示的奧妙之處。

    序列的數(shù)據(jù)源設(shè)置

    組件Table2的屬性設(shè)定

    實例中Table1、Table2組件的Database和TableName屬性設(shè)置按上表說明分別作為主表(客戶基本信息)和副表(定單信息)進行設(shè)置。Table2組件的MasterSource和MasterFields屬性設(shè)置是關(guān)鍵。單擊對象觀察窗口,按下列步驟設(shè)置:

    • 選擇MasterSource屬性,設(shè)定為DataSource1,說明Tabe2使用的數(shù)據(jù)受主源MasterSource: DataSource1控制。
    • 選擇 MasterFields屬性,單擊右邊的二按鈕,顯示Fields Link Designer對話框,如下圖所示。
    字段關(guān)聯(lián)設(shè)計對話框


    當利用該對話框建立了主一明細表之間的關(guān)聯(lián)之后,隨著主表記錄指針的移動,圖表組件顯示的內(nèi)容會隨之發(fā)生變化。

    編寫代碼

    • 為使圖表組件顯示的內(nèi)容隨主表記錄指針的移動而變化,只需在Grid1組件的OnCellclick事件中加入一句代碼:
    DBChart1.RefreshData;
    使得主表記錄指針移動時不斷刷新 DACha的數(shù)據(jù),從而實現(xiàn)圖表顯示的內(nèi)容不斷地更新。



    • 由于初始狀態(tài)數(shù)據(jù)庫表 Table1、Table2均處于關(guān)閉狀態(tài),在程序運行中才打開,以在 CheckBox1的OnClick事件中加入下列代碼即可在程序啟動后自動打開數(shù)據(jù)庫表:
    Table1.Active:=CheckBox1.Checked;
    Table2.Active:=CheckBox1.Checked;
    這個例子使用了短短的幾行代碼就實現(xiàn)了非常強大的功能,實例的運行效果如下圖所示。
    主明細實例演示運行效果

    相關(guān)資料推薦:

    上一章:摘要排序應(yīng)用

    下一章:交叉表圖表應(yīng)用

    Teechart 2019資源合集

    =====================================

    現(xiàn)TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在線訂購,現(xiàn)在搶購可立享優(yōu)惠!

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

    慧聚IT


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();