我一直在尝试在水晶报告中显示图像。我能够从数据库中获取路径。我把路径放在水晶报告中。而不是显示图像,它显示路径。
for (int rowNumber = 0; rowNumber < dataTable.Rows.Count; rowNumber++)
{
string imgName = HttpContext.Current.Server.MapPath(dataTable.Rows[rowNumber]["logopath"].ToString());
DisplayImages(dataTable.Rows[rowNumber], "logopath", imgName);
}
private void DisplayImages(DataRow row, string img, string ImagePath)
{
FileStream stream = new FileStream(ImagePath, FileMode.Open, FileAccess.Read);
byte[] ImgData = new byte[stream.Length];
stream.Read(ImgData, 0, Convert.ToInt32(stream.Length));
stream.Close();
row[img] = ImgData;
}
你可以告诉我我错过了什么。
答案 0 :(得分:0)
我建议创建一个PictureObject,将图片放在上面,然后将其添加到报告中,看看下面的代码:
private void PictureData_Click(object sender, EventArgs e)
{
CrystalDecisions.ReportAppServer.ReportDefModel.PictureObject boPictureObject;
CrystalDecisions.ReportAppServer.ReportDefModel.Section boSection;
rpt.Load("D:\\CPP Net\\RASXIR2Printer\\oleobject.rpt");
rptClientDoc = rpt.ReportClientDocument;
String MyfilePath = "C:\\temp\\sample1.jpg";
//Determine which section to add the picture field to - in this case the report header section
boSection = rptClientDoc.ReportDefController.ReportDefinition.ReportHeaderArea.Sections[0];
//Add it to the report
boPictureObject = rptClientDoc.ReportDefController.ReportObjectController.ImportPicture(MyfilePath, boSection, 1, 1);
}