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控件,一般用来处理需要提示用户输入或操作的简单页面.逻辑是修改一个广告的图片和标题. 效果截图如 ...
随机推荐
- mybatis-databaseIdProvider多数据库支持
<select id="selectPerson" parameterType="int" parameterMap="deprecated&q ...
- navicat的简单使用
navicat的简单使用: 连接: 输入ip地址,端口,用户名,密码 新建数据库: 数据库名,字符编码一定要选择utf-8 新建表: 字段,约束条件 双击表名,自己打开表,点击空列,添加数据,ctl+ ...
- 移动端 -webkit-user-select:text; ios10 bug 解决方案
移动端一般body的css.会设置 作用就不解释了: body{ height:100%;min-height:100%; font-family: "微软雅黑",'Helveti ...
- python初识-day3
1.字符串常用操作(较多,用代码加注释表示) name = '\tMy name is congcong' print(name.capitalize())#输出结果为 My name is cong ...
- 在vue中优雅地实现简单页面逆传值
[需求] 要实现的需求很简单,页面从A -> B,用户在B触发操作,将一些数据带回到A页面,在网上找了好久也只看到有人问,但总找不到很好答案.要实现的效果图如下: [联想] 在 ios 开发中, ...
- Ajax异步信息抓取方式
淘女郎模特信息抓取教程 源码地址: cnsimo/mmtao 网址:https://0x9.me/xrh6z 判断一个页面是不是Ajax加载的方法: 查看网页源代码,查找网页中加载的数据信息,如果 ...
- mongodb- Java API 查询操作
package com.x.mongodb; import java.net.UnknownHostException;import java.util.Collection;import java. ...
- 关于css选择器的一些细节
1.如何区分一个html标签的不同样式 使用标签名.类名的方式解决 如果希望特别强调其中的某一个或几个元素,处理的方案有三个: 1.id选择器 2.class选择器 3.层级选择器 看下面的代码: & ...
- 高斯消元 & 线性基【学习笔记】
高斯消元 & 线性基 本来说不写了,但还是写点吧 [update 2017-02-18]现在发现真的有好多需要思考的地方,网上很多代码感觉都是错误的,虽然题目通过了 [update 2017- ...
- BZOJ 3876: [Ahoi2014]支线剧情 [上下界费用流]
3876: [Ahoi2014]支线剧情 题意:每次只能从1开始,每条边至少经过一次,有边权,求最小花费 裸上下界费用流...每条边下界为1就行了 注意要加上下界*边权 #include <io ...