4.2 函数countday
countday (date date1,date date2)
功能介绍:通过传入的date1(起始日期)值与date2(结束日期)值,计算出中间相差的天数,返回值为integer型。
代码分析:
int day
day=(integer(year(date2)) - integer(year(date1)))*365 +&
(integer(month(date2)) - integer(month(date1)))*30 +&
(integer(day(date2)) - integer(day(date1)))*1
return day
4.3 函数countfine
countfine (integer days, decimal fine, integer countday)
功能介绍:根据图书免费借阅天数days、罚金费率fine,以及已借阅的天数(由countday函数算出),计算出费用,返回值为decimal型。
代码分析:
dec countfine
if countday>=0 and countday<=days then//免费使用期内罚金为0
countfine=0
else
countfine=(countday - days)*fine//超根据期多少计算罚金
end if
return countfine
5 应用程序对象 App_librarain
功能介绍:PB程序由一个应用程序开始,即每个PB程序在开始运行时,先执行应用程序对象的Open事件。在Open事件中连接数据库,并打开登陆窗口w_login。
代码分析:
// Profile librarian
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=librarian;UID=;PWD='"
Connect using SQLCA;
//判断数据库连接是否成功
if sqlca.sqlcode = 0 then
open(w_login)
else
messagebox('系统提示','连接数据库失败!')
end if
6 具体窗口的实现
(1)登录窗口 w_login
图5.1
功能介绍:本窗口主要是检查操作员输入的用户名及密码是否正确,如果正确,允许登录。如果错误,显示出错误提示。
操作方法:填写“用户名”与“密码”后,点击“登录”按钮进行验证,点击“放弃”退出。
代码分析:
Open事件:sle_1.setfocus()//“用户名”输入框获得焦点
this.width=923
this.height=588
“登录”按钮:string name,pwd
char lev
int test
name=sle_1.text
pwd=sle_2.text
//检测用户名与密码是否匹配
SELECT level
INTO :lev
FROM people
WHERE name=:name and password=:pwd;
if lev<>"" then
open(w_main)
level(lev)//根据权限设定菜单状态
else
sle_1.setfocus()
test=messagebox("提示:","用户名或者密码错误!",Exclamation!,
OKCancel!, 2)
end if//检测是否重新登录
if test=1 then
return 1
else
close(parent)
end if
(2) 主窗口w_main
功能介绍:本窗口作为菜单及其他子窗口的容器。
窗口设置;本窗口为容器窗口,故它的WindowType为mdihelp!,表示本窗口为多文档界面,可以有菜单、工具栏与状态栏。WindowState为maximized!,表示窗口在运行时是最大化的风格。Menuname属性设为m_main,即是与本窗口连接的菜单名称。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>