我用StiMvcDesigner
创建了一个报告,它运行得很好
public ActionResult GetReport()
{
AthleteData data = new AthleteData();
var report = new StiReport();
var path = Server.MapPath("~/Reports/Athletes.mrt");
report.Load(path);
report.RegBusinessObject("GymDB", data.getAllData());
report.Dictionary.SynchronizeBusinessObjects();
return StiMvcDesigner.GetReportResult(report);
}
public ActionResult PreviewReport()
{
StiReport report = StiMvcDesigner.GetActionReportObject();
var path = Server.MapPath("~/Reports/Athletes.mrt");
report.Load(path);
return StiMvcDesigner.PreviewReportResult(report);
}
public ActionResult SaveReport()
{
var report = StiMvcDesigner.GetReportObject();
var path = Server.MapPath("~/Reports/Athletes.mrt");
report.Save(path);
return StiMvcDesigner.SaveReportResult();
}
public ActionResult DesignerEvent()
{
return StiMvcDesigner.DesignerEventResult();
}
这是Data类:
public class AthleteData
{
GymDBEntities gymEntities;
public AthleteData()
{
gymEntities = new GymDBEntities();
}
public List<Athlete> getAllData()
{
var athletes = new List<Athlete>();
var data = gymEntities.Athletes;
foreach (var item in data)
{
athletes.Add(new Athlete
{
Id = item.Id,
Name = item.Name,
LastName = item.LastName,
NationalCode = item.NationalCode,
Gender = item.Gender,
BirthDate = (DateTime)item.BirthDate,
RegisteredDate = item.RegisteredDate,
Phone = item.Phone,
Mobile = item.Mobile
});
}
return athletes;
}
}
当我从另一个Controller加载报告时,它什么也没有显示:
public ActionResult GetReport()
{
AthleteData data = new AthleteData();
var report = new StiReport();
var path = Server.MapPath("~/Reports/Athletes.mrt");
report.Load(path);
report.RegData("data", data.getAllData());
report.Dictionary.SynchronizeBusinessObjects();
report.Render();
//CheckReference(report);
return StiMvcViewer.GetReportResult(report);
}