Как связать IEnumerable <T>с документом Crystal Report в C #? - PullRequest
1 голос
/ 20 января 2011

У меня проблемы с Crystal Report и Entity Framework.Я разрабатываю приложение WinForm, в котором есть только одна функция, которая получает все записи из таблицы и затем заполняет их все в Crystal Report.

Я так новичок в CR 2010 и уже некоторое время искал, но все еще не нашел решения.

Допустим, у меня есть таблица (Customer) со следующими столбцами:

ID, Name, Buy, Price

и документ CR:

ID: @ID
Name: @Name

Buy           Price
@Buy          @Price

              TotalPrice

Можем ли мы просто связать списокклиент непосредственно в документ CR без преобразования его в XML или объект Dataset?

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 08 марта 2012
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();
        }
...