• <menu id="w2i4a"></menu>
  • logo FastReport.Net教程2019

    文檔首頁>>FastReport.Net教程2019>>如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力


    分組報告是數(shù)據(jù)分析所必需的。但是當(dāng)有大量數(shù)據(jù)并且不需要全部顯示時,帶有分組的常規(guī)報告變得麻煩且多余。您希望為此類案例找到通用解決方案嗎?這里正好有一個。

    帶有下拉列表的報告本質(zhì)上是一個包含分組數(shù)據(jù)的報告,但能夠通過鼠標(biāo)單擊隱藏或顯示組中的數(shù)據(jù)。它不僅非常方便,而且美觀。畢竟,報告成為一個交互式對象。當(dāng)用戶可以參與信息顯示時,用戶會很高興。

    考慮如何制作此類報告的示例。首先,與Master-Detail主從報表一樣(點擊這里查看如何制作Master-Detail主從報表>>),我們需要一個包含鏈接表的數(shù)據(jù)源。假設(shè)我們有兩個表:客戶和訂單。

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

    一個客戶可以做很多訂單——一對多的關(guān)系。我們加上吧。單擊Actions按鈕,然后從下拉列表中選擇New Relation ...

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

    父表是主表,然后選擇“customer”。子表分別是“orders”。在“customer”中有一個主鍵CustNo,在列表中選擇它。在“orders”中有一個外鍵CustNo,也選擇它。

    結(jié)果,我們獲得了連接:

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

    現(xiàn)在讓我們開始創(chuàng)建報告模板。添加一個頻段“group header”。在它上面我們將放置鏈接中的字段:“orders.customer.Company”、“orders.customer.Addr1”、“orders.customer.Phone”、“orders.customer.Contact”。

    除了這些字段之外,我們還要為此頻段添加一個復(fù)選框控件。在CheckedSymbol屬性中,選擇Plus,然后選擇UncheckedSymbol - Minus。

    添加“orders”表中的字段:OrderNo、SaleDate、PaymentMethod、AmountPaid到“Data”頻段。另外,為數(shù)據(jù)和字段標(biāo)題添加標(biāo)題區(qū):

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

    雙擊組標(biāo)題“Headline”。選擇要分組的字段:

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

    現(xiàn)在選擇我們之前添加的復(fù)選框。給它一個Hyperlink屬性:

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

    選擇“Group Header”區(qū)域并為其創(chuàng)建BeforePrint事件處理程序:

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

     private void GroupHeader1_BeforePrint(object sender, EventArgs e)
     {
     string groupName = (String)Report.GetColumnValue("orders.customer.Company");
     // get the group name
     bool groupVisible = expandedGroups.Contains(groupName);
     // Check group visibility
     DataHeader1.Visible = groupVisible;
     Data1.Visible = groupVisible;// Set the visibility of data in accordance with the visibility of the group
     GroupFooter1.Visible = groupVisible;// Set the visibility of the basement of the group in accordance with the visibility of the group
     CheckBox1.Checked = !groupVisible;// Set the state of the flag depending on the visibility of the group
     }

    還要向類添加擴展組列表:

    private List expandedGroups = new List();

    讓我們回到我們的復(fù)選框。為此,創(chuàng)建一個Click事件處理程序:

    private void CheckBox1_Click(object sender, EventArgs e)
    {
    string groupName = (sender as CheckBoxObject).Hyperlink.Value; // We get the name of the group from the hyperlink
    if (expandedGroups.Contains(groupName)) // If the list of visible groups contains the selected group
    expandedGroups.Remove(groupName); // Then remove the selected from the list of visible groups.
    else
    expandedGroups.Add(groupName); // Otherwise add the group to the list of visible
    Report.Refresh(); // Update Report
    }

    以預(yù)覽模式運行報告:

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力


    現(xiàn)在點擊任何加號:

    如何制作Drill-Down向下鉆取報表,為數(shù)據(jù)分析提供多種交互能力

    當(dāng)您單擊減號時會分組折疊。大神們都表示同意,這樣確實很方便。



    產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 | 在線客服

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

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