第13章系统开发工具应用简介ppt课件.ppt
13.1 屏幕生成器的使用13.2 报表及标签书写器的使用,第 13 章 系统开发工具应用简介,返回主目录,第13章 系统开发工具应用简介,13.1屏幕生成器的使用 13.1.1 屏幕生成器的初步应用 屏幕生成器主要是针对数据库文件,设计数据的输入、输出屏幕。使用FoxPro的屏幕生成器生成一个数据库对应的输入、输出屏幕时,将首先生成扩展名为.SCX屏幕结构文件,然后依据屏幕结构文件,生成扩展名为.SPR的屏幕结构的程序文件。,1.打开屏幕设计窗口 1)命令方式 在命令窗口中打入命令的格式为 CREATE SCREEN 屏幕结构文件主名 或 MODIFY SCREEN 屏幕结构文件主名 例如,打入命令:CREATE SCREEN,则屏幕出现一个打开屏幕格式文件的Open窗口,因为是新建屏幕格式文件,所以选择“New”按钮。如果当前没有目标数据库文件,则又出现一个打开数据库文件的Open窗口,此时选择回答人事数据库Rsh.dbf,按下“Open”按钮,这才打开了如图13.1所示的屏幕结构设计窗口。,如果在打入命令时指定了屏幕结构文件的主名,则窗口标题由所指定文件的主名和报表格式文件的扩展名SCX组成;如果命令中缺省了文件主名,则窗口标题为“untitled scx”,表示当前要生成的屏幕结构文件是一个临时名,待到保存屏幕结构文件的时候,再回答正式的文件名。在打开屏幕结构设计窗口的同时,FoxPro的系统菜单中,新增了Object和Screen两个菜单项。2)选单方式 单击FoxPro系统菜单中的菜单项“Run”,选择其子菜单“Screen.”,则后续操作同命令方式,也将出现如图13.1所示的屏幕结构设计窗口。,2.屏幕结构的快速生成 在屏幕结构设计窗口中进行屏幕结构设计的方法有很多,这里只介绍一种简单实用的“屏幕结构快速生成法”。屏幕结构快速生成的操作步骤如下:(1)选择新增菜单Screen的子菜单Quik Screen.,出现如图13.2所示的快速建立屏幕结构的对话框。(2)快速建立屏幕结构的对话框的操作如下:采用屏幕结构的默认设置。针对所打开的数据库文件(Rsh.dbf),如果使用图13.对话框中各个选择项的默认设置,则单击“OK”按钮,则在屏幕结构设计窗口中立即显示出所生成的屏幕格式(见图13.3)。,屏幕结构的设置。如果不全部采用屏幕结构的默认设置,则可供用户选择设置的参数主要有:设置数据库字段的排列方式。在Field Layout区,有两个按钮。左按钮上示意字段按行排列,右按钮上示意字段按列排列。用户可用鼠标单击按钮,被按下去的按钮(凹陷)是选中的排列方式。设置字段的最大宽度。在Max Field Width区,有一个数码器,用户可以在数码输入区输入最大宽度数,也可以通过单击数码器右侧的上、下箭头,使数码器中所显示的数字增加或减少到所需要的宽度。,设置字段标题。对于复选框Titles,如果被选中(Titles前面的方框内显示),则以字段名作为字段输入区的标题;如果没有被选中(Titles前面的方框内显示的消失),则字段输入区前面没有标题,用户只能以字段输入区内显示的字段名来识别输入区对应的字段名。该复选框的默认设置是以字段名作为字 段输入区的标题。显然,一般采用默认设置。屏幕结构中的字段选择。当单击Fields.后,立即出现从当前数据库中选择字段的对话框,屏幕结构中只出现用户所选择的那些字段。指定型数据输入区的宽度。用户利用屏幕生成器生成的屏幕格式,可以直接输入或修改型字段的数据,并不需要在型数据编辑窗口输入。,但是,从屏幕结构设计窗口中可以看到,型数据输入区的显示宽度仅有10个字符的宽度,怎么能容纳型较多的内容呢?实际上,显示宽度虽小,但是在输入数据时,所输入的内容可以向输入区的左方滚动,所以仍然可以输入较多的内容。型字段数据输入区的容量,在屏幕结构设计时是可以指定的。其指定方法是:在图13.3所示的屏幕结构设计窗口中,用鼠标双击型字段的数据输入区。例如,双击“简历”字段的数据输入区,则立即出现Edit Region窗口(见图13.4)。在此窗口的右下角,有一个Character Length数码器,在此输入型数据宽度。窗口中的其它参数均采用默认值,按“OK”按钮,返回到屏幕结构设计窗口,则完成型字段数据容量的指定。,3.存储屏幕结构文件和屏幕结构程序文件 用屏幕结构快速生成法所生成的屏幕结构,可以作为文件存入磁盘。同时,还可以生成该屏幕结构所对应的程序文件并存入磁盘。其操作方法是:(1)存储屏幕结构文件。选择FoxPro系统菜单Program的Generate.,系统询问是否存储当前屏幕结构的对话框,选择“Yes”后,出现Save As窗口。用户在Save As窗口指定存储.SCX文件的磁盘、目录并输入.SCX文件的主名。注意:网络用户需要指定有存取权限的目录。按“Save”按钮,则屏幕结构文件存入了磁盘。,(2)生成并存储屏幕结构程序文件。实际上,存储屏幕结构文件和生成并存储对应的屏幕结构程序文件,是一个连续的操作过程。当存储屏幕结构文件操作结束后,系统立即询问是否生成屏幕程序文件的对话框,选择“Yes”后,出现如图13.5所示的Generate Screen对话框。此时窗口中已经显示默认的程序文件名(和屏幕结构文件的主名同名),用户可以重新指定文件名、磁盘和目录,一般采用默认值(网络用户需要指定有存取权限的目录)。按“Generate”按钮,则屏幕结构的程序文件存入了磁盘。,4.运行屏幕程序文件 在FoxPro的命令窗口打入命令:DO.SPR文件名,则屏幕显示对应的屏幕结构窗口。此后,用户就可以在此窗口输入、编辑当前记录的数据了。当然,也可以把这个执行屏幕结构程序文件的命令,作为用户应用程序中的一条语句使用。例如,通过前面的操作步骤,已经生成了名为Abc1.spr的屏幕结构程序文件。在命令窗口打入命令DO Abc1.spr之后,屏幕显示数据库Rsh.dbf对应的屏幕结构窗口(见图13.6)。,运行和使用屏幕结构程序文件时,需要说明的几个问题:(1)DO命令指定的屏幕结构文件应当给出文件的主名和扩展名(.SPR),如果只给出文件主名,则系统认为是一条执行.PRG文件的命令。(2)一旦启动了屏幕结构程序文件,则仅对数据库的当前记录进行操作,且只能按Ctrl+W键或Esc键,退出屏幕结构程序文件。(3)如果在用户应用程序中使用了这种屏幕结构程序文件,则当退出所使用的屏幕结构程序文件之后,可能会发生数据库文件没有打开的错误。,13.1.2 屏幕生成器的进一步应用 从屏幕生成器的初步应用中,我们感到所生成的屏幕结构程序使用起来有一些不尽如人意之处。例如,它只能对当前记录进行操作,它必须使用键盘命令退出,这使得屏幕结构程序文件不适于在应用程序中使用。为了解决这些不足之处,需要进一步学习屏幕生成器的其它功能。为了节省篇幅,下面仅在前面快速生成的数据库(Rsh.dbf)屏幕结构的基础上,介绍一些继续完善屏幕结构的操作。1.在屏幕结构中设置操作按钮 这里,仅以设置记录下移、记录上移、退出屏幕结构程序等三种操作按钮为例,说明如何在屏幕结构中设置操作按钮。,1)生成操作按钮 设当前操作已经进行到图13.3所示的屏幕结构设计窗口,此时,在屏幕结构设计窗口左侧的工具条中,用鼠标单击“按钮定义工具”()后,再在屏幕设计窗口的恰当位置单击一下鼠标左键,这就是按钮在屏幕上放置的起始位置。与此同时,屏幕出现Push Button对话框(见图13.7)。接着进行如下操作:(1)指定按钮上显示的文字。在Push Button Prompts列表框依次输入“下移”、“上移”、“退出”三行文字,所输入的文字分别作为三个按钮上显示的按钮名称(见图13.7)。这里输入的文字,各个按钮的外部名称;另外,系统按用户所输入外部名称的前后顺序,分别赋予按钮编号,作为系统内部名称。例如,外部名称“下移”、“上移”、“退出”的内部名称分别是、。,(2)指定按钮变量名。在Variable文本框输入按钮变量名(例如,输入aaa),当用户按下某个按钮时,此变量将获得三个按钮的一个编号,即按钮变量aaa存储了按钮的内部名称。2.编写按钮的控制程序 在Push Button对话框完成按钮的外部名称的输入和按钮变量名的输入之后,用鼠标单击Valid功能项,立即出现Code Snippet对话框(见图13.8),选择Valid框中Procedure后,在程序输入框内输入按钮控制程序。,DO CASE CASE aaa=1&如果按下“向下”按钮 IF NOT EOF()&如果数据库指针没有指向文件尾标记 SKIP&则数据库记录指针下移一条记录 SHOW GETS&显示当前记录 ENDIF CASE aaa=2&如果按下“向上”按钮,IF NOT BOF()&如果数据库指针没有指向文件首标记 SKIP-1&则数据库指针上移一条记录 SHOW GETS&显示当前记录 ENDIF CASE aaa=3&如果按下“退出”按钮 DEACTIV WINDOW ALL&存盘并关闭数据编辑窗口 ENDCASE,这实际上是一个分情况处理的程序段。仿此,读者不难设计其它操作功能的按钮控制程序。控制程序段输入完毕后按“OK”按钮,返回到屏幕结构设计窗口。此时,屏幕结构设计窗口中已经出现了三个命名按钮(见图13.9)。3.生成屏幕结构程序文件 生成屏幕结构文件和屏幕结构程序文件的操作步骤同前所述。设生成的屏幕结构程序文件名为abc2.spr。按Esc键返回到FoxPro系统窗口。,4.用户程序中引用屏幕结构程序文件 以上面生成的屏幕结构程序文件(Abc2.spr)为例,说明用户程序如何利用生成的屏幕结构程序文件。例 13.1编程要求:定义名为xyz的窗口,在此窗口显示人事数据库(Rsh.dbf)中性别为“女”的记录;利用Abc2.spr,浏览并修改人事数据库Rsh.dbf中的数据,浏览、编辑结束后,退出该屏幕结构程序;询问用户是否追加记录,如果追加,则再次启动屏幕结构程序并输入一条记录,确认输入正确后,退出屏幕结构程序,显示刚刚追加的那条记录;如果不追加记录,则返回FoxPro系统。,其程序如下:CLEAR DEFINE WINDOW xyz FROM 4,4 TO 18,70 CLOSE FLOAT;TITLE 显示人事数据库记录 ACTIVATE WINDOW xyz USE D:rsh DISP FOR 性别=女 GO TOP WAIT WIND 按任意键开始浏览、编辑人事数据库.,DO D:Abc2.spr&为浏览、编辑人事数据库中的数据,编辑结束时退出 WAIT WINDOW 是否向人事数据库追加记录(Y/N)?TO yn IF UPPER(yn)=Y APPEND BLANK&向人事数据库追加一条空记录(会出现错误)DO D:Abc2.spr&启动屏幕结构程序文件时,显示当前记录,即空记录 DISPLAY&执行DISP时,出现需要打开数据库的提示,程序出错,ENDIF CLOSE ALL RETU 运行此程序,屏幕先出现xyz窗口,在此窗口显示了人事数据库中性别为“女”的所有记录;按任意键后,出现Abc2.spr的屏幕结构画面,可对人事数据库中的数据进行浏览、编辑;当用户回答追加记录后,再次启动了Abc2.spr程序,窗口显示了一条空记录,此时需要从键盘输入数据。但是,当第一次退出Abc2.spr程序时,名为xyz的窗口也被清除了;当第二次退出Abc2.spr程序时,执行APPEND BLANK或DISPLAY命令,都将出现数据库没有打开的错误。,这些问题是由屏幕生成器生成的程序引起的。这并不是说生成的程序有错误,而是由于用户不了解生成的程序的功能和执行状况。所以程序设计者不仅有必要了解所生成的程序,而且有时还需要修改生成的程序,以适合用户的需要。,13.1.3 屏幕结构程序文件的修改 至此,我们直观地看到了屏幕生成器所生成的屏幕格式,并举例说明了在用户应用程序中如何利用所生成的屏幕结构程序文件。既然屏幕生成器最终生成的是一个屏幕格式程序,那么这种程序是什么样的程序?它是否可以由用户进行修改呢?现在就回答这些问题。为便于说明,仍以前面生成的屏幕结构程序文件Abc2.spr为例。1.显示屏幕结构程序文件 在FoxPro的命令窗口,如果打入屏幕结构程序文件的编辑命令:,MODIFY COMMAND D:Abc2.spr(注意:指定目录下应存在Abc2.spr文件)则在程序编辑窗口显示出Abc2.spr的源程序。由于屏幕生成器生成的程序很长,下面仅节选与我们讨论的问题有关的部分程序段:*00-04-19ABC2.SPR09:09:08*系统运行参数的设置,REGION 0 REGIONAL m.currarea,m.talkstat,pstat IF SET(TALK)=ON SET TALK OFF m.talkstat=ON ELSE m.talkstat=OFF ENDIF pstat=SET(COMPATIBLE)SET COMPATIBLE FOXPLUS,m.rborder=SET(READBORDER)SET READBORDER ON m.currarea=SELECT()HJ*4/9*ABC2/Windows Databases,Indexes,Relations*打开人事数据库(rsh.dbf),IF USED(rsh)SELECT rsh SET ORDER TO 0 ELSE SELECT 0 USE(LOCFILE(rsh.dbf,DBF,Where is rsh?);AGAIN ALIAS rsh;ORDER 0 ENDIF,*Windows Window definitions*HJ*定义屏幕结构的窗口 IF NOT WEXIST(-0320jm7cv)DEFINE WINDOW-0320jm7cv;AT 0.000,0.000;SIZE 22.000,98.400;,FONT MS Sans Serif,8;FLOAT;NOCLOSE;MINIMIZE;SYSTEM ENDIF*ABC2/Windows Screen Layout*,*窗口中的格式输入、输出语句 REGION 1 IF WVISIBLE(-0320jm7cv)ACTIVATE WINDOW-0320jm7cv SAME ELSE ACTIVATE WINDOW-0320jm7cv NOSHOW ENDIF 0.077,0.000 SAY 姓名;FONT MS Sans Serif,8;STYLE BT,0.077,12.400 GET rsh.姓名;SIZE 1.000,9.200;DEFAULT;FONT MS Sans Serif,8;PICTURE K 1.154,0.000 SAY 性别;FONT MS Sans Serif,8;STYLE BT,1.154,12.400 GET rsh.性别;SIZE 1.000,2.800;DEFAULT;FONT MS Sans Serif,8;PICTURE K 2.231,0.000 SAY 出生日期;FONT MS Sans Serif,8;STYLE BT,2.231,12.400 GET rsh.出生日期;SIZE 1.000,9.400;DEFAULT/;FONT MS Sans Serif,8;PICTURE K 3.308,0.000 SAY 技术等级;FONT MS Sans Serif,8;STYLE BT,3.308,12.400 GET rsh.技术等级;SIZE 1.000,2.800;DEFAULT;FONT MS Sans Serif,8;PICTURE K 4.385,0.000 SAY 工资;FONT MS Sans Serif,8;STYLE BT,4.385,12.400 GET rsh.工资;SIZE 1.000,8.600;DEFAULT 0;FONT MS Sans Serif,8;PICTURE K 5.462,0.000 SAY 简历;FONT MS Sans Serif,8;STYLE BT,5.462,12.400 EDIT rsh.简历;SIZE 1.000,16.200,0.000;PICTURE K;DEFAULT;FONT MS Sans Serif,8;SCROLL 18.462,43.200 GET aaa;PICTURE*HN 下移;上移;退出;SIZE 1.769,6.167,0.667;,DEFAULT 1;FONT MS Sans Serif,8;STYLE B;VALID-0320jm7fr()IF NOT WVISIBLE(-0320jm7cv)ACTIVATE WINDOW-0320jm7cv ENDIF READ CYCLE RELEASE WINDOW-0320jm7cv,*Windows Closing Databases*退出屏幕结构程序的操作 IF USED(rsh)SELECT rsh USE,ENDIF SELECT(m.currarea)REGION 0 SET READBORDER&rborder IF m.talkstat=ON SET TALK ON ENDIF IF pstat=ON SET COMPATIBLE ON ENDIF,*-0320JM7FRaaa VALID*Function Origin:*From Platform:Windows*From Screen:ABC2,Record Number:15,*Variable:aaa*Called By:VALID Clause*Object Type:Push Button*Snippet Number:1*操作按钮控制程序段(是屏幕结构设计时,在图13.8所示的窗口输入的)FUNCTION-0320jm7fr&aaa VALID REGION 1 do case,case aaa=1 if not eof()skip show gets endif case aaa=2 if not bof(),skip-1 show gets endif case aaa=3 deac wind all endcase,2.修改屏幕生成器生成的程序 屏幕生成器生成的程序,不一定符合用户的要求,所以有时需要对其修改。但是,上面的程序清单中,由于使用了一些我们没有介绍过的命令、函数和系统内存变量,读者可能难以读懂。实际上,读者最需要了解的是,程序中各个程序段的功能,以便能够很快地把目标集中到需要修改的程序段上。为了具体说明修改屏幕生成器生成的程序的方法和修改的效果,仍以上面列出的Abc2.spr程序为例,进行下面两个程序段的修改,以便对读者阅读和修改程序能有一些启发。1)从屏幕结构程序文件中查找屏幕窗口名 对于每个屏幕结构,屏幕生成器都自动给出了屏幕结构的窗口名称,找到这个窗口名,就可以在用户应用程序中引用。我们在标号为的程序段中,看到了Abc2.spr的窗口定义语句:,DEFINE WINDOW-0320jm7cv;AT 0.000,0.000;SIZE 22.000,98.400;FONT MS Sans Serif,8;FLOAT;NOCLOSE;MINIMIZE;SYSTEM,可知Abc2.spr的窗口名称是-0320jm7cv。得知这个窗口名称后,我们就可以在标号为的程序段中,把“退出”按钮的控制语句DEACTIVATE wind all改写为 DEACTIVATE wind-0320jm7cv。即把关闭所有的屏幕窗口(ALL)改为只关闭Abc2.spr所使用的窗口。这样改动之后,当按下“退出”按钮,仅仅关闭Abc2.spr的窗口,而不影响屏幕上其它窗口的使用,这更符合退出Abc2.spr程序的目的。2)修改屏幕结构程序文件中的退出处理语句 从标号为的程序段中可以看到,当退出屏幕结构程序时,总是要关闭对应的数据库文件,这往往影响后续程序的运行。为了在退出屏幕结构程序时,不关闭数据库,可以从标号为的程序段中,将下列语句删去:,IF USED(rsh)SELECT rsh USE ENDIF 对Abc2.spr作了上述两处修改后,再次运行例 13.1 的程序,当退出Abc2.spr程序时,用户定义的窗口(xyz)没有被关闭,且追加记录或显示人事数据库中刚刚追加的一条记录时,不再出现数据库没有打开的错误。,13.2 报表及标签书写器的使用,13.2.1 报表书写器的使用 1.打开报表设计窗口 使用报表书写器设计报表输出格式时,首先要打开报表设计窗口。打开报表设计窗口的方式有命令方式和选单方式两种。1)命令方式 在FoxPro的命令窗口中,打入命令:MODIFY REPORT 报表格式文件名 则屏幕上立即显示出如图 13.10 所示的报表设计窗口。,在报表设计窗口中,标题栏显示报表格式文件名.frx,窗口的左侧有一个报表设计工具条。窗口内是报表格式设计区,图 13.10 所示的报表格式设计区划分为两个分区,上面是数据栏目标题分区(Page Header),一般是以当前数据库的字段名作为栏目标题的;下面是数据区(Detail)。实际上,报表格式设计区可根据用户的需要划分为多个分区(可多达7个)。当打开报表设计窗口后,系统新增了Object和Report两个菜单项。2)选单方式 在FoxPro的系统菜单中,选择Run的Report.,之后的操作如同使用屏幕生成器时,打开屏幕结构文件和打开对应的数据库文件的操作。即在打开报表格式文件的对话框中,指定一个报表格式文件的主名,为了新建报表格式文件,,按下“New”按钮;在打开数据库文件的对话框中,指定一个数据库文件名,按下“Open”按钮之后,立即显示如图 13.10 所示的报表格式设计窗口。但是,由于在用选单方式打开报表格式设计窗口的操作过程中,已经指定了报表格式设计对应的数据库,所以在报表格式设计窗口中,比图 13.10 多了一个分区,即每页报表的“页尾”分区(Page Footer)。2.报表格式的快速设计 报表格式的快速设计和使用屏幕生成器快速生成屏幕结构设计一样。报表书写器也具备报表快速设计功能。下面以快速设计人事数据库(Rsh.dbf)的报表为例,说明报表快速设计的操作步骤和操作效果。,1)打开报表快速设计对话框 设此前已经用选单方式指定了人事数据库(rsh.dbf),并进入了报表设计窗口。在此基础上,选择新增系统菜单Report的子菜单项Quick Report,则打开了和快速屏幕生成器相类同的对话框(参见图13.2),在此窗口内一般使用系统默认值,所以按“OK”按钮,即可返回报表设计窗口。此时,报表设计窗口的三个分区,分别显示出了以字段名为栏目标题名的页头格式、页内数据格式和页尾格式。其中,报表页尾分区的左端显示DATE(),表示在输出报表时,每页结束行的左端输出来自计算机系统的日期;报表页尾分区的右端显示Page PAGENO(),表示在输出报表时,每页结束行的右端输出Page和来自系统页计数器记录的当前页号。,至此,人事数据库(rsh.dbf)的报表设计已经完成。2)报表格式预览 为了查看所设计的报表的使用效果,选择系统菜单Report的子菜单项Page Preview.,则屏幕立即出现如图 13.11 所示的Page Preview对话框。在该对话框中的页面预览区,显示了数据输出时的页面格式。Page Preview对话框的右侧有五个按钮和一个数码器,从上到下五个按钮依次是:OK退出报表输出窗口,返回到报表设计窗口。,Next显示下一页。如果没有下一页,此按钮为淡色,表示当前不可操作。Preview显示上一页。如果没有上一页,此按钮为淡色,表示当前不可操作。Zoom In页面的放大显示。此时页面预览区左边框和下边框的滚动条上出现了滑块,以便阅读当前页面中的其它部分的内容。Zoom Out页面的缩小显示,以便观察全页格式。使用Page Preview对话框右侧的数码器,可以预览指定的页面。如果当前数据库中的数据只占用一个页面,则数码器为淡色显示。,3.报表书写器其它功能的使用 1)输出字段的选择 前面使用快速报表设计功能设计出来的报表,把当前数据库的全部字段都作为了输出字段。实际上,有时只需要在报表中输出部分字段的数据。下面介绍只输出数据库中部分字段的方法。选择系统菜单Report的子菜单项Quick Report.,出现和图 13.2 相类同的QuickReport 对话框。在Quick Report对话框中,选择Fields.,立即打开Field Picker对话框(见图13.12)。,在Field Picker对话框的左面,是当前数据库的字段名列表框(All Fields:),用鼠标双击需要在报表中输出的字段名,则该字段名就会出现在Field Picker对话框右面的字段选择列表框(Selected Fields:)中。例如,从All Fields列表框中,选择了人事数据库的“姓名”、“工资”两个字段,则在Selected Fields列表框中出现了这两个字段,图 13.13 就是选择了这两个字段的情况。当需要在报表中输出的字段选择完毕后,按“OK”按钮,返回到Quick Report对话框,再按Quick Report对话框中的“OK”按钮,返回到报表设计窗口。此时,报表设计窗口只显示出所选择的字段。,在Field Picker对话框中可以从All Fields列表框选择输出字段,也可以从Selected Fields列表框中取消将所选择的字段。其操作方法读者是不难掌握的,这里不再赘述。2)输出页面的纵向分割 此方法所选择的输出字段,在报表上将占用一个输出行。如果输出字段较少,输出的数据可能只占一个输出行的一小部分。为了使一个输出行输出较多的数据,特别是打印输出时能减少打印纸的消耗,可以把多个输出行放在一个打印行内输出。这就需要使用报表书写器的输出页面纵向分割功能。选择系统菜单Report的子菜单项Page Layout.,出现如图 13.13 所示的Page Layout对话框。,在Page Layout对话框,左面的Page Layout方框内模拟显示了一个页面的格式。在Page Layout方框的右侧,有四个报表页面设置的操作区。(1)Columns数码区。Columns数码区内有四个数码器,其中最上面的Columns数码器用于设置每页纵向分割的数目。例如,当此数码器设置为 时,则页面出现一条竖线,把页面分割为左右两部分,表示每页分两栏,可分别在每栏输出指定的字段数据;当此数码器设置为时,则页面出现两条竖线,把页面等分为三部分,依此类推。Columns数码器下面的三个数码器分别用于设置页面的左空白区、栏宽和栏距。,其中,栏宽和栏距的设置,应当确保每个栏目能够容纳输出的数据。例如,如果输出“姓名”和“工资”两个字段,则可以把页面划分为三栏。图 13.13 就是将页面划分三栏并合理地设置了页左边距、栏宽和栏距的Page Layout对话框。(2)Dimensions区。页面设置使用的长度单位在Dimensions区指定,选择Inches,长度单位为英寸;选择cm,长度单位为厘米。(3)Print Area区。选择Pintable Pge,则在打印输出时,输出页面在一页打印纸上的打印区域,按系统菜单File的子菜单Print Setup所作的设置;选择Whole Page,则在打印输出时,将整个一页打印纸作为输出页面的打印区域。,(4)Print Order区。当多栏输出时,可在Page Layout对话框右上角的Print Order区选择打印内容的排列方式。完成在Page Layout对话框的各种设置和选择之后,按“OK”按钮,返回报表设计窗口。图 13.14 就是按图 13.13 设置的页面预览对话框。4.存储报表格式文件 在报表书写器完成报表格式设计后,选择系统菜单File的子菜单Save.,将所设计的报表格式,作为文件存入指定的磁盘和目录中。存盘时,用户只需指定文件的主名,系统会自动附加扩展名.FRX。,5.报表格式文件的使用 使用磁盘上的报表格式文件,输出数据库数据报表的操作步骤如下:(1)打开报表格式文件。选择系统菜单Run的子菜单Report.,出现Open对话框,指定要使用的报表格式文件所在的磁盘、目录并回答报表格式文件名后,出现Run Report对话框(见图13.15)。(2)按报表格式文件输出报表。在Run Report对话框中,如果选择了To print,则立即在打印机上打印报表(应先接通打印机,安装好打印纸);选择Preview,则在屏幕上显示如图 13.11 所示的报表显示对话框,该对话框可以在屏幕上浏览输出数据。,13.2.2 标签书写器的使用 如果从数据库输出的数据项目较少,且输出格式简单紧凑,可采用“标签”形式输出。实际上,标签和报表没有本质上的差别,都是用于输出数据库中指定的数据。标签书写器和报表书写器的操作方法、步骤几乎是相同的。所以,这里没有必要再重述标签书写器的使用方法,仅对标签书写器和报表书写器的操作和使用中的不同之处,作如下说明:(1)启动标签书写器时,选择FoxPro系统菜单的子菜单Run的子菜单Label,之后的操作同报表书写器。(2)标签的数据输出项目一般比报表的数据输出项目要少一些,所以在快速设计标签格式的Quick Label对话框中,需要用Fields选择标签的输出字段。,(3)由于标签只输出数据,不输出数据栏目名称,每组输出的数据总宽度较小,所以,一般需要在Page Layout对话框,用Columns数码器对输出页面划分多栏。(4)标签格式文件的扩展名是.lbx。(5)调用标签格式文件时,选择系统菜单Run的子菜单Label.。,