RDLC报表(一)

 一,效果如下:

二,开始实现

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,到此您的解决方案资源管理器类似如下:


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值