为了在多个关联的表中查询数据,通常需要使用crosstab风格的数据窗口。

下面是一个crosstab风格的数据窗口,使用了三个数据表:course,score,student。course表保存课程编号及名称,score表保存成绩,student保存学生编号及学生姓名。(您可用table_student_course_score.sql建立这三个表,用score-course-student.data.sql来输入测试用数据。)

下面来建立数据窗口。

1、选择数据源。使用sql select类型的数据源。

2、选择下图所示的三个表:

3、为数据窗口选择相应的数据列:

4、定义交叉表:

5、下面是默认的数据窗口:

6、我们需要修改它以适应我们的需要:

7、为计算每个学生的平均分,我们需要在deltail区的最后一列加上一个计算列,来计算平均成绩。

8、该计算列的表达式如下:

9、在数据窗口的head[1]区加入一个文本标签来显示标题,按下图修改其属性值。

10、注意设置该标签的position属性组中的layer属性为foreground。这样才可以跨多列显示。

11、我们希望score列的数据小于60时用红色显示,在该列的expressions属性组中设置其color属性。

12、为显示每个班级各课程的平均分,需要设置trailer group classname中的计算控件的表达式为

avg(score for group 1)。如下图所示:

13、下图是最后设置完成后的数据窗口。

建立w_stu_report窗口,其上放置数据窗口dw_1,其子数据窗口为d_score_report。

在窗口的open事件为dw_1设置事务对象及检索数据。

 

 

返回

数据空间