程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 使用ActiveReport for .net 進行報表開發--顯示對象集合中的數據

使用ActiveReport for .net 進行報表開發--顯示對象集合中的數據

編輯:.NET實例教程

本文將通過一些示例代碼繼續演示如何綁定對象集合以及如何從對象集合或列表中提取數據。

1.       直接綁定:

我們可以自己定義一個Collection,從IList繼承,並使其中的每個對象都是一個實體,例如:

Customer和CustomerCollection。然後給ActiveReport報表的DataSource直接賦值為CustomerCollection的實例就可以了。這種綁定方法在ActiveReport for .Net自帶的例子裡有完整的演示。

2.       手工加載顯示對象的數據:

在這裡要用到兩個事件:DataInitialize和FetchData。

DataInitialize用來定義字段列表,獲取數據等工作,FetchData用來指定每個字段的值。

我們簡單定義一個Customer類

public class Customer

        {

                public int ID;

                public string Name;

                public string Address;

    }

再給報表定義一個Customer數組,用來保存要顯示的數據,比如:

public Customer[] customers;

還需要一個值來保存當前記錄的索引:private int index =0;

接下來在DataInitialize中定義報表有那些字段:

this.FIElds.Add("Name");

    this.FIElds.Add("Address");

然後在FetchData事件中添加以下代碼:

if (this.index >= this.customers.Length )

        {

                eArgs.EOF = true;

                return;

        }

        else

        {

                eArgs.EOF = false;

        }

        this.FIElds["Name"].Value = customers[this.index].Name;

        this.FIElds["Address"].Value = customers[this.index].Address;

    this.index += 1;

這段代碼的含義就是將Customer數組中的每個Customer實例的Name和Address屬性值賦給報表的Name和Address字段。

代碼中的第一個if分支是判斷是否已經加載到了最後一條數據,如果是,設置eArgs.EOF為ture,並返回,否則繼續加載下一條數據。

然後我們可以將要顯示的數據放在Customers數組中,並啟動顯示報表:

Customer[] customers = new Customer[2];

        Customer c = new Customer();

        c.Name = "James";

        c.Address = "Noljadfallsjf";

        Customer c2 = new Customer();

        c2.Name = "Joe";

        c2.Address = "adfaafadf";

        customers[0] = c;

        customers[1] = c2;

                       

        rpt.customers = customers;

        rpt.Run();

    this.vIEwer1.Document = rpt.Document;

 

通過上面的示例可以看到,第二種方式雖然比較煩瑣,需要程序員自己處理很多東西,但是這樣程序員擁有完全的操控能力,特別是需要對取出的數據作很多復雜的處理時,這樣的操控能力是非常重要的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved