把Form中的一幅图片添加到CrystalReport 打印。并控制在CrystalReport 的位置。大小等
  CrystalReport 以前没有用过。。请各位赐教。。

解决方案 »

  1.   

    在报表设计视图点右键,选insert->picture
      

  2.   

    和word插入图片一样简单,菜单中有
      

  3.   

    谢谢两位。。这样的只是从硬盘上得到一个图片。。
    我 要的是把一个form的一个图片 添加到CrystalReport中。。
    -----------
    “在报表设计视图点右键,选insert->picture” 那我怎么用程序 改变“picture” 中的图片
      

  4.   

    我在网上看到 “把图片存到数据库,在数据库里设为image字段,然后把该字段拖到报表里面就行了”
    不知道怎么把图片存到数据库里?
      

  5.   

    将图片插入数据库:
    http://dotnet.aspx.cc/article/9154bc99-df64-4e2d-b096-26c99ce464be/read.aspx
      

  6.   

    我在网上看到 “把图片存到数据库,在数据库里设为image字段,然后把该字段拖到报表里面就行了”
    不知道怎么把图片存到数据库里?
    ----------------------------------------------
    用这种方法可以实现int upState=0;
    string fileextension; 
    string fileoldname; 
    string fileType;
    byte[] input;
    int FileLen;
    System.IO.Stream fStream;
    CreateStreamDataSet(ref ds);
    DataTable dt = ds.Tables["upfile"]; 
    HttpPostedFile upfile; 
    HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; 

    try 

    for (int ifile = 0; ifile <= files.Count - 1; ifile++) 

    upfile = files[ifile]; 
    fileType=upfile.ContentType;
    fileoldname = System.IO.Path.GetFileName(upfile.FileName); 

    if ((fileoldname != "")) 

    fileextension = System.IO.Path.GetExtension(fileoldname).ToLower(); 

    if ((uploadType.IndexOf(fileextension) == -1)) 
    {
    upState=0;
    return upState;

    else 
    {
    FileLen = upfile.ContentLength;
    if ((FileLen > maxFileSize)) 

    upState=1;
    return upState;

    else 

    input = new byte[FileLen];
    fStream = upfile.InputStream;
    fStream.Read(input, 0, FileLen);
    DataRow dr = dt.NewRow(); 
    dr[1] = fileoldname; 
    dr[2] = fileType; 
    dr[3] = input; 
    dt.Rows.Add(dr); 
    upState=2;





    catch(Exception er)
    {  Punoja.Common.WErrorLog.BuildErrorLog(er);
    }
    return upState;
      

  7.   

    int upState=0;
    string fileextension; 
    string fileoldname; 
    string fileType;
    byte[] input;
    int FileLen;
    System.IO.Stream fStream;
    CreateStreamDataSet(ref ds);
    DataTable dt = ds.Tables["upfile"]; 
    HttpPostedFile upfile; 
    HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; 

    try 

    for (int ifile = 0; ifile <= files.Count - 1; ifile++) 

    upfile = files[ifile]; 
    fileType=upfile.ContentType;
    fileoldname = System.IO.Path.GetFileName(upfile.FileName); 

    if ((fileoldname != "")) 

    fileextension = System.IO.Path.GetExtension(fileoldname).ToLower(); 

    if ((uploadType.IndexOf(fileextension) == -1)) 
    {
    upState=0;
    return upState;

    else 
    {
    FileLen = upfile.ContentLength;
    if ((FileLen > maxFileSize)) 

    upState=1;
    return upState;

    else 

    input = new byte[FileLen];
    fStream = upfile.InputStream;
    fStream.Read(input, 0, FileLen);
    DataRow dr = dt.NewRow(); 
    dr[1] = fileoldname; 
    dr[2] = fileType; 
    dr[3] = input; 
    dt.Rows.Add(dr); 
    upState=2;





    catch(Exception er)
    {  Punoja.Common.WErrorLog.BuildErrorLog(er);
    }
    return upState;
      

  8.   

    有没有人用过呀,这个功能不好实现哟
    首先我建成了一个dataset1.xsd 里面建一下Photo字段,他的数据类型找不到image类型
    设成Byte型不能用,而Photo在数据库在存的是image类型
      

  9.   

    好 谢谢 各位 。。我已经弄好了 。
    using System.IO ;
    namespace test
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
     
                DataSet1 ds = new DataSet1();
                this.AddOneRow(ds.Tables[0], @"c:\1.jpg"); //
                CrystalReport1 reportDocument1 = new CrystalReport1();
                reportDocument1.SetDataSource(ds);
                this.crystalReportViewer1.ReportSource = reportDocument1;
          
            }        public void AddOneRow(System.Data.DataTable mydt, string strImgPath)
        {
            FileStream fs = new FileStream(strImgPath, FileMode.Open);
            BinaryReader br = new BinaryReader(fs);
             System.Data.DataRow row;
             row = mydt.NewRow();
             row[0] = br.ReadBytes((int)br.BaseStream.Length);
             mydt.Rows.Add(row);
                fs=null;
                br=null;
        }
        }
    DataSet1 中的table 定义了一个DataColumn “img1” 类型是System.Byte[];
    主要是AddOneRow
    参考
    http://www.cnblogs.com/Files/babyt
    完整代码请在此处下载 
    http://www.cnblogs.com/Files/babyt/CR_DynLoadPics.rar