在 razor 应用程序中查看水晶报告中的对象列表

本文关键字:报告 对象 列表 水晶 razor 应用程序 | 更新日期: 2023-09-27 18:36:58

我有一个带有 Razor 的 asp.net MVC4 应用程序,我想在其中添加一个报告Crystal Reports。所以我创建了一个文件夹 AspxPages 并添加了一个Aspx视图。此外,在我的模型中,我有一个类结果,我想查看这样的List<Result>

List<Element> elem_list = notre_chef.Get_ListElement_By_Project(id_project);
List<Result> model = new List<Result>();
foreach (Element e in elem_list) 
{ 
   Result _r = new Result(e.Id_element);
   model.Add(_r);
}
string strReportName;
string rapportName;
strReportName = "Current.rpt";
rapportName = "Resultat Actuel du test";
ReportDocument rd = new ReportDocument();
// the Rapport path "Rpts/strReportName"
string strRptPath = 
    System.Web.HttpContext.Current.Server.MapPath("~/") + "Rpts//" 
        + strReportName;
rd.Load(strRptPath);
foreach (Result res in model)
{
    rd.SetParameterValue("category", res.Catégorie);
    rd.SetParameterValue("sf", res.Sous_fonctionnalité);
    rd.SetParameterValue("concept", res.Concept);
    rd.SetParameterValue("expert", res.Expert);
    rd.SetParameterValue("property", res.Propriétés);
    rd.SetParameterValue("f", res.Fonction);
    rd.SetParameterValue("avis", res.Avis);
    rd.SetParameterValue("justification", res.Justification);
    if (final == 0)
    {
       rd.SetParameterValue("titre", "Resultat actuel du test");
    }
    else
    {
        rd.SetParameterValue("titre", "Resultat final du test");
    }
}
rd.ExportToHttpResponse(ExportFormatType.PortableDocFormat,
    System.Web.HttpContext.Current.Response, false, rapportName);
return RedirectToAction("Display_Chef_Attempt", new{id_project = id_project});

在报告中,我添加了必填字段。我的问题是报告中只显示列表中Result的最后一个对象,而不是不同页面中的所有列表。

那么问题出在哪里呢?我该如何解决它?

在 razor 应用程序中查看水晶报告中的对象列表

像凹凸赛一样,您正在尝试用数据填充您的参数,当然报告将仅使用最后一条记录。

您要查找的是设置报表文档的数据源,该数据源应如下所示:

rd.SetDataSource(model);

在这里,您有一个完整的示例,如何将泛型集合传递给 crystal。带有通用集合的水晶报告,本文应该对您有所帮助。