【问题标题】:How to bind IEnumerable<T> to a Crystal Report document in C#?如何将 IEnumerable<T> 绑定到 C# 中的 Crystal Report 文档?
【发布时间】:2011-06-12 05:07:13
【问题描述】:

我在使用 Crystal Report 和 Entity Framework 时遇到问题。我开发了一个 WinForm 应用程序,它只有一个函数可以从表中获取所有记录,然后将它们全部填充到 Crystal Report 中。

我对 CR 2010 很陌生,我已经搜索了一段时间,但仍然没有找到解决方案。

假设我有一个包含以下列的表(客户):

ID, Name, Buy, Price

和一份 CR 文件:

ID: @ID
Name: @Name

Buy           Price
@Buy          @Price

              TotalPrice

我们可以直接将客户列表绑定到 CR 文档而不将其转换为 XML 或 Dataset 对象吗?

任何帮助将不胜感激!

【问题讨论】:

    标签: entity-framework data-binding binding crystal-reports ienumerable


    【解决方案1】:
    CrystalReportViewer1.HasToggleGroupTreeButton = false;
            CrystalReportViewer1.HasToggleParameterPanelButton = false;
            CrystalReportViewer1.HasPrintButton = true;
            CrystalReportViewer1.HasDrilldownTabs = false;
            CrystalReportViewer1.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
            CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX;
    
            if( Request.QueryString["type"] == "1")
            {
                CarPark_DataSet ds = new CarPark_DataSet();
    
                CarPark_DataSetTableAdapters.CarParkTableAdapter customersTableAdapter1;
                customersTableAdapter1 = new CarPark_DataSetTableAdapters.CarParkTableAdapter();
    
                //Convert.ToDateTime(txtStartDate.Text)
                //customersTableAdapter1.FillBy(ds.CarPark, Convert.ToDateTime(Request.QueryString["start"]), Convert.ToDateTime(Request.QueryString["end"]));
                customersTableAdapter1.FillBy(ds.CarPark, Convert.ToDateTime(Request.QueryString["start"]) , Convert.ToDateTime(Request.QueryString["end"]));
    
                objRpt = new ReportDocument();
                string reportPath = Server.MapPath("Detailed_CrystalReport.rpt");
                objRpt.Load(reportPath);
    
                objRpt.SetDataSource(ds.Tables[0]);
    
                ((CrystalDecisions.CrystalReports.Engine.TextObject)objRpt.ReportDefinition.ReportObjects["StartDate"]).Text = Request.QueryString["start"];
                ((CrystalDecisions.CrystalReports.Engine.TextObject)objRpt.ReportDefinition.ReportObjects["EndDate"]).Text = Request.QueryString["end"];
    
                CrystalReportViewer1.ReportSource = objRpt;
                CrystalReportViewer1.RefreshReport();
    
                //objRpt.Close();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      相关资源
      最近更新 更多