您的位置:首页 > 数据库

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

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

[align=justify]・ 支持随机数据和随机数组,动态显示。 [/align]
[align=justify]・ 支持所有主要的图表类型。 [/align]
[align=justify]・ 支持三维显示。 [/align]
[align=justify]MsChart具有45个属性,9个方法,49 事件,可灵活编程,可实现各类表的显示。[/align]



[align=center]图1 插入MsChart 控件窗口[/align]

[align=justify]1 MsChart 应用编程 [/align]

[align=justify]首先插入MsChart 控件,如图1。[/align]
[align=justify]1.1 坐标系属性的设置 [/align]
[align=justify]a)纵轴初始化属性[/align]
[align=justify]Mschart 默认支持自动标准,将自动调整,可以缺省设置。[/align]
[align=justify]#include "mschart.h" //添加相关的头文件[/align]
[align=justify]#include "vcplot.h"[/align]
[align=justify]#include "vcaxis.h"[/align]
[align=justify]#include "vcvaluescale.h"[/align]
[align=justify]CMSChart m_Chart;//m_Chart 为图表变量[/align]
[align=justify]VARIANT var;[/align]
[align=justify]m_Chart.GetPlot().GetAxis(1,var)//获取纵轴[/align]
[align=justify]//设置是否支持自动标准;控件默认支持自动标准。[/align]
[align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetAuto(FALSE);[/align]
[align=justify]//设置最大刻度为M;[/align]
[align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetMaximum(M);[/align]
[align=justify]//设置最小刻度为m;[/align]
[align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetMinimum(m);[/align]
[align=justify]//设置轴的等分数D;[/align]
[align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetMajorDivision(D);[/align]
[align=justify]//设置每等分的刻度线数n;[/align]
[align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetMinorDivision(n);[/align]
[align=justify]b)横轴初始化属性[/align]
[align=justify]VARIANT var;[/align]
[align=justify]m_Chart.GetPlot().GetAxis(0,var)//获取横轴[/align]
[align=justify]其他属性设置跟纵轴相同。[/align]
[align=justify]1.2 数据显示[/align]
[align=justify]a)设置标题栏和标签[/align]
[align=justify]m_Chart.SetTitleText(“标题”);//设置标题栏[/align]
[align=justify]m_Chart.SetRowLabel((“第I行”);//设置第i行标签[/align]
[align=justify]m_Chart.SetColumnLabel((“第j列”);//设置第j列标签[/align]
[align=justify]b)行列的显示布局[/align]
[align=justify]MSChart的行列显示布局有其自身的特点:下面显示是一个行列4×3,即(四行,三列)的布局示意图(图2所示)。[/align]



[align=center]图2 数据显示布局示意图 [/align]
[align=justify]m_Chart.SetRowCount(4); //行数为4 [/align]
[align=justify]m_Chart.SetColumnCount(3); //列数为3[/align]
[align=justify]c)行列操作[/align]
[align=justify]// 操作行列<i, j>第i行、第j列[/align]
[align=justify]m_Chart.SetRow(i);// 第i行[/align]
[align=justify]m_Chart.SetColumn(j);//第j行[/align]
[align=justify]m_Chart.SetRowLabel((“第i行”);//设置第i行标签[/align]
[align=justify]CString str=”90.5”;[/align]
[align=justify]m_Chart.SetData((LPCTSTR(str)); //设置行列<i ,j>的显示数据[/align]
[align=justify]m_Chart.Refresh();//刷新视图[/align]
[align=justify]d)显示方式[/align]
[align=justify]获取当前的显示方式:[/align]
[align=justify]long nType =m_Chart.GetChartType();[/align]
[align=justify]设置显示方式:[/align]
[align=justify]m_Chart.SetChartType(0);//3D(三维) 显示[/align]
[align=justify]m_Chart.SetChartType(1);//2D(二维) 显示[/align]
[align=justify]m_Chart.Refresh();[/align]
[align=justify]其它常用组合方式为:[/align]
[align=justify]m_Chart.SetChartType(1|0) //2D柱(条)形,[/align]
[align=justify]m_Chart.SetChartType(0|0) //3D柱(条)形[/align]
[align=justify]m_Chart.SetChartType(1|2) //2D线条型[/align]
[align=justify]m_Chart.SetChartType(0|2) //3D线条型[/align]
[align=justify]m_Chart.SetChartType(1|4) //2D区域型[/align]
[align=justify]m_Chart.SetChartType(0|4) //3D区域型[/align]
[align=justify]m_Chart.SetChartType(1|6) //2D阶梯型[/align]
[align=justify]m_Chart.SetChartType(0|6) //3D阶梯型[/align]
[align=justify]m_Chart.SetChartType(1|8) //2D复(混)合型[/align]
[align=justify]m_Chart.SetChartType(0|8) //3D复(混)合型[/align]
[align=justify]另外,在2D方式中,还有两类:饼型和XY型[/align]
[align=justify]m_Chart.SetChartType(14) //2D 饼型[/align]
[align=justify]m_Chart.SetChartType(16) //2DXY型[/align]
[align=justify]e)其他[/align]
[align=justify]其他属性,比如设置字体,颜色,对齐方式等。[/align]



[align=center]图3 数据控件界面示意图 [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: