<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 閱讀(326) 評論(0)  編輯  收藏

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


    網站導航:
     

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成网站在线播放影院在线 | 精品久久久久久无码免费| 亚洲欧洲日产国码在线观看| 亚洲人成无码网WWW| 黄网址在线永久免费观看| 91久久精品国产免费直播| 最近2019中文字幕mv免费看| a级在线观看免费| 人成午夜免费大片在线观看| 亚洲中文字幕久久精品无码VA| 亚洲狠狠综合久久| 亚洲午夜久久久久久久久久 | 男人的天堂av亚洲一区2区| 亚洲精品不卡视频| 亚洲午夜精品久久久久久人妖 | 国产精品免费久久久久久久久| 亚洲av永久无码精品网址| 亚洲人成免费网站| 久久亚洲日韩精品一区二区三区| 亚洲乱码中文字幕久久孕妇黑人 | 国产免费一区二区三区免费视频| 综合偷自拍亚洲乱中文字幕| 亚洲免费网站观看视频| 亚洲一区二区三区亚瑟| 亚洲国产成人久久三区| 亚洲成a人片在线观| 亚洲综合久久1区2区3区| 亚洲AV日韩精品久久久久久| 人人狠狠综合久久亚洲88| 亚洲人成人无码网www电影首页| 亚洲精品综合久久| 狠狠亚洲狠狠欧洲2019| 亚洲中文字幕无码久久2017| 亚洲日韩国产成网在线观看| 亚洲午夜激情视频| 亚洲乱码一区二区三区在线观看 | 国产成人高清精品免费观看| 一个人晚上在线观看的免费视频 | 亚洲女同成av人片在线观看| 国产亚洲美日韩AV中文字幕无码成人| 国产啪亚洲国产精品无码|