ReportViewer改变图表类型
?/// <summary>
??? /// 切換成柱狀圖
??? /// </summary>
??? /// <param name="sender"></param>
??? /// <param name="e"></param>
??? protected void Button1_Click(object sender, EventArgs e)
??? {
??????? ChangeChartType("Column");
??? }
??? /// <summary>
??? /// 切換成餅狀圖
??? /// </summary>
??? /// <param name="sender"></param>
??? /// <param name="e"></param>
??? protected void Button2_Click(object sender, EventArgs e)
??? {
??????? ChangeChartType("Pie");
??? }
??? /// <summary>
??? /// 切換圖形
??? /// </summary>
??? /// <param name="type"></param>
??? private void ChangeChartType(string type)
??? {
??????? XmlDocument doc = new XmlDocument();
??????? doc.Load("E:/RSTest/Report/Report2.rdlc");
??????? XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable);
??????? xnm.AddNamespace("x", "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
??????? xnm.AddNamespace("rd", "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner");
??????? doc.SelectSingleNode("/x:Report/x:Body/x:ReportItems/x:Chart[@Name='chart1']/x:Type", xnm).InnerText = type;
??????? System.IO.MemoryStream ms = new System.IO.MemoryStream();
??????? doc.Save(ms);
??????? ms.Position = 0;
??????? ReportViewer1.Reset();//一定要Reset才有效
??????? ReportViewer1.LocalReport.LoadReportDefinition(ms);
??????? SqlConnection connection = new SqlConnection(connString);
??????? connection.Open();
??????? string c = "select sum(小學.學校總數) as 小學總數,sum(初中.學校總數) as 初中總數,sum(高中.學校總數)? as 高中總數, sum(小學.總人員) as 小學總人員,sum(初中.總人員) as 初中總人員,sum(高中.總人員)? as 高中總人員, sum(小學.學生電腦總量) as 小學學生電腦總量,sum(初中.學生電腦總量) as 初中學生電腦總量,sum(高中.學生電腦總量)? as 高中學生電腦總量, sum(小學.在編人數) as 小學在編人數,sum(初中.在編人數) as 初中在編人數,sum(高中.在編人數)? as 高中在編人數, sum(小學.教師電腦總量) as 小學教師電腦總量,sum(初中.教師電腦總量) as 初中教師電腦總量,sum(高中.教師電腦總量)? as 高中教師電腦總量, sum(小學.多媒體教室) as 小學多媒體教室,sum(初中.多媒體教室) as 初中多媒體教室,sum(高中.多媒體教室)? as 高中多媒體教室, sum(小學.計算機網絡教室) as 小學計算機網絡教室,sum(初中.計算機網絡教室) as 初中計算機網絡教室,sum(高中.計算機網絡教室)? as 高中計算機網絡教室, sum(小學.建有獨立校園網站學校) as 小學建有獨立校園網站學校,sum(初中.建有獨立校園網站學校) as 初中建有獨立校園網站學校,sum(高中.建有獨立校園網站學校)? as 高中建有獨立校園網站學校, sum(小學.建有獨立校園網絡學校) as 小學建有獨立校園網絡學校,sum(初中.建有獨立校園網絡學校) as 初中建有獨立校園網絡學校,sum(高中.建有獨立校園網絡學校)? as 高中建有獨立校園網絡學校, sum(小學.硬件投入) as 小學硬件投入,sum(初中.硬件投入) as 初中硬件投入,sum(高中.硬件投入)? as 高中硬件投入, sum(小學.軟件投入) as 小學軟件投入,sum(初中.軟件投入) as 初中軟件投入,sum(高中.軟件投入)? as 高中軟件投入, sum(小學.電教示范學校) as 小學電教示范學校,sum(初中.電教示范學校) as 初中電教示范學校,sum(高中.電教示范學校)? as 高中電教示范學校, sum(小學.會制作網頁和動畫教室) as 小學會制作網頁和動畫教室,sum(初中.會制作網頁和動畫教室) as 初中會制作網頁和動畫教室,sum(高中.會制作網頁和動畫教室)? as 高中會制作網頁和動畫教室, sum(小學.班級通學校) as 小學班級通學校,sum(初中.班級通學校) as 初中班級通學校,sum(高中.班級通學校)? as 高中班級通學校, sum(小學.班班多媒體學校) as 小學班班多媒體學校,sum(初中.班班多媒體學校) as 初中班班多媒體學校,sum(高中.班班多媒體學校)? as 高中班班多媒體學校, sum(小學.縣區班班通) as 小學縣區班班通,sum(初中.縣區班班通) as 初中縣區班班通,sum(高中.縣區班班通)? as 高中縣區班班通 from 小學,初中,高中 where 小學.城市=初中.城市 and 初中.城市=高中.城市";//此處為圖表綁定的數據
??????? SqlCommand cmd = new SqlCommand(c, connection);
??????? SqlDataAdapter da = new SqlDataAdapter(cmd);
??????? DataTable ds = new DataTable();
??????? da.Fill(ds);
??????? ReportViewer1.LocalReport.DataSources.Clear();
??????? ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1_DataTable1", ds));???????????? ReportViewer1.LocalReport.Refresh();
??? }
?
?
圖形中標簽顯示百分比:右擊圖表——選擇“屬性”——點擊“數據”——添加值——值標簽中的序列標簽為圖表中右側顯示的數據、值為圖形代表的數據——點擊“點標簽”——選中“顯示點標簽”——輸入百分比的公式
轉載于:https://www.cnblogs.com/lff255356/p/ReportViewer.html
總結
以上是生活随笔為你收集整理的ReportViewer改变图表类型的全部內容,希望文章能夠幫你解決所遇到的問題。