找回密码
 立即注册

QQ登录

只需一步,快速开始

SunDream°
社区贡献组   /  发表于:2016-6-17 10:39  /   查看:3121  /  回复:3
本帖最后由 Lenka.Guo 于 2016-6-17 15:14 编辑

现在已经将对应的Report转换为流文件并且存到对应数据表中,  由于前面一直是通过
Designer.LoadReport(XmlReader.Create(ms), DesignerReportType.Section);


这样的方式直接将流文件从数据库中取出并且直接加载到设计器中来显示不怎么实用~   有没有办法直接将流文件加载出来直接转换到  PagReport 或者 SectionReport中呢?   

3 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-6-17 15:14:33
沙发
本帖最后由 Lenka.Guo 于 2016-7-22 14:05 编辑

将数据库的流文件读取出来转换为TextReader类型      然后转换为PageReport.



1. 从数据库读取报表


  1. using (MemoryStream ms = new MemoryStream())
  2. {
  3. (ObjectReport as SectionReport).SaveLayout(ms);
  4. ms.Position = 0;
  5. using (StreamReader sr = new StreamReader(ms, Encoding.Unicode))
  6. {
  7. _dict.Add("CONTENT", sr.ReadToEnd());
  8. }

  9. }
复制代码
2. 将报表写入数据库
  1. using (MemoryStream ms = new MemoryStream())
  2. {
  3. using (StreamWriter sw = new StreamWriter(ms, Encoding.Unicode))
  4. {
  5. sw.Write(_dr["CONTENT"].ToString());
  6. sw.Flush();
  7. ms.Position = 0;
  8. //需要区分区域报表
  9. if (_dr["TYPE_ID"].ToString().Equals("4"))
  10. {
  11. m_Designer.LoadReport(XmlReader.Create(ms), DesignerReportType.Section);
  12. }
  13. else
  14. {
  15. m_Designer.LoadReport(XmlReader.Create(ms), DesignerReportType.Page);
  16. }

  17. }
  18. }
复制代码




评分

参与人数 1满意度 +5 收起 理由
SunDream° + 5 赞一个!

查看全部评分

回复 使用道具 举报
SunDream°
社区贡献组   /  发表于:2016-6-17 16:30:01
板凳
Lenka.Guo 发表于 2016-6-17 15:14
将数据库的流文件读取出来转换为TextReader类型      然后转换为PageReport.

谢谢~ 解决了!
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-6-17 17:23:48
地板
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部