• 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();

        }

    图形中标签显示百分比:右击图表——选择“属性”——点击“数据”——添加值——值标签中的序列标签为图表中右侧显示的数据、值为图形代表的数据——点击“点标签”——选中“显示点标签”——输入百分比的公式

  • 相关阅读:
    Android Studio 之 no render target selected
    将android模拟器上的db文件拷贝到电脑上
    两种思路从0打印到100
    RN picker使用
    android打印日志封装
    android仿支付宝输入车牌号
    OC仿支付宝输入UITextField输入车牌号
    RN全局的变量,方法,全局类,全局类方法
    RN九宫格
    RN正、反向传值,组件输出
  • 原文地址:https://www.cnblogs.com/lff255356/p/ReportViewer.html
Copyright © 2020-2023  润新知