星期一, 7月 24, 2017

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源

根據 MSDN 文章 - 逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源 的實作練習

該專案完成後,如圖
逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-1

Step1:建立 BusinessObjects Class,Code 如下
namespace BusinessObject
{
    public class Product
    {
        public string Name { get; set; }
        public int Price { get; set; }

        public Product(string Name, int Price)
        {
            this.Name = Name;
            this.Price = Price;
        }
    }

    public class Merchant
    {
        private List<Product> products = new List<Product>();

        public Merchant()
        {
            products.Add(new Product("Pen", 25));
            products.Add(new Product("Pencil", 30));
            products.Add(new Product("Notebook", 15));
        }

        public List<Product> GetProducts()
        {
            return products;
        }
    }
}
Step2:利用報表精靈產生報表-Report1

利用報表精靈來新增報表

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-5

該圖為設定完成圖
  • 資料來源:BusinessObject
  • 可用資料集:Product
逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-6

上圖的新增按鈕,可以新增資料來源,選擇 "物件"

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-10

選擇 Product Class

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-11

完成資料來源新增後,在 Project Properties 會新增 Product.datasource

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-12

回到報表精靈後,可以在可用欄位內看見 Product 可用欄位,把欄位拉進右下角的"值" 內

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-7

報表精靈的最後步驟

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-8

完成報表

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-9

SSRS 報表完成

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-3

Step3:將 ReportViewer 加入 Form1

把 ReportViewer 加入 Form1 後,利用智能提示選擇 Report1.rdlc 報表,選擇報表後,在下方會出現 ProductBindingSource 物件

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-4

利用 C# Code 把資料塞進 ReportViewer 內
namespace BusinessObject
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            var merchant = new Merchant();
            this.ProductBindingSource.DataSource = merchant.GetProducts();
            this.reportViewer1.RefreshReport();
        }
    }
}
執行該 Form 就可以看見報表效果

逐步解說:在本機處理模式中,搭配 ReportViewer Windows Form 控制項使用商務物件資料來源-2

沒有留言:

張貼留言