VF车辆管理系统 第7页
在“按车牌号”组合框的InteractiveChange事件中添加以下代码:
cif='left(车牌号码,len(alltrim(thisform.container1.combo1.displayvalue)))==;
thisform.container1.combo1.displayvalue'
thisform.resize &&执行表单的Resize事件
在“按车辆类型”组合框的InteractiveChange事件中添加以下代码:
cif='left(车辆类型,len(alltrim(thisform.container1.combo2.displayvalue)))==;
thisform.container1.combo2.displayvalue'
thisform.resize &&执行表单的Resize事件
在“按驾驶员”单选框的InteractiveChange事件中添加以下代码:
cif='left(驾驶员,len(alltrim(thisform.container1.combo3.displayvalue)))==;
thisform.container1.combo3.displayvalue'
thisform.resize &&执行表单的Resize事件
3.5 车辆报废设计
用户单击主菜单车辆管理下的车辆报废子菜单选项,进入车辆报废界面。通过车辆报废模块进行添加、删除、修改报废车辆信息。并且支持快速浏览报废车辆信息及当前记录号的显示。辆报废表单运行结果如图6所示。
图6 “车辆报废”表单运行结果
1.表单设计
(1)新建一个表单,名称为Frm车辆报废。
(2)在表单中添加Label控件、Combo控件、Text控件、MonthView控件(Microsoft MonthView Control, version 6.0)、Edit控件、Command 控件、Commandgroup控件和Container控件。
(3)重要控件属性如表5所示。
表5 “车辆报废”表单重要控件属性列表
控件名 |
属性 |
值 |
Text4 |
InputMask |
99-99-9999 |
Combo1 |
RowSource RowSourceType |
车辆档案.车牌号码 6-字段 |
2.代码设计
在表单的 Unload 事件中添加以下代码:
close all &&关闭全部数据库文件
use database\车辆报废表 exclusive &&以独占方式打开数据表
set exact off &&设置字符非精确比较
delete from 车辆报废表 where 车牌号码="NoNumber"
set exact on &&设置字符精确比较
close all
在表单的 Init事件中添加以下代码:
sele 2 &&选择2号工作区为当前工作区
thisform.Container1.combo1.value = 车辆报废表.车牌号码
thisform.Container1.text4.value= alltrim(dtoc(车辆报废表.报废时间))
thisform.Container1.text3.value= 车辆报废表.报废原因
thisform.Container1.text1.value= 车辆报废表.经手人
thisform.container1.edit1.value= 车辆报废表.备注
thisform.Container1.label16.caption= alltrim(str(recno())) &&显示当前的记录号
在表单的Load事件中添加以下代码:
sele 1 &&选择1号工作区为当前工作区
use database\车辆档案
sele 2
use database\车辆报废表 exclusive &&以独占方式打开数据表
thisform.visible=.f. &&设置控件无效
public nof,l &&定义全局变量
l=.f.
在表单的Activate事件中添加以下代码:
store l to thisform.Container1.text1.enabled,thisform.Container1.text3.enabled,;
thisform.Container1.text4.enabled,thisform.Container1.combo1.enabled,;
thisform.Container1.edit1.enabled &&设置控件是否有效
在“报费时间”文本框后“6”按钮的Click事件中添加以下代码:
thisform.datalist.visible=.t.
thisform.datalist.setfocus
在“报费时间”文本框的KeyPress 事件中添加以下代码:
if nkeycode=18 or nkeycode=3
thisform.container1.container2.command1.click
endif
单击“添加”按钮,如果按钮上的标题文本为“添加”,则在“车辆报废表”中追加一条新记录,并将 “NoNumber” 赋于 “车牌号码”字段用来避免出现两条空记录使索引字段出错。然后清空表单上相关控件的内容,做好接收用户输入信息的准备,并设置按钮的标题文本为“保存”;如果为“保存”,则将用户输入的信息保存到“车辆报废表”中,然后再将异动的有关信息写入“车辆档案”表的“备注”字段,并设置“车辆档案”表中的“报废否”字段为逻辑真,最后设置按钮的标题文本为“添加”。具体代码如下:
在“添加”按钮的Click 事件中添加以下代码:
if thisform.commandgroup1.command5.caption="添加"
sele 2
append blank &&追加空记录
repl 车辆报废表.车牌号码 with "NoNumber"+alltrim(str(reccount()))
thisform.refresh &&刷新表单
thisform.commandgroup1.command3.enabled=.f.
thisform.commandgroup1.command4.enabled=.f.
thisform.commandgroup1.command6.enabled=.f.
thisform.commandgroup1.command7.enabled=.f.
thisform.commandgroup1.command8.enabled=.t.
store '' to thisform.container1.text4.value,thisform.Container1.text1.value,;
thisform.Container1.text3.value,thisform.Container1.combo1.value
thisform.Container1.edit1.value=""
thisform.container1.combo1.setfocus &&Combo1获得焦点
thisform.container1.container2.command1.enabled=.t.
else
nof=.f.
if empty(thisform.Container1.combo1.value) or empty(thisform.Container1.text4.value);
or empty(thisform.Container1.text3.value) &&判断字段是否为空
messagebox("车牌号、时间、原因不允许为空!",16,"错误") &&弹出系统提示
else
thisform.commandgroup1.command5.caption="添加" &&赋值给Command5的标题文本
thisform.Commandgroup1.command5.tooltiptext="添加记录"
l=.f.
thisform.activate &&执行表单的Activate事件
thisform.container1.container2.command1.enabled=.f.
thisform.commandgroup1.command1.enabled=.t.
thisform.commandgroup1.command2.enabled=.t.
thisform.commandgroup1.command3.enabled=.t.
thisform.commandgroup1.command4.enabled=.t.
thisform.commandgroup1.command7.enabled=.t.
thisform.commandgroup1.command6.enabled=.f.
thisform.commandgroup1.command8.enabled=.f.
sele 2
repl 车辆报废表.车牌号码 with thisform.Container1.combo1.displayvalue,报废时间 ;
with ctod(thisform.Container1.text4.value),报废原因 with thisform.Container1.text3.;
value,经手人 with thisform.Container1.text1.value,;
备注 with thisform.container1.edit1.value
thisform.commandgroup1.command5.setfocus &&“添加”按钮获得焦点
sele 1 &&选择1号工作区为当前工作区
repl 车辆档案.备注 with "---车辆报废信息---"+chr(10)+"报废时间:"+alltrim(thisform.;
Container1. text4.value)+chr(10)+"报废原因:"+alltrim(thisform.Container1.text3.text);
+chr(10)+"经 手 人:"+thisform.Container1.text1.value+chr(10)+"------",报废否 with .t.
sele 2
endif
endif
在“删除”按钮的Click事件中添加以下代码:
a=messagebox("确定要删除记录吗?",32+4,"系统提示")
if a=6
if bof()=.f. and eof()=.f.
sele 2
delete &&逻辑删除记录
pack &&物理删除
go top &&记录指针移动到第一条记录
thisform.refresh &&刷新表单
thisform.init &&执行表单的Init事件
l=.f.
thisform.activate &&执行表单的Activate事件
thisform.commandgroup1.command1.enabled=.t.
thisform.commandgroup1.command2.enabled=.t.
thisform.commandgroup1.command3.enabled=.t.
thisform.commandgroup1.command4.enabled=.t.
thisform.commandgroup1.command5.caption="添加"
thisform.commandgroup1.command6.enabled=.f.
thisform.commandgroup1.command7.enabled=.t.
endif
endif
在“修改”按钮的Click事件中添加以下代码:
nof=.t.
thisform.commandgroup1.command5.caption="保存" &&赋值给Command5的标题文本
l=.t.
thisform.activate &&执行表单的Activate事件
thisform.commandgroup1.command1.enabled=.f. &&设置控件无效
thisform.commandgroup1.command2.enabled=.f.
thisform.commandgroup1.command3.enabled=.f.
thisform.commandgroup1.command4.enabled=.f.
thisform.commandgroup1.command7.enabled=.f.
thisform.commandgroup1.command8.enabled=.t.
thisform.commandgroup1.command6.enabled=.t.
thisform.container1.combo1.setfocus &&设置控件获得焦点
thisform.container1.container2.command1.enabled=.t.
如果用户在执行“添加”操作(变量nof=.f.)时,单击“取消”按钮,则删除添加的空记录;如果是“修改”操作,只需设置相关控件无效即可。具体代码如下:
在“取消”按钮的Click事件中添加以下代码:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页