原文:将RDL报表转换成RDLC报表的函数

    近日研究RDLC报表,发现其不能与RDL报表兼容,尤其是将RDL报表转换成RDLC报表。网上的资料贴出的的转换方式复杂且不切实际,遂决定深入研究。经研究发现,RDL报表与RDLC报表的XML格式有些差异,将RDL报表的XML格式改成与RDLC报表的XML格式相同,发现转换成功! 如需转换123.rdl文件,只需RDLConvertRDLC("123.rdl"),即可转换成123.rdlc文件。由于本人对带命名空间的XML文件操作不熟悉,不能将除根节点意外的其他节点的xmlns属性只去掉,如有高手,欢迎指教!
        private void RDLConvertRDLC(string strFile){if(File.Exists(strFile)){try{XmlDocument xmlBak;XmlNamespaceManager nsMgrBak;XmlNodeList Reports;// 打开需转换的XML文件try{xmlBak = new XmlDocument();xmlBak.Load(strFile);nsMgrBak = new XmlNamespaceManager(xmlBak.NameTable);nsMgrBak.AddNamespace("nsBak", "http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition");Reports = xmlBak.SelectSingleNode("/nsBak:Report", nsMgrBak).ChildNodes;}catch{File.Move(strFile, strFile + "c");return;}// 创建新的XML文件XmlDocument xmlDoc = new XmlDocument();XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);xmlDoc.AppendChild(dec);// 创建一个根节点ReportXmlElement root = xmlDoc.CreateElement("Report");root.SetAttribute("xmlns:rd", "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner");root.SetAttribute("xmlns", "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition");xmlDoc.AppendChild(root);// 拷贝节点数据到新XML文件for (int i = 0; i < Reports.Count; i++){if (Reports[i].Name != "AutoRefresh"){if (Reports[i].Name == "ReportSections"){XmlNodeList ReportSections = xmlBak.SelectSingleNode("/nsBak:Report/nsBak:ReportSections/nsBak:ReportSection", nsMgrBak).ChildNodes;for (int j = 0; j < ReportSections.Count; j++){XmlElement newElement = (XmlElement)xmlDoc.ImportNode(ReportSections[j], true);newElement.SetAttribute("xmlns", "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition");root.AppendChild(newElement);}}else{XmlElement newElement = (XmlElement)xmlDoc.ImportNode(Reports[i], true);newElement.SetAttribute("xmlns", "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition");root.AppendChild(newElement);}}}xmlDoc.Save(@strFile + "c");File.Delete(strFile);}catch (System.Exception ex){MessageBox.Show(ex.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Information);}}else{MessageBox.Show("文件"+strFile+"不存在!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Information);}}}

将RDL报表转换成RDLC报表的函数相关推荐

  1. 将水晶报表转换成ActiveReport报表的工具下载

    在这里我想大家推荐一个AR提供的工具ARImportWizard,大概是AR自己发布的,功能是把CR转换成AR,虽然是日语版的,但是功能还是一样,供大家参考. 2.0版 3.0版 这是我在Framew ...

  2. 使用RDLC报表(三)--向RDLC报表传入参数

    在使用报表向客户展示结果数据时,实时的在报表中显示某些特定的数据是必需的,如:显示的部门.打印的日期等.本文只简单的演示向报表内传入一个字符值.如有其它问题,欢迎讨论. 1.新建一个工程TestRep ...

  3. 制作一个小工具:自动生成“将特定枚举值转换成字符串的C++函数”的代码

    需求 假设我有一种枚举类型: enum fruit_type {apple,banana,orange, }; 我时常会遇到需要将枚举值转换为字符串的情况,即我需要如下的函数: const char* ...

  4. 货币数字转换成中文大写的函数

    这个函数与以前其他网友提供的结构大不相同, 是一个从高位到低位的算法, 更加符合语言习惯. //---------------------------------------------------- ...

  5. 报表用法 获取rdlc报表的控件

    1.对于直接拖入Rdlc报表列表控件中的字段,列表显示控件的显示方式为:相当于每一个列表显示一行数据.如果直接在列表中拖入表控件,则会提示"表"table1"所在的列表中 ...

  6. 将Vba代码转换成Php代码,将这个Excel公式转换成VBA代码(函数)

    将这个Excel公式转换成VBA代码(函数) 这是Excel中的公式,我试图转换为VBA代码: =IFERROR(IF(effDate>curDate,0,IF((curDate-effDate ...

  7. 小写字母转换成大写字母(函数)

    练习,小写字母转换成大写字母 自定义一个函数,实现小写字母到大写字母的转化,如果输入是大写字母,直接输出,如果输入的不是字母,则输出 0. 例如,输入: a 输出: A 难瓜第一次学函数,可能写的有些 ...

  8. 水晶报表使用经验谈1--建立水晶报表第一步及编译最易出现错误的解决方法及报表转换成pdf文档进行打印方法...

    初用水晶报表(vs .net2003集成,版本Version=9.1.5000.0) 装好后要注册 注册号:6707437608 密码:AAP5GKS0000GDE100DS 想要在.aspx文件中使 ...

  9. php 字符串转换为函数是,php把字符串转换成html实体的函数htmlentities()

    实例 把一些字符转换为 HTML 实体: $str = ""; echo htmlentities($str); ?> 上面代码的 HTML 输出如下(查看源代码): 上面代 ...

  10. php 生成拼音缩写,将汉字转换成拼音的php函数

    将汉字转换拼音的php函数,有需要的朋友可以参考下. 复制代码 代码如下: /*--- *功能:将汉字转换为拼音 *函数:Pinyin */ function Pinyin($_String, $_C ...

最新文章

  1. Linux下为什么ls直接就可以运行,而你的程序要写./dir1/dir2/bin/bwa才可以
  2. python post json数据_Python POST Json数据到Http
  3. ELMo:基于上下文的语言模型,5分钟构建语义搜索引擎代码实战
  4. 使用HAProxy、PHP、Redis和MySQL支撑10亿请求每周架构细节
  5. MacBook开机自动连接iPad好评
  6. JEECG开源团队招募成员计划
  7. Hive 求全局Top N
  8. 感知机原理及代码实现小结
  9. 力天创见人脸识别分析客流量
  10. php文件如何转为ppt,pdf文件转换成ppt文件 pdf如何转为ppt
  11. 互联网未来十年发展趋势
  12. 《动态壁纸 : 手机壁纸大全》EULA条款协议
  13. QGIS加载无偏移卫星地图URL
  14. java 8 中文字体_在java程序中直接使用中文字体文件
  15. 186_一文看懂压敏电阻和tvs的区别
  16. pr模板.mogrt格式安装方法
  17. 【Serverlet】学习
  18. Deep Learning for Massive MIMO CSI Feedback-学习笔记
  19. HTML表单制作,上传到服务器
  20. loadrunner的吞吐量和吞吐率

热门文章

  1. [WinError 193] %1 不是有效的 Win32 应用程序问题解决
  2. 【PS3】二之国 白色圣灰的女王 日本制造的视觉效果
  3. python猜拳游戏
  4. javaweb——jsp动作标签
  5. 收集的13个杀毒软件和安全防护软件(有图哦)
  6. 2018世界互联网大会首日,丁磊马化腾雷军等都说了啥?
  7. Vue实现购物车功能
  8. nexus+4+android+6,Android 4.1.1+Nexus S安装BT5
  9. 虚幻4引擎源码学习笔记(二):主循环LaunchEngineLoop
  10. RPG游戏中造过的BUG