用MSChart控件设计学生档案统计程序 【例8.9】要求统计某个班级不同地区学生人数,并用直方图、饼图两种图表显示统计结果。假设某班学生统计结果如表8.8所示。 表8.8 学生地区生源统计表 程序设计步骤如下: (1)新建一个工程(ex8_9.vbp),窗体名为Form_ex89.frm。 (2)在部件中选择Microsoft Chart Controls 6.0 (OLEDB),将数据图表控件MSChart1添加到窗体内,再添加由二个命令按钮组成的控件数组Command1(2),分别用于显示直方图、饼图。 (3)用鼠标右键单击MSChart1控件,打开MSChart1的属性对话框,设置属性如下。 选择图表选项卡,使“显示图例”、“按行系列”复选框有效。 选择文本选项卡,在标题、X轴标题、Y轴标题栏中分别填写“班级生源统计图表”、“X轴”、“Y轴”。将Y轴方向改为水平方向。 选择字体选项卡,设置标题的字体为14号墨绿色粗楷体,加下划线。 (4)表8.8中第1列(地区名)为字符串,可以作为列标签,第2列为各地区学生人数,可作为列值。因此,图表实际只有一个数据格,该数据格共11列。将地区与人数赋给二维数组Array_2,并将Array_2赋给MSChart1. ChartData属性。则MSChart控件可显示班级学生生源统计图表。 (5)双击命令按钮输入如下事件处理程序。 Option Base 1 Private Sub Command1_Click(Index As Integer) Dim A As Variant, B As Variant A = Array(5, 7, 8, 3, 5, 8, 3, 1, 2, 1, 6) B = Array('南京', '无锡', '徐州', '扬州', '盐城', '淮阴', '连云港', '南通', '苏州', '常州', '镇江') With MSChart1 Dim I As Integer Dim Array_2(1 To 11, 1 To 2) As Variant For I = 1 To 11 Array_2(I, 1) = B(I) '将地区名赋给数组的第1列 Array_2(I, 2) = A(I) '将各地区名学生人数赋给数组的第2列 Next I .ChartData = Array_2 '将数组名赋给ChartData属性 .TitleText = '班级生源统计图表' '设置统计图表标题 .ShowLegend = True '使图例有效,即显示图例 If Index = 0 Then '当按“直方图”按钮则显示直方图统计表 .chartType = 1 ElseIf Index = 1 Then '当按“饼图”按钮则显示饼图统计表 .chartType = 14 End If End With End Sub 程序执行后可显示出班级生源地区分布统计图表,如图8.16所示。 图8.16 班级生源统计图表 【例8.10】在学生档案管理系统工程(xsdagl.vbp)中增加《生源地区分布统计图表》子窗体,如图8.17所示。要求用TreeView控件选择系部与班级,单击班级后显示该班地区生源分布图表。 1.设计要求 (1)程序界面由工具栏、选择系部与班级的树形控件、生源分布图表区组成; (2)该程序要能由系选择班级,由班级显示地区生源分布图表; (3)工具栏中放置“退出”按钮; (4)在图表下方放置三个命令按钮,能以直方图、饼图两种方式显示统计结果。 (5)程序界面设计如图8.17所示。 2.设计步骤 (1)界面设计 (2)程序设计 ①单击树形控件结点事件过程 Private Sub TreeView_TB03_NodeClick(ByVal Node As MSComctlLib.Node) With Adodc_XA01 .CommandType = adCmdText .RecordSource = 'Select GC0202,Count(*) From XA01,GC02,TB03 ' & _‘分地区统计学生人数 'Where XA0109 = GC0201 and XA0114=TB0301 ' &_ ' and TB0302='' & TreeView_TB03.SelectedItem.text & ''' & _ 'Group By GC0202' .Refresh End With With MSChart_XA01 Set .DataSource = Adodc_XA01.Recordset'将学生档案统计表数据集赋给DataSource属性 .TitleText = TreeView_TB03.SelectedItem.text & '班级生源统计图表' .ShowLegend = True End With End Sub ②在窗体内添加命令按钮数组Command1(2),分别用于直方图、饼图显示。 单击按钮的事件过程如下。 Private Sub Command1_Click(Index As Integer) With MSChart_XA01 Set .DataSource = Adodc_XA01.Recordset'将学生档案统计表数据集赋给DataSource属性 .TitleText = TreeView_TB03.SelectedItem.text & '班级生源统计图表' .ShowLegend = True If Index = 0 Then .chartType = 1 ElseIf Index = 1 Then .chartType = 14 End If End With End Sub 程序运行后的界面如图8.17(a)、(b)所示。 图8.17(a)班级生源统计图表(直方图) 图8.17(b)班级生源统计图表(饼图) 电子与信息技术学院计算机技术系 地址:无锡市中南路8号 邮编:214073 联系电话:0510-85414627-8035
|