版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验五 打印成绩表一、实验目的1. 设计按不同的需要调用报表的表单2. 熟悉打印所需中间表的使用 3. 理解通过编程由多表产生一个临时表的方法4. 掌握使用报表设计器创建和修改报表的方法二、实验内容1.设计一个学生成绩打印表单,在表单上通过单选按钮可分别选择按班级、按课程打印学生成绩;2.设计班级成绩单、课程成绩单两个报表定义文件,可通过运行表单分别调用这两个文件,输出所需报表。三、实验步骤(一)设计表单1.建立表单打开项目管理器“学生成绩管理系统”,新建一个表单,将其Caption改为 “学生成绩打印”,表单上各控件按图5-1设计。 图5-1其中“学生成绩表打印”、“班级简称”、“班级编号”
2、、“课程名称”、“课程编号”为标签,“Combo1”、“Combo2”为组合框,“Text1”、“Text2”为文本框,“生成”、“预览”、“打印”、“退出”为命令按钮,“按班级打印”、“按课程打印”为单选按钮组(单选按钮组的设计见本页第2点),可自行设计每一控件的字型、字体、字号、颜色。按Ctrl+ S键保存表单,取名为“成绩打印”。2.设计单选按钮 单击单选按钮组按钮,在表单上画一组单选按钮组“Optiongroup1”,将其属性作如下修改:BackStyle 0-透明BorderStyle 0-无Buttoncount 2然后,右键单击单选按钮组,在弹出的快捷菜单上选“编辑”,再分别单击
3、其中任一按钮Option1或Option2,就可进行编辑,将Option1的Caption改为“按班级打印”,Option2的Caption改为“按课程打印”,其余如字型、字体、字号、颜色可自行设计。3.设置数据环境在数据环境中添加“班级号名”、“课程”。4.设置各控件主要属性·Combo1主要属性为:ControlSource 选“班级号名.班级简称”ColumnCount 输入1RowSourceType 选6字段RowSource 选“班级号名.班级简称”Style 选2下拉列表框·Combo2主要属性为:ControlSource 选“课程.课程名称”ColumnC
4、ount 输入1RowSourceType 选6字段RowSource 选“课程.课程名称” Style 选2下拉列表框·Text1主要属性: ControlSource 选“班级号名.班级编号” Enabled .F.-假·Text2主要属性: ControlSource 选“课程.课程编号” Enabled .F.-假5.事件代码 (1)单选按钮组Optiongroup1的Click过程代码: public nn=this.valuedo case case n=1 sele 班级号名 go top bo1.enabled=.t. bo2.enabled=.f. cas
5、e n=2 sele 课程 go top bo2.enabled=.t. bo1.enabled=.f.endcase thisform.refresh(2)双击Combo1,为其Click过程输入代码:Thisform.refresh (3)双击Combo2,为其Click过程输入代码:Thisform.refresh (4)双击命令按钮“生成”,为其Click过程输入代码:(注意:这一段程序代码比较长,实验过程中可以先输入调试case n=1程序段,再输入调试case n=2程序段,以减少调试的复杂度。如实验课时不够,也可只输入case n=1所对应的“按班级打印”程序段,且后面也只设计相
6、应的按班级打印报表文件。 )public n,kc1,kc2,kc3,bjbh,bjjc && n存放选择单选按钮的值,kc1-kc3分别存放课程名,后两个变量存放班级编号和班级简称public kcmc,kcbh,xf,rkjs &&kcmc存放课程名,kcbh存放课程编号,xf存放学分,rkjs存放任课教师set safe offclos datado case case n=1 &&按班级打印 store space(20) to kc1,kc2,kc3 &&赋初值 if !file("bjlsb.dbf"
7、;) && bjlsb.dbf为按班级打印所需中间表,是一个由多个表产生的临时表 create table bjlsb(姓名 c(6),班级编号 c(9),班级简称 c(9),kc1 n(3), kc2 n(3),kc3 n(3) else sele F use bjlsb endif sele bjlsb zap appe from 学生 dele all for 班级编号#班级号名.班级编号 pack sele I use 学生 sele G use 学生选课 sele 课程 i=1 scan *内存变量kci(i=1,2,3)中存放第i门课程的名称 m="kc&
8、quot;+trim(str(i,1) &m=课程名称 *第i门课程的成绩写入bjlsb.dbf sele bjlsb go top scan sele 学生 loca for 姓名=bjlsb.姓名 sele 学生选课 loca for 学号=学生.学号 and 课程编号=课程.课程编号 sele bjlsb repl &m with 学生选课.成绩 endscan i=i+1 sele 课程 endscan case n=2 &&按课程打印 store space(16) to kcmc,kcbh,rkjs &&赋初值 xf=space(5)
9、 &&赋初值 sele 课程 loca for 课程编号=kcbh xf=学分 rkjs=任课教师 if !file("kclsb.dbf") && kclsb.dbf为按课程打印所需中间表,也是一个由多个表产生的临时表 create table kclsb(学号 c(12),姓名 c(6),班级编号 c(9),班级简称 c(16),课程编号 c(7),成绩 n(3), 任课教师 c(6) else sele F use kclsb endif sele kclsb zap appe from 学生选课 dele all for 课程编号#课
10、程.课程编号 pack sele I use 学生 sele kclsb go top scan sele 学生 loca for 学号=kclsb.学号 sele 班级号名 loca for 班级编号=学生.班级编号 sele kclsb repl 姓名 with 学生.姓名,班级编号 with 班级号名.班级编号,班级简称 with 班级号名.班级简称 endscan endcase(5)双击命令按钮“预览”,为其Click过程输入代码:if n=1 report form 班级成绩表 previewelse report form 课程成绩表 previewendif(6)双击命令按钮“
11、打印”,为其Click过程输入代码:if n=1 report form 班级成绩表 to printelse report form 课程成绩表 to printendif(7)双击命令按钮“退出”,为其Click过程输入代码:thisform.release6.运行表单生成中间表单击运行工具按钮,·先选择“按班级打印”,在“班级简称”右边的下拉列表中选择一个班级,再单击“生成”按钮,可生成表bjlsb.dbf 。·再选择“按课程打印”,在“课程名称”右边的下拉列表中选择一门课程,再单击“生成”按钮,可生成表kclsb.dbf 。这两个临时表是下面创建报表定义文件所需要的
12、中间文件。(二)创建报表定义文件1.使用向导创建报表定义文件“班级成绩表”·从项目管理器文档报表新建报表向导报表向导,进入图5-2时,在“数据库和表”栏选bjlsb,可用字段除“班级编号”、“班级简称”外,其余选中。 图5-2·按“下一步”按钮,在接下来的界面中再按“下一步”按钮,在“报表样式”中选“帐务式”,单击 两次“下一步”,进入步骤5时,选字段“姓名”,单击“添加”,并选“升序”,如图5-3,可使报表中记录按姓名升序排列。·按“下一步”按钮进入步骤6,在报表标题中输入“班级成绩表”,然后单击完成。保图5-3存的名字也为“班级成绩表”。如图5-4。·
13、;在项目管理器中单击“班级成绩表”,再单击右侧的“修改”按钮,进入报表修改。注意:此时由于还没有建立报表定义文件,所以运行表单时只能单击“生成”,以生成临时中间文件,暂不能单击“预览”按钮,否则会出错。图5-42.修改报表定义文件“班级成绩表”·点住标题条上边缘,向下拖动,适当扩大标题区。·单击最上面的一条粗黑线,再单击“剪切”按钮,删除此黑粗线。·单击标题区 “班级成绩表”,然后选“格式”菜单中的“字体”,选28号字,并将其拖到中间位置。·单击报表控件中的标签按钮,再在标题区左下部单击一下,输入“班级编号”,字号设为“小四”。·单击报表控件中
14、的域控件 按钮,在“班级编号”标签右侧画一框,出现图5-5,再单击表达式右侧的 按钮,出现图5-6所示表达式输入框。图5-5图5-6在变量区双击bjbh,则在“报表字段的表达式”框中出现bjbh,如果变量区没有bjbh,则直接在“报表字段的表达式”框中输入bjbh。按“确定”按钮后,得到图5-7。图5-7·根据上述相同的步骤,再在“班级编号”右侧制作一标签“班级简称”,同时制作一域控件与bjjc联系。如图5-8。·单击页标头区的kc1,然后单击“剪切”按钮删除,同样的方法删除kc2、kc3。·单击报表控件中的域控件 按钮,在kc1处画一框,框要比较高,在接下来出现
15、表达式输入框中输入m.kc1.图5-8图5-9·同法在原kc2、kc3处分别画域控件,表达式框中分别输入m.kc2、m.kc3,如图5-9。·删除页标头里的两条粗线,在上面那条粗线处画一条细线代替。再在页标头画几条竖线隔开各个部分,同时调整细节部分的分隔线,使其与页标头的分隔线对齐,如图5-10图。图5-10·单击工具栏的预览按钮 ,可看到如图5-11结果。3.去掉0成绩(0分表示未输入成绩或未选该门课程)·双击细节里的kc1,在报表表达式对话框中,单击格式后面的 按钮,再选 ,单击“确定”按钮即可。·用同样的方法对细节部分kc2,kc3作定义
16、。定义完后,再预览便不再出现0成绩了。·按Ctrl+W保存关闭报表设计器。(三)调试报表·进入“成绩打印”表单,运行该表单,选“按班级打印”,任选一班级,单击“生成”按钮,再点“预览”按钮,即可看到屏幕预览的效果。·“打印”功能与“预览”类似,一般学生机房没有安装打印机,可不运行打印功能。(四)创建与调试“按课程打印”报表1.参照前面实验步骤“(二)1.”创建“按班级打印”报表类似的方法,利用报表向导图5-11图5-12创建“按课程打印”报表。·在步骤1按图5-12选择字段。·在步骤5选择按“学号”升序排序。·在步骤6,报表标题与保存文件名均输入为“课程成绩表”。2.修改报表定义文件“课程成绩表”·参照前面实验步骤“(二)2.”,再根据图5-13,修改报表定义文件“课程成绩表”。注意在“标题”中使用报表控件中的“标签”控件与“域”控件。·单击工具栏的预览按钮 ,可看到如图5-14结果。·按Ctrl+W保存关闭报表设计器。3.调试“按课程打印”报表参照前面实验步骤(三)调试“按班级打印”报表的方法,运行表单,选择“按课程打印”,任选一课程,单击“生成”按钮,再点“预览”按钮,进行打印报表的预览。图5-13图5-14四、思考题及注意事项1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 血液科工作心得范文5篇
- DI系列变频器用户手册
- 建筑改造防盗门施工合同
- 超市理货员聘用合同范本
- 眼镜店装修粉刷施工协议
- 建筑工程公司人事经理聘用合同
- 2024年快递企业服务质量提升与绩效考核合同
- 2024年度广告设计制作劳务合同
- 信息技术工程施工合同模板
- 学校合同归档与保管
- 2023年考研英语二真题(含答案及解析)【可编辑】
- 人教版九年级化学第一至四单元测试卷及答案
- 食堂员工规章制度
- 软件工程(嵌入式培养)专业职业生涯规划书
- 精力管理-课件
- 提高工作效率有技巧(一)课件
- 1+X证书无人机练习题库含答案
- 全国2023中国进出口银行各分行社会招聘考试参考题库含答案详解
- 国土空间规划概述
- 2014cad入门基础课件
- 画法几何与机械制图(山东联盟)智慧树知到答案章节测试2023年聊城大学
评论
0/150
提交评论