基于VFP图书馆管理系统的建设
3.3.5 学生资料的保存
“命令按钮工具栏”中“保存”按钮的作用是检查表单中个数据栏中的数据输入完整情况,如果无误,则保存记录。
“保存”按钮的 click事件代码如下:
LOCAL OK &&声明一个本地变量
OK=.T. &&假设个数据栏中无数据无误
DO ASE
CASE EMPTY(ALLTRIM(THISFORM.PF.StuPage.txt学号.VALUE)
MESSAGEBOX(“学号不能为空”,48,“图书借阅管理系统”)
THISFORM.StuPage.txt学号.SETFOCUS()
OK=.F.
CASE EMPTY(ALLTRIM(THISFORM.PF.StuPage.txt 姓名.VALUE)
MESSAGEBOX(“姓名不能为空”,48,“图书借阅管理系统”)
THISFORM.StuPage.txt姓名.SETFOCUS()
OK=.F.
CASE EMPTY(THISFORM.PF.StuPage.Cmb系别.VALUE)
MESSAGEBOX(“系别不能为空”,48,“图书借阅管理系统”)
THISFORM.StuPage. Cmb学号.SETFOCUS()
OK=.F.
CASE EMPTY(ALLTRIM(THISFORM.PF.StuPage.txt地址.VALUE)
MESSAGEBOX(“地址不能为空”,48,“图书借阅管理系统”)
THISFORM.StuPage.txt地址.SETFOCUS()
OK=.F.
CASE EMPTY(ALLTRIM(THISFORM.PF.StuPage.txt电话.VALUE)
MESSAGEBOX(“电话不能为空”,48,“图书借阅管理系统”)
THISFORM.StuPage.txt电话.SETFOCUS()
OK=.F.
ENDCASE
IF OK=.T. &&如果各数据栏无误为空
YN=MESSAGEBOX(“确定保存”,4+32,“图书借阅管理系统”) &&弹出确认对话框
IF YN=6 &&如果确认
CanSave=.F. &&试图保存
MESSAGEBOX(“学号错误”,48,“图书借阅管理系统”) &&如果保存失败
THISFORM.PF.StuPage.txt学号. SETFOCUS()
ELSE
MESSAGEBOX(“保存成功”,64,“图书借阅管理系统”) &&如果保存成功
THISFORM.StuModeBrse()
IF THISFORM.StuFM=“cmod”
GO THISFORM.StuOR
ELSE
THISFORM.PF.StuPage.txt学号.READONLY=.T.
ENDIF
ENDIF
THISFORM.REFRESH()
ENDIF
ENDIF
3.3.6取消
“命令按钮工具栏”中“取消”按钮的作用是删除表单的数据缓冲区的数据,并且使当前页面回到浏览状态。
“取消”按钮的 click事件代码如下:
YN=MESSAGEBOX(“确定取消”,4+32,“系统消息”)
TF YN=6
TABLEREVERT(.F.)
TF THISFORM.StuFM=“cadd”
GO THISFORM.StuOR
ENDIF
THISFORM.StuModeBrse()
THISFORM.PF.StuPage.txt学号。READONLY=.T.
THISFORM.REFRESH()
ENDIF
3.3.7 学生资料的打印
“命令按钮工具栏”中“打印”按钮的作用是将“DbfName”全局变量赋值,表明要进行打印的是“学生信息表”并调用“选择打印类型”表单。
“取消”按钮的 click事件代码如下:
DbfName=“StuDbf”
DO FORM PrintL.X
3.3.8借还书
读者可以通过“借还书”按扭来实现借书和还书。并可以在此查看过期未还的图书和图书的排行榜。
SELECT Student
Thisform.OldRecord= RECNO() &&将记录编号储存
DO FORM Input WITH "输入书号","AA9999" TO BookNO &&调用输入表单
SET EXACT ON &&改为精确比较
IF BookNO<>"" &&表示有输入图书编号
SELECT Book
LOCATE FOR 图书编号=BookNO
IF NOT FOUND() &&表示找不到时
MESSAGEBOX("无此书号",48,"信息窗口")
SELECT Student
GO Thisform.OldRecord &&回到原记录
ELSE
IF 是否借出=.T.
MESSAGEBOX("书已借出",48,"信息窗口")
SELECT Student
GO Thisform.OldRecord &&回到原记录
ELSE
SELECT JyRec
COUNT FOR 学号=ALLTRIM(THISFORM.txt学号.VALUE) AND EMPTY(归还日期) TO YjNO
IF YjNO>=7
MESSAGEBOX("可借书数据目己满",48,"信息窗口")
SELECT Student
GO Thisform.OldRecor &&回到原记录
ELSE
SELECT BOOK
REPLACE 是否借出 WITH .T.,借阅次数 WITH 借阅次数+1 FOR 图书编号=BookNO
INSERT INTO JyRec (学号,图书编号,借阅日期) VALUES (ALLTRIM(THISFORM.txt学号.VALUE),BookNO,DATE())
MESSAGEBOX("借出成功",64,"信息窗口")
SELECT Student
GO Thisform.OldRecord &&回到原记录
ENDIF
ENDIF
ENDIF
ENDIF
Thisform.Refresh() &&重新显示表单上各对象的数据
SET EXACT OFF &&改回模糊比较
表单中“过期”按扭的作用是调用“过期图书”表单,其Click事件代码如下:
DO FORM Outdate
表单中“排行”按扭的作用是调用“图书借阅排行榜”表单,其Click事件代码如下:
DO FORM Topten
“退出”(Cmdexti)按扭的Click事件代码如下:
YN=MESSAGEBOX(“确定退出”,4+32,“图书借阅管理系统”)
IF YN=6
THISFORM.RELEASE()
CLEAR EVENTS
QUIT
ENDIF
“学生信息”页面中“借还书”(Cmdjh)按扭的作用是将页面中当前记录的“学号”值赋给全局变量“StudentNO”, 并调用“读者借书记录”表单。
“借还书”(Cmdjh)按扭的Click事件代码如下:
StudentNO=ALLTRIM(THISFORM.PF.StuPage.txt学号.VALUE)
DO FORM JyRec
3.4“书籍资料”模块
在“书籍信息”(BookPage)页面被激活时,表单中的当前数据工作期应该变为“图书信息”数据表所在的工作期,将可能由其他表单对该数据表设置的过滤条件去掉,同时要使该页面进入浏览状态。
添加该页面的“Activate”事件代码如下:
SELECT BOOK
SET FILTER TO
GO TOP
THISFORM.SjFM=“cbrowse”
THISFORM.SjModeBrse()
THISFORM.REFRESH()
由于该页面要在刷新表单时,显示表单中当前记录的书籍是否借出,故添加该页面的Refresh事件代码如下:
SELECT BOOK
IF 是否借出=.F.
THISFORM.PE.BOOKPage.LblStatus.CAPTION=“在馆中”
ELSE
THISFORM.PE.BOOKPage.LblStatus.CAPTION=“借出中”
ENDIF
在“书籍信息”(BookPage)页面在可通过添加的MonthView控件(SjOleRq)来输入图书的购买日期,在该页面处于非浏览状态时单击“。。。”按扭即可调用该软件。
添加“。。。”(Cmdrp)按扭的Click事件代码如下:
THISFORM.PE.BOOKPage.Sjoleq.VISIBLE=.T.
如果要从“SjOleRq”控件中获得日期值还需要添加“SjOleRq”的“DateClick”事件代码如下:
*** ActiveX 控件事件 ***
LPARAMETERS dateclicked
THISFORM.PF.BookPage.txt购买日期.VALUE=dateclicked
THISFORM.PF.BookPage.txt购买日期.REFRESH()
THIS.VISIBLE=.F.
添加“SjOleRq”的“MouseDown事件代码如下:
*** ActiveX 控件事件 ***
LPARAMETERS button, shift, x, y
IF button=2
THIS.VISIBLE=.F.
ENDIF
3.4.2增加书籍
“增加”(Cmdadd)按扭的Click事件代码如下:
SELECT Book
THISFORM.SjOR=RECNO()
GO BOTTOM
APPEND BLANK
THISFORM.SjFM="cadd"
THISFORM.SjModeMody()
THISFORM.PF.BookPage.txt图书编号.READONLY=.F.
THISFORM.REFRESH()

以上内容只是毕业设计作品的部分资料介绍,如果了解更多详情请联系客服QQ:57510459
购买帮助>>
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论