网站首页
手机版

基于Mschart的数据库图表应用编程

更新时间:2006-02-23 00:00:00作者:未知

图表由于其直观明了的特性,在实际应用中十分很广泛。我们常常希望数据能通过图表来显示其特性。例如在Delphi和C++Builder编程中,我们可以很方便地实现数据图表。MsChart(6.0或5.0版)是Windows系统中Visual studio自带的一个ACTIVEX控件,它功能强大,应用广泛,具有以下特点:


· 支持随机数据和随机数组,动态显示。

· 支持所有主要的图表类型。

· 支持三维显示。

MsChart具有45个属性,9个方法,49 事件,可灵活编程,可实现各类表的显示。

 


               图1 插入MsChart 控件窗口

1 MsChart 应用编程

首先插入MsChart 控件,如图1。

1.1 坐标系属性的设置

a)纵轴初始化属性

Mschart 默认支持自动标准,将自动调整,可以缺省设置。

#include "mschart.h" //添加相关的头文件

#include "vcplot.h"

#include "vcaxis.h"

#include "vcvaluescale.h"

CMSChart m_Chart;//m_Chart 为图表变量

VARIANT var;

m_Chart.GetPlot().GetAxis(1,var)//获取纵轴

//设置是否支持自动标准;控件默认支持自动标准。

m_Chart.GetPlot().GetAxis().GetValuesScale().SetAuto(FALSE);

//设置最大刻度为M;

m_Chart.GetPlot().GetAxis().GetValuesScale().SetMaximum(M);

//设置最小刻度为m;

m_Chart.GetPlot().GetAxis().GetValuesScale().SetMinimum(m);

//设置轴的等分数D;

m_Chart.GetPlot().GetAxis().GetValuesScale().SetMajorDivision(D);

//设置每等分的刻度线数n;

m_Chart.GetPlot().GetAxis().GetValuesScale().SetMinorDivision(n);

b)横轴初始化属性

VARIANT var;

m_Chart.GetPlot().GetAxis(0,var)//获取横轴

其他属性设置跟纵轴相同。

1.2 数据显示

a)设置标题栏和标签

m_Chart.SetTitleText(“标题”);//设置标题栏

m_Chart.SetRowLabel((“第I行”);//设置第i行标签

m_Chart.SetColumnLabel((“第j列”);//设置第j列标签

b)行列的显示布局

MSChart的行列显示布局有其自身的特点:下面显示是一个行列4×3,即(四行,三列)的布局示意图(图2所示)。

图2 数据显示布局示意图

m_Chart.SetRowCount(4); //行数为4

m_Chart.SetColumnCount(3); //列数为3

c)行列操作

// 操作行列第i行、第j列

m_Chart.SetRow(i);// 第i行

m_Chart.SetColumn(j);//第j行

m_Chart.SetRowLabel((“第i行”);//设置第i行标签

CString str=”90.5”;

m_Chart.SetData((LPCTSTR(str)); //设置行列的显示数据

m_Chart.Refresh();//刷新视图

d)显示方式

获取当前的显示方式:

long nType =m_Chart.GetChartType();

设置显示方式:

m_Chart.SetChartType(0);//3D(三维) 显示

m_Chart.SetChartType(1);//2D(二维) 显示

m_Chart.Refresh();

其它常用组合方式为:

m_Chart.SetChartType(1|0) //2D柱(条)形,

m_Chart.SetChartType(0|0) //3D柱(条)形

m_Chart.SetChartType(1|2) //2D线条型

m_Chart.SetChartType(0|2) //3D线条型

m_Chart.SetChartType(1|4) //2D区域型

m_Chart.SetChartType(0|4) //3D区域型

m_Chart.SetChartType(1|6) //2D阶梯型

m_Chart.SetChartType(0|6) //3D阶梯型

m_Chart.SetChartType(1|8) //2D复(混)合型

m_Chart.SetChartType(0|8) //3D复(混)合型

另外,在2D方式中,还有两类:饼型和XY型

m_Chart.SetChartType(14) //2D 饼型

m_Chart.SetChartType(16) //2DXY型

e)其他

其他属性,比如设置字体,颜色,对齐方式等。

       


图3 数据控件界面示意图
 程序示例

(1) 在VC6.0中建一基于支持数据库的单文档(MFC)的工程项目。其中数据库为ACCESS,包括四个字段(即四个科目成绩字段):Chinese,Math,English,Computer。

(2) 添加相关变量和控件,如图3。

3 程序演示

演示结果如图4和图5。

                 

                                                   图4

                 

                                                           图5

 

本文标签:

为您推荐

FOXPRO在三峡工程信息管理中的应用

三峡工程是世界级的巨型工程,专业门类多、技术复杂、信息管理工作量巨大,必须使用MIS系统对信息进行收集、整理、存储、统计、分析、制表。几年来,我们先后用FOXBASE、FOXPRO编制了《工资管理系统》、《土石方工程量计算程序》、《工程支付管理系统》、《文档管理系统

2011-11-09 16:03

论信息技术在外语教学中的应用

随着信息技术的发展, 计算机多媒体技术和网络被广泛地应用在外语教学中, 改变了传统外语教学模式。现代化外语教学提高了外语教学水平, 从而培养高素质的外语人才, 满足日益增长的社会需求。

2011-11-09 16:02

对计算科学与计算机发展的思考

本文从什么是计算说起, 通过对计算机的发展历史和人类对计算本质认识的回顾, 提出量子计算系统的发展和成熟, 并且提出了人类认识未知世界的规律:“计算工具不断发展—整体思维能力的不断增强—公理系统的不断扩大—旧的神谕被解决—新的神谕不断产生”不断循环。

2011-11-09 16:01

试析高职院校计算机专业教学的改革

提高高职院校计算机专业的教学水平,是高职院校计算机教育工作者应该深入思考的问题。通过分析高职院校计算机专业教育的教学特点,从如何培养计算机应用型人才的角度出发,对高职计算机专业教学中存在的不足进行了总结,并提出了几点改革设想。

2011-11-09 16:00

水利工程计算机应用现状与思考

水利水电工程地质又是所有这些不同行业的工程地质专业中涉及面最广声望最高问题最复杂任务最艰巨的专业,这是众所周知毋庸置疑的。水利工程计算机应用具有广阔的发展前景,无论是数值计算、数据库应用,还是专家系统、网络系统,都大有用武之地;特别是工程地质制图(主

2011-11-09 15:59

论高职计算机应用专业课程优化与整合

课程体系是教育教学目标实现的重要保证,高职计算机应用专业课程体系要以为社会培养计算机应用性专门人才这一根本任务而进行设计,本文对计算机应用专业课程设置进行一定的探讨。

2011-11-09 15:58

加载中...