后勤工程学院本科毕业设计(论文)
图4.1.2 提示
图4.1.3 主界面
当用户输入登陆用户名和密码,点击登陆后其处理流程如图4.1.4所示。
当用户登陆成功后,系统会检测此用户的权限,根据不同权限用户开放其部分功能。如领导只能查看物资情况和导入数据。每一个角色都有其特定的功能。用户根据自己账号的角色来处理待办事项。只有超级管理员才能给账号升级权限,本系统分有4个角色,分别是超级管理员、领导、助理员和保管员。每个角色的具体权限如下:超级管理员是整个系统的核心管理员,它能进行一切本系统所拥有的功能,还能对其他用户的角色权限进行更改;领导角色的权限只能查看物资出入库、存储情况以及导入标签、修改密码等操作;助理员角色能对出、入库单进行操作,还能对物资进行盘点和修改密码。保管员角色能进行物资出、入
21
后勤工程学院本科毕业设计(论文)
库,物资盘点和导入标签、修改密码等操作。
用户权限区分的实现代码如下: stat.user = a;
stat.mima = psword;
stat.quanxian = ip;
静态变量stat中会保存登陆用户的ID、密码和权限。
private void Main_Load(object sender, EventArgs e) {
if (stat.quanxian == \管理员\ {
this.出库单ToolStripMenuItem.Enabled = false; this.入库单ToolStripMenuItem.Enabled = false; this.拟定入库单ToolStripMenuItem.Enabled = false; this.拟定出库单ToolStripMenuItem.Enabled = false; this.出库审核ToolStripMenuItem.Enabled = false; this.入库审核ToolStripMenuItem.Enabled = false; this.系统日志ToolStripMenuItem.Enabled = false; }
else if (stat.quanxian == \助理员\ {
this.出库审核ToolStripMenuItem.Enabled = false; this.入库审核ToolStripMenuItem.Enabled = false; this.系统日志ToolStripMenuItem.Enabled = false; this.物资入库ToolStripMenuItem.Enabled = false; this.基础数据维护ToolStripMenuItem.Visible=false; }
else if (stat.quanxian == \领导\ {
this.拟定出库单ToolStripMenuItem.Enabled = false; this.拟定入库单ToolStripMenuItem.Enabled = false; this.物资入库ToolStripMenuItem.Enabled = false; this.移库ToolStripMenuItem.Enabled = false;
this.物资出库管理ToolStripMenuItem1.Enabled = false; this.新增盘点单ToolStripMenuItem.Enabled = false; }
}
在系统载入的时候会根据用户的权限限制或开放一些功能。
22
后勤工程学院本科毕业设计(论文)
登陆界面不合法输入信息判断用户合法性合法读取用户权限主界面
图4.1.4 登陆处理流程图
4.2 物资入库模块设计
物资入库管理进入界面如图4.2.1所示。
根据军队相关规定,仓库物资入库需要建立物资入库单(图4.2.2),方便随时查看。入库单内容包括入库单号、建单员、审核员、入库日期、责任人等项。因为入库单是作为物资入库、查库的凭证,所以,入库单不能轻易删除和更改。
23
后勤工程学院本科毕业设计(论文)
图4.2.1 物资入库进入界面
图4.2.2 物资入库单管理
入库单由保管员或者仓库管理员录入,仓库管理员随时查看物资入库情况并及时更新物资状态。
物资入库时,由读卡器读出物资标签信息,并在入库单中自动寻找,匹配出
24
后勤工程学院本科毕业设计(论文)
本次入库的物资对应的入库单。在所有物资读取完毕后,会自动核对数量是否正确,如果找不到匹配的入库单或数量不对则不予入库。
入库时,系统会自动为一箱(或一批)货物分配货位,本系统分配方式为随机分配,产生随机货位的具体代码如下:
public Random rdm = new Random();
public dataoperator sji = new dataoperator(\状态=0\寻找空闲货位
public suiji() { }
public int radom() {
sji.dataing();
int shuliang = sji.dt.Rows.Count;
int siji = (int)(rdm.NextDouble() * shuliang + 1);
int shu_liang = Convert.ToInt32(sji.dt.Rows[siji - 1][0].ToString()); return shu_liang;
}
4.3 物资出库模块设计
物资出库进入界面如图4.3.1所示。
25