【vfp精品源码栏目提醒】:本文主要为网学会员提供“2010年高考文科数学试题(全国卷1) - 基础科学”,希望对需要2010年高考文科数学试题(全国卷1) - 基础科学网友有所帮助,学习一下!
系统分析 系统分析文件虽然并不是软件软件本身的一部分,但也属于本软件开发的文档,故也应该将其放在项目管理器中,方法是: ; ; 选择项目管理器中的“其它” 选择“文本文件” 按“新建” 在新建的文本文件中写入下面的“系统分析内容” ; 保存文件,文件名也用“rsgl” ; ,扩展名不用加,系统会自动加上“txt” 关闭 之后,可在项目管理器中看到该文件,此时还要做一件事,将该文件排除在软件之外,即当需要对软件编译时不把此文件编译到 exe 文件中 系统分析内容 本软件具有以下主要功能: 系统功能 打开人事档案(调用表单 rsda:do form rsda name rsda) 关闭人事档案(释放表单 rsda:rsda.release) 打印花名册(打印报表 hmc:report form hmc to printer) 退出软件运行(退出事件处理程序:clear events) 编辑 新增或修改人员(调用表单 bjry:do form bjry name bjry) 删除人员(删除当前记录:delete) 恢复人员(恢复当前记录:recall) 查询及统计功能 查询(调用表单 cx:do form cx name cx) 查看简历(调用表单 ckjl:do form ckjl name ckjl) 统计(进入子菜单) 统计各部门人数(调用子程序 tjbm:do tjbm) 统计各职务人数(调用子程序 tjzw:do tjzw) 以上同时作为软件的菜单结构,括号中的内容为菜单调用各功能的命令。
次要功能 人事档案表打开后按编号排序。
删除人员后并不马上从表中将该记录删除,只是做上删除标记,还可恢复过来,即取消删除标记,当退出系统时才真正将该记录删除。
在真正删除记录时,系统可能要花较长时间(尤其记录较多时),此时应给出提示,以免操作者误认为死机。
系统数据库 rsgl.dbc(其中包含以下表): rsda.dbf(人事档案表,包含以下字段) 字段名 字段类型 字段长度 小数位数 编号 数值 4 姓名 字符 10 性别 逻辑═男、 女 F 出生年月 日期 联系电话 字符 15 部门 字符 10 职务 字符 10 基本工资 数值 7 2 简历 备注 tjbm.dbf(统计部门表,包含以下字段) 字段名 字段类型 字段长度 小数位数 部门 字符 10 人数 数值 4 tjzw.dbf(统计职务表,包含以下字段) 字段名 字段类型 字段长度 小数位数 职务 字符 10 人数 数值 4编制菜单 选择项目管理器中的“其它”; 选择其它中的“菜单”;按“新建”,出现图按“菜单”,进入菜单设计器,如图 、 、 先做主菜单,在菜单名称中分别输入“系统”“编辑”“查询及统计”,如图,注意在结果栏内应保持显示“子菜单”,而在“菜单级”中显示的是“菜单栏”,表示是主菜单; 进入“系统”子菜单,按“系统”行“子菜单”后面的“创建”按钮,得到图,注意此时菜单级中显示的是“系统”,拉下菜单级选择框,可看到在“系统”上面有一个“菜单栏”,表示此时编辑的是顶层菜单下的“系统”子菜单; 按照系统分析的内容,编第一个菜单项,在菜单名称中输入“打开人事档案”,在结果中选择“命令”,在选项中输入“do form rsgl name rsgl”。
之后,按同样方法将其它菜单项编好,如图; 在菜单级中选择“菜单栏” ,返回主菜单; 重复 6-8 步,编好其它子菜单,注意在“查询与统计”下的“统计”也是一个子菜单,编制方法与编制主菜单的子菜单一样。
编制初始化代码。
初始化代码是在菜单运行之前所需要运行的代码,一般是做一些准备性的设置。
选择菜单上的“显示”-“常规选项” ,得到图, 选择“菜单代码”的“设置” , ,出现设置代码编辑窗口(也就是初始化代码编辑窗口)按确定得图 7,当然此时您看到是一个空的窗口,没有图中的代码,那么您就按照图中的代码在您的电脑上输入吧,输入完后“文件”-“关闭” 。
编制清理代码。
清理代码这个词不太好理解,其实就是在菜单运行之后所需要运行的代码,此时一般应进入事件处理程序,以及程序退出时要做的一些清理工作,如关闭数据库等。
编置清理代码的方法与初始化代码的方法类似,选择菜单上的“显示”-“常规选项”,选择“菜单代码”的“清理”,出现清理代码编辑窗口,按确定,然后输入图中的代码,输入完后关闭。
,扩展名为“mnx” 保存,文件名仍然是“rsgl” ,注意应保存在与项目管理器一致的目录里; 生成菜单程序。
我们以上编的是菜单结构,并非是菜单程序本身,结构编好后必须调用
VFP 的生成菜单功能才能生成真正的菜单程序,方法是调用系统菜单中的“菜单”下的“生成”,之后系统会让您输入生成后的程序的文件名,此时文件名仍取“rsgl”,扩展名为“mpr” ,注意文件名前面的目录名应该与项目管理器所在的目录一致,一般系统隐含就是所需的文件名和目录,故不需输入,直接按“产生”即可,然后系统会自动在您的目录中生成一个“rsgl.mpr”的文件,这就是我们今后所要运行的菜单程序; 关闭,即退出菜单设计器,您将会在项目管理器中看到菜单文件,如图。
如要修改菜单,选择菜单文件后按修改进入菜单设计器,修改的方法与新建时相同, 、您还可以使用“删除”“插入”来删除或插入一个菜单项,当然在新建时也可以使用,但不要用“插入栏...”,修改完要记住保存修改的结果。
千万不能忘记的就是:修改完菜单后一定要再次“生成”,否则您虽然改了菜单结构,但没有改菜单程序, 那么一旦运行起来菜单还是原样编制数据库及表 选择项目管理器中的“数据”; ; 选择数据中的“数据库” 按“新建”,得到图;按数据库设计器工具栏上的“新建表”按钮,出现图;按“新表”,输入新表名(rsda.dbf,扩展名可以不输入,按“保存”,出现图; 按照系统分析中的数据表结构输入有关人事档案表的结构,如图; 建立索引,用鼠标拉下“编号”字段后面的“索引”组合框,选择向上的箭头,按同样方法建好“部门”和“职务”字段的索引; “确定”以后出现对话框询问“现在输入数据记录吗?”,选择“否”,看到图; 重复 4-8 步建立“统计部门”(tjbm.dbf)和“统计职务”(tjzw.dbf)表; 关闭数据库设计器,可在项目管理器中看到如图。
这样该软件所要用到的数据库和数据表就编好了。
在这个软件中,只有一个数据表,可以不用数据库,而使用自由表就行。
此话有一定道理,但我们就是让大家知道数据库是怎么建的,以及数据库和数据表的关系,另外也为了今后我们要对这个软件进行扩充功能时做好准备。
如要修改数据表,用鼠标选中所要的表,然后按修改,修改完后按“确定”,会出现一个对话框,如图,选择“是”即可。
编制各功能模块 打开人事档案首先在 rsda 数据表中随便输入一点数据,选中 rsda 数据表,按“浏览” ,选择系统菜单上的“表”-“追加新记录” ,然后在表中的空记录中输入数据。
为什么要这么做,先卖个关子。
一、制作表单按照第二课的方法建立一个表单,文件名为 rsda;将表单拉到适当大小,宽约 470(width 属性) ,高约 400(height 属性),这只是个参考值,您爱拉多大多大,但宽度最好不要太小,否则不能将所有的字段显示出来,要用滚动条才能看见,那多麻烦;将表单的 caption 属性设为“人事档案” ;设置档案被打开的标记,在表单的初始化(init)事件中编入如下代码(方法类似第二课中为按钮的 click 事件编代码):dkda.t. 设置打开标记为“真” ,表示人事档案已打开,以便退出程序时先关闭本表单set order to 编号 设置主索引为编号,数据按编号排序清理被删除的记录, 当档案被关闭时, 这次打开后所有做了删除标记的记录应从数据表从彻底删除,因此我们应在表单的 destroy 事件中编入如下代码:locate for delete 查找是否有做了删除标记的记录if found 假如找到 wait window 正在删除数据 nowait 给出正在删除数据的提示 pack 彻底删除 wait window 数据删除完毕 nowait 给出数据删除完毕的提示endif 结束假设dkda.f. 设置打开标记为“假” ,表示人事档案已关闭set order to 0 设置表为没有索引二、制作表格1.调用表格控件按钮;2.在表单上拉出表格,最好从表单的左上角到右下角,即表格占满整个表单(我喜欢这样) ,如图,这是一个空表格,我们还要为它设定显示的内容,可以用手动的方法去设定这个表格有多少列、各列显示哪个数据的哪个字段、宽度多少等等,但这样太麻烦了,
VFP 为我们准备了表格内容生成器(向导) ,用它可以很方便地做出表格,看官请接着往下看;3.用鼠标右键单击表格,弹出菜单,如图;4.选择“生成器” ,如图; ,弹出“表格生成器”5.将“可用字段”中除简历以外的所有字段放入“选定字段”,先用鼠标单击一个字段,再按“选定”按钮,也可以按“全部选定”按钮,将所有字段放入选定字段,再选择简历,按“移出”按钮将简历移出。
一般此时数据库都会在“数据库和表”中出现,选中一个数据库,其中的数据表则会在下面出现,选中一个表,则其字段会在可用字段中出现,如没有所要的数据库及表出现,按查找所要的数据库并打开;6.可选择表格的样式,一般就用隐含样式,如果您喜欢也可以试试别的样式。
7.调整表格各列的宽度,选择布局,这里要注意如果数据表中没有记录,则布局不会显示,所以一开始要……,然后您可以根据自己爱好调整各列的宽度;8.所有都做好后“确定”,得到图;9.将表格的 readonly 属性设为“真”,即当表格打开时,不能随便更改其中的数据,以防误操作;10.如此时想要调整表格的列宽,不要再用生成器,否则会其它列的宽度也发生变化,而应直接在表格上调整,方法是:在属性窗口中选择表格的一列,任一列都可以,如图,选择后,将鼠标移到表格列标题列分隔线处,光标变成一个双向箭头,如图,按下左键即可调整列宽了。
全部做好后保存表单(文件名 rsda,注意要保存在正确的目录中,以后不再提醒了哦),然后关闭表单设计器。
这样我们软件的第一个主要功能就做好了,一定迫不及待想试试了吧,选择项目管理器“其它”中我们所做的菜单,按下“运行” ,然后在表单上打开人事档案,效果怎样,再试试关闭、退出、删除(记录被做上删除标记后前面有一个黑块)、恢复(黑块消失),但别的功能先别试,因为相应的模块还没有编好,一旦调用会出错。
关闭人事档案:只须菜单中的那一条命令即可,不需要再劳您大驾写什么代码。
打印花名册:在第七步“编制打印报表”中讲解,先请您往下看。
退出软件运行:也只须菜单中的命令。
新增或修改人员 新增或修改人员模块 新建一个表单(文件名为 bjry); 表单的 caption 属性设为“编辑人员”; 将表单的 windowtype 属性设为“1-模式”,即当此表单打开时其它已打开的表单包括菜单都不能被 激活,因为这时如果做一些别的操作可能会给操作者造成混乱,故将其设为此模式。
在其中放入如图 1 的控件,注意放简历内容的控件是编辑框,与文本框的使用方法基本相同,不同的 是可以输入和显示多行内容,按创建编辑框; 从 text1 到 text8 以及 edit1,每个控件的 controlsource 属性都设为与它们左边的标签一致,比如: “编号: ”右边的文本框的 controlsource 属性设为“编号” ,也就是这个文本框的内容取自数据表 当前记录的编号字段,当在里面输入了内容,也将新内容放入该字段,其它文本框和编辑框也同样处理;在“新增”按钮的 click 事件中输入如下代码:append blank 增加一条空记录以下将各控件的内容刷新thisform.text1.refreshthisform.text2.refreshthisform.text3.refreshthisform.text4.refreshthisform.text5.refreshthisform.text6.refreshthisform.text7.refreshthisform.text8.refreshthisform.edit1.refreshthisform.text1.setfocus 将焦点设到 text1在“上一条”按钮的 click 事件中输入如下代码:skip -1 记录指针向上跳一行以下一段程序检测记录指针是否到了开头,如果是给出提示,并把指针定位到第一个记录if bof 假如指针已到开头 wait 已到开头 window nowait 显示提示,鼠标或键盘一动提示消失 go top 将指针定位到第一个记录endif 假设结束以下将各控件的内容刷新thisform.text1.refreshthisform.text2.refreshthisform.text3.refreshthisform.text4.refreshthisform.text5.refreshthisform.text6.refreshthisform.text7.refreshthisform.text8.refreshthisform.edit1.refreshthisform.text1.setfocus 将焦点设到 text1在“下一条”按钮的 click 事件中输入如下代码:skip 记录指针向下跳一行以下一段程序检测记录指针是否到了结尾,如果是给出提示,并把指针定位到最后一个记录if eof 假如指针已到结尾 wait 已到结尾 window nowait 显示提示,鼠标或键盘一动提示消失 go bottom 将指针定位到最后一个记录endif 假设结束 以下将各控件的内容刷新 thisform.text1.refresh thisform.text2.refresh thisform.text3.refresh thisform.text4.refresh thisform.text5.refresh thisform.text6.refresh thisform.text7.refresh thisform.text8.refresh thisform.edit1.refresh thisform.text1.setfocus 将焦点设到 text1 在“退出”按钮的 click 事件中输入如下代码: thisform.release 编好后存盘退出即可,运行起来您就可以在菜单中调用“新增或修改”的功能了。
删除人员:就菜单中的命令够了。
恢复人员:一样。
查询 1.新建一个表单(文件名为 cx); 2.表单的 caption 属性设为“查询”; 3.将表单的 windowtype 属性设为“1-模式”,即当此表单打开时其它已打开的表单包括菜单都不能被激 活,因为这时如果做一些别的操作可能会给操作者造成混乱,故将其设为此模式。
4.在其中放入如图的控件; 5.“取消”按钮的 click 事件中还是那一句: thisform.release 本表单释放 6.“确定”按钮的 click 事件代码如图。
查看简历 新建一表单,文件名为 ckjl.scx; 表单的 caption 属性设为“简历”; ; 表单的 windowtype 属性设为“1-模式” 在其中放入如图 1 控件; edit1 控件为编辑框,readonly 属性设为.t.,即设为只读,这样可以避免在查看时不小心改了里面 的数据; ,这样查看时知道是谁的简历,enabled 属性设 text1 的 controlsource 属性设为“姓名”为.f.,即 不可访问,也就是光标都不能去到这个控件,而上面的 edit1 就不能设为不可访问,因为它的滚动条 还需要操作; “确定”按钮中的 click 事件代码如下: thisform.release 本表单释放 存盘,注意文件名是 ckjl.scx,扩展名可以不输入。
统计各部门人数一、编制子程序在项目管理器中选择“代码”;在代码中选择“程序”;按“新建”,出现程序编辑窗口,如图;在其中输入如下代码:use tjbm in 0 在另一工作区打开统计部门用数据表select tjbm 选择统计部门表zap 清空里面的数据select rsda 选择人事档案表set order to 部门 设置主索引为部门,即按部门排序go topdo while .not. eof 建立循环,当没到数据表结尾时,循环执行下面的程序 bm部门 将当前记录的部门存入 bm 变量 count while 部门bm to rs 统计以下记录数直到部门不与 bm 的值相同 结果放入 rs 变量 select tjbm 选择统计部门数据表 append blank 增加一空记录 replace 部门 with bm人数 with rs 将 bm 和 rs 的值存入空记录 select rsda 选择 rsda 表以便继续统计下面的记录enddo 循环结束do form tjbm name tjbm 调用统计结果显示表单select tjbm 选择统计部门表use 将统计部门表关闭select rsda 选择人事档案表set order to 编号 将主索引设回编号,以便在人事档案表显示return 返回保存,文件名为“tjbm.prg”二、编制表单 新建一表单,文件名为 tjbm.scx; 表单的 caption 属性设为“统计部门人数”; ; 表单的 windowtype 属性设为“1-模式” 在其中放入如图控件,其中表格的处理方法与人事档案表中表格一样,注意要设为只读,readonly 属性设为.t.,这样可以避免在查看时不小心改了里面的数据; “确定”按钮中的 click 事件代码如下: thisform.release 本表单释放 统计各职务人数 统计各职务人数模块 (注意有两个文 方法与统计部门人数几乎一样,只需把文件名由“tjbm”改为“tjzw”件,一个是子程 序,一个是表单,这两个文件的主名一样,扩展名不同),代码中的“bm”全部改为 ,“zw”“部门” 改为“职务”就行了。
我不讲具体方法了,看看您自己会不会做,如果实在不行,不要紧,可以下载我 们的源代码来看。
编制打印报表模块 选择项目管理器中的“文档”; 选择文档中的“报表” ; 按“新建”,出现图; 按“报表向导”,出现图; 选择“报表向导”,按“确定”,出现图,有可能在“数据库和表”的位置看不到所要的数据库和表,那么按后面的按钮到相应的目录中查找所要的数据库和表,找到后打开;
上一篇:
软件系统基础
下一篇:
asp论文:浅论ASP在多媒体网页课件制作中的应用