dev ChartControl 备忘
一个chartControl 里包括以个diagram(图表)
diagram里可以设置 x-axis与y-axis ,另外还可以设置SecondaryXAxis与SecondaryYAxis,在Series属性里可以选择使用Secondary Axis
一个diagram里包括多少个Series,一个Series表示一组(x,y)取值集合
一个diagram里可以添加多个Panel, 二Series可以设置呈现在那个panel里
Series的主要属性是DataSource,指定 ArgumentDataMember(X-Axis),ValuesDataMembers(Y-Axis)
1.自定义标注显示内,首相要设置series.LablesVisibility=True
- chartControl1.CustomDrawSeriesPoint += (s, e) =>
- {
- if (e.Series == chartControl1.Series["Real"])
- {
- var it = e.SeriesPoint;
- var obj = it.Tag as QualifiedInfo; //Tag里是当前点的记录
- e.LabelText = string.Format("{0}|{2}|{1}", obj.Disqualification, obj.Amount,obj.DisqualificationWithoutOtherDuty);
- }
- };
参考代码
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Linq;
- using System.Windows.Forms;
- using DevExpress.XtraEditors;
- using WinDetectionClockAdmin.Model;
- using DevExpress.XtraCharts;
- using System.Threading;
- using DetectionClock.EFModel;
- namespace WinDetectionClockAdmin
- {
- public partial class frmPercentOfPassCharting : DevExpress.XtraEditors.XtraForm
- {
- private ChartControl CurCharControl { get; set; }
- public SynchronizationContext SyncContext { get; set; }
- public frmPercentOfPassCharting()
- {
- InitializeComponent();
- SyncContext = SynchronizationContext.Current;
- #region Tab
- layoutControlGroup3.Shown += (s, e) =>
- {
- CurCharControl = chartControl1;
- };
- layoutControlGroup4.Shown += (s, e) => { CurCharControl = chartControl2; };
- layoutControlGroup5.Shown += (s, e) => { CurCharControl = chartControl3; };
- layoutControlGroup6.Shown += (s, e) => { CurCharControl = chartControl4; };
- #endregion
- #region 自自定义Lbl显示
- chartControl1.CustomDrawSeriesPoint += (s, e) =>
- {
- if (e.Series == chartControl1.Series["Real"])
- {
- var it = e.SeriesPoint;
- var obj = it.Tag as QualifiedInfo;
- e.LabelText = string.Format("{0}|{2}|{1}", obj.Disqualification, obj.Amount,obj.DisqualificationWithoutOtherDuty);
- }
- };
- #endregion
- #region
- bDate.EditValue = DateTime.Now.Date.AddDays( - DateTime.Now.Day);
- eDate.EditValue = DateTime.Now.Date.Add(new TimeSpan(, , ));
- ThreadPool.QueueUserWorkItem(o =>
- {
- using (var ctx = DBCtx.GetCtx())
- {
- var sql = DRecAnalyze.LoadSql("sql04.txt");
- var mInfoList = ctx.ExecuteStoreQuery<MInfo>(sql).ToList();
- var batnos = ctx.FO_Task.GroupBy(ent => ent.Batno).Select(ent => ent.Key).Where(ent => ent != null).ToList();
- var empList = ctx.FO_TaskEmps.ToList();
- SyncContext.Post(s =>
- {
- team.Properties.DataSource = empList;
- mno.Properties.DataSource = mInfoList;
- batno.Properties.Items.AddRange(batnos.ToArray());
- }, null);
- }
- }, null);
- #endregion
- }
- private void btnLoad_Click(object sender, EventArgs e)
- {
- try
- {
- var sql = DRecAnalyze.LoadSql("sql05.txt");
- if (bDate.EditValue == null) throw new Exception("请指定开始时间");
- if (eDate.EditValue == null) throw new Exception("请指定结束时间");
- var bTime=(DateTime)bDate.EditValue;
- var eTime=(DateTime)eDate.EditValue;
- var dCondition = string.Format(" And d.AddTime>='{0}' And d.AddTime<='{1}' ",
- bTime.Date.ToString("yyyy-MM-dd 00:00:00"),
- eTime.Date.ToString("yyyy-MM-dd 23:59:59")
- );
- var tCondition = "";
- if (mno.EditValue != null )
- {
- if (!string.IsNullOrWhiteSpace(mno.ToString()))
- {
- tCondition += string.Format(" And t.MNo='{0}'", mno.EditValue.ToString());
- }
- }
- if (!string.IsNullOrWhiteSpace(batno.Text))
- {
- tCondition += string.Format(" And t.BatNo='{0}'", batno.Text);
- }
- if (team.EditValue != null)
- {
- if(!string.IsNullOrWhiteSpace(team.EditValue.ToString()))
- {
- dCondition += String.Format(" And d.TaskEmpsId={0}", team.EditValue);
- }
- }
- var exeSql= sql.Replace("$DCondition", dCondition).Replace("$TCondition", tCondition);
- #region AsyncAction
- Action act = () =>
- {
- var data = DRecAnalyze.LoadData(exeSql);
- var list = DRecAnalyze.AnalyzePercentOfPass(data);
- //所有不良项
- var symptomList = DRecAnalyze.AnalyzeSymptom(data);
- //生产部不良项
- var assembleSymptomList = DRecAnalyze.AnalyzeAssembleSymptom(data);
- //主要不良项
- var mainSymptom = DRecAnalyze.AnalyzeMainSymptom(data);
- SyncContext.Post(o =>
- {
- var diagram = chartControl1.Diagram as XYDiagram;
- if (list.Count > )
- {
- diagram.AxisY.Range.MaxValue = Math.Floor(list.Max(ent => ent.Disqualification) * 1.6);
- }
- chartControl1.Series["Aim"].DataSource = list;
- chartControl1.Series["Real"].DataSource = list;
- chartControl1.Series["Disqualification"].DataSource = list;
- chartControl2.Series["Symptom"].DataSource = symptomList;
- chartControl3.Series["Symptom"].DataSource = assembleSymptomList;
- chartControl4.Series[].DataSource = mainSymptom;
- chartControl4.Series[].DataSource = mainSymptom;
- chartControl4.Series[].DataSource = mainSymptom;
- }, null);
- };
- #endregion
- this.AsyncInvoke(act);
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- private void btnExport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
- {
- SaveFileDialog fileDialog = new SaveFileDialog();
- fileDialog.Filter = "Excel文件|*.xls";
- fileDialog.FileName = this.Text + DateTime.Now.ToString("yyMMddHHmm");
- if (fileDialog.ShowDialog() == DialogResult.OK)
- {
- CurCharControl.ExportToXls(fileDialog.FileName);
- XtraMessageBox.Show("操作成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- }
- }
- }
- }
dev ChartControl 备忘的更多相关文章
- Npm vs Yarn 之备忘大全
有则笑话,如此讲到:"老丈人爱吃核桃,昨天买了二斤陪妻子送去,老丈人年轻时练过武,用手一拍核桃就碎了,笑着对我说:你还用锤子,你看我用手就成.我嘴一抽,来了句:人和动物最大的区别就是人会使用 ...
- centos 6.4 mysql rpm 离线安装【备忘】
离线状态下使用rpm的安装包进行mysql的安装,仅作备忘 准备工作: 官网下载mysql离线rpm安装包(这里就不演示了,拿现成的做演示) =================更新线 2018-01- ...
- ubuntu下串口编程备忘
弄了一下串口,一个小问题多折腾了下,备忘.软件环境:zl@zhanglong:~$ cat /etc/lsb-release DISTRIB_ID=UbuntuDISTRIB_RELEASE=12.0 ...
- CentOS6.4 X86_64 kvm+PXE备忘
Install 安装 1 2 3 4 5 # yum install qemu-kvm qemu-img # 使用kvm至少要安装的包,一个提供用户级别kvm模拟器,一个提供磁盘镜像的管理 # 安装虚 ...
- Proxmox 安装 dsm 黑群 备忘
备忘:Proxmox 虚拟机使用 E1000网卡(用Virlo找不到引导),直通数据硬盘 . 使用的引导文件是 DS918+_6.21-23824-1.04b.img 虚拟机启动使用第三项EX ...
- GIS部分理论知识备忘随笔
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...
- python序列,字典备忘
初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...
- Vi命令备忘
备忘 Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctrl+b:向文件首翻一屏: Esc:从编辑模式切换到命令模式: ZZ:命令模式下保存当前文件所 ...
- ExtJs4常用配置方法备忘
viewport布局常用属性 new Ext.Viewport({ layout: "border", renderTo: Ext.getBody(), defaults: { b ...
随机推荐
- c++builder XE7 C++11 C++0x 新语法
Non-static data member initializers 非静态成员变量初始化变得简单,这个XE7 64位编译成功,32位还是不支持 As a simple example, struc ...
- air 桌面应用发布后可以删除的文件
****\Adobe AIR\Versions\1.0 下的文件夹Resources,可以整个删除 ***META-INF\AIR目录下的application.xml配置文件可修改initialWi ...
- AS3中String转换成Boolean
AS3中, 对布尔值的转换, 规定所有的非空字符串都是true. 下面都不行: var f:Boolean = new Boolean(str); var f:Boolean = str as Boo ...
- Simple2D-20(重构)
为什么重构 Simple2D 开始的时候打算使用几周的时间来实现 Simple2D 的,主要是实现一些简单的 2D 渲染功能.但是编写的过程中不满于它只能实现简单的功能,后来添加了诸如Alpha测试. ...
- insert NULL into mysql
https://stackoverflow.com/questions/36898130/python-how-to-insert-null-mysql-values You are insertin ...
- Hadoop 集群的一些问题
1.创建用户hadoop adduser hadoop passwd hadoop usermod -a -G hadoop hadoop chown -R hadoop:hadoop /data ...
- Go语言中cannot convert adminname (type interface {}) to type *: need type assertion的解决办法
解决的办法是把string(adminname)替换为adminname.(string).其它类型也是类似.
- docker在centos和Ubuntu的安装
CentOS: http://blog.csdn.net/wuapeng/article/details/51728614 rpm -Uvh http://www.elrepo.org/elrepo- ...
- Message: u'$ is not defined' ; Stacktrace
status.html <html> <head> <meta http-equiv="content-type" content="tex ...
- jquery datatables api
原文地址 学习可参考:http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/ ...