<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    public MemoryStream GenerateRdlc()
    {
     XmlDocument sourceDoc = new XmlDocument();
     string path = AppDomain.CurrentDomain.BaseDirectory + "Test/OrderList.rdlc";
     sourceDoc.Load(path);
     Hashtable reportColumns = GetReportColumns(sourceDoc.LastChild);
     //just remove
     for (int i = 0; i < reportColumns.Count; i++)
     {
      if (!FindReportCoulmns(reportColumns[i].ToString()))
      {
       RemoveColumnFromRdlc(sourceDoc.LastChild, i);
      }
     }

     MemoryStream ms = new MemoryStream();
     XmlSerializer serializer = new XmlSerializer(typeof(XmlDocument));
     serializer.Serialize(ms, sourceDoc);
     ms.Position = 0;
     return ms;
    }
      至于如何GetReportColumns和RemoveColumnFromRdlc,那就很簡單了,就是一個操作xml對象的過程。比方說:
    private Hashtable GetReportColumns(XmlNode root)
    {
     Hashtable cols = new Hashtable();
     //XmlNamespaceManager s=new XmlNamespaceManager(
      XmlNode cells = FindChildNode(root,"Body/ReportItems/Table/Header/TableRows/TableRow/TableCells");
     for (int i = 0; i < cells.ChildNodes.Count; i++)
     {
      XmlNode cell =FindChildNode( cells.ChildNodes[i],"ReportItems/Textbox/DataElementName");
      cols[i] = cell.InnerText;
     }
     return cols;
    }
      這是使用這一段的代碼:
    this.ReportViewer1.LocalReport.LoadReportDefinition(this.Report.GenerateRdlc());
    this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", result.Tables[0]));
    this.ReportViewer1.LocalReport.Refresh();
      這個方法終于成功了。

      附:rdlc文件的xml一段結構

      xml結構
    1<?xml version="1.0" encoding="utf-8"?>
    2<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
    3 <DataSources>
    4 <DataSource Name="ConnectionString">
    5 <ConnectionProperties>
    6 <ConnectString />
    7 <DataProvider>SQL</DataProvider>
    8 </ConnectionProperties>
    9 <rd:DataSourceID>073016a7-6cb0-4e06-a6fd-f5882a039188</rd:DataSourceID>
    10 </DataSource>
    11 </DataSources>
    12 <BottomMargin>2.5cm</BottomMargin>
    13 <RightMargin>2.5cm</RightMargin>
    14 <PageWidth>21cm</PageWidth>
    15 <rd:DrawGrid>true</rd:DrawGrid>
    16 <InteractiveWidth>21cm</InteractiveWidth>
    17 <rd:GridSpacing>0.25cm</rd:GridSpacing>
    18 <rd:SnapToGrid>true</rd:SnapToGrid>
    19 <Body>
    20 <ColumnSpacing>1cm</ColumnSpacing>
    21 <ReportItems>
    22 <Chart Name="chart1">

    文章來源:http://www.cnblogs.com/wangdetian168/archive/2008/09/03/1283351.html
    posted on 2010-09-29 13:28 sanmao 閱讀(330) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成网站在线观看播放| 日韩精品电影一区亚洲| 亚洲精品无码不卡| 国产精品区免费视频| 久久久久亚洲精品成人网小说| 久久久精品视频免费观看 | 精品久久久久久国产免费了| 一本色道久久88亚洲综合| 激情无码亚洲一区二区三区| 国产美女a做受大片免费| 国产亚洲综合视频| 亚洲国产av无码精品| 一个人看的hd免费视频| 亚洲成AV人在线观看网址| 无套内射无矿码免费看黄| 国产aⅴ无码专区亚洲av麻豆 | 亚洲一区二区免费视频| 亚洲一级毛片视频| 看全色黄大色大片免费久久| 黄页免费视频播放在线播放| 亚洲中文字幕无码一区二区三区| av永久免费网站在线观看| 亚洲欧洲精品在线| 日本无卡码免费一区二区三区| 高潮毛片无遮挡高清免费| 国产亚洲高清不卡在线观看| 67pao强力打造国产免费| 亚洲欧美国产国产一区二区三区| 亚洲成?Ⅴ人在线观看无码| 久久久99精品免费观看| 亚洲深深色噜噜狠狠网站| 亚洲欧洲精品成人久久奇米网| 亚洲精品免费视频| 日韩色视频一区二区三区亚洲| 亚洲一区二区三区AV无码| 国产在线jyzzjyzz免费麻豆| 美女视频黄.免费网址| 亚洲日韩区在线电影| 国产又大又粗又硬又长免费 | 最好看的中文字幕2019免费| 久久精品国产亚洲AV未满十八|