您的位置:程序门 -> .net技术 -> 图表区



¦m¦ 200分求救水晶报表:不显示图片的问题,原文件已经上传到网上请大家帮忙看一下


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


|m| 200分求救水晶报表:不显示图片的问题,原文件已经上传到网上请大家帮忙看一下[已结贴,结贴人:zyciis356]
发表于:2007-07-29 23:36:51 楼主
http://www.yingyi99.com/source/reporttest.rar
我已经照着网上的做了,也搜了很多资料就是不显示图片
上面是我的源码   大家看看在哪里出错了

文字都显示出来了,但那个图片就是不显示
还有
程序中要放一个1.jpg图片都c盘
我都已经图片转成byte[]了   再存为2.jpg的时候说明转byte[]后数据是没有问题的
但是不知道为什么就是不显示图片出来

谢谢
发表于:2007-07-30 13:05:111楼 得分:0
up
发表于:2007-07-30 13:41:382楼 得分:0
下不下了你的文件,你再看看,应该是哪里代码写错了,我用水晶报表做过显图片程序,没出现过这种问题。
发表于:2007-07-30 14:01:163楼 得分:0
可以下载下来啊
麻烦多试一下
这问题有好几天了

谢谢
发表于:2007-07-30 17:01:184楼 得分:0
我的也是这种情况,数据能显示,就是图片不显示
发表于:2007-07-30 18:23:435楼 得分:0
up
发表于:2007-07-30 23:04:266楼 得分:0
up
发表于:2007-07-31 01:19:057楼 得分:50
protected   void   page_load(object   sender,   eventargs   e)
    {
        print   ds   =   new   print();         ;
        datarow   row   =   ds.table[ "printticket "].newrow();
        //row[ "ticketid "]=..;
        //为对应的字段赋值
        system.io.filestream   fs=   new   system.io.filestream( "c:\\1.jpg ",   io.filemode.open);
        byte[]   bytes=   new   byte[fs.length];
        fs.read(bytes,0.bytes.length);
        fs.close();    
        row[ "ticketimg "]=   bytes;
        ds.table[ "printticket "].rows.add(row);
        reportdocument   mydoc   =   new   reportdocument();
        string   filepath   =   server.mappath( "myreport.rpt ");
        mydoc.load(filepath);
        mydoc.setdatasource(ds);
        cr1.reportsource   =   mydoc;
    }
发表于:2007-07-31 10:11:508楼 得分:0
dataset   ds   =   new   dataset();
ds.tables.add(dt);
datarow   row   =   ds.tables[ "printticket "].newrow();
//row[ "ticketid "]=..;
//为对应的字段赋值
system.io.filestream   fs   =   new   system.io.filestream( "c:\\1.jpg ",   system.io.filemode.open);
byte[]   bytes   =   new   byte[fs.length];
fs.read(bytes,   0,(int)fs.length);
fs.close();
row[ "ticketimg "]   =   bytes;
ds.tables[ "printticket "].rows.add(row);
reportdocument   mydoc   =   new   reportdocument();
string   filepath   =   server.mappath( "myreport.rpt ");
mydoc.load(filepath);
mydoc.setdatasource(ds);
cr1.reportsource   =   mydoc;

还是没有图片
而且感觉和我写的没有什么区别
发表于:2007-07-31 13:08:569楼 得分:0
有区别,一个用的是强类型数据集,而你的不是
print   ds   =   new   print();         //这个是定义一个强类型数据集,在你的项目中可以看见
发表于:2007-07-31 13:54:2910楼 得分:0
你的print的全命名空间是什么
我运行你的程序都是错误
:
ds.table[ "printticket "].newrow();           “print”并不包含“table”的定义
fs.read(bytes,0.bytes.length);                 “int”并不包含“bytes”的定义

谢谢
发表于:2007-07-31 14:57:3311楼 得分:0
强类型数据集,是你要向项目里添加一个数据集对象,然后你可以打开并编辑它,报表也可以用它做数据源。  

他的print与你直接用dataset的区别是,他用的是项目里的数据集(也是一个类),而你是在运行时才生成的一个数据集!
发表于:2007-07-31 15:01:0012楼 得分:0
这个print是看了你的源码后发现的,在你的项目中有一个print.xsd文件,这个就是强类型数据集
发表于:2007-07-31 18:26:4413楼 得分:0
那我的怎么总是报错啊
如果可以显示出图片可不可以给我一份啊
never52fc@163.com
发表于:2007-07-31 18:28:2014楼 得分:0
那么引用是对的但是他报
ds.table[ "printticket "].newrow();           “print”并不包含“table”的定义
fs.read(bytes,0.bytes.length);                 “int”并不包含“bytes”的定义
发表于:2007-08-01 00:01:4315楼 得分:0
ds.tables[ "printticket "]
发表于:2007-08-01 14:26:3116楼 得分:0
无法将类型为“system.byte[]”的对象强制转换为类型“system.iconvertible”。不能在   ticketimg   列中存储   <system.byte[]> 。所需类型是   byte。
然后我把我的dataset   ticketimg类型system.byte   改为   system.byte[]
可以运行,但是还是没有图片出来

如果你的可以可不可以发一份给我
never52fc@163.com

再加100分
谢谢
发表于:2007-08-01 15:54:3217楼 得分:0
在xsd文件中将printticket的类型改为base64binary
发表于:2007-08-01 16:05:5818楼 得分:0
ticketimg列要求有效的   datatype。base64binary

好像base64binary是winform的
发表于:2007-08-01 16:06:3119楼 得分:0
webform是   system.byte[]
发表于:2007-08-02 14:58:0320楼 得分:0
up
发表于:2007-08-02 17:20:2221楼 得分:50
我来jf了,哈~~
发表于:2007-08-02 20:22:3922楼 得分:0
关注,帮顶了.........


快速检索

最新资讯
热门点击