
原则上,数据库设计是指定系统中所有数据库文件及相关文件的逻辑结构与存储结构。本系统数据库的组成如图4
假定通过调查、分析,已经得到某商店的服装销售系统信息,为了使用的方便,也为了提高二维表的范式,我们建立五个主要的数据表,它们的结构如下。
工资表的结构
字段 字段类型 宽度 索引
工号 C 6 主索引
姓名 C 8
账号 C 10
应发工资 N 8 2
代扣项目 N 8 2
实发工资 N 8 2
职工情况表的结构
字段 字段类型 宽度 索引
工号 C 6 普通索引
姓名 C 8
性别 C 2
出生年月 D 8
部门 C 8
职位 C 8
籍贯 C 10
代扣项目表的结构
字段 字段类型 宽度 索引
工号 C 10 普通索引
姓名 C 8
水电费 N 6 2
社会保险 N 6 2
个人所得税 N 6 2
代扣项目合计 C 8 2
应发工资表的结构
字段 字段类型 宽度 索引
工号 C 10 普通索引
姓名 C 8
基本工资 N 8 2
误餐补贴 N 8
加班补贴 N 8 2
奖金 N 8 2
代扣项目合计 N 8 2
口令表的结构
字段 字段类型 宽度 索引
用户 C 10
口令 c 6
七、创建数据库
主界面如下
利用菜单选取项中工具栏按钮打开“新建”对话框,指定建立数据库文件,单击“新建”按钮,并给出数据文件名为:工资管理系统.dbc,一个数据库文件就建立好了。形式如下图。
【 建立数据表 】
创建数据表:工资.dbf、职工情况.dbf、代扣项目.dbf、应发工资.dbf、口令.dbf
在数据库中“数据库”菜单项,或者快捷菜单的“新建表”选项打开表设计器,在设计器窗口中分别键入各字段名、类型、宽度及小数位数值。结果如图所示
例:
工资.dbf表
八、程序设计
程序设计是系统实施阶段贩核心工作,也是主要内容。本作业是基于VFP6.0的开发环境下进行的。通过使用“应用程序生成器向导”各“项目管理器”等编程工具来实现模块和功能。系统初始界面及其程序
本系统的初始界面如下所述:一个系统应当有一个生动的初始界面,同时还应当能够控制使用该系统的人员,
正确选择 *** 作员输入允许的口令后,单击“确定”按钮打开系统。
“确认”按钮的响应程序如下 。
f lenc(allt(thisform.text1.value))#0.and.lenc(allt(thisform.text2.value))#0 then
close database
open database("口令.dbc")
use 口令.dbf
store 0 to ncount
locate for allt(用户)=allt(thisform.text1.value)
do while found()
if allt(口令)=allt(thisform.text2.value) then
ncount=recno()
endif
continue
enddo
if ncount>0 then
thisform.release
do 工资管理系统.mpr
else
messagebox("您输入的用户名和口令能错误,请退出!","错误窗口")
endif
use
else
messagebox("请输入用户名和口令!","提示窗口")
thisform.text2.value=""
thisform.text1.setfocus
endif
系统主控界面
系统以菜单方式 *** 作。
系统的主控程序
整个系统由主控程序 主程序.prg调度。该程序内容如下:
et talk off
set safe off
set date ansi
set hours to 24
set cent on
set path to curdir()
_screen.visible=.t.
_screen.autocenter=.t.
_screen.windowstate=2
do form 欢迎.scx
read events
set sysmenu to defa
set talk on
set safety on
close all
clear all
clear windows
clear event
cancel
这个实例是企业工资管理系统.
那个高手可以变一个.比如说.
水果批发系统..只要跟上面的不一样就行
就你这个循环而言:set talk off
............
for ........
....
if.......
exit
endif
endfor
← ← ← && exit退出到这个位置
?xxxxx
Exit是强制退出循环,这里很显然只有一个for循环。(if语句是选择结构)
Loop则是返回到循环起始,进一步判定是否满足循环条件,从而是否进一步执行循环体。(这和Exit恰恰相反,一个是回到开始,一个是跳到最后。)
*********************************************VFP中实现背景音乐的几种方法
(好文章大家一起分享) 本文出自:《电脑报》1998年01月25日第04期
一、利用set bell to
VFP5.0的set bell to命令的使用格式不同于FoxPro2.X的格式。在VFP5.0中,它的格式为Set Bell To [cWAVFileName, nDuration]。
其中cWAVFileName为一个.WAV文件;nDuration为持续时间(注意该项不可省略,否则会产生语法错误)。这样当在个人程序的初始模块中用set bell to 定向到一.WAV文件后,便可在后面的模块中用?chr(7)来播放该.WAV文件。
示例1: set bell on &&使bell有效
set bell to '.WAV文件', 0 &&使bell定向到一个.WAV 文件。注意有单引号
?chr(7) &&播放该.WAV文件
二、利用OLE容器控件
创建一表单,单击表单控件工具栏中的“OLE容器控件”按钮,然后在表单上适当位置点击或拖动。在出现的“Insert Object”窗口中选“Creat New”或“Creat From File”,用“Browse”按钮选取自己的.WAV文件,确定即可。
在当前表单中会出现一“喇叭”图标,设置该图标的属性“ AutoActivate”为1,可使每当表单运行时自动播放该.WAV文件,实现背景音乐;设置Height、Width均为0时,可隐藏“喇叭”图标。
三、利用VFP库Foxtools.fll
用=Regfn()和=Callfn()可访问Foxtools.fll中的音频模块,进行播放声音文件。
示例2:
创建一表单,在其Activate事件中输入下列代码:
public ss &&定义一全局变量ss
set library to foxtools.fll &&打开库Foxtools.fll
ss=Regfn("SndPlaySound", "CI", "I", "mmsystem") &&取得音频信息
=Callfn(ss, "一.wav文件", n) &&n=0(1,2,3也可)时只播放一遍,n=9时循环播放
在其Destroy事件中输入下列代码:
=Callfn(ss, "", 10) &&停止播放
set library to &&从内存中释放库foxtools.fll
四、利用Windows的动态链接库 在VFP5.0的安装目录samples\classes下,有一类库samples\classes。其中提供有两种控件:视频和音频,音频可以控制播放.WAV和.MID文件,利用它可轻松地实现背景音乐。下面给出它的实例。
示例3:
创建一表单,在表单控件工具栏中选择类按钮,添加VFP5.0中的samples\classes\samples.vbx类库。此时表单控件工具栏中会出现SoundPlayer和VideoFrame两个多媒体控件。选择SoundPlayer,在表单上单击后,设置它的属性如下:
AutoOpen=.t.
AutoPlay=.t.
AutoRepeat=.t.
Class=SoundPlayer
Soundfile=指定一.WAV或.MID文件 &&注意没有引号
Visible=.f. &&不可见
以上几种方式各有优缺点,应用时要注重满足自己的编程需要。若你有更好的方法,欢迎来信共同探讨 我利用ole容器播放MID文件,因为MID文件普遍最小。但是我不知道可否设置循环播放?因为我不知道解决方案,所以,我就加了一个定时器,设置调用定时器的时间间隔等于或略大于MID播放时间长度。
*********************************
转载
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)