循序渐进学习Power Builder 6.0(5-2)
第五章 数据窗口
5.2 对数据窗口的操作
接下来将要介绍对已经创建好的数据窗口对象的一些常用操作。
单击POWERBAR工具条上的DATAWINDOW按钮,在SELECT DATAWINDOW对话框中选择一个数据窗口对象,这里就选择前面创建的数据窗口对象中显示风格为GRID的那个数据窗口对象,然后单击OK按钮,系统打开了数据窗口画板,接下来就可以对已有的数据窗口对象进行操作了。
可以看出DATAWINDOW画板的工作区被分成了许多的带状区域,每个带对应数据窗口对象的一部分。下面分别介绍这几个带状区域的作用。
HEADER区域的作用主要是在数据窗口的顶部显示记录字段的题头等信息。可以看出系统缺省把所有字段的扩展属性HEADER的值放在HEADER区域作为HEADER区域的值,我们还可以在HEADER区域显示其它的内容,单击OBJECTS菜单的菜单项TODAY(),然后单击HEADER区域的某个地方,TODAY()函数就显示在HEADER区域中,单击PAINTERBAR工具条上的divVIEW按钮,可以发现通过TODAY()函数把系统日期显示在了HEADER区域中(图5-5)。我们还可以在HEADER区域中放入图片等其它内容,这里就不详述了。
图5-5
再次单击divVIEW按钮回到DATAWINDOW画板工作区域,接着HEADER区域下面的是DETAIL区域,这里显示的主要是数据源中的数据,显示的风格与设计数据窗口对象时的风格有关。对这个区域我们一般不做修饰。单击PAINTERBAR工具条上的divVIEW按钮,显示在题头下面的一行行记录就是DETAIL区域的内容。
接下来看SUMMARY和FOOTER两个区域,SUMMARY区域是用来显示一些统计信息,比如记录的总行数,某个字段的平均值等信息,这些内容显示在所有的记录都显示完之后。比如这里首先选中DETAIL区域的DEPARTMENT-ID字段,然后在OBJECTS菜单中选中COUNT菜单项,可以发现COUNT(DEPT-ID)出现在SUMMARY区域中,利用这个函数就可以统计记录的行数,单击PINTERBAR工具条上的divVIEW按钮,可以发现在记录的下面显示的就是记录的行数,这里有五行。回到DATAWINDOW画板,在FOOTER区域主要用来显示每页数据显示完后的一些信息,其中最常用的信息就是页码,单击OBJECTS菜单的PAGE N OF N菜单项,然后单击FOOTER区域的某个地方,相应地显示出“PAGE +PAGE()+OF+ PAGECOUNT()”,单击PAINTERBAR工具条上的divVIEW按钮,可以发现有关页码的信息显示在每一页的右下脚。
在DATAWINDOW画板上有一些通用的操作,纵向拖动每个区域的左右边框可以改变区域的大小,单击画板中的某个对象,就选中了它,选中的对象的四个角上会有一些黑点。如果要同时选中许多的对象,只要在鼠标单击对象的时候同时按住CTRL键就可以了。
在前面定义数据窗口的数据源的时候利用标准的SQL语句,可以达到过滤,排序、分组数据,从而只在数据窗口中显示需要的数据的目的。当数据窗口的数据源确定好之后,有时我们可能只想显示其中的一部分数据,这时就需要对已经从数据库中取到数据窗口中的数据再进行过滤,排序,和分组。这时不需要象前面那样生成SQL语句提交DBMS执行,而是完全由PowerBuilder为我们做这些事情,接下来就分别介绍如何过滤,排序,和分组数据。
单击ROWS菜单的FILTER菜单项,系统弹出SPECIFY FILTER对话框,在这里就可以定义过滤数据的条件,比如这里设置过滤条件为“DEPT-ID=100”,然后单击OK按钮,单击PAINTERBAR工具条上的divVIEW按钮,数据窗口画板上显示的记录只有满足过滤条件的记录,这里只有一条。其它的记录确实从数据库中取了出来,但被刚才定义的条件过滤掉了。
单击ROWS菜单的SORT菜单项,在接下来的SPECIFY SORT COLUMS对话框中就可以定义数据显示时的记录排序方法,把左边工作区中的DEPT-HEAD-ID用鼠标拖动到右边的工作区,系统缺省是升序,单击OK按钮,就定义好了排序方法,用和前面类似的方法预览数据,可以看出显示的数据按照DEPT-HEAD-ID字段从小到大的顺序显示。
ROWS菜单上的CREATE GROUP菜单项是用来为数据创建分组,目的是把相关的记录显示在一起,便于查看数据。单击CREATE GROUP菜单项后系统弹出BAND OBJECT对话框,把DEPT-ID字段拖到右边的工作区中,观察对话框的下面有一个复选框NEW PAGE ON GROUP BREAK,选中它,这样在显示不同组的数据的时候将从新的一页开始,选中后单击OK按钮确定操作。可以发现在DATAWINDOW画板中多了两个带状区域,它们的作用是为每一组的数据定义题头和脚注,这里就不定义了。单击divVIEW按钮,可以发现这时一页只显示一个记录,这是因为这里每一组只有一个记录。
对数据窗口对象还有一些操作,比如为显示数据定义字体,鼠标形状等等,而且不同类型的数据窗口对象可用的操作类型还有所区别。这里就不一一介绍了,
最后要说明的是,对数据窗口对象,最主要的操作是把它与窗口中的数据窗口控件相连,关于这方面的内容前面通过实例已经介绍了一些。这里就不再详述了。