问题描述
寻找解决方案?我正在做一个通过报表制作模板打印票据的功能,需要打印条码。有两种可参考方案,由于能力有限我没能研究出来:方法一:由于报表在定义显示字段时需要指定数据集,定义数据表二进制字段CodeBytes,在程序初始化时新建一个DataTable定义Row["CodeBytes"]保存条形码。为Report添加LocalReport指定DataSources和ReportPath。结果显示“错误号”部分代码如下:publicvoidInitialBarCode(DataTabledtPict,stringcode,intbarCodeMaxHeight){MemoryStreamms=newMemoryStream();BinaryWriterbw;BarcodeDrawdraw=null;draw=InstallBarcodeDraw(draw);draw.Draw(code,barCodeMaxHeight).Save(ms,ImageFormat.Png);draw.Draw(code,barCodeMaxHeight).Save("file.png");//保存为图片,显示正确byte[]pictBytes=newbyte[ms.Length];bw=newBinaryWriter(ms);bw.Write(pictBytes);DataRowrow=dtPict.NewRow();row["PictureBytes"]=pictBytes;dtPict.Rows.Add(row);bw.Flush();bw.Close();bw.Dispose();ms.Close();ms.Dispose();}方法二:我没试,有些不懂。由于VS2010自带的Report是rdlc格式其实是一个XML格式文件.保存了数据的相关信息(如位置,字体)等。我试着在报表设计器中添加本地图片,结果在XML中以二进制方式保存着。所以第二种方法可能可以在读取报表数据时替换已有的图片二进制信息。由于没做过相关功能。希望大虾们指点迷津
解决方案
解决方案二:
网上有说水晶报表可以直接显示二进制图片,只需将字段拖到报表中就行。不知道VS2010的Report有没这个功能。?????
解决方案三:
楼主,你实现显示二进制数据了没?我正等着你的解决方案,麻烦发一份到我邮箱咯:liyecheng1115@163.com