小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

在VS2010Winform項目中使用RDLC報表定義文件、ReportViewer控件生...

 伊本經(jīng)閣 2012-04-11

在VS2010Winform項目中使用RDLC報表定義文件、ReportViewer控件生成本地報表

這是一個使用RDLC報表定義文件、ReportViewer控件生成本地報表的簡單示例。(此文章存在瑕疵,2011.10.29重新編輯)
一、新建一個.net4.0項目:(下圖的.NET Framework 2.0 改為 .NET Framework 4.0----2011.10.29)
該項目命名為ReportApp,為項目新建兩個文件夾 Reports、Datasets。Reports文件夾存儲報表定義文件,Datasets存儲數(shù)據(jù)集。
二、創(chuàng)建Dataset
1、第一個Dataset:確保解決方案資源管理器中選中Datasets后,點擊 菜單中的“項目”;“添加新項”;選擇左側(cè) “數(shù)據(jù)”,再選擇“數(shù)據(jù)集”;命名為FirstDataSet.xsd,如下圖.
在“服務(wù)器資源管理器”中新建一個到Northwind.mdb數(shù)據(jù)庫的連接,并將Northwind.mdb數(shù)據(jù)庫添加到項目中。
將Northwind.mdb中的Products表拖至FirstDataset.xsd中。
2、同樣的方法創(chuàng)建第二個Dataset:SecondDataset.xsd。將將Northwind.mdb中的Orders表拖至其中。
三、創(chuàng)建Reports
1、第一個報表ReportProducts:確保解決方案資源管理器中選中Reports后,點擊 菜單中的“項目”;“添加新項”;選擇左側(cè) “Reporting”,再選擇“報表”;命名為ReportProducts.rdlc,如下圖。
修改ReportProducts.rdlc文件屬性中的“復(fù)制到輸出目錄”,改為:始終復(fù)制。如果不修改此屬性,下面生成報表時將找不到報表定義文件。
選擇左側(cè)的“報表數(shù)據(jù)”工具箱,新建一個數(shù)據(jù)集。
命名數(shù)據(jù)集名稱為:RpProductsDataset,此名稱在后面的Code有用。選擇數(shù)據(jù)源為FirstDataset,選擇可用數(shù)據(jù)集為Products。
在工具箱里拖拽一個表至報表,將Tablix1的datasetname設(shè)為RpProductsDataSet,然后設(shè)置表格各個單元的字段。
2、使用同樣的方法建立第二個報表:ReportOrders.rdlc,報表的數(shù)據(jù)集名稱為RpOrdersDataset。
四、生成報表
雙擊打開form1.vb,從工具箱中將ReportViewer控件拖至Form1中。如果在VS2010 中找不到ReportViewer控件,可以右擊工具箱中的“數(shù)據(jù)”,選擇"選擇項...",從中選擇ReportViewer控件。注意:有winform版和web版共兩種ReportViewer控件。
將ReportViewer控件的Anchor屬性設(shè)置為Top, Bottom, Left, Right。form1的WindowState屬性設(shè)置為Maximized。
從工具箱中拖拽兩個Button,分別命名為ReportProducts、ReportOrders。
form1的代碼如下:
 
Public Class Form1
  
    'Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  
    '    Me.ReportViewer1.RefreshReport()
    'End Sub
  
    'ReportProducts報表
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        '定義數(shù)據(jù)集
        Dim ProductsDS As New FirstDataSet
        '數(shù)據(jù)SQL命令
        Dim commandtext As String = "select * from Products"
        '報表定義文件
        Dim rdlcfile As String = "Reports/ReportProducts.rdlc"
        '報表中使用的數(shù)據(jù)集名稱
        Dim reportds As String = "RpProductsDataSet"
        '生成報表
        Me.GetReport(ProductsDS, commandtext, rdlcfile, reportds, False)
  
    End Sub
  
    'ReportOrders報表
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        '定義數(shù)據(jù)集
        Dim ProductsDS As New SecondDataSet
        '數(shù)據(jù)SQL命令
        Dim commandtext As String = "select * from orders"
        '報表定義文件
        Dim rdlcfile As String = "Reports/ReportOrders.rdlc"
        '報表中使用的數(shù)據(jù)集名稱,注意:名稱中大小寫敏感
        Dim reportds As String = "rpOrdersDataset"
        '生成報表
        Me.GetReport(ProductsDS, commandtext, rdlcfile, reportds, True)
    End Sub
  
    Private Sub GetReport(ByVal ds As DataSet, ByVal Commandtext As String, ByVal RDLCFile As String, ByVal ReportDS As String, ByVal isLandscape As Boolean)
        'ds:使用哪一個數(shù)據(jù)集
        'Commandtext:數(shù)據(jù)SQL命令
        'RDLCFile:RDLC文件路徑及文件名
        'ReportDS:RDLC報表文件使用的數(shù)據(jù)集名稱
        'isLandscape:報表頁面是否以橫向顯示
  
        '----------------------------獲取數(shù)據(jù)----------------------------------
        '定義數(shù)據(jù)集
        'Dim DataSetUsed As New ds
        '定義連接
        Dim conn As New OleDb.OleDbConnection
        '連接的關(guān)鍵字從配置中獲取
        conn.ConnectionString = My.Settings.NorthwindConnectionString
        '定義數(shù)據(jù)命令
        Dim comm As New Data.OleDb.OleDbCommand
        comm.CommandType = CommandType.Text
        comm.CommandText = Commandtext
        comm.Connection = conn
        '定義數(shù)據(jù)適配器
        Dim DA As New OleDb.OleDbDataAdapter(comm)
        '填充數(shù)據(jù)
        Using conn
            conn.Open()
            DA.Fill(ds.Tables(0))
        End Using
  
        '--------------------------------生成報表-----------------------------
        '設(shè)置使用本地報表模式
        Me.ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
        '清空ReportViewer1控件原有的數(shù)據(jù)源
        Me.ReportViewer1.LocalReport.DataSources.Clear()
        '定義本地報表變量
        Dim ReportEngine As Microsoft.Reporting.WinForms.LocalReport
        ReportEngine = ReportViewer1.LocalReport
        '指定報表文件
        ReportEngine.ReportPath = RDLCFile
        '加載數(shù)據(jù)源,注意:數(shù)據(jù)集的大小寫是敏感的。
        ReportEngine.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource(ReportDS, ds.Tables(0)))
  
        '---------------------設(shè)置預(yù)覽---------------------------------
  
        '顯示模式是打印預(yù)覽模式
        Me.ReportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout)
        '頁面設(shè)置變量
        Dim pageset As Drawing.Printing.PageSettings = Me.ReportViewer1.GetPageSettings
        '頁面是否是橫向顯示
        pageset.Landscape = isLandscape
        '設(shè)置頁面
        Me.ReportViewer1.SetPageSettings(pageset)
        '以百分比顯示
        Me.ReportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent
        '100%的比例
        Me.ReportViewer1.ZoomPercent = 100
  
        '刷新報表
        Me.ReportViewer1.RefreshReport()
    End Sub
End Class
最后的效果如下:<BR>  
 
后記:關(guān)于RDLC報表的部署
     reportviewer控件不屬于.net framework 框架的一部分。如果要發(fā)布報表,需要安裝Microsoft Report Viewer 2010 Redistributable Package  (下載地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=A941C6B2-64DD-4D03-9CA7-4017A0D164FD&displaylang=zh-cn),用于查看使用 Microsoft 報表技術(shù)設(shè)計的報表的控件。發(fā)布應(yīng)用程序時,項目->屬性->發(fā)布->系統(tǒng)必備  勾選Microsoft Visual Studio 2010報表查看器   。      
 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多