请问在水晶报表里面,怎样根据图片的路径和文件名,动态加载打印出来?100分相送!不够再加!

cxyPioneer 2005-04-19 09:46:25
如标题
...全文
342 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
daisylh 2005-04-22
  • 打赏
  • 举报
回复
哈~我的也解決了,提供一個完整的鏈結:
http://dev.csdn.net/develop/article/26/26646.shtm
daisylh 2005-04-22
  • 打赏
  • 举报
回复
cxyPioneer(sunny),panda2fw2(我爱Monkey):
你們好!
我是用ACCESS資料庫,對圖片做了兩個欄位:一個是字符存入圖片的路徑,一個為空的OLE物件
根據上面的寫法我去嘗試,怎麽出不來呢?
我把圖片改為BMP也不行,是怎麽回事呢?
能否幫我指點一下,好嗎?謝謝
panda2fw2 2005-04-21
  • 打赏
  • 举报
回复
我的qq是3081309,没用msn,你不会不用qq吧?哈哈!
kqh0319 2005-04-21
  • 打赏
  • 举报
回复
panda2fw2(我爱Monkey) :这种方法最方便了。。。。。。。。。如果有好的,希望大家贴出来共享...
cxyPioneer 2005-04-21
  • 打赏
  • 举报
回复
因为我用的是access,access中只有oledb这种类型才能存储图片
cxyPioneer 2005-04-21
  • 打赏
  • 举报
回复
你有没有MSN啊,我的MSN是njcxy0218@hotmail.com,向你学习一下
panda2fw2 2005-04-21
  • 打赏
  • 举报
回复
我用的就是jpg格式的,为什么只能是bmp格式?
cxyPioneer 2005-04-21
  • 打赏
  • 举报
回复
在windows2003的我的XSD怎么用向导制作不起来
cxyPioneer 2005-04-21
  • 打赏
  • 举报
回复
我试了在access中把图片的类型设为oledb,然后用程序把图片用二进制的形式写进去,然后在报表上就可以显示了,但图片只能是bmp格式的,如果图片大的话还浪费时间
panda2fw2 2005-04-21
  • 打赏
  • 举报
回复
access没有用过,你在报表里把数据库加进来,把字段直接拖到报表上看可不可以。
cxyPioneer 2005-04-21
  • 打赏
  • 举报
回复
我的数据库access的,该如何实现?
playboy88 2005-04-20
  • 打赏
  • 举报
回复
我也需要怎样根据图片的路径制作报表!请告知,另开贴散分!500
playboy9832@sina.com
panda2fw2 2005-04-19
  • 打赏
  • 举报
回复
找到了一个解决方案。
先添加一个dataset,创建表images,字段name(string),image(base64Binary);

添加水晶报表,在添加数据库中把dataset的表images添加进来,把image字段拖到想要的位置。

下面是添加图片代码。
//
//生成报表
CrystalReport1 crRpt1 = new CrystalReport1();
//生成DataSet
Dataset1 myDataSet = new Dataset1();

string path = Application.StartupPath + @"\rui costa.jpg";//图片的路径
AddImage(myDataSet.Tables[0],"Rui Costa",path);//添加图片到Dataset,方法在下面

//设置报表数据源和显示报表
crRpt1.SetDataSource(myDataSet);
this.crystalReportViewer1.ReportSource = crRpt1;
this.crystalReportViewer1.RefreshReport();

//添加图片到Dataset的方法
void AddImage(DataTable Table, string Name, string FilePath)
{
FileStream fileStream = new FileStream(FilePath, FileMode.Open);
BinaryReader br = new BinaryReader(fileStream);

DataRow dr = Table.NewRow();

dr[0] = Name;
dr[1] = br.ReadBytes((int)br.BaseStream.Length);

Table.Rows.Add(dr);

br.Close();
fileStream.Close();
}

已经测试过了,没有问题。
panda2fw2 2005-04-19
  • 打赏
  • 举报
回复
不知道啊。难啊。希望有高手来解决一下,随便学习。
daisylh 2005-04-19
  • 打赏
  • 举报
回复
我也沒有實現,關注中

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧