|
从这一课开始,我们来编一个库房管理软件。 一、建立数据库 1、新建数据库kfgl,保存到d:\demo\data目录下。 2、在kfgl数据库中新建表systen(.dbf),五个字段:fzr、bgy、jhy、cly、mima,其标题分别为:负责人、保管员、计划员、材料员、密码。(图5-1)

可以在其‘输入掩码’文本框内输入其掩码,其作用是:在你浏览此表时只显示掩码,而不显示其内容。例如:你的密码是“wyc”,你输入掩码为“ok”,在你浏览表时,显示密码为“ok”,可以起到一定的保密作用,而在程序中调用表显示其内容时,不显示掩码。 3、新建表main.dbf:
ckbh c(10), rq d(8),qcmc c(16),ggxh c(20),lb c(6),dw c(4), dj n(8,2),pzbh
c(10),rksl n(8,2),rkje n(10,2), cksl n(8,2), ckje n(10,2),gcmc c(30),bz
c(6),cly c(6),bgy c(6),jhy c(6),llr c(6),fzr c(6),lh c(6),yt c(20),qu
c(2),jia c(2),hao c(2),ku
c(2)。其标题分别为:出库编号,日期,器材名称,规格型号,类别,单位,单价,凭证编号,入库数量,入库金额,出库数量,出库金额,工程名称,班组,材料员,保管员,计划员,领料人,负责人,料号,用途,区,架,号,库。说明:c-字符型;d-日期型;n-数值型,括号内为字节长度,逗号后面的数值为几位小数。 4、新建表grgjk.dbf:
ckbh c(10), rq d(8),qcmc c(16),ggxh c(20),lb c(6),dw c(4), dj n(8,2), cksl
n(8,2), ckje n(10,2),bz c(6),jhy c(6),llr
c(6)。其标题分别为:出库编号,日期,器材名称,规格型号,类别,单位,单价,出库数量,出库金额,班组,计划员,领料人。 二、主程序(替换第二课讲的主程序) set
talk off &&关闭对话模式 set safe off set stat
off set dele on
&&不处理已删除的记录 set cent on set date to ansi close
all RELEASE WINDOW 常用 &&关闭常用工具栏 if
mod(day(date()),2)=0
&&偶数日期 _SCREEN.backcolor=rgb(80,180,150)
&&窗口背景颜色 MODIFY WINDOW SCREEN TITLE " 库房管理应用软件 ver
2.1
为齐; 鲁石化检修公司机泵车间编制
今天是:"+dtoc(date())+" "+cdow(date()) else
&&奇数日期 _SCREEN.backcolor=rgb(80,150,180)
&&窗口背景颜色 MODIFY WINDOW SCREEN TITLE " 库房管理应用软件 ver
2.1
;
软件编制者:王永成
今天是:"+dtoc(date())+" "+cdow(date()) endif ZOOM WINDOW SCREEN
MAX &&主窗口最大化 _SCREEN.controlbox=.f.
&&去掉主窗口控制按钮 deactivate window "项目管理器"
&&关闭项目管理器 mypath=left(sys(16),rat("\",sys(16)))
&&确定程序所在的位置 set defa to (mypath) &&设置当前路径 set
path to data;form;pic &&指明路径 open database
kfgl &&打开数据库 do form logo
&&运行表单logo read
events quit 三、主菜单 操作(\——器材入库 命令:do form
rkd ——器材出库 命令:do form
ckd ——\- ——退出 命令:Clea
event 编辑(\——编辑浏览出入库单 命令:do form
llxg ——浏览个人工具卡 命令:do form
grgj ——修改个人工具卡 命令:do form
grgjk ——\- ——基本设置
命令:do form
systen 游戏(\——猜数游戏 命令:do
form csyx ——身体状态测试 命令:do form
stcs ——\- ——心灵感应 命令:do form
xlgy 退出(\四、建立工具栏 1、在‘项目管理器’中选‘类库’,按‘新建’按钮,出现新建类对话框。 2、类名输入‘kuf’,派生于选择‘toolbar’,存储于:‘D:\demo\form\kuf.vcx',按‘确定’按钮,出现类设计器。 3、跟建立表单一样,如图5-2,

我们建立8个命令按钮,其‘tooltiptext’分别为:器材入库,器材出库,修改,浏览,查找器材,身体状态测试,猜数游戏,退出。给按钮加上图片、文字(例如:‘猜’字)。在各自的‘click’方法程序中输入相应的命令(如:do
form rkd),现在还没建立这些表单,可以在建完以后再输。 五、建立以下表单 1、logo表单(图5-3)
 (1)表单logo,titlebar为0-关闭,height=115,width=222。 其init过程: use
systen Thisform.Label1.width =0 Thisform.Label3.Left
=thisform.width public
tbs,bgy1,cly1,jhy1,fzr1 thisform.top=0 thisform.left=0 bgy1=bgy cly1=cly jhy1=jhy fzr1=fzr (2)Label1的caption为“欢迎使用库房管理软件”,透明,楷体,12号,黄色。 (3)Label2的caption为“输入密码”,透明,黑体,12号,绿色。 (4)Label3的caption为“软件作者:齐鲁石化公司检修公司机泵车间
王永成”,透明,白色。 (5)文本框txtpassword,passworchar为‘*’。 (6)计时器timer1,interval=200。 其timer过程: if
thisform.top<140
&&如果表单的顶边距主窗口的距离小于140 thisform.top=thisform.top+10
&&距离增大10,即表单向下移动10 thisform.left=thisform.left+20
&&表单的左边距增大20,即向右移动20 endif &&结束判断 If
Thisform.Label1.width >160
&&判断label1的宽度是否大于160 Thisform.Label1.width
=0 &&label1的宽度设为0 Else
Thisform.Label1.width = Thisform.Label1.width +16
&&宽度增加16 EndIf *以下作用是让label3向左移动 If Thisform.Label3.Left
< -272 Thisform.Label3.Left = Thisform.Width
Thisform.Label3.Left = Thisform.Label3.Left -
5 Else Thisform.Label3.Left =
Thisform.Label3.Left - 5 EndIf thisform.refresh
&&刷新表单
(7)命令按钮ok,确定。 其init过程: public
n n=0 其click过程: n=n+1 IF
allt(thisform.txtpassword.value)=allt(systen.mima) thisform.release
&&hide set classlib to
('kuf') tbs=creat('kuf')
&&用tbs代替自定义工具栏kuf
tbs.dock(0)
&&0=顶部、1=右、2=左、3=底部
tbs.show
&&显示工具栏 DO main.mpr
&&执行主菜单程序 ELSE if
n>=3
=messagebox("你不是合法用户!你不能使用!!",64,"提示窗口")
thisform.release Clea
event
else
=messagebox("口令不正确!请重新输入!",64,"提示窗口") thisform.txtpassword.value='' thisform.txtpassword.setfocus() endif ENDIF (8)命令按钮caecel,退出。 其click过程: thisform.release Clea
event
|