VS2010 水晶报表的使用方法

605 查看

在VS2010中新建一个“Windows 窗体应用程序”项目,在该项目中添加一个水晶报表“CrystalReport1.rpt”,然后在项目上点击鼠标右键属性,将“目标框架”改为“.Net Framework 4”

2013-06-20_003334

打开app.config文件,在“startup”节点一个“useLegacyV2RuntimeActivationPolicy="true"”属性

复制代码 代码如下:

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

在Form1窗体中,从工具箱拖出一个Crystal Report Viewer控件,双击Form窗体,是双击Form窗体,不是Crystal Report Viewer,在后台的Form_Load事件中写入如下代码:

复制代码 代码如下:

private void Form1_Load(object sender, EventArgs e)
        {
            string connStr = "Data Source=.\\SqlExpress;Initial Catalog=dbTest;User ID=sa;Password=test";
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            try
            {
                string sql = "SELECT * FROM Customer where email!='test@gmail.com'";
                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                sda.Fill(ds, "tmpTable");

                string reportPath = System.Windows.Forms.Application.StartupPath + @"\CrystalReport1.rpt";
                ReportDocument rd = new ReportDocument();
                rd.Load(reportPath);
                rd.SetDataSource(ds.Tables[0].DefaultView);
                this.crystalReportViewer1.ReportSource = rd;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message.ToString());
            }
            finally
            {
                conn.Close();
            }
        }

这样就OK了

2013-06-19_234029