📄 文章.txt
字号:
sele 租借表
if 租借表.还期-租借表.借期+1<=预借天数
repl 租借表.正常租金 with (租借表.还期-租借表.借期+1)*book.日租金
repl 租借表.退还 with 预付租金-正常租金
repl 租借表.补交 with 0
repl 租借表.过期租金 with 0
else
repl 租借表.正常租金 with 预借天数*book.日租金
repl 租借表.过期租金 with (租借表.还期-租借表.借期+1-预借天数)*book.日罚金
if 预付租金-正常租金-过期租金>=0
repl 租借表.退还 with 预付租金-正常租金-过期租金
repl 租借表.补交 with 0
else
repl 租借表.退还 with 0
repl 租借表.补交 with 正常租金+过期租金-预付租金
endif
endif
=tableupdate(.t.)
thisform.refresh
sele book
loca for isbn=thisform.combo2.value
repl book.复本数量 with book.复本数量+1
sele person
loca for 客户编号=thisform.combo1.value
repl 租金累计 with 租金累计+租借表.正常租金+租借表.过期租金
thisform.command1.enabled=.t.
thisform.command2.enabled=.f.
thisform.command3.enabled=.f.
thisform.command4.enabled=.t.
thisform.combo1.enabled=.f.
thisform.combo2.enabled=.f.
thisform.txt还期.enabled=.f.
控件command3(恢复)——单击事件(click)过程代码
=tablerevert(.t.)
thisform.command1.enabled=.t.
thisform.command2.enabled=.f.
thisform.command3.enabled=.f.
thisform.command4.enabled=.t.
thisform.combo1.enabled=.f.
thisform.combo2.enabled=.f.
thisform.txt还期.enabled=.f.
控件command4(返回)——单击事件(click)过程代码
thisform.refresh
3.租借查询
租借查询由表单zjcx.scx负责。本表单包含一个有两个页面的页框控件,数据源为数据表book.dbf(图书表)、租借表.dbf(租借表)和person.dbf(客户表)。表单zjcx.scx位于默认路径的forms文件夹中。
(1)页面1所包含的控件、控件属性及相应代码
页面1(查询图书去向)包含1个标签、1个组合框控件和2个命令按钮控件。其中表格控件包含4列,既属性columncount=4。将每列的标题caption依次设为:“客户姓名”、“手机”、“宅电”、“住址”。
在本业面中,如果选择图书名,单击“查询”按钮,就可以查询到借阅该书的客户信息。
· 表单zjcx.SCX--Init过程代码
thisform.pageframel.pagel.gridl.recordsource=""
thisform.pageframel.page2.gridl.recordsouroe=""
. 控件Commandl(查询)——单击事件(Click)过程代码
sele租借表
SELECTPerson.客户姓名,Person.宅电,Person.手机,Person.住址,,
Person.客户编号;
FROM tszj!parson INNER JOIN tszj!租借表,
on Person.客户编号=租借表.客户编号;
WHERE租借表.isbn=thisform.pageframel.pagel.comb01.value.and.租借表.还期’{);
GROUPBYPerson.客户编号;
ORDERⅢPerson.客户编号;
INTO CURSOR khtscx
thisform.pageframel.pagel.gridl.recordsource=”khtscx”
(2)页面2所包含的控件、控件属性及相应代码
页面2(查询客户借阅信息)包含1个标签、1个组合框控件、1个表格控件和2个命令
按钮控件。其中表格控件包含3列,即属性C01umnCount=3。将每列的标题Captlon依次
设为:“图书名称”、“借期”、“还期”。
在本页面中,选择客户名,单击“查询”按钮,就可以查询到该客户借阅图书的信息。表
单运行时页面2效果如图4.25所示。
图4.25 zjcx.scx运行时页面2效果
. 控件Commandl(查询)——单击事件(C1ick)过程代码
SELECTbook.图书名称,租借表。借期,租借表.还期,
FROM tszj!bookINNERJOINtszj!租借表;
On book.isbn=租借表.isbn~
WHERE租借表.客户编号=tbisform.pageframel.page2.combo1.value;
ORDER BY book.isbn;
INT0 CURSOR tskhcx
thisform.pageframel.page2.gridl.recordsource=”tskhcx·
4.3.8 打印
打印由表单dycsd.SCX负责。该表单位于默认路径的{orms文件夹中,数据源为数据
表book.dbf(图书表)、租借表.db{(租借表)和person.dbf(客户表)。这一表单能够显示或
打印过期图书的催还单。所谓“过期图书”就是系统日期减去借书日期如果大于预借天数的
图书。表单运行效果如图4.26所示。单击表单上浏览”按钮,效果如图4.27所示。
图4.26 dycsd,scx运行效果
· 控件Commandl(浏览)——单击事件(Click)过程代码
khh-‘thisform.Comb01.value
reportformREPORTS\k-hcsd.frx ; &&事先制作好的报表文件
for客户编号=khh;
preview window forml
· 控件Command2(打印)——单击事件(Click)过程代码
messagehox(”打印机是否准备就绪?”十CHR(13);
+·如果打印机不能正确工作,请在打印设置中选择取消·,o,·确认打印·)
khhm=thisform.Combo1.value
reportformREPORTS\khcsd.frx,SG事先制作好的报表文件
for害户编号+khbm;
tO printer prompt window form1
· 控件Command3(返回)--单击事件(Click)过程代码
thisform.release
· 报表文件khcsd.frx的制作
在命令按钮“浏览”和“打印”的代码中,用到了report命令,命令中引用的报表文件k卜
csd.frx是利用报表向导预先制作好的。在报表制作中用到的数据源是视图khcsd,视图
khcsd来源于数据表person.dbf(图书表)、book.dbf(客户表)和租借表.dbf(租借表)。它
们之间的关系如图4.28所示。
图4.20 视田、数据表和报表之间关系
· 视图khcsd的制作
今 Fields选项 person.客户编号,person.客户姓名,租借表.ISBN,book.图书名称,
租借表.借期,租借表.预借天数。
* Join选项 person.客户编号=租借表.客户编号;租借表.ISBN=book.ISBN。
* Filte选项租借表.还书日期=<>.and..DATE()一租借表.租借日期+1一租借
表.预借天数>o。
* OrderBy选项 租借表.ISBN。
其他设置保持默认效果。
· 报表设计
报表文件khcsd.frx位于系统默认路径的Reports文件夹中,设计效果如图4.29所示。
圈4.2 khcsd.frx设计效果
4.4 系统测试
根据系统模块的划分,同时对应用系统程序的功能和结构进行测试。在表单设计和编
码中就交替进行着不断的测试。
注: 本示例在运行表单、使用数据表时都用了相对路径,因此在调试时不要忘记在命令
窗p中输入“set defa to d:\VisualFoxPro 6.0课程设计指导\图书租借信息管理系
统\”。
下面是一些样本数据(记录),事实上,其中的一部分是在设计表单或编码时为了测试已
经输入到数据表中了。而在测试查询统计表单之前数据表中更需要有一定数量的原始数据
(记录),测试的效果才明显,易于发现问题。
password.dbf(密码表)、分类表.dbf(分类表)不依赖任何其他表,表中的记录在建表之
初由管理员或设计者直接输入。
book.dbf(图书表)中的数据在“图书信息维护”中进行管理,但其中“复本数量”字段在
图书租出时数量会被减1,而在图书归还时数量会被加1。
person.dbf(客户表)中的数据在“客户信息维护”中进行管理,但其中“租金累计”字段
在用户归还图书时被调整,每次用户花费的租金会被累计。
租借表.dbf(租借表)中的记录是在图书出租、归还两个过程中被管理的。
以上数据表见表4.1一表4.5。
表4.1 图书表(book.dbf)
表4.2 客户表(person.dbf)
表4.3 租借表(租借表.dbf)
表4.4 密码表(passwor4.dbf)
表4.5 分类表(分类表.dbf)
4。5 项目连编及安装盘
1.主控程序
主控程序programl.pr8位于默认路径的PROGS文件夹,内容如下;
clear
set talk off
setdefatoD:\VFP60课程设计指导\图书租借信息管理系统\
do forms\begin.scx
read events
close all
return
2.设置主控程序
要使programl.prg作为项目的主控程序,还必须在项目管理器中,进行相应的设置。
如图4.30所示。
3.项目连编
. 清理项目 在“项目”菜单下,选“清理项目”。
· 连编项目 点击项目管理器中的连编,分别作1、3两个选项,即先连编项目文件再
连编可执行文件,如图4.31所示。将生成的可执行文件“图书租借.exe”存放在
D:\VFP 60课程设计指导\图书租借信息管理系统
目录中。
图4.30 设置主控程序 图4.31 连编可执行文件
. 可执行文件的运行 如果运行“图书租借.exe”时出现问题,请将下列文件复制到
“图图书租借.exe”所在的目录中x
config.fpw
VFP 6r.dll
VFP 6rchs.dll
rFP 6renu.dll
其中,config.{pw的原始位置是项目文件(图书租借.pix)所在的目录,其余3个文件在
windows\system下。
注: ①连编时,应先关闭所有的数据库、表及表单等,再去连编,否则容易出错。
②运行可执行文件“图书租借.exe”时,要关闭所有的数据库或正在运行的表单等。
4.创建发布磁盘
这是令人激动的工作部分。我们就要成为一个“软件”的提供者,将要提供一个很正规
的“软件”给用户安装。
利用VisualFoxPro 6.o的“安装向导”来生成应用程序的发布磁盘和安装程序,首先在
D盘上建立一个文件夹,命名为ts。
在本例中,创建发布磁盘的每个步骤选择如下:
(1)定位文件 D:\VFP 60课程设计指导\图书租借信息管理系统\。
(2)指定组件 VisualFoxPro运行时刻组件。
(3)磁盘映像 目录->D:\ts\ 1.44MB 3.5英寸 Web安装(压缩)。
(4)安装选项 安装对话框标题一“正在安装,请稍候!",版权信息一“版权所有”,另外
一项略。 ·
(5)默认目标目录 \ts;程序组一Visual FoxPro应用程序;用户可以修改一目录与
程序组。
(6)改变文件设置 没有改变。
(7)完成 没有改变。
结束之后,在D:\wy下可以看见一个Diskl44文件夹。Diskl44文件夹下有3个子文
件夹,其中Diskl中有安装文件Setup.exe一
注: 生成安装盘的过程中应关闭项目管理器。
5.项目文档
利用“文档向导”,可以完成一份全面、细致的项目文档。Visual FoxPro 6.o菜单下选
“工具”一“向导”一“文档”,弹出对话框。
· 步骤(1)~(4)保持系统给出的默认选项。
· 步骤(5)如图4.32所示。
田4.32选择报衰
选择了报表类型后,向导会生成两个文本文件(可以用写字板打开进行查看):其一
“FILES.LST”列出了本项目中包含的所有文件名称及位置,对于数据表文件还列出了表结
构,如图4.33所示;其二“图书租借.LST"列出了项目中所有相关代码,十分详尽,每一部分
代码用“****”间隔开,如图4.34所示。
· 步骤6选择“将文件存放到单个目录中”。
如此选择可以在第七步中指定一个目录用来存放"FILES.LST"和“图书租借.LST"。
· 步骤7选择d:\t3\,存放FILES.LST和“图书租借.LST”两个文本文件。
“FILES.LST"的部分内容如下:
FORMS\ZJCX.SCX
mmm\zoch.scx
GRAPHics\背景.JPG
REPORTs\标题.JPG
Re0RTS\khCSD.FRX
Database Database
Version 10
Database TransactionLog
Database StroredProceduresSource
DatabaseStoredProceduresobject
Database StoredProceduresDependencies
Table person
Path person.dof
Field 客户编号 客户编号 C 6 0
Field 客户姓名 客户姓名 C 8 0
Field 身份证号 身份证号 C 18 0
Field 宅电 宅电 C 8 0
Field 手机 手机 C 11 0
Field 住址 住址 C 30 0
Field 租金累计 租金累计 N 10 2
“图书租借.LST”的部分内容如下:
REPORTformREPORTS\khcsd.frx:&&事先制作好的报表文件
FOR客户编号 kh]m:&&学号的前两位表示专业,3至4位代表年级
TOprinter prompt window Forml
ENDPHOC
****** *D:\VFP 60课程设计指导\图书租借信息管理系统\FORMS\HSCLL.SCX
Left=92
Top 62
Width=510
Height=161
Name="Dataenvironment",
Left=10
Top=20
Width=104
Height=90
Alias="book"
BrfferModeoverride=3
Database=..\data\tszj.dbc
CursorSource=”book”
EXCLUSIVE=T.
Name=”cursorl”
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -