曾经在网上看到下面这篇文章,写了个类作为报表数据源,下面是源文章
创建用作数据源的业务对象。
-
在“网站”菜单上选择“添加新项”。
-
在“添加新项”对话框中,选择“类”,键入文件名“BusinessObjects.cs”,然后单击“添加”。
-
单击“是”将该类放入“App_Code”文件夹。新文件将添加到项目并且在 Visual Studio 中自动打开。
-
将BusinessObjects.cs的默认代码替换为以下代码:
C#
using System;
using System.Collections.Generic;
// Definethe Business Object "Product" with two public properties
// of simple datatypes.
publicclass Product {
privatestring m_name;
privateint m_price;
public Product(string name, int price) {
m_name = name;
m_price = price;
}
publicstring Name {
get {
return m_name;
}
}
publicint Price {
get {
return m_price;
}
}
}
// DefineBusiness Object "Merchant" that provides a
// GetProducts method that returns acollection of
// Product objects.
publicclass Merchant {
private List<Product>m_products;
public Merchant() {
m_products = new List<Product>();
//将下面代码修改为Linq to sql 读取既可完成
m_products.Add(new Product("Pen", 25));
m_products.Add(new Product("Pencil", 30));
m_products.Add(new Product("Notebook", 15));
}
public List<Product>GetProducts() {
return m_products;
}
}
-
从“生成”菜单中选择“生成解决方案”。这将为对象创建程序集,并在您向项目中添加报表后,使业务对象“Product”显示在“报表数据”窗口中。
使用报表向导向项目添加报表
-
请确保在“解决方案资源管理器”中选中了顶级网站。
-
右击网站并选择“添加新项”。
-
在“添加新项目”对话框中,选择“报表向导”。为报表键入名称,并单击“添加”。
-
这将启动报表向导。
-
在“数据集属性”页的“数据源”框中选择“全局”。
-
在“可用数据集”框中,确认选中“Merchant (GetProducts)”。
-
单击“下一步”。
-
在“排列字段”页中,执行以下操作:
-
将“名称”从“可用字段”拖到“行组”框。
-
将“价格”从“可用字段”拖到“值”框。
-
-
单击两次“下一步”,然后单击“完成”。
这将创建 .rdlc文件并在报表设计器中将其打开。所创建的 tablix会立即显示在设计图面中。
-
保存 .rdlc文件。
其实,上面红色字下面几行插入数据的代码可以不用。只要在定义publicclass Product时,结构和查询结果temp完全一样
var temp = from ob in md.表名 select ob;
ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", temp));
如此,Linq to XML,Linq to List,Linq to SQL的输出结果都可以作为Rdlc报表的数据源。