DevExpress ChartControl动态创建按月份按姓名对比的柱状图对比图|C/S开发框架
作者:csframework|C/S框架网  发布日期:2022/02/22 17:29:15

DevExpress ChartControl动态创建按月份按姓名对比的柱状图对比图|C/S开发框架

DevExpress ChartControl动态创建按月份按姓名对比的柱状图对比图

目录

  • 数据结构
  • ChartControl效果
  • C#源码
    • 动态创建Series组件
    • 设置Label样式
    • 设置Legend样式

数据结构

DevExpress ChartControl动态创建按月份按姓名对比的柱状图对比图|C/S开发框架

ChartControl效果

DevExpress ChartControl动态创建按月份按姓名对比的柱状图对比图|C/S开发框架

C#源码

动态创建Series组件

根据表1,循环年份,自动生成按年对比数据的柱状图

C# 全选
            //获取数据源
            DataSet dataSource = _BLL.GetTongJiData(year);

            chartControl1.Series.Clear();
            chartControl2.Series.Clear();
            chartControl3.Series.Clear();

            foreach (DataRow R in dataSource.Tables[0].Rows)
            {
                dataSource.Tables[1].DefaultView.RowFilter = $"yyyymm='{R["yyyymm"].ToString()}'";
                var source = dataSource.Tables[1].DefaultView.ToTable();

                var series = new Series(R["yyyymm"].ToString(), ViewType.Bar);
                series.DataSource = source;
                series.SetDataMembers("syr", "avgTotal");
                SetView(series);
                chartControl1.Series.Add(series);
                this.chartControl1.Titles[0].Text = year + "年平均每车单子数";

                var series2 = new Series(R["yyyymm"].ToString(), ViewType.Bar);
                series2.DataSource = source;
                series2.SetDataMembers("syr", "total1");
                SetView(series2);
                chartControl2.Series.Add(series2);
                this.chartControl2.Titles[0].Text = year + "年单子数";

                var series3 = new Series(R["yyyymm"].ToString(), ViewType.Bar);
                series3.DataSource = source;
                series3.SetDataMembers("syr", "total2");
                SetView(series3);
                chartControl3.Series.Add(series3);
                this.chartControl2.Titles[0].Text = year + "年车数";
            }

设置Label样式

C# 全选
        private void SetView(Series series)
        {
            // 显示Label
            series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
            // 对齐方式
            series.Label.TextAlignment = StringAlignment.Center;
            // 文本方向
            series.Label.TextOrientation = TextOrientation.Horizontal;
            // Label位置
            (series.Label as BarSeriesLabel).Position = BarSeriesLabelPosition.Top;
        }

设置Legend样式

C# 全选
 //设置Legend样式
            chartControl1.Legend.Visibility = DefaultBoolean.True;
            chartControl1.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
            chartControl1.Legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;
            chartControl1.Legend.Direction = LegendDirection.LeftToRight;

DevExpress ChartControl动态创建按月份按姓名对比的柱状图对比图|C/S开发框架

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
参考文档:

DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
DevExpress XtraTabControl 组件添加一个TabPage并设置图标|C/S开发框架
C# DevExpress双击表格删除当前记录|C/S开发框架
C/S结构快速开发框架使用的DevExpress常用组件|C/S开发框架
ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架
C# DevExpress.XtraCharts获取调色板系统默认颜色-C/S开发框架
C/S开发框架代码生成器工具增加DevExpress版本配置
C/S开发框架权限扩展与定制按钮功能详细设计
C/S开发框架高级版部分源码截图
C/S开发框架V3.0模块引用层次关系表(原)
C/S开发框架中讲到的ADO Direct是什么?
C/S开发框架权限按层级管理建议
C/S开发框架是如何授权的?有没有基于角色的权限控制?
C/S开发框架权限分层级管理吗?
C/S开发框架权限是控制到按钮级别的吗?
其它资料:

什么是C/S结构? |  C/S框架核心组成部分 |  C/S框架-WebService部署图 |  C/S框架-权限管理 |  C/S结构系统框架 - 5.1旗舰版介绍 |  C/S结构系统框架 - 功能介绍 |  C/S结构系统框架 - 产品列表 |  C/S结构系统框架 - 应用展示(图) |  三层体系架构详解 |  C/S架构轻量级快速开发框架 |  C/S框架网客户案例 |  WebApi快速开发框架 |  C/S框架代码生成器 |  用户授权注册软件系统 |  版本自动升级软件 |  数据库底层应用框架 |  CSFramework.CMS内容管理系统 | 
上一篇 下一篇