0

我想在 C# ReportViewer 上创建一个类似于报表的发票。但我不知道如何通过代码格式化报告。我的代码出现错误。这是我使用的:

 private void Form1_Load(object sender, EventArgs e)
    {
        try
        {
            conn = new SqlConnection();
            conn.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=PrototypeV9;Integrated Security=True";
            conn.Open();

            if (conn.State == ConnectionState.Open)
            {

                MessageBox.Show("HEY");
            }


            this.reportViewer1.Reset();
            this.reportViewer1.LocalReport.ReportPath = @"C:\Users\Lenon\Documents\Euge's Folder\SampReport\SampReport\bin\Report2.rdlc";
            ReportDataSource rds = new ReportDataSource("dsNewDataSet_Table", getData());
            this.reportViewer1.LocalReport.DataSources.Clear();
            this.reportViewer1.LocalReport.DataSources.Add(rds);
            //this.reportViewer1.DataBind();
            this.reportViewer1.LocalReport.Refresh();

            this.reportViewer1.RefreshReport();
        }
        catch (Exception ex) {

            MessageBox.Show("no");
        }
    }

    private void rptGetDataset()
    {
        string path = @"C:\Program Files";
        DataSet ds = new DataSet();
        ds.DataSetName = "dsNewDataSet";
        string sql = "";
        sql = "select * from Sample3 where ProductID = 'ITM42512'";
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        ds.GetXmlSchema();
        da.Fill(ds);
        ds.WriteXmlSchema(path + @"\App_Code\Ds.xsd");
        ds.WriteXml(path + @"\App_Code\Ds.xml");
    }

     private DataTable getData()
{
    DataSet dss = new DataSet();
    string sql = "";
    sql = "select * from Sample3 where ProductID = 'ITM42512'";
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    da.Fill(dss);
    DataTable dt = dss.Tables[0];
    return dt;
}

我该如何解决我的问题?或者还有其他方法可以使用 ReportViewer 创建发票。谢谢!

4

1 回答 1

2

作为一个老问题,您可能已经有了答案,但我一直在研究类似的事情并经历了似乎相同的情况(这就是我在这里的原因)。

由于缺少 RDLC 文件,因此触发了该错误。您可以静态或动态创建 RDLC 定义。

对于静态版本,您可以轻松找到许多关于如何使用 Visual Studio 向导进行操作的教程。如果您想动态地执行此操作,此答案将导致代码项目中的教程为 .Net 2.0 中的 SSRS 2005 设计。它非常好和详细。

一个不同的解决方案(这是我使用的)是在得到reportviewer?,查找“动态生成 RDLC - 表”。示例代码将帮助您创建自己的版本;它不需要很多更改即可使其在您的项目中运行。

如果您要处理大量报告,动态版本特别有用。

希望这会有所帮助,干杯!

于 2013-09-20T18:42:19.560 回答