780 likes | 928 Views
第八章 数据分析. 8.1 数据报表设计 8.2 统计图表设计 8.3 输出打印设计 实训八 设计数据报表和统计图表. 8.1 数据报表设计. 8.1.1 数据报表设计基础 8.1.2 实例:学生选课系统版本16 8.1.3 实例:学生选课系统版本17. 8.1.1 数据报表设计基础. 1.使用计算列 (1)定义计算列的方法 下面以计算学生的平均成绩为例,说明定义数据源计 算列的操作方法。 ①选择“ File”→“New” 命令,单击“ DataWindow” 选项卡。
E N D
第八章 数据分析 8.1 数据报表设计 8.2 统计图表设计 8.3 输出打印设计 实训八设计数据报表和统计图表
8.1 数据报表设计 8.1.1 数据报表设计基础 8.1.2 实例:学生选课系统版本16 8.1.3 实例:学生选课系统版本17
8.1.1 数据报表设计基础 1.使用计算列 (1)定义计算列的方法 下面以计算学生的平均成绩为例,说明定义数据源计 算列的操作方法。 ①选择“File”→“New”命令,单击“DataWindow”选项卡。 ②选中“Grid”,单击“OK”按钮,打开“Choose Data Source for Grid DataWindows”对话框。 ③选中“SQL Select”数据源,单击“Next”按钮,打开 “Select Tables”对话框。
④选中表sc,单击“Open”按钮,打开数据源编辑窗口。 ⑤单击选中表sno列,并单击“Group”选项卡,将左部 sc.sno列拖动至右部,指定按sno列分组。
⑦指向空白编辑行单击右键,打开快捷菜单,选择⑦指向空白编辑行单击右键,打开快捷菜单,选择 “Functions”命令,打开函数对话框。 图8-3 函数窗口 ⑧在函数对话框中选择平均值函数avg(),单击“Paste”按扭,avg()将会粘贴在编辑行。
⑨将光标定位在函数参数位置,单击右键,打开快捷菜⑨将光标定位在函数参数位置,单击右键,打开快捷菜 单,选择“Columns”命令,打开列对话框。 ⑩在列对话框中选择列“sc.score”,单击“Paste”按扭, sc.score将会粘贴在函数参数位置。
⑿保存数据窗口。 如果有多个计算列,中间用逗号分开;如果在计算列中无“as”,则列标 题将显示“compute 000x”;如果使用聚合函数,必须设置“Group”选项卡。
(2)计算列常用函数 数据源的计算列函数共有50多个,主要包括:count(distinct <列表达式>|*)(指定列惟一值的个数或记录总数)、max([distinct] <列表达式>)(指定列的最大值或指定列惟一值的最大值)、min([distinct] <列表达式>)(指定列的最小值或指定列惟一值的最小值)、sum([distinct] <列表达式>)(指定列的算术和或指定列惟一值的算术和)、avg([distinct] <列表达式>)(指定列的算术平均值或指定列惟一值的算术平均值)。
2.使用计算域 (1)定义计算域的方法 ①打开需要放置计算域的数据窗口对象。 ②单击数据窗口画笔工具栏“对象列表”图标 的下拉箭头,打开对象列表,单击选中“计算域”对象图标。
③单击数据窗口上想要放置计算域的地方,打开“Modify Expression”对话框。
④在左侧窗口中选择函数、右侧窗口中选择列组成统计信息的表达式,单击“OK”按钮,即可在计算域的位置插入该表达式。④在左侧窗口中选择函数、右侧窗口中选择列组成统计信息的表达式,单击“OK”按钮,即可在计算域的位置插入该表达式。 ⑤计算域的操作和其他字段的操作方法完全一样。
(2)计算域常用函数 数据窗口对象编辑窗口中计算域函数共有107个,主要包括: count(记录总数)、max(最大值)、min(最小值)、sum(算术和)、avg(算术平均值)。
(3)数据窗口对象编辑窗口中的分组计算 在数据窗口对象的编辑窗口中创建分组的操作方法为: ①打开需要分组的数据窗口对象。 ②选择“Rows”→“Create Group”命令,打开“Specify Group Columns”对话框。
③将“Source Data”列表框中的字段拖动至“Columns”列表框中,表示使用该字段进行分组。也可以将“Columns”列表框中的字段拖动到“Columns”列表框外的任意地方,表示取消使用该字段进行分组。 ④双击“Columns”列表框中的字段,打开“Modify Expression”窗口,进行表达式定义。 ⑤创建分组后,数据窗口中又增加了两个区域,“Header Group”(组标题区)用来显示组名,“Trailer Group”(组尾区)用来放置每组数据的统计和汇总信息。
⑥在组标题区定义分组字段或表达式的显示名称,组尾区⑥在组标题区定义分组字段或表达式的显示名称,组尾区 放置分组的字段或表达式。
8.1.2 实例:学生选课系统版本16 例8-1 设计“学生选课系统”的“学生统计”窗口。 设计:该模块实现统计每个班级的学生人数、平均年龄和所有班级的学生总人数、总平均年龄。 脚本:
操作步骤: 第一步 设计数据窗口对象 (1)选择“File”→“New”命令,单击“DataWindow”选项卡。 (2)选中“Grid”,单击“OK”按钮,打开“Choose Data Source for Grid Data Window”对话框。 (3)选中“SQL Select”数据源,单击“Next”按钮,打开“Select Tables”对话框。 (4)选中表s,单击“Open”按钮,打开数据源编辑窗口。 (5)选中s.class列。 (6)单击“Sort”选项卡,将左部列s.class拖动至右部,指定按class的升序排序。 (7)单击“Group”选项卡,将左部列s.class拖动至右部,指定按class分组。
(8)击“Compute”选项卡,指向编辑行,单击右键,打开快捷菜单,分别粘贴计数函数count(*)和平均值函数avg(year(getdate())-year(birthday)),并分别指定显示列内容为“人数”和“平均年龄”。(8)击“Compute”选项卡,指向编辑行,单击右键,打开快捷菜单,分别粘贴计数函数count(*)和平均值函数avg(year(getdate())-year(birthday)),并分别指定显示列内容为“人数”和“平均年龄”。
(9)单击“Syntax”选项卡,可以检查定义的数据源。(9)单击“Syntax”选项卡,可以检查定义的数据源。
(10)单击“关闭”按钮,打开“Select”对话框。 (11)单击“是”按钮,打开“Set Color and Border Setings”对话框。 (12)单击“Next”按钮,打开“Ready to Create …”对话框。 (13)单击“Finish”按钮,设置页眉区页标题,并调节列宽。
(14)向下拖动“Summary”汇总区分割线拉开汇总区,单击数据窗口画笔工具栏“对象列表”图标 的下拉箭头,打开对象列表,单击选中“文本框”对象图标,单击汇总区中“班级”列对应位置插入文本框,输入文本“总人数和平均年龄”,调节文本框大小。
(15)单击数据窗口画笔工具栏“计算域”对象,单击汇总区中“人数”列对应位置,打开“Modify Expression”对话框。 (16)在列表框中选择求和函数“sum( #x for all )”和列“人数”。
(17)同理,在汇总区中“年龄”列对应位置插入平均值函数“avg(平均年龄for all)”。 (18)单击“OK”按钮,返回数据窗口对象编辑界面。 (19)单击“关闭”按钮,输入数据窗口对象名“d_xstj”。单击“OK”按钮,完成数据窗口对象的创建。
第二步设计“学生统计”窗口 (1)选择“File”→“New”命令,打开“New”对话框,选择“PB Object”选项卡→“Window”,单击“OK”按钮,进入窗口设计界面。 (2)设置窗口属性:在“Title”输入框中输入“学生统计”,在“WindowType”框中选择“response!”,在“WindowState”框中选择“normal!”。 (3)单击工具栏数据窗口控件,放置数据窗口控件“dw_1”,并在属性“DataObject”框中指定需要连接的数据窗口对象名为“d_xstj”,选中“HScrollBar”以及“VScrollBar”,并调整控件大小、位置。
(4)单击工具栏静态文本控件,放置静态文本控件“st_1”,并命名为“班级学生统计情况”;单击工具栏命令按钮控件,放置命令按钮控件“cb_1”,并命名为“关闭”。调整窗口大小以及控件大小、位置。(4)单击工具栏静态文本控件,放置静态文本控件“st_1”,并命名为“班级学生统计情况”;单击工具栏命令按钮控件,放置命令按钮控件“cb_1”,并命名为“关闭”。调整窗口大小以及控件大小、位置。
(5)选择“Open”事件,编写脚本。 (6)选择“关闭”按扭“Clicked”事件,编写脚本。 (7)单击PowerBar工具栏“保存”图标,输入窗口名“w_xstj”。 (8)打开菜单“m_main”,双击“数据分析”菜单标题“学生统计”菜单项,在下部脚本窗口中编写脚本: Open(w_xstj) (9)单击PowerBar工具栏“Run”图标,运行应用程序。选 择“数据分析”→“学生统计”命令,打开“学生统计”窗口。
8.1.3 实例:学生选课系统版本17 例8-2 设计“学生选课系统”的“课程统计”窗口。 设计:该模块实现按课程统计,统计每个班级每门课的最高分、最低分、平均分;每门课的最高分、最低分、平均分;所有课的最高分、最低分、平均分。 脚本:
操作步骤: 第一步 设计数据窗口对象 (1)选择“File”→“New”命令,单击“DataWindow”选项卡。 (2)选中“Tabular”,单击“OK”按钮,打开“Choose Data Source for Tabular DataWindow”对话框。 (3)选中“SQL Select”数据源,单击“Next”按钮,打开“Select Tables”对话框。 (4)选中表s、c、sc,单击“Open”按钮,打开数据源编辑窗口。 (5)选中c.cname、s.class列。 (6)单击“Sort”选项卡,将左部列c.cname、s.class拖动至右部,指定按cname、class的升序排序。 (7)单击“Group”选项卡,将左部列c.cname、s.class拖动至右部,指定按cname、class分组。
(8)单击“Compute”选项卡,在编辑行粘贴函数并指定显示列,内容为:max( sc.score) as 最高分,min( sc.score) as 最低分,sum( sc.score) as 总分,avg(sc.score ) as 平均分。
(9) 单击“关闭”按钮,打开“Select”对话框。 (10)单击“是”按钮,打开“Set Color and Border Setings”对话框。 (11)单击“Next”按钮,打开“Ready to Create …”对话框。 (12)单击“Finish”按钮,设置列标题。
(13)为列标题、列添加边框线,并调节各列宽度、位置。(13)为列标题、列添加边框线,并调节各列宽度、位置。 (14)在页眉区插入文本框对象,输入内容为“课程分数统计”,调节宽度、位置。
(15)选择“Row”→“Create Group …”命令,打开“Specify Group Columns”对话框,将“Source Data”框中“c_cname”列拖动至“Columns”框中,指定按cname分组。
(16)单击“OK”按钮,返回数据窗口编辑界面,在数据窗口中增加了分组区。(16)单击“OK”按钮,返回数据窗口编辑界面,在数据窗口中增加了分组区。
(17)在组尾区“班级”对应列位置插入文本框对象,输入内容为“本课程”。(17)在组尾区“班级”对应列位置插入文本框对象,输入内容为“本课程”。
(18)单击数据窗口画笔工具栏“计算域”对象,单击组尾区“最高分”对应列位置,打开“Modify Expression”对话框,选择“max( )”函数及“最高分”列。
(19)单击“OK”按钮,返回数据窗口对象编辑界面。(19)单击“OK”按钮,返回数据窗口对象编辑界面。 (20)同理,在组尾区“最低分”列对应位置插入“min(最低分for group 1)”,“平均分”列对应位置插入“avg(平均分for group 1)”。
(21)同理,在汇总区“班级”对应列位置插入文本框对象,输入内容为“所有课程”,在汇总区“最高分”列对应位置插入“max(最高分for all)”,在汇总区“最低分”列对应位置插入“min(最低分for all)”,在汇总区“平均分”列对应位置插入“avg(平均分for all)”。
(22)单击“关闭”按钮,输入数据窗口对象名“d_kctj”。单击“OK”按钮,完成数据窗口对象的创建。 第二步 设计“课程统计”窗口 (1)打开窗口“w_xstj”,选择“File”→“Save As”命令,打开“Save Window”对话框。 (2)在“Windows”输入框中输入“w_kctj”,即将“w_xstj”窗口另存为“w_kctj”窗口,单击“OK”按钮,返回“w_kctj”窗口设计界面。
(3)修改窗口:将“Title”输入框中修改为“课程统计”,将数据窗口控件“dw_1”属性“DataObject”框数据窗口对象名修改为“d_kctj”,将静态文本控件“st_1”删除”。(3)修改窗口:将“Title”输入框中修改为“课程统计”,将数据窗口控件“dw_1”属性“DataObject”框数据窗口对象名修改为“d_kctj”,将静态文本控件“st_1”删除”。
(4)单击“关闭”按钮,保存修改。 (5)打开菜单“m_main”,双击“数据分析”菜单标题“课程统计”菜单项,在下部脚本窗口中编写脚本: Open(w_kctj) (6)单击PowerBar工具栏“Run”图标,运行应用程序。选择“数据分析”→“课程统计”命令,打开“课程统计”窗口。
8.2 统计图表设计 8.2.1 统计图表设计基础 8.2.2 实例:学生选课系统版本18
8.2.1 统计图表设计基础 1.图表组成 (1)标题(Title) 用于显示图表的作用。 (2)分类轴(Category Axis) 相当于数学坐标系X坐标轴,一般情况下用于显示数据的分类。分类轴包括如下三个部分。 ①分类轴标题 ②分类轴正文 ③分类轴
(3)值轴(ValueAxis) 相当于数学坐标系Y坐标轴,一般情况下用于显示分类信息的数值。值轴包括如下三个部分。 ①值轴标题 ②值轴正文 ③值轴 (4)图例说明(Legend) 用于对当前图表中的信息进行说明,用于说明颜色代表的具体含义。 (5)系列(Series) 一组相关数据点集合,通常会并列显示。
2.图表分类 (1)柱形图(Column) (2)条形图(Bar) (3)面积图(Area) (4)折线图(Line) (5)条形堆积图(StackedBar) (6)柱形堆积图(StackedColumn) (7)饼图(Pie) (8)散点图(Scatter) (9)三维图表
3.设置图表的属性 通过图表属性对话框可以设置图表的属性。图表的属性可以改变图表的显示外观和显示数据。 (1) General选项卡GraphType属性 (2) General选项卡Legend 属性 (3) Data属性选项卡 (4) Axis属性选项卡
8.2.2 实例:学生选课系统版本18 例8-3 设计“学生选课系统”的“成绩统计”窗口。 设计:该模块实现按成绩分段统计人数,在下拉列表框中每选定一门课程,按“检索”按扭,将以图表方式显示该课程的分段统计人数。 脚本:
操作步骤: 第一步设计统计表tj 启动SQL-EM,在数据库student中创建表tj。
第二步 设计数据窗口对象 (1)选择“File”→“New”命令,单击“DataWindow”选项卡。 (2)选中“Graph”,单击“OK”按钮,将打开“Choose Data Source for Graph Data Window”对话框。 (3)选中“SQL Select”数据源,单击“Next”按钮,打开“Select Tables”对话框。 (4)选中表tj,单击“Open”按钮,打开数据源编辑窗口。 (5)选中fsd、rs列。 (6)选择“Design”→“Retrieval Arguments”命令,打开“Specify Retrieval Arguments” 对话框。设置参数名“a_lbdm”,类型为“String”。 (7)单击“OK”按钮,返回数据窗口编辑界面。单击“Where”选项卡,设置条件为“tj.cno=:a_lbdm”。