分享

用MSChart控件设计学生档案统计程序

 昵称18548705 2017-04-01
  用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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多