zoukankan      html  css  js  c++  java
  • [转]简单的动态修改RDLC报表页边距和列宽的方法

    本文转自:http://star704983.blog.163.com/blog/static/136661264201161604413204/

    1.修改页边距

    XmlDocument XMLDoc = new XmlDocument();
    XMLDoc.Load(System.Windows.Forms.Application.StartupPath + @"Report_try-2.rdlc");
    XmlNamespaceManager xmn = new XmlNamespaceManager(XMLDoc.NameTable);
    xmn.AddNamespace("X", "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition");
    string strXPath;
    strXPath = "/X:Report/X:Page/X:LeftMargin"; 
    XmlNode Node = XMLDoc.SelectSingleNode(strXPath, xmn).ChildNodes.Item(0);     // 读取左边距
    Node.InnerText = "20mm";      // 左边距改为20mm
    XMLDoc.Save(System.Windows.Forms.Application.StartupPath + @"Report_try-2.rdlc");  // 写XML
     
    修改右、上、下边距方法和上述方法一样,只需要更改 strXPath = "/X:Report/X:Page/X:LeftMargin"; 
     
    2.修改表格列宽
    XmlDocument XMLDoc = new XmlDocument();
    XMLDoc.Load(System.Windows.Forms.Application.StartupPath + @"Report_try-2.rdlc");
    XmlNamespaceManager xmn = new XmlNamespaceManager(XMLDoc.NameTable);
    xmn.AddNamespace("X", "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition");
    string strXPath;
    strXPath = "/X:Report/X:Body/X:ReportItems/X:Tablix/X:TablixBody";
    XmlNodeList NDList = XMLDoc.SelectSingleNode(strXPath, xmn).ChildNodes;
    XmlNode subNode = NDList.Item(0);
    /*
    subNode.ChildNodes.Count即为报表列数
    subNode.ChildNodes.Item(X).innerText即为第X列的列宽,X下标从0开始
    */
    subNode.ChildNodes.Item(0).InnerText = "20mm";     // 修改第一列列宽为20mm
    XMLDoc.Save(System.Windows.Forms.Application.StartupPath + @"Report_try-2.rdlc");  // 写XML
  • 相关阅读:
    【进阶技术】一篇文章搞掂:Spring Cloud Stream
    es6的foreach循环遍历
    centos下安装redis
    linux下安装nginx
    centos下安装Mysql5.7.20
    ubuntu下安装Mysql
    Maven发布项目丢失Mybatis Mapper包的映射问题
    linux下导入导出oracle的dmp文件
    表达式计算-----------eval()运算符
    Linux下安装mysql
  • 原文地址:https://www.cnblogs.com/freeliver54/p/9599253.html
Copyright © 2011-2022 走看看