VFP 探讨之 OLE 控件(八):图表控件(中)—控件中的对象及其属性
图表控件很复杂,主要是因为其对象众多,有些对象还有子对象,甚至二级、三级子对象,各种/各级对象还有自己的属性、事件、方法。本期就与大家探讨一些常用对象及其属性。首先,熟悉一下图表各部分的名称(以二维图表的名称为例):
图表区:指整个图形的区域,该区域包含了图表的一切组件;
绘图区:指数据系列所在的区域(不含图例、图表标题、图表背景墙等);
坐标轴:坐标是指确定平面上或空间中某个位置的有次序的一个或一组数。坐标轴就是这种数据集合的标尺。图表中的坐标轴有X轴、Y轴、次Y轴(也称第二Y轴)、Z轴(只有3D图表包含);
刻度线:坐标轴上指示数值的小线条;
图例:图表上所用符号的说明;
数据系列:一组具有相同意义的数据集合。
部分名称图解:
图解中的引用方式是相对引用,省略了最前面的图表控件对象名。图表控件对象的名称可以象其它标准控件一样,在FoxPro的属性窗口中设置,属性名是Name。比如:现在把图表控件对象的Name属性设置成“统计图”,则图解中对X轴的绝对引用应该是“统计图.Plot.Axis(0)”;对图例的引用是“统计图.Legend”。
数据系列的引用有点复杂,每个数据系列都属于数据系列集合,所以对单组(不是单个)数据系列的引用格式是:统计图.Plot.SeriesCollection(x).DataPoints(-1)。其中,“x”在具体使用的时候要换成整数,这个整数的意思是指定需要引用第几组的数据。比如在图解中,标注指向的是第3组,即,所有绿色的数据系列(不仅仅是被标注指向的这根柱子),引用的格式是:统计图.Plot.SeriesCollection(3).DataPoints(-1)。后面“DataPoints(-1)”对象中括号中的数字固定为“-1”。
图表控件的部分常用属性:
ChartType:整数型,返回或设置图表的类型。0:3D柱形图;1:2D柱形图(默认);2:3D折线图;3:2D折线图;4:3D面积图;5:2D面积图;6:3D阶梯图;7:2D阶梯图;8:3D组合图;9:2D组合图;14:2D饼图;16:2D XY散点图。实际上,MSChart控件中还有很多图表类型(比如,3D簇状柱形图、条形图(横向的柱形图)等等),但都不被FoxPro支持;
ShowLegend:逻辑型,返回或设置图表控件是否显示图例;
RowCount:整数型,返回或设置图表控件的行数,在二维图表中可以理解为组数(比如图解中的控件就分了4组)。因为组数与数据源表的行数关联,所以被称为行数;
Row:整数型,返回或指向图表控件当前处于第几行,可以理解为返回或指向图表的第几组;
RowLabel:字符型,返回或设置行标签,也就是组标签。比如,图解中的“2010”、“2011”等;
ColumnCount:整数型,返回或设置图表控件的列数,可以理解为数据系列的数量(比如图解中的控件就有5个数据系列)。因为数据系列数量与数据源表的列数关联,所以被称为列数;
Column:整数型,返回或指向图表控件当前处于第几列,可以理解为返回或指向哪个数据系列;
ColumnLabel:字符型,返回或设置列标签,也就是每个数据系列的名字。这些名字显示在图例中,通常与数据源表的字段名关联。比如,图解中的“普通物理(A)上”等;
Data:数值型,返回或设置某个数据点的值。一般操作方法是:用Row和Column两个属性指定好图表接收源数据的位置,再用该属性以赋值命令获取源数据。获取完了以后,图表控件就能显示这个数据了;
Text:字符型,返回或设置标题、数据标签等对象的文本内容,类似于FoxPro标准控件的Caption属性。比如:统计图.Plot.Axis(0).AxisTitle.Text="课程名称",设置X轴的标题为“课程名称”;
Name:字符型,返回或设置字体对象(VtFont)的名称。比如:统计图.Plot.Axis(0).AxisTitle.VtFont.Name="黑体",设置X轴标题的字体为黑体;
Size:单精度数值型(Float),返回或设置数据点标签对象(Marker)或字体对象的大小;
Style:整数型,取值区间根据所用对象的不同而不同。可用于笔刷(Brush)、背景外观(Fill)、图表周围窗体元素外观(Frame)、数据点标签(Marker)、线条或边线(Pen,MajorPen,MinorPen)、图表元素阴影外观(Shadow)、刻度线(Tick)、字体(VtFont)、权重(Weighting)等对象。对于字体对象,它描述了字体的风格(粗体、斜体),取值区间是[1,3];对于线条对象,它描述了线条的风格(实线、虚线等等),取值区间是[0,9];
Type:整数型,取值区间是[0,2],返回或设置坐标轴尺度对象(AxisScale)的类型(线性、对数、百分比),通常用在数值轴上。
图表控件的部分方法:
Set:针对各种对象进行相应的设置,比如:可以设置填充色对象(FillColor)的颜色—Set(0,0,255)。
关于图表控件的常量:
图表控件中设置属性值时,很多都会用到常量。比如,前面提到的对X轴的引用是“统计图.Plot.Axis(0)”。其实,真正的用法应该是“统计图.Plot.Axis(VtChAxisIdX)”,括号里红色的“VtChAxisIdX”就是一个常量,它在MsChart控件中已被定义为0。相应的,还有:VtChAxisIdY,定义为1,代表Y轴;VtChAxisIdY2,定义为2,代表第二Y轴;VtChAxisIdZ,定义为3,代表Z轴。说到这里,不得不提一下,图表控件中定义的所有常量在FoxPro中都不被支持(但可被VB支持)。所以,我们只能运用常量名称所代表的真正数值。不过,个人认为,还是用数值比较方便,缩短了代码长度。如果要标注那些数值的意义,只要用注释语句写出即可。
今天就聊到这里了,下次弄个实例和大家探讨。
[ 本帖最后由 taifu945 于 2014-5-14 14:59 编辑 ]