asp.net - 从 ViewModel 和字符串类型的 Image 属性将 Image 动态绑定到 Crystal Report
问题描述
我在视图模型中加入了 3 个表(员工、部门、指定)。并跟进 BLL,DAL 模式是 asp.net。
我的问题是我想根据他们独特的 EmployeeId 生成个别员工的报告。不知何故,我设法检索了除Image之外的每个员工的信息。图像设置为数据库作为 ImageLocation
员工报告VM.cs
public class EmployeeReportVM
{
public string Image { get; set; }
public string EmployeeName { get; set; }
public string EmployeeId { get; set; }
public string Department { get; set; }
public string Designation { get; set; }
public string Grade { get; set; }
public string BloodGroup { get; set; }
public string Phone { get; set; }
public string JoiningDate { get; set; }
}
EmployeeDAL.cs
public List<EmployeeReportVM> EmployeeReport(string employeeId)
{
var emp = (from e in db.Employees
join de in db.Designation on e.DesignationId equals de.DesignationId
join dp in db.Department on e.DepartmentId equals dp.DepartmentId
where e.EmployeeId == employeeId
select new EmployeeReportVM
{
Image = e.Image,
EmployeeName = e.FirstName + " " + e.LastName,
EmployeeId = e.EmployeeId,
Department = dp.DepartmentName,
Designation = de.DesignationName,
Phone = e.MobileNo
}).ToList();
return emp;
}
EmployeBLL.cs
EmployeeDAL employeeDal = new EmployeeDAL();
public List<EmployeeReportVM> EmployeeReportVM(string employeeId)
{
var data = employeeDal.EmployeeReport(employeeId);
return data;
}
员工控制器.cs
EmployeeBLL employeeBll=new EmployeeBLL();EmployeeBLL employeeBll=new EmployeeBLL();
public ActionResult DownloadEmployeeReport(string employeeId)
{
//ApplicationDbContext db = new ApplicationDbContext();
var data = employeeBll.EmployeeReportVM(employeeId);
ReportDocument rd = new ReportDocument();
rd.Load(Path.Combine(Server.MapPath("~/Reports"), "EmployeeReport.rpt"));
rd.SetDataSource(data.Select(c => new
{
Image = c.Image,
EmployeeName = c.EmployeeName,
EmployeeId = c.EmployeeId,
Department = c.Department,
Designation = c.Designation
}).Where(x => x.EmployeeId == employeeId));
//string pathString = Path.Combine(@"D:\Sayeem\Project\NassaHRMS\Content\Images");
Response.Buffer = false;
Response.ClearContent();
Response.ClearHeaders();
rd.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;
rd.PrintOptions.ApplyPageMargins(new CrystalDecisions.Shared.PageMargins(5, 5, 5, 5));
rd.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA5;
//rd.SetDatabaseLogon("root","", "NassaHRMS", "DESKTOP-PN96TKB");
Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/pdf", "EmployeeDetails.pdf");
}
EmployeeList.cshtml
@using (Html.BeginForm("Edit", "Account", new { id = @item.EmployeeId }, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<a class="btn btn-sm btn-outline-info" target="_blank" href="@Url.Action("DownloadEmployeeReport", "Employee",new { @employeeId = item.EmployeeId})"><i class="fa fa-print" title="Print Card"></i></a>
}
水晶报表的位置 在 此处输入图片描述
解决方案
我猜你在这里做的一切都是对的。只是picture2
图形位置的一些问题。您的数据库图像列包含什么?它是否只包含图像名称,someimage.jpg
那么您的图形位置应该如下所示。
D:\Sayeem\Project\NassaHRMS\EmployeeImage\ + NassaHRMS_ViewModels_EmployeeReportVM.Image
如果它包含完整Physical Path
的,D:\Sayeem\Project\NassaHRMS\EmployeeImage\someimage.jpg
那么您的图形位置应该如下所示
NassaHRMS_ViewModels_EmployeeReportVM.Image
推荐阅读
- r - 使用 R 解压缩 .tif.gz 文件
- google-cloud-platform - 有没有办法可以将 GCP 存储用作外部驱动器?
- java - 有没有办法在 Android Studio 的列表视图上显示连续数据?
- json - 我如何打印带有其他文本的 json 对象
- android - 如何在 SVG ViewBox 中显示特定元素(SVG 部分)
- c++ - 什么是 c++ std::unordered_map 默认容器?
- wordpress - Wordpress 网站在调试模式下显示错误且没有问题
- python - 使用 Beautifulsoup 在 python 中下载图像
- kotlin - Kotlin - 使用改造 gson 解析 JSON 对象
- python - 每次合并时,熊猫都会合并一个值