预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第8章报表应用程序除了完成对信息的处理、加工之外,还要完成对信息的打印输出。VFP提供的报表功能可以将要打印的信息快速的组织、修饰即布局,形成报表或标签的形式打印输出。报表是由数据源和布局组成,数据源通常是指数据库表、自由表、视图、查询和临时表,布局是指定义报表的打印格式。尽管报表和标签可以完成对信息的打印输出任务,但它们并不是万能的,在实际应用中有时遇到的特殊报表仍然需要通过编程来处理。8.1用编程打印输出报表8.1.1建立输出报表的相关命令用编程建立报表的一般步骤:1.启动打印机命令;2.输出报表标题;3.输出报表内容;4.关闭打印机恢复屏幕输出状态。8.1.2启动打印机与关闭打印机命令格式1:SETDEVICETOSCREEN|TOPRINT|TOFILE格式2:SETPRINTON|OFF功能:格式1用来指定将@……say命令的输出结果直接送到屏幕或打印机或文件中。格式2若取ON是将除@……say命令以外的输出命令如?、??等送到打印机输出,同时也输出到屏幕;若取OFF表示只输出到屏幕。例8.1将学生表中的学号、姓名、入学成绩打印输出。*p8_1use学生*setprinton&&打印机开可去掉此行首*?space(10)+'学生入学成绩单'?'学号'+space(10)+'姓名'+space(2)+'入学成绩'scanfor!eof()?学号+space(5)+'姓名'+space(4)+str(入学成绩,3)endscanuse*setprintoff&&打印机开可去掉行首*return例8.2将学生表中的学号、姓名、性别、入学成绩输出到打印机。*p8_2.prguse学生*setdevicetoprint&&若打印将行首*去掉@1,20say'学生情况表'@2,1say'学号姓名性别入学成绩'i=3scanfor!eof()@i,1say学号+space(5)+姓名+space(4)+性别+space(4)+str(入学成绩,4)i=i+1endscanuse*setdevicetoscreenreturn8.1.3关于@……say语句1.在@……say语句中可加入字体、字型、字号格式:@<行,列>say<表达式>[FONT<字体名>[,<字大小>]]功能:在指定的行列显示表达式的值。说明:<字体名>需用字符定界符括起来。打印图形格式:@<行,列>say<位图文件名>BITMAP|<通用型字段名>[ISOMETRIC|STRETCH][SIZE<数值表达式1>,<数值表达式2>][NOWAIT]功能:将位图文件或通用字段显示在指定行、列的位置。说明:1)[ISOMETRIC]表示缩放图片,使其比例适应指定区域的大小。2)[STRETCH]表示在水平垂直两个方向缩放图片。3)[SIZE<数值表达式1>,<数值表达式2>]用来指定图片的大小,<数值表达式1>为高度,<数值表达式2>为宽度。4)[NOWAIT]表示在执行时不等待。例8.3将例8.2加上字体和大小*p8_3.prguse学生*setdevicetoprint@0,20say'学生情况表'font'隶书',20@3,1say'学号姓名性别入学成绩'font'黑体',10i=4scanfor!eof()@i,1say学号+space(5)+姓名+space(4)+性别+space(4)+str(入学成绩,4)font'黑体',10i=i+1endscanuse*setdevicetoscreenreturn例8.4显示学生的近照。*p8_4.prguse学生@1,1say'学生近照'i=2scanfor!eof()@i,1say姓名@i,20say近照isometricsize20,20i=i+12endscanusereturn注意:此题学生表中的近照字段要全部录入照片!8.2报表设计VFP创建报表有三种方式,第一种是用向导创建报表;第二种是使用快速报表创建报表;第三种是用报表设计器创建报表。不管使用哪种方式创建报表,都要在创建报表之前先对报表进行总体规划和布局。8.2.1报表的总体规划和布局1.总体规划(1)决定要创建的报表类型;(2)需要的数据源是一个还是多个,它们之间的关系;(3)采用哪种常规布局方式。2.报表的常规布局在创建报表前应确定所需报表的常规布局,根据不同的需要,由表8.1列出了报表常规布局的说明,在确定常规布局时要考虑纸张的要求。表8.1报表常规布局布局类型说明示例列每一行一条记录,每一条记录的字段在页面上按水平方向设置分组/总汇报表,财政报表等行一列的记录,每条记录的字段在一侧竖直放置即每个字段一行字段名在数据左侧,字段与其数据在同行列表一对多一条记录或一对多关系。其内容包括父表的记录及子表的记录发票、会计报表多列多列记录,每条记录的字