C#语言Devdevexpress控件chart在C/S框架中的使用
声明、数据库连接机制框架已经写好。框架模式是MVC模式。就以我的from测试。我的做法是在查询页面创建一个按钮,然后在这个按钮上绑定一个点击事件。点击查询按钮把查询条件传到需要显示图例的页面。查询页面→显示图例页面
new一下需要传值的页面例如我这样
private void simpleButton2_Click(object sender, EventArgs e)
{
FrmTyp p = new FrmTyp(ConvertEx.ToSqlMinDate(txt_CREATIONDATE1.DateTime),
ConvertEx.ToSqlMinDate(txt_CREATIONDATE2.DateTime),
textEdit11.Text,
EXAMINOR1,
txt_CCNO.Text,
textEdit1.Text,
DRAW_CD.Text,
REPORTID.Text,
PRODUCT_TYP.Text);
p.Show();
}
1、创建一个from窗口,添加控件chart。
2、from全部代码和页面

using CSFramework.Common;
using CSFramework3.Server.DataAccess;
using DevExpress.XtraCharts;
using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
namespace CSFramework3.AccountModule
{
public partial class FrmTyp : CSFramework.Library.frmBase//CSFramework.Library.frmBase 继承了皮肤,如果没有皮肤就不用继承。
{
DateTime CREATIONDATE1, CREATIONDATE2;
string EXAMINOR1, textEdit11, CCNO, textEdit1, DRAW_CD, REPORTID , PRODUCT_TYP;//定义了从另一个页面传过来的参数,就是查询条件。如果没有查询条件就删除
public FrmTyp(DateTime CREATIONDATE1, DateTime CREATIONDATE2, string textEdit11, string EXAMINOR1,
string CCNO, string textEdit1, string DRAW_CD, string REPORTID, string PRODUCT_TYP)
{
InitializeComponent();
this.CREATIONDATE1 = CREATIONDATE1;
this.CREATIONDATE2 = CREATIONDATE2;
this.textEdit11 = textEdit11;
this.EXAMINOR1 = EXAMINOR1;
this.CCNO = CCNO;
this.textEdit1 = textEdit1;
this.DRAW_CD = DRAW_CD;
this.REPORTID = REPORTID;
this.PRODUCT_TYP = PRODUCT_TYP;
}
private void FrmTyp_Load(object sender, EventArgs e)
{
//设置图表标题
ChartTitle ct = new ChartTitle();
ct.Text = "统计图";
ct.TextColor = Color.OrangeRed;//颜色
ct.Font = new Font("Tahoma", 14);//字体
ct.Dock = ChartTitleDockStyle.Top;//停靠在上方
ct.Alignment = StringAlignment.Center;//居中显示
this.chartControl1.Titles.Add(ct);
}
/// <summary>
/// 统计图
/// </summary>
private Series mySeries;
/// <summary>
/// 手动加载统计图信息
/// </summary>
private void LoadChartInfo(DateTime CREATIONDATE1, DateTime CREATIONDATE2, string textEdit11, string EXAMINOR1,
string CCNO, string textEdit1, string DRAW_CD, string REPORTID, string PRODUCT_TYP)
{
this.chartControl1.Series.Clear();
//新建Series
switch (comboBoxEdit1.Text)
{
case "直方图":
mySeries = new Series("直方图", ViewType.Bar);
break;
case "3D直方图":
mySeries = new Series("3D直方图", ViewType.Bar3D);
break;
case "圆饼图":
mySeries = new Series("圆饼图", ViewType.Pie);
break;
case "3D圆饼图":
mySeries = new Series("3D圆饼图", ViewType.Pie3D);
break;
case "心电图型":
mySeries = new Series("心电图型", ViewType.Spline);//swift plot
break;
default:
mySeries = new Series("直方图", ViewType.Bar);
break;
}
//设置Series样式
mySeries.ArgumentScaleType = ScaleType.Qualitative;//定性的
mySeries.ValueScaleType = ScaleType.Numerical;//数字类型
mySeries.PointOptions.PointView = PointView.ArgumentAndValues;//显示表示的信息和数据
mySeries.PointOptions.ValueNumericOptions.Format = NumericFormat.Number;//NumericFormat.Percent;//用百分比表示
//mySeries.PointOptions.ValueNumbericOptions.Precision = 0;//百分号前面的数字不跟小数点
//绑定数据源
string str = Frmcpsy.strccsy;
if (PRODUCT_TYP == "1")
{
PRODUCT_TYP = "齿轮泵";
//QueryTyp是数据访问层的一个方法,就是指向SQL语句。你怎么查询数据库的这里就怎么指向查询语句。
DataTable ds = new dalTDTX_CCSY(Loginer.CurrentUser).QueryTyp(CREATIONDATE1, CREATIONDATE2, EXAMINOR1,
textEdit11, CCNO, textEdit1, DRAW_CD, REPORTID, PRODUCT_TYP);
mySeries.DataSource = ds.DefaultView;// 获取到的数据
mySeries.ArgumentDataMember = "WH_CD";//绑定的文字信息(名称)
mySeries.ValueDataMembers[0] = "COUNTS";//绑定的值(数据)
}
if (PRODUCT_TYP == "3")
{
PRODUCT_TYP = "多路阀";
DataTable ds = new dalTDTX_CCSY(Loginer.CurrentUser).QueryTyp1(CREATIONDATE1, CREATIONDATE2, EXAMINOR1,
textEdit11, CCNO, textEdit1, DRAW_CD, REPORTID, PRODUCT_TYP);
mySeries.DataSource = ds.DefaultView;// 获取到的数据
mySeries.ArgumentDataMember = "WH_CD";//绑定的文字信息(名称)
mySeries.ValueDataMembers[0] = "COUNTS";//绑定的值(数据)
}
//添加到统计图上
this.chartControl1.Series.Add(mySeries);
//图例设置
SimpleDiagram3D diagram = new SimpleDiagram3D();
diagram.RuntimeRotation = true;
diagram.RuntimeScrolling = true;
diagram.RuntimeZooming = true;
}
//导出图片
private void simpleButton2_Click(object sender, EventArgs e)
{
string selUrl = null;
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
selUrl = folderBrowserDialog1.SelectedPath;
chartControl1.ExportToImage(selUrl + "\\" + "不良类型" + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
MessageBox.Show("保存成功!");
}
else
{
return;
}
}
//导出Excel
private void simpleButton3_Click(object sender, EventArgs e)
{
string selUrl = null;
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
selUrl = folderBrowserDialog1.SelectedPath;
chartControl1.ExportToXls(selUrl + "\\" + "不良类型" + ".xls");
MessageBox.Show("保存成功!");
}
else
{
return;
}
}
private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e)
{
LoadChartInfo(CREATIONDATE1, CREATIONDATE2, EXAMINOR1, textEdit11, CCNO, textEdit1, DRAW_CD, REPORTID, PRODUCT_TYP);
}
private void FrmTyp_Shown(object sender, EventArgs e)
{
LoadChartInfo(CREATIONDATE1, CREATIONDATE2, EXAMINOR1, textEdit11, CCNO, textEdit1, DRAW_CD, REPORTID, PRODUCT_TYP);
}
}
}
C#语言Devdevexpress控件chart在C/S框架中的使用的更多相关文章
- 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容
[源码下载] 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容 作 ...
- WPF中Popup控件在Win7以及Win10等中的对齐点方式不一样的解决方案 - 简书
原文:WPF中Popup控件在Win7以及Win10等中的对齐点方式不一样的解决方案 - 简书 最近项目中使用弹出控件Popup,发现弹出框的对齐方式在不同的系统中存在不同(Popup在win10上是 ...
- 客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值。
客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值. 无论是什么的html控件,只要加上了runat="server" ...
- WPF封装控件时 检测是否在设计模式中
原文:WPF封装控件时 检测是否在设计模式中 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Vblegend_2013/article/detail ...
- WinForm中的图表控件Chart
第一次接触Chart控件,发现了这个Chart控件的实例项目,非常强大,用示例的方法介绍了该控件各式各样的用法. 下载链接
- ios学习笔记图片+图片解释(c语言 oc语言 ios控件 ios小项目 ios小功能 swift都有而且笔记完整喔)
下面是目录其中ios文件夹包括了大部分ios控件的介绍和演示,swift的时完整版,可以学习完swift(这个看的是swift刚出来一周的视频截图,可能有点赶,但是完整),c语言和oc语言的也可以完整 ...
- Winform 后台将指定的控件集合添加到制定容器中
/// <summary> /// 把按钮按照行数分割排列 /// </summary> /// <param name="ControlArry"& ...
- wpf的UserControl用户控件怎么添加到Window窗体中
转载自 http://www.cnblogs.com/shuang121/archive/2013/01/09/2853591.html 我们来新建一个用户控件UserControl1.xaml &l ...
- 解决Select2控件不能在jQuery UI Dialog中不能搜索的bug
本文使用博客园Markdown编辑器进行编辑 1.问题呈现 项目中使用了jQuery UI的Dialog控件,一般用来处理需要提示用户输入或操作的简单页面.逻辑是修改一个广告的图片和标题. 效果截图如 ...
随机推荐
- 2017-07-06(grep man apropos )
grep 格式 grep [选项] 字符串 文件名 选项 -i 忽略大小写 -v 排除指定字符串 作用 在文件中查找字符串 例子 grep "size" anaconda- ...
- Nginx日志中的金矿 -- 好文收藏
转:http://www.infoq.com/cn/articles/nignx-log-goldmine Nginx(读作Engine-X)是现在最流行的负载均衡和反向代理服务器之一.如果你是一名中 ...
- BSA Network Shell系列-redi命令
redi ## 1 功能概述 redi将输出重定向到一个文件中 ## 2 语法 redi [-?] [-a] filename ## 3 使用示例 1 将输出重定向到隐式路径所在主机的/tmp/hah ...
- 转载-Linux Shell 数组建立及使用技巧
转载自:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html 如侵犯版权,请联系我删除 linux shell在编程方面比win ...
- linkin大话面向对象--组合
继承是实现类重用的重要手段,但是它有一个最大的坏处:破坏封装.相比之下,组合也是实现类重用的重要方式,但是采用组合方式实现类重用则能提供更好的封装性.比如人有手一样,在人的类中增加一个手的属性. 何时 ...
- Linux使用top与free命令查看CPU与内存使用情况
top命令: 显示内容解释: 第一行top分别为:当前时间:系统运行天数:使用者个数:系统负载的平均值,后面的三个值分别为1分钟前.5分钟前.15分钟前进程的平均数,这个数值超过 CPU 数目时,说明 ...
- Android Studio 下获取debug sha1和md5
Open Android Studio Open Your Project Click on Gradle (From Right Side Panel, you will see Gradle Ba ...
- AM调制的FPGA实现
一.说明: 功能:AM调制 平台:Vivado 2016.4 和 Matlab R2017a 二.原理: 1. AM调制原理 AM已调信号的时域表达式: 已调信号的频域表达式: 本质上AM调制就是频谱 ...
- NIO笔记---上
小弟前端时间由于开发个管理系统导致断更了近20天!!马上就要春招了,学习了一下NIO,将笔记记录下,希望和我一样的18届毕业生都能找到满意的公司!! 本文记录了NIO与IO的区别,缓冲区的数据存取,直 ...
- mysql数据库在Linux下安装与配置
mysql是一种开放源代码的关系型数据库系统(RDBMS),使用最常用的数据库管理语言--结构化查询语句(SQL)进行数据库管理. 由于mysql的开源,因此任何人都可以在General Publ ...