一个VFP简单的报表打印按钮问题

晚安苏州 2011-04-03 09:59:44
我现在要在预览报表时点击打印按钮时记录打印人和打印日期到数据库的一张表中,仅预览时 不点打印按钮则不记录,该怎么做呢?
有人说要重写打印按钮的事件,但是那是系统自带的控件,我怎么重写它的事件呢?
望高手指点,感激不尽。
...全文
90 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
awie_peng 2011-04-04
  • 打赏
  • 举报
回复
在报表设计器中设置一个变量,并选择"报表完成后发布".然后在程序的REPORT FORM 命令后通过检查这个变量是不是存在,来判断用户是否选择了打印.如果打印了,那这个变量就不存在了,如果只是预览了,这个变量还存在.要求VFP是9.0
trainee 2011-04-04
  • 打赏
  • 举报
回复
提示:sys(2040)来记录PRINT/PREVIEW

晚安苏州 2011-04-04
  • 打赏
  • 举报
回复
在各位的帮助下,我搞定了,谢谢你们~
十豆三 2011-04-04
  • 打赏
  • 举报
回复
第十一章 报表与标签 11.1 创建报表 11.2 设计标签 11.1 创建报表 报表包含两个基本组成部分:数据源与布局。数据源通常是数据库 报表包含两个基本组成部分:数据源与布局。数据源通常是数据库 中地表 中地表, ,但也可以是视图 但也可以是视图, ,查询或临时表。视图与查询将筛选 查询或临时表。视图与查询将筛选, ,排序 排序, ,分 分 组数据库中地数据 组数据库中地数据, ,而报表布局定义了报表打印格式。在定义了一 而报表布局定义了报表打印格式。在定义了一 个表 个表, ,一个视图或查询后 一个视图或查询后, ,便可以创建报表或标签。 便可以创建报表或标签。 11.1.1 报表向导创建报表 利用 利用" "报表向导 报表向导" "可以创建基于一个表或视图地报表 可以创建基于一个表或视图地报表, ,我们以 我们以jsgz.dbf jsgz.dbf 表为例 表为例, ,创建 创建" "教师工资 教师工资" "报表。步骤如下: 报表。步骤如下: 1. 1. 打开 打开" "项目管理器 项目管理器", ",选择 选择" "文档 文档" "选项卡。 选项卡。 2. 2. 选择 选择" "报表 报表" "项 项, ,单击 单击" "新建 新建" "按钮 按钮, ,出现如图 出现如图11-1 11-1所示对话框 所示对话框, ,选择 选择" "报表 报表 向导 向导" "按钮 按钮, ,出现如图 出现如图11-2 11-2所示对话框 所示对话框, ,选择 选择" "报表向导 报表向导" "。 。 图11-1 "新建报表"对话框 图11-2 "向导选取"对话框 3. 3. 在 在" "向导选取 向导选取" "对话框中 对话框中, ,有 有" "报表向导 报表向导" "与 与" "一对多报表 一对多报表 向导 向导" "两个列表选项 两个列表选项, ,其中第一个选择项地向导是用来 其中第一个选择项地向导是用来 创建单一表或视图创建地带格式报表 创建单一表或视图创建地带格式报表; ;第二项是用来 第二项是用来 创建一组父表记录和其相关子表记录地报表。我们 创建一组父表记录和其相关子表记录地报表。我们 选择第一个选项。 选择第一个选项。 4. 4. 单击 单击" "确定 确定" "后 后, ,出现步骤 出现步骤1-" 1-"字段选取 字段选取", ",如图 如图11-3 11-3所示。 所示。 5. 5. 选择 选择jsgz jsgz表中地 表中地 "bh","jbgz","gwgz" "bh","jbgz","gwgz"与 与"sfgz" "sfgz"字段。 字段。 6. 6. 单击 单击" "下一步 下一步" "按钮 按钮, ,出现如图 出现如图11-4 11-4所示对话框。 所示对话框。 图11-3 步骤1-"字段选取" 图11-4 步骤2-"分组"对话框 7. 7. 这一步是选择分组记录所依据地字段 这一步是选择分组记录所依据地字段, ,在该对话框中可 在该对话框中可 设置三级分组字段 设置三级分组字段, ,在每一级地下拉列表中可选择所需 在每一级地下拉列表中可选择所需 要地字段。选择字段后 要地字段。选择字段后, ,可以选取 可以选取" "分组选项 分组选项" "与 与" "总结选 总结选 项 项" "来进一步完善分组设置。 来进一步完善分组设置。 选择 选择" "分组选项 分组选项" "将打开 将打开" "分组间隔 分组间隔" "对话框 对话框, ,从中可以选择与 从中可以选择与 用来分组地字段中所含地数据类型相关地筛选级别。 用来分组地字段中所含地数据类型相关地筛选级别。 选择 选择" "总结选项 总结选项" "将打开一个新地对话框 将打开一个新地对话框, ,可以利用计算类型 可以利用计算类型 来处理数值型字段。 来处理数值型字段。 此处我们不作分组选择。点击 此处我们不作分组选择。点击" "下一步 下一步" "。 。 8. 8. 进入步骤 进入步骤3-" 3-"选择报表样式 选择报表样式" "对话框。如图 对话框。如图11-5 11-5所示。 所示。 图11-5 步骤3-"选择报表样式"对话框 9. 9. 选择 选择" "经营式 经营式", ",单击 单击" "下一步 下一步" "按钮。进入步骤 按钮。进入步骤4-" 4-"定义报表布局 定义报表布局" "对话 对话 框 框, ,如图 如图11-6 11-6所示。 所示。 图11-6 步骤4-"定义报表布局"对话框 10. " 10. "定义报表布局 定义报表布局" "对话框提供了纵向布局与横向布 对话框提供了纵向布局与横向布 局两种方式:纵向布局指字段与其它数据在同一 局两种方式:纵向布局指字段与其它数据在同一 列中地布局方式 列中地布局方式; ;横向布局是指字段与
VFP基本数据库系统开发实例(附图) 西南大学计信院 导学 在Visual Foxpro中开发一个应用系统应该包括需求分析、项目创建、模块设计、运行调试、保存 发布到建立帮助等,下面介绍如何把各个模块集成起来,并创建一个应用程序。 11.1 系统需求分析 传统的学生成绩管理方法不仅浪效率低,而且由于管理不规范容易导致各种错误的 发生。因此实现一个智能化、系统化的公共计算机成绩管理系统是十分必要和不可缺少 的。它将大大减轻管理者的劳动强度,降低出错率,提高管理的效率。该系统可以实现 如下功能: 1. 数据需求 通过调查,总结出该应用程序对数据的需求大致有如下这些: (1) 学生信息 包括学号,姓名,性别,出生日期,系科,备注,照片 (2) 管理员信息 包括用户名,密码,管理员姓名,权限,说明信息 (3) 学生成绩信息 主要包括学号, 课程编号,平时成绩,笔试成绩,上机成绩,总评成绩,审核否 (4) 课程信息 包括课程编号,课程名称 2. 功能需求 功能分析的任务是了解用户对数据的处理方法和输出格式。 (1) 基本数据录入 基本数据包括学生信息、管理员信息、学生成绩休息和课程信息等。要求系统能够 录入这些数据,并且可以进行修改。在数据录入和修改过程中应保持数据的参照完整性 。 (2) 查询 能够查询出学生成绩,和补考人员名单等。 (3) 学生和管理员信息的维护 要求能够根据需要对学生和管理员信息进行维护修改等。 (4)成绩的审核 根据学生的总评成绩审核学生的计算机成绩是否通过。 (5) 打印输出 打印学生成绩表和补考人员名单等。 11.2 系统设计 1. 程序总体结构设计 在开始程序设计之前,首先应该将程序的总体结构以层次图的形式表示出来,便于 对程序分层设计和实现。图1所示为公共计算机成绩管理系统的功能模块图。 图1公共计算机成绩管理系统功能模块 2. 数据库逻辑设计 进行数据库设计的依据有三个:第一是在进行系统调查时由成绩管理员提供的各种 处理数据;第二是功能设计结果;第三是数据库设计规范化理论。数据库设计是系统设 计的一项基本工作,其效果的好坏,对后续设计、调试、使用、维护等工作关系极大, 因此,一定要高度重视这一部分工作。当然,我们不能简单地将数据库设计理解为在计 算机上用可视化的方法建立表的过程,其主要工作是建立一种完整、规范的数据模型以 支持整个应用系统对数据的要求。 根据对实际情况进行分析建立关系模型 1) 学生信息表(学号,姓名,性别,出生日期,系科,备注,照片) 2) 管理人员信息表(用户名,密码,管理员姓名,权限,说明信息) 3) 学生成绩表(学号, 课程编号,平时成绩,笔试成绩,上机成绩,总评成绩,审核否) 4) 补考名单表(学号,姓名, 总评成绩,补考成绩) 5) 课程表(课程编号,课程名称) 11.3 创建项目 Visual Foxpro推荐在项目管理器中开发应用程序,因为项目管理器会为开发工作带来很多方便 。在项目管理器中创建一个项目后,应用程序就具备了一个开发框架,然后在这个框架 中,再利用项目管理器所提供的强大功能,按照需求来实现应用程序的设计。 用户可以启动Visual Foxpro,选择【文件】"【新建】命令,在打开的对话框中,选择"项目"单选按钮,然后 单击"新建文件"按钮,接着在"创建"对话框中,输入项目文件名并确定项目路径(本例 使用的路径为D:\公共计算机成绩管理系统),然后单击"保存"按钮,即可启动项目管理 器。 一个完整的应用程序,即使规模不大,也会涉及到多种类型文件,如dbc数据库、d bf表以及菜单、表单、报表、位图等。为了以后的修改、维护工作方便进行,就需要把 这些文件放在不同的文件夹中便于管理维护,例如一般把dbc数据库文件、dbf表文件和 cdx索引文件放在DATE目录,表单、报表、标签等放在FORMS目录等。 11.4数据库的物理设计 a) 数据库名为公共计算机成绩管理.dbc b) 数据表 i. 学生信息表.dbf 学号/C/10,姓名/C/10,性别/L/1,出生日期/D/8,系科/C/30,备注/M/4,照片/G/4 ii. 管理人员信息表.dbf 用户名/C/10,密码/C/10,管理员姓名/C/10,权限/C/4,说明信息/C/20 iii. 学生成绩表. dbf学号/C/10, 课程编号/C/2,平时成绩/N/6/2,笔试成绩/N/6/2,上机成绩/N/6/2,总评成绩/N/6/2,审 核否/L/1 iv. 补考名单表 学号/C/10,姓名/C/10, 总评成绩/N/6/2,补考成绩/N/6/2 v. 课程表 课程编号/C/2,课程名称/C/14 图2 公共计算机成绩管理数据库及其表结构 11.5界面设计 1) 创建启动表单 下面设计应用程序的封面,主要由一个
已建立完整的数据库 下载即可使用 适合做考试作业 毕业论文 一.概述 项目背景工资管理系统对于决策者和管理者来说都至关重要,所以工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件工资档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对工资信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工资管理的效率,也是科学化、正规化管理的重要条件。 设计目的 对于企、事业单位的工资发放来说,不需要太大型的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。我的目标就是在于利用VFP编程软件开发一个功能实用,用户操作方便,简单明了的工资管理程序。 系统特点 企业工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能: 对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。 对职工的工资进行计算、修改。可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。 查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某部门工资数在某一范围的职工的工资情况等。 报表打印功能。每月发放工资时,要求能够打印本月的工资表、随工资发给每个职工的工资条以及工资统计表。 开发环境 本系统为工资管理系统。采用的开发工具是 MicroSoft Visual Foxpro 6.0。系统能够提供对工资信息输入、查询、编辑以及工资发放各明细项目的数据编辑,自动计算出工资发放各项合计数据;可自主设定条件从而达到对工资数据的多角度查询功能;实现了财务部门对本单位工资发放系统的集中管理,保证了系统的安全性。支持运行的环境:Microsoft Window98/2000/XP 二.需求分析 本系统概述了工资管理的需求、整体结构、基本功能和数据库结构。内容包括:对普通工资管理业务中存在的一些问题的分析,对工资的数据进行查询、统计、报表打印等基本功能的分析设计和实现。重点介绍了工资管理信息系统中数据查询统计模块的分析和设计以及如何利用面向对象的程序设计语言Visual Foxpro 6.0实现数据的查询、统计、显示、报表打印等基本功能。本系统的开发基本解决了以往工资管理中存在的需要人工管理,进行人工统计,对工资的统计和查询都很单一、不能综合处理业务、工作效率低等问题。 三.系统结构设计 系统功能模块设计 系统功能设计是在系统开发的总体任务的基础工业上完成的 系统数据初始化; 员工基本信息数据的输入; 员工基本信息的修改和删除; 企业工资的基本设定; 员工工资的浏览; 员工个人工资表的查询; 员工工资的计算; 数据库设计 员工基本状况。包括的数据库项有员工号、姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民簇、婚姻状况、健康状况、参加工作时间、员工状态…. 工资级别和工资金额。包括的数据库项有工资等级、工资额。 企业部门及工作岗位信息。包括的数据库项有部门名称、工作岗位、工资等。 工龄的工资金额。包括的数据库项有工龄及对应工资额。 工资信息。包含的数据项有员工号、员工姓名、基础工资、岗位工资、工龄工资、实得工资。 四.统详细设计 VFP是编程前期比较实用的软件,它功能强大,是面向对象的编程开发工具软件。基于VFP的工资管理软件,能实现工资管理的很多部分,由于能力以及编程软件限制,很多功能没能深入开发,下面就介绍一下这个软件的开发过程 在数据库应用系统的开发过程中,数据库的结构设计是其中重要的一个环节。数据库设计的好好坏将直接对应用系统的效率以及实现的效果产生影响。好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具人较快的响应速度,能简化基于此数据库的应用程序的实现等。 数据库需求分析 数据库需求分析是数据库结构设计应该尽量设计的第一个阶段,是非常重要的一个阶段。这个阶段主是要确定基本数据、数据结构处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础,在仔细调查企业人事工资管理系统的基础上,得到本系统所处理的数据流程,如数据流程图: 通过对企业人事工资管理的内容和数据流程分析,针对本程序,设计的数据项和数据结构如下: 浏览职工信息 工资管理软件就要知道职工的基本信息,年龄,性别,工龄,在什么岗位工作,是属于什么工种,这些都为工资的结算提供了很好的帮助。 我们需要再建立一个表单。 我们可以很清楚的看到职工的基本信息,职工号,岗位,姓名,性别,工龄,工资等级,这些基本信息对于工资的定位和发放有很好的帮助 那怎么实现职工信息的浏览呢,我们看到右边有5个按钮,这些按钮就是控制浏览职工信息的指挥棒,我们先看以下“首行”里面的代码 go top This.enabled=.f. ThisForm.Command2.enabled=.f. ThisForm.Command3.enabled=.t. ThisForm.Command4.enabled=.t. thisform.refresh 在这些代码中 go top 是控制信息到第一个记录,enabled是控制按钮是否可用,refresh是刷新表单,让跳转的记录信息能更新到当前表单中 按钮“上一条”的代码如下 skip -1 if bof() messagebox("已是首记录!",48,"信息窗口") ThisForm.Command1.enabled=.f This.enabled=.f. else ThisForm.Command3.enabled=.t. ThisForm.Command4.enabled=.t. endif thisform.refresh 代码skip -1的意思是向上翻转记录,bof()意思是是否到记录的首个 下一条的代码: skip thisform.refresh thisform.command1.enabled=.t. thisform.command2.enabled=.t. if eof() messagebox("已是尾记录!",48,"信息窗口") ThisForm.Command1.enabled=.t. Thisform.command2.enabled=.t. This.enabled=.f. ThisForm.Command4.enabled=.f. Endif 功能和上面的按钮类似,eof()判断是否到达记录的末尾 最后一个是末行的按钮,代码: go bottom This.enabled=.f. ThisForm.Command2.enabled=.T. ThisForm.Command3.enabled=.f. ThisForm.Command4.enabled=.f. thisform.refresh 到此,员工信息的浏览已经完成,我们可以对员工的信息一条一条的浏览,这样看来可能复杂些,下面我们用简单的方法,来查看所有员工的信息。同样是建立一个表单,不同的是,这次我们在表单中加入了一个表格,让所有员工的信息都在表格中显示出来。 五.系统评价 系统评价就是客观,公正的从各个方面评价系统的各项功能。本部分将具体从三方面阐述:优点,缺点以及将来可能提出的要求。 六.总结 通过这次毕业设计,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。为日后成为合格的应用型人才打下良好的基础。这次在指导老师的帮助下,在同学的帮助下,基本上完成了设计任务,在软件的设计方面也有了一定的提高,熟练掌握了VISUAL FOXPRO命令和编程技巧,为今后走上工作岗位打下了专业基础。 在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们及实习企业在本系统的设计过程中给予我的支持和帮助。
11.1 系统需求分析 传统的学生成绩管理方法不仅浪效率低,而且由于管理不规范容易导致各种错误 的发生。因此实现一个智能化、系统化的公共计算机成绩管理系统是十分必要和不可缺 少的。它将大大减轻管理者的劳动强度,降低出错率,提高管理的效率。该系统可以实 现如下功能: 1. 数据需求 通过调查,总结出该应用程序对数据的需求大致有如下这些: (1) 学生信息 包括学号,姓名,性别,出生日期等 (2) 学生成绩信息 主要包括学号, 课程编号,平时成绩 (3) 课程信息 包括课程编号,课程名称 2. 功能需求 功能分析的任务是了解用户对数据的处理方法和输出格式。 (1) 基本数据录入 基本数据包括学生信息、管理员信息、学生成绩休息和课程信息等。要求系统能够 录入这些数据,并且可以进行修改。在数据录入和修改过程中应保持数据的参照完整性 。 (2) 学生和管理员信息的维护 要求能够根据需要对学生和管理员信息进行维护修改等。 (3) 打印输出 打印学生信息表。 11.2 系统设计 1. 程序总体结构设计 在开始程序设计之前,首先应该将程序的总体结构以层次图的形式表示出来,便于 对程序分层设计和实现。图1所示为公共计算机成绩管理系统的功能模块图。 图1公共计算机成绩管理系统功能模块 2. 数据库逻辑设计 进行数据库设计的依据有三个:第一是在进行系统调查时由成绩管理员提供的各种 处理数据;第二是功能设计结果;第三是数据库设计规范化理论。数据库设计是系统设 计的一项基本工作,其效果的好坏,对后续设计、调试、使用、维护等工作关系极大, 因此,一定要高度重视这一部分工作。当然,我们不能简单地将数据库设计理解为在计 算机上用可视化的方法建立表的过程,其主要工作是建立一种完整、规范的数据模型以 支持整个应用系统对数据的要求。 根据对实际情况进行分析建立关系模型 1) 学生信息表(学号,姓名,性别,出生日期) 2) 学生成绩表(学号, 课程编号,平时成绩) 3 课程表(课程编号,课程名称) 11.3 创建项目 Visual Foxpro推荐在项目管理器中开发应用程序,因为项目管理器会为开发工作带来很多方便 。在项目管理器中创建一个项目后,应用程序就具备了一个开发框架,然后在这个框架 中,再利用项目管理器所提供的强大功能,按照需求来实现应用程序的设计。 用户可以启动Visual Foxpro,选择【文件】"【新建】命令,在打开的对话框中,选择"项目"单选按钮,然后 单击"新建文件"按钮,接着在"创建"对话框中,输入项目文件名并确定项目路径(本例 使用的路径为D:\公共计算机成绩管理系统),然后单击"保存"按钮,即可启动项目管理 器。 一个完整的应用程序,即使规模不大,也会涉及到多种类型文件,如dbc数据库、d bf表以及菜单、表单、报表、位图等。为了以后的修改、维护工作方便进行,就需要把 这些文件放在不同的文件夹中便于管理维护。 11.4数据库的物理设计 a) 数据库名为公共计算机成绩管理.dbc b) 数据表 i. 学生信息表.dbf 学号/C/10,姓名/C/10,性别/L/1,出生日期/D/8,系科/C/30,备注/M/4,照片/G/4 ii. 学生成绩表. dbf学号/C/10, 课程编号/C/2,平时成绩/N/6/2 iii. 课程表 课程编号/C/2,课程名称/C/14 11.5界面设计 1) 创建启动表单 下面设计应用程序的封面,主要由一个表单来实现. 在项目管理器中,打开"文档"选项卡,选择"表单"选项,单击"新建"按钮,在打开 的对话框中单击"新建表单"按钮,这时,将弹出一个表单设计器和表单Form1。 单击菜单项后的"创建"按钮,即可在打开的菜单设计器窗口中创建该菜单项的子菜单 。如果要设置命令 的快捷键,可以单击其后的选项按钮,z然后在打开的对话框中,输入快捷键的名称。 最后单击确定按钮,返回到菜单设计器窗口,在"退出"菜单项的文本框中,输入qu it,然后单击 关闭按钮,将菜单保存为"主菜单.mnx"。运行该菜单,其效果如图所示。 接着,创建应用程序的主文件,将其保存为"主程序.prg" 。在代码编辑窗口中,输入以下代码: set talk off set date to ymd set cent on clear all c_p1=sys(16) c_p2=left(c_p1,rat('\',c_p1,1)-1) set defa to &c_p2 do form 表单1.scx read events quit 如图所示,在项目管理器中,将"主程序.prg"设置为主文件,然后选中"主程序.prg"并 单击 "运行"按钮. 运行主程序后的效果 11.7表单设计         输入Click事件的代码。 form1的Click事件的代

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧