我们正在开发一个网络应用程序,它将根据用户选择的变量显示报告。我的老板有一个类似的网络应用程序,他让我的基础。我已经检查过,我的Reportviewer就像他的设置一样,我的SqlDataSource也似乎也设置得类似。他的C#代码是这样的:
var Class_Connection = new SQL_Connection();
Class_Connection.cnn.Close();
Class_Connection.cnn.Open();
var cmd = new SqlCommand("SELECT ID, Assigned, FirstName, LastName, Description, Resolved" +
" FROM TT WHERE Received >= DATEADD(day,-"+ NumberOfDays +", GETDATE())", Class_Connection.cnn);
var dt = new DataTable();
dt.Load(cmd.ExecuteReader());
var source = new ReportDataSource("DataSetAllTTByLastWeek", dt);
RV_Main.Visible = true;
RV_Main.LocalReport.DataSources.Clear();
RV_Main.LocalReport.ReportPath = Server.MapPath("~/CCD/TT/Reports/AllTTByLastWeek.rdlc");
RV_Main.LocalReport.DataSources.Add(source);
RV_Main.LocalReport.Refresh();
我的意思是:
var Class_Connection = new SQL_Connection();
Class_Connection.cnn.Close();
Class_Connection.cnn.Open();
var cmd = new SqlCommand("SELECT PO.PO_Num, PO.Supplier, PO.DateRequired, PO.DateRecv, PO.Terms, PO.Freight, PO.FOB, Beam.Tag, Beam.Quantity, Beam.ReceiverNumber, Beam.DeliveredBy, Beam.ReceivedBy, Beam.PackingNo, BeamType.Description From PO PO, Beam Beam,BeamType BeamType Where BeamType.Type = Beam.Type and Beam.PoNum = PO.PO_Num and Beam.Beamcode = BeamType.Beamcode and Beam.receivernumber = " + ReceiverNumber + " Order By BeamType.Description ASC, Beam.Quantity Asc", Class_Connection.cnn);
var dt = new DataTable();
dt.Load(cmd.ExecuteReader());
var source = new ReportDataSource("BeamReports", dt);
rvLumberReport.Visible = true;
rvLumberReport.LocalReport.DataSources.Clear();
rvLumberReport.LocalReport.ReportPath = Server.MapPath("~/CCD/Main/Reports/BeamReport.rdlc");
rvLumberReport.LocalReport.DataSources.Add(source);
rvLumberReport.LocalReport.Refresh();
当我运行他的代码时,一切正常,但是当我运行我的代码时,它似乎没有在查看器中显示报告。现在它只是一个标签说测试。我错过了一些愚蠢的简单或者我可能有什么东西?
编辑:第一组代码似乎只在它的原始页面上工作,但在第二页上不起作用。第二组代码在第一页中不起作用。我已尽最大努力确保所有控件都配置为尽可能接近原件。
EDIT2:我在项目中创建了一个新页面,并使用此代码生成完美的报告。我的猜测是问题必须在与此页面相关的ASP或C#代码中。此时的问题是:“我如何找出问题所在?”