SunDream° 发表于 2016-6-17 10:39:05

关于将存到数据库的流文件加载到对应类型报表的相关问题!

本帖最后由 Lenka.Guo 于 2016-6-17 15:14 编辑

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


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

Lenka.Guo 发表于 2016-6-17 15:14:33

本帖最后由 Lenka.Guo 于 2016-7-22 14:05 编辑

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



1. 从数据库读取报表


using (MemoryStream ms = new MemoryStream())
{
(ObjectReport as SectionReport).SaveLayout(ms);
ms.Position = 0;
using (StreamReader sr = new StreamReader(ms, Encoding.Unicode))
{
_dict.Add("CONTENT", sr.ReadToEnd());
}

}2. 将报表写入数据库
using (MemoryStream ms = new MemoryStream())
{
using (StreamWriter sw = new StreamWriter(ms, Encoding.Unicode))
{
sw.Write(_dr["CONTENT"].ToString());
sw.Flush();
ms.Position = 0;
//需要区分区域报表
if (_dr["TYPE_ID"].ToString().Equals("4"))
{
m_Designer.LoadReport(XmlReader.Create(ms), DesignerReportType.Section);
}
else
{
m_Designer.LoadReport(XmlReader.Create(ms), DesignerReportType.Page);
}

}
}




SunDream° 发表于 2016-6-17 16:30:01

Lenka.Guo 发表于 2016-6-17 15:14
将数据库的流文件读取出来转换为TextReader类型      然后转换为PageReport.

谢谢~ 解决了!

Lenka.Guo 发表于 2016-6-17 17:23:48

SunDream° 发表于 2016-6-17 16:30
谢谢~ 解决了!

:hjyzw:
页: [1]
查看完整版本: 关于将存到数据库的流文件加载到对应类型报表的相关问题!