订书模块运行的结果如图4-2所示。
图4-2 教材管理系统学生订书模块运行的结果
当教材科工作人员以教材科类型用户登录到系统后,可进行教材的订书操作。首先填写教材使用的学年度,然后选择使用的系和班级,再选择使用的教材名,最后填写订书的数量,如果确认无误后,就可以点击确定订书。
在进入到这个模块时,首先还是判断是否有session存在,没有的情况下返回登录页面。存在session时,判断用户类型是否属于教材科用户,如果不是,跳转到管理页面。
在输入了订书信息选择确定后,如果一切无误,会进行插入操作。订购信息会先后插入到订书表和领书表。但是在领书表中不会插入领书时间、操作者、领书标记这些信息。成功后会返回订书模块。具体的实现代码如下。
string sql_dingshu = \
+\+\+ number + \+ time + \+ name + \+ classname + \+ \+ xnd + \+ jiaocaike + \+ bookname + \
db.DataCom(sql_dingshu);
string sql_lingshu = \
+ \
+ \+ number + \+ classname + \+ department + \+ xnd + \
第 21 页 共 33 页
db.DataCom(sql_lingshu);
Response.Redirect(\4.1.3 领书操作
教材管理系统领书模块分为两个子模块,分别是学生领书模块、教师领书模块。主要功能是完成学生和老师的领书操作。教材管理系统学生领书模块运行的结果如图4-3所示。
图4-3教材管理系统学生领书模块运行的结果图
如是学生领书操作,只需要选择相应的系和班级,点击查询后就可以看到已经领了的教材和需要领取的教材。教师领书模块操作类似,不同的只是根据教师名字选择。
在进行订书操作的时候,首先会判断用户是否选择了要领取的教材。如果没有选择具体的教材就进行领书操作,会弹出错误提示,之后返回。实现代码如下: //判断是否选择了书
if (GridView1.SelectedIndex == -1 && GridView2.SelectedIndex == -1){ Response.Write(\没有选择图书!');
location='javascript:history.go(-1)'\string ID1; if (GridView1.Visible == true) {
ID1 = GridView1.SelectedDataKey.Value.ToString(); } else { D1 = GridView2.SelectedDataKey.Value.ToString(); }
如果选择了具体的教材,接下来会通过领书标记判断选择的教材是否已经被
第 22 页 共 33 页
领取了。如果书已经被领取了,也会弹出出错提示,之后返回。具体代码如下: //加一个判断领书是否已经发生
string sql_1=\ls_ID='\
if (Convert.ToBoolean(db.rowFirst(sql_1))){
Response.Write(\lanuage=javascript>alert('书已经领取!'); location='javascript:history.go(-1)'\如果一切没有问题,会把领书的时间、操作者、领书标记填入领书记录中。然后返回领书模块。具体代码如下:
string sql=\
time='\ls_ID='\
db.DataCom(sql);
Response.Redirect(\4.1.4 报损 换书 零售操作
报损是当教材因教材科的原因造成损坏时,选择对相应的书进行报损处理。换书是书已经发给学生或教师后,因书自身的问题进行换书处理。零售是针对部分学生因各种原因需要再次购买教材时进行教材零售。教材管理系统的教材零售模块运行的结果如图4-4所示。
图4-4 教材库存管理系统教材零售模块运行的结果图
报损、换书、零售其实都是特殊的领书过程,只对应于教材科的领书领书操
第 23 页 共 33 页
作。如果教材科没有订购教材,这些操作则都不能进行。
退换和报损处理的操作几乎相同,选择需要报损或退换的教材,在有足够库存的情况下进行报损或退换操作,分别记入报损表中和退换表中,领书表中教材科领书的相应项目数量减少。在库存少于规定的阀值的时候会进行报警。在没有库存的时候会显示“无库存”并且禁止对此教材进行相应的报损、换书、零售处理。
零售模块与报损、换书不同的是,在选择好教材进行点击查询后会显示教材的价格。在购买后会显示购买的总价格并写入表中。
首先在点击查询之后,通过数据库得到报警阀值。代码如下: Label4.Visible = false; database db = new database(); GridView1.Visible = true;
string number = \db.rowFirst(number);
decimal test_de = Convert.ToDecimal(test);
得到报警阀值后,与得到的库存教材数量进行比较,如果小于库存阀值就会出现“库存不足”的报警。如果领书标记显示为真表示该教材已经没有库存了。
通过参数化查询得到教材的价格。
string price = \bookname='\
Label1.Text = db.rowFirst(price).ToString(); pirce_de = Convert.ToDecimal(Label1.Text);
在点击了确定购买按钮后,首先判断是否选择了教材,然后判断是否输入了购买的数量。之后会做一个防止过量购买的安全检查,根据输入的购买数量看是根本没有库存还是库存不足。如果通过会根据购买的数量计算总的价格,购买后会对教材科领书的数量做相应的处理,如果该图书被购买完了,会做上领书标记防止再被购买。 4.1.5 查询汇总
汇总是根据教材使用的学年度,通过教材名或者系,对教材的订购情况进行汇总统计。网上教材管理系统教材汇总模块运行的结果如图4-5所示。
第 24 页 共 33 页
图4-5 教材管理系统教材汇总模块运行的结果
教材查询模块是一个面向所有用户的模块。在这个模块中可以通过组合查询、班级订购教材查询、授课教师查询来查询到自己需要的教材。教材管理系统教材查询模块运行的结果如图4-6所示。
图4-6 教材管理系统教材查询模块运行的结果
4.1.6 系统管理
这是本系统的系统管理部分。需要在登录的时候选择管理员才可以进入。图书管理主要是对图书信息的添加、删除、修改。教材管理系统图书管理模块运行的结果如图4-7。
第 25 页 共 33 页