2017-01-16 84 views
0
string sql = "select Prg_Name, Goal, Domain,Step_Desc_Oreginal FROM dbo.TBL_CTL_ControlProgram where PRG_ID = " + prg_id; 
DataSet ds = db.GetDS(sql, "CIBCTL"); 
DataTable dt = new DataTable(); 
dt.Columns.Add(new DataColumn("Step_Desc_Oreginal", typeof(string))); 
dt.Columns.Add(new DataColumn("Prg_Name", typeof(string))); 
dt.Columns.Add(new DataColumn("Domain", typeof(string))); 
dt.Columns.Add(new DataColumn("Goal", typeof(string))); 

     /////////////////// 


     ////////////////// 
foreach (DataRow ProgRow in ds.Tables[0].Rows) 
{ 
    dt.Rows.Add(ProgRow["Step_Desc_Oreginal"].ToString(), ProgRow["Prg_Name"].ToString(), ProgRow["Domain"].ToString(), ProgRow["Goal"].ToString()); 
} 
ReportViewer1.ProcessingMode = ProcessingMode.Local; 
ReportViewer1.Reset(); 
ReportDataSource rds = new ReportDataSource("DataSet1", dt); 
//ReportViewer1.LocalReport.ReportPath = Server.MapPath(@"CIB_CTL\\ReportProg.rdlc"); //"CIB_CTL\\ReportProg.rdlc"; 

ReportViewer1.LocalReport.ReportPath = "ReportProg.rdlc"; //"CIB_CTL\\ReportProg.rdlc";//Server.MapPath(@"ReportProg.rdlc"); 

ReportViewer1.LocalReport.DataSources.Clear(); 
ReportViewer1.LocalReport.DataSources.Add(rds); 
ReportViewer1.LocalReport.Refresh(); 






<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="950px" Height="550px" AsyncRendering="False"> 
    <ServerReport ReportServerUrl="" /> 
    <LocalReport ReportPath="ReportProg.rdlc"> 
     <DataSources> 
      <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" /> 
     </DataSources> 
    </LocalReport> 
</rsweb:ReportViewer> 
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData" TypeName="CIBPRJ.CIB_CTL.ProgDataSetTableAdapters.DataTable1TableAdapter"></asp:ObjectDataSource> 
+0

任何人都可以幫助我解決這個問題。 –

回答

0

我認爲沒有必要提及所有的數據集信息在aspx和代碼後面。您只需在aspx中輸入所有必要的代碼。其中排除這一行。

<ServerReport ReportServerUrl="" /> 

它沒有必要。您在標記中指定了SelectMethod="GetData",但我無法在後端看到任何返回與數據集1匹配的任何數據項的GetData方法。 因此,將工作,如果你刪除這些線

ReportViewer1.ProcessingMode = ProcessingMode.Local; 
ReportViewer1.Reset(); 
ReportDataSource rds = new ReportDataSource("DataSet1", dt); 
//ReportViewer1.LocalReport.ReportPath = Server.MapPath(@"CIB_CTL\\ReportProg.rdlc"); //"CIB_CTL\\ReportProg.rdlc"; 

ReportViewer1.LocalReport.ReportPath = "ReportProg.rdlc"; //"CIB_CTL\\ReportProg.rdlc";//Server.MapPath(@"ReportProg.rdlc"); 

ReportViewer1.LocalReport.DataSources.Clear(); 
ReportViewer1.LocalReport.DataSources.Add(rds); 
ReportViewer1.LocalReport.Refresh(); 

,並恰當地規定的GetData。

+0

感謝您的回答。但我正在獲取數據集中的數據,而getdata()則是在數據集創建中定義的。問題在於報告顯示爲禁用標題,報告中沒有數據。我檢查了它的代碼工作正常。我想我缺少一些財產或配置報告。 –