<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      VSTO 學習筆記(六)在 Excel 2010中使用RDLC報表

      Excel具有強大的圖表顯示、分析功能,這點毋庸置疑,但是如果將常規MIS系統中的數據以報表的形式在Excel中顯示,卻并不那么容易。在VSTO中,我們可以借助RDLC報表組件來滿足這種需求。

       示例代碼下載

      本系列所有示例代碼均在 Visual Studio 2010 Ultimate RTM + Office 2010 Professional Plus Beta x64 下測試通過

      注:本次數據庫使用的是 SQL Server 2008 R2 x64 RTM

       

      1、在VS2010中,新建一個Excel 2010 Workbook項目:

       

      2、添加引用:

      Microsoft.ReportViewer.WinForms

       

      3、創建一個RDLC報表,添加一個報表參數p_Country:

      報表的目的很簡單,用的Northwind數據庫,根據傳遞的參數,從Customers表中查詢數據。

       

      4、創建一個存儲過程:

      代碼

      IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'sp_LinqTest'AND OBJECTPROPERTY(id, N'IsProcedure'= 1

      BEGIN 

          
      DROP PROCEDURE dbo.sp_LinqTest 

      END 

      GO 

      CREATE PROCEDURE dbo.sp_LinqTest 



          
      @Country VARCHAR(20



      AS 

      SELECT * FROM dbo.Customers WHERE Country = @Country 

      GO 

       

       

       

      5、在項目中添加一個Linq to SQL Class,將Customers表和sp_LinqTest存儲過程添加進來:

       

      6、打開Sheet1的設計界面,添加一個ComboBox:

       

      7、初始化數據:

       

       

      代碼
              ReportViewer rptExcel = new ReportViewer();
              
      private void fnDataIni()
              {
                  
      this.rptExcel.LocalReport.ReportEmbeddedResource = "RDLCInExcel.LinqRpt.rdlc";
                  Excel.Range range 
      = this.Range["B4""J22"];
                  
      this.Controls.AddControl(this.rptExcel, range, "rptInExcel");

                  NorthwindDataContext ctx 
      = new NorthwindDataContext();
                  var result 
      = from c in ctx.Customers
                               select c.Country;
                  
      foreach (string list in result.Distinct<string>().ToList<string>())
                  {
                      
      this.comCountry.Items.Add(list);
                  }
              }

       

       

      8、構造數據源,傳遞報表參數:

       

       

      代碼
              private void fnBuildDataSource(string v_strCountry)
              {
                  NorthwindDataContext ctx 
      = new NorthwindDataContext();
                  var datasource 
      = from c in ctx.sp_LinqTest(v_strCountry)
                                   orderby c.CustomerID
                                   select c;

                  ReportParameter rpCountry 
      = new ReportParameter("p_Country", v_strCountry);
                  
      this.rptExcel.LocalReport.SetParameters(new ReportParameter[] { rpCountry });
                  
      this.rptExcel.LocalReport.DataSources.Add(new ReportDataSource("sp_LinqTestResult", datasource.ToList()));
                  
      this.rptExcel.RefreshReport();
              }

       

       

      9、關聯事件:

       

       

      代碼
              private void Sheet1_Startup(object sender, System.EventArgs e)
              {
                  
      this.fnDataIni();
                  
      this.fnBuildDataSource(this.comCountry.Text);
              }

              
      private void Sheet1_Shutdown(object sender, System.EventArgs e)
              {
              }

              
      #region VSTO Designer generated code

              
      /// <summary>
              
      /// Required method for Designer support - do not modify
              
      /// the contents of this method with the code editor.
              
      /// </summary>
              private void InternalStartup()
              {
                  
      this.comCountry.SelectedIndexChanged += new System.EventHandler(this.comCountry_SelectedIndexChanged);
                  
      this.Startup += new System.EventHandler(this.Sheet1_Startup);
                  
      this.Shutdown += new System.EventHandler(this.Sheet1_Shutdown);

              }

              
      #endregion

              
      private void comCountry_SelectedIndexChanged(object sender, EventArgs e)
              {
                  
      this.rptExcel.LocalReport.DataSources.Clear();
                  
      this.fnBuildDataSource(this.comCountry.Text);
              }

       

       

      10、最終運行效果:

       

      11、生產的Excel位于Debug/Release下:

       

      小結:

      本次我們在VSTO中做了一個簡單的報表,使用了Linq to SQL,當然,如果能用Excel的原生功能做報表效果更好,使用VSTO可以大大簡化實現相同功能的方法,使得我們可以用更熟悉的方法來完成一些需求。

      posted @ 2010-05-03 16:12  江蘇瑞步科技  閱讀(3425)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 人妻丰满熟妇av无码处处不卡| 色成人精品免费视频| 国精一二二产品无人区免费应用| 四虎永久在线精品免费看| 祁东县| 精品国产一区二区在线视| 精品视频不卡免费观看| 亚洲精品人妻中文字幕| 无码一级视频在线| 亚洲欧美日韩综合一区在线| 最新精品国产自偷在自线| 国产福利酱国产一区二区| 国产一级小视频| 亚洲一区av无码少妇电影| 国产精品福利片在线观看| 欧美人人妻人人澡人人尤物| 亚洲AV午夜电影在线观看| 成人国产精品一区二区不卡| 狠狠色狠狠色综合日日不卡| 国产亚洲精品aaaa片app| 邵东县| 国产成人a在线观看视频免费| 在线无码免费看黄网站| 成年在线观看免费人视频| 精品精品国产国产自在线| aa性欧美老妇人牲交免费| 亚洲天堂一区二区三区四区 | 色哟哟www网站入口成人学校| 一区二区三区av在线观看| 好屌草这里只有精品| 日本一卡2卡3卡四卡精品网站| 日韩激情无码av一区二区| 国产精品黄色一区二区三区| 久久综合精品国产一区二区三区无 | 欧美成人精品高清在线播放| 亚洲欭美日韩颜射在线二| 国产精品伦人一久二久三久| 中文字幕乱码一区二区免费| 免费高清特级毛片A片| 嫩草欧美曰韩国产大片| 成全影视大全在线观看|