szpzr 发表于 2017-4-17 12:44:20

区域报表的picture控件

区域报表中放置picture控件,为什么打印的图像跟保存到数据库image字段图像旋转90度,如何设置才能保持一致。

Lenka.Guo 发表于 2017-4-17 16:01:44

您好,

您是说报表打印到纸张之后,将数据库的图片自动旋转了90度?还是说将报表呈现在客户端时,图片旋转了90度?
这边没有重新您说的问题,打印预览均为正常,是否存储到数据库的图片源本身就是旋转90度?

szpzr 发表于 2017-4-18 13:59:41

保存前图片:
报表打印效果:
保存图片到数据库:
string FileType = FileUpload1.PostedFile.ContentType;//获取文件的格式
                  string FileName = FileUpload1.FileName;            //文件名称
                  string FilePath = FileUpload1.PostedFile.FileName; //文件路径
                  int FileSize = FileUpload1.PostedFile.ContentLength;//获取文件的大小
                  //保存文件到数据库
                  //文件大小
                  int intDoclen = FileUpload1.PostedFile.ContentLength;
                  //设置缓冲的大小
                  byte[] Docbuffer = new byte;
                  //将上传文件的内容保存到缓冲中
                  Stream objStream;
                  objStream = FileUpload1.PostedFile.InputStream;
                  objStream.Read(Docbuffer, 0, intDoclen);
                  //FileData = FileUpload1.FileBytes;//得到文件数组
                  Convert.ToBase64String(Docbuffer);
                  string MNoteNo = TxtNoteNo.Text.Trim();
                  string MFiletype = FileUpload1.PostedFile.ContentType;//文件类型
                  //strselect1 = "Insert into Project_Manage_File(NoteNo,FileType,FileName,ProjectFile) values(@NoteNo,@FileType,@FileName,@ProjectFile)";
                  //执行存储过程
                  Cmd = new SqlCommand("In_PurchaseApply_File", Sqlcon, Tran);
                  Cmd.CommandType = CommandType.StoredProcedure;
                  Cmd.Parameters.Add("@NoteNo", SqlDbType.VarChar, 8);
                  Cmd.Parameters.Add("@FileType", SqlDbType.VarChar, 500);
                  Cmd.Parameters.Add("@FileName", SqlDbType.VarChar, 100);
                  Cmd.Parameters.Add("@ProjectFile", SqlDbType.Image);
                  Cmd.Parameters.Value = MNoteNo;
                  Cmd.Parameters.Value = MFiletype;
                  Cmd.Parameters.Value = FileName;
                  Cmd.Parameters.Value = Docbuffer;
                  Cmd.ExecuteNonQuery();
从数据库取出打印报表
SqlStr = "Select NoteFile From where NoteNo='" + NoteNo + "'";
            Cmd = new SqlCommand(SqlStr, SqlCon);
            Dr=Cmd.ExecuteReader();
            if (Dr.Read())
            {
                byte[] MeansContentObj = (byte[])Dr["NoteFile"];
                MemoryStream ms = new MemoryStream(MeansContentObj);
                Bitmap bmp = new Bitmap(ms);
                this.picture1.Image = bmp;
            }
图片大小是否会造成这种情况?

Lenka.Guo 发表于 2017-4-18 16:49:55

报表控件不会自动旋转图片,而是提供的是什么数据源就是展示什么,所以您需要检查在存储到数据库之前图片是否发生过旋转

szpzr 发表于 2017-4-18 17:04:42

数据库导出方向是对的。

Lenka.Guo 发表于 2017-4-18 17:25:57

您可以直接把图片的资源设置为 本地那张图片来测试。

szpzr 发表于 2017-4-19 07:38:07

本地图片设置后就旋转90度。

szpzr 发表于 2017-4-19 07:42:09

图片控件放置在细节和报表尾有区别吗?

szpzr 发表于 2017-4-19 07:44:12

一样的。

szpzr 发表于 2017-4-19 09:46:44

原始图片高度大于宽度就会旋转。
页: [1] 2
查看完整版本: 区域报表的picture控件