我想在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创建发票。谢谢!
答案 0 :(得分:2)
这是一个古老的问题,你可能已经有了答案,但我一直在研究类似的东西并且经历了似乎相同的情况(这就是我在这里的原因)。
由于缺少RDLC文件,因此触发了该错误。您可以静态或动态创建RDLC定义。
对于静态版本,您可以使用Visual Studio的向导轻松找到有关如何执行此操作的许多教程。如果您想动态地执行此操作,this answer将导致在.Net 2.0中为SSRS 2005设计的代码项目中的教程。它非常好而且详细。
另一个解决方案(我使用的是)在got reportviewer?中,查找“动态生成RDLC - 表”。示例代码将帮助您创建自己的版本;它不需要很多更改就可以让它在你的项目中运行。
如果您处理大量报告,动态版本会特别有用。
希望这有帮助,欢呼!