2013-03-28 131 views
1

我正在尝试在我一直在研究的项目上使用水晶报告。我没有用水晶报表但太多的经验是什么,我能够通过谷歌搜索我做这个块的代码至今:c#数据集和水晶报告

的标记:

<CR:CrystalReportViewer ID="crViewerReports" Visible="true" runat="server" 
      AutoDataBind="true" ReportSourceID="crs" /> 
     <CR:CrystalReportSource ID="crs" runat="server" > 
      <Report FileName="MyReport.rpt"> 
      </Report> 
     </CR:CrystalReportSource> 

代码:

DataSet ds = new DataSet(); 
      ds = util.getReportDataSet(DateTime.Now.AddYears(-5), DateTime.Now, 100,4, null); 

     // *** NEXT STEPS *** // 

只是水晶报告文件是从其他应用程序,并正常工作我只需要获取数据集。 如果有人能帮助我解决这个问题,我将不胜感激。 由于提前,Laziale

回答

0

下一步将是你的你刚刚加载的数据集报表的assigning the data source

crs.ReportDocument.SetDataSource(ds); 

如果你有参数,你还需要set them

+0

感谢您的答复。正如我从字段资源管理器中看到的,我没有参数,但是我有数据库字段。我应该怎么处理它们? Thx很多 – Laziale

+0

如果你没有参数,那么你不需要做任何特殊的事情,只要设置数据源就足够了。 –

+0

一切顺利,最后我得到空白页面,虽然数据集有数据。你是否知道为什么会发生这种情况。谢谢 – Laziale

0

这是ASPX:

<updatepanel id="up" updatemode="alwayz"> 
<ContentTemplate> 
    <CR:CrystalReportViewer ID="crvReportParameter" runat="server" Visible="false" EnableParameterPrompt="false" 
       ReuseParameterValuesOnRefresh="true" ToolPanelView="None" AutoDataBind="true" 
       HasCrystalLogo="False" HasToggleParameterPanelButton="false" /> 
</ContentTemplate> 
</updatepanel> 

这是CS文件:

ds = util.getReportDataSet(DateTime.Now.AddYears(-5), DateTime.Now, 100,4, null); 
          rptDoc.Load(Server.MapPath(""MyReport.rpt"")); 

     rptDoc.SetDataSource(dsData.Tables[0]); 
    crvReportParameter.ReportSource = rptDoc; 
       crvReportParameter.DataBind(); 
+0

它不在同一个空白页 – Laziale

+0

现在试试.............. –

+0

@Laziale = R你在更新面板中尝试水晶报表查看器? ??????? –