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
  • 相关阅读:
    hrbust 1840 (树状数组第k大) 删点使用
    20150211--Smarty2-02
    20150211--Smarty2-01
    20150210--Smarty1-02
    20150210--Smarty1-01
    20150209--JS巩固与加强6-02
    20150209--JS巩固与加强6-01
    20150207--JS巩固与加强5
    20150206--JS巩固与加强4-02
    20150206--JS巩固与加强4
  • 原文地址:https://www.cnblogs.com/freeliver54/p/9599253.html
Copyright © 2011-2022 走看看