RDLC报表(一)

来源:互联网 发布:sql server拼接单引号 编辑:程序博客网 时间:2024/06/06 05:00

 一,效果如下:

二,开始实现

1,新建一个空的ASP.NET WEBFORM项目,命名NorthwindReports

2,在项目中创建一个DAL的空文件夹

3,在DAL文件夹上创建一个ADO.NET 实体数据模型叫做Northwind

 

4,在DAL文件夹上右键添加如下代码:

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace NorthwindReports.DAL{    public class ProductViewModel    {        public int? ProductID { get; set; }        public string ProductName { get; set; }        public System.Nullable<decimal> UnitPrice { get; set; }        public string CategoryName { get; set; }        public int? CategoryID { get; set; }        public int? SupplierID { get; set; }        public bool Discontinued { get; set; }    }}
using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace NorthwindReports.DAL{    public class CategoryViewModel    {        public string CategoryName { get; set; }        public int CategoryID { get; set; }    }}


 

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace NorthwindReports.DAL{    interface IProductRepository    {        IQueryable<Product> GetProducts();        IQueryable<ProductViewModel> GetProductsProjected(int? supplierID, int? categoryID);        IQueryable<SupplierViewModel> GetSuppliers();        IQueryable<CategoryViewModel> GetCategories();    }}


 

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace NorthwindReports.DAL{    public class ProductRepository : IProductRepository    {        /// <summary>        /// IQueryable of all Products        /// </summary>        /// <returns></returns>        public IQueryable<Product> GetProducts()        {            var dataContext = new NorthwindEntities();            var products = from p in dataContext.Products                           select p;            return products;        }        /// <summary>        /// IQueryable of Projects projected         /// into the ProductViewModel class        /// </summary>        /// <returns></returns>        public IQueryable<ProductViewModel> GetProductsProjected(int? supplierID, int? categoryID)        {            var projectedProducts = from p in GetProducts()                                    select new ProductViewModel                                    {                                        ProductID = p.ProductID,                                        ProductName = p.ProductName,                                        UnitPrice = p.UnitPrice,                                        CategoryName = p.Category.CategoryName,                                        CategoryID = p.CategoryID,                                        SupplierID = p.SupplierID,                                        Discontinued = p.Discontinued                                    };            // Filter on SupplierID             if (supplierID.HasValue)            {                projectedProducts = projectedProducts.Where(a => a.SupplierID == supplierID);            }            // Filter on CategoryID             if (categoryID.HasValue)            {                projectedProducts = projectedProducts.Where(a => a.CategoryID == categoryID);            }            return projectedProducts;        }        public IQueryable<SupplierViewModel> GetSuppliers()        {            var dataContext = new NorthwindEntities();            var suppliers = from s in dataContext.Suppliers                            select new SupplierViewModel                            {                                SupplierID = s.SupplierID,                                CompanyName = s.CompanyName                            };            return suppliers;        }        public IQueryable<CategoryViewModel> GetCategories()        {            var dataContext = new NorthwindEntities();            var categories = from c in dataContext.Categories                             select new CategoryViewModel                             {                                 CategoryID = c.CategoryID,                                 CategoryName = c.CategoryName                             };            return categories;        }    }}
using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace NorthwindReports.DAL{    public class SupplierViewModel    {        public string CompanyName { get; set; }        public int SupplierID { get; set; }    }}

 

5,到此您的解决方案资源管理器类似如下:


 

原创粉丝点击