进销存项目总结

来源:互联网 发布:经典网络仙侠文 编辑:程序博客网 时间:2024/05/16 08:49

大二下java课的课程项目是写一个简易的进销存管理系统,最近也是一直在做,现在基本做完了,就来做个总结。

这是写的所有文件,看起来挺多的,其实用到的也就是一些基础语法。接下来一个一个阐述里面实现的功能吧。

注:以下涉及到具体信息的纯属虚构。

一. 登录界面


效果:

1. 点击登陆之后和数据库中的账号密码进行比较,正确与否都会弹出对话框

2. 密码框实现按回车相当于点击登陆(keyAdapter)

3. 点击注册,创建ZhuCe类实例,设置本界面不可见

4. 点击登陆成功后,显示:

            

自定义的dialog,无图标,message内容为一张gif图,用一个计时器控制时间,点击确定直接进入主界面。若不点击,则3秒后dispose掉(模拟登陆状态),若期间点击关闭则程序终止。

二. 注册界面


效果:

1. 输入所有参数后,比较:密码和确认密码是否相同、数据库中有没有该账号,通过对话框来提示

2. 若比较无误,则关闭该窗口,释放资源。并通过传入的LonIn对象重新设置其可见。

三. 主界面


 主界面,主要用于排版各个菜单信息以及点击创建对象(很多都传入一个用户对象,根据用户权限来使某些功能不可用)

 布局:

1. 用户管理---修改密码、退出

2. 供应商信息---添加供应商、修改/删除供应商

3. 进货管理---进货单、退货单

4. 销售管理---销售单、销售退货单

5. 库存管理---查看库存/调整价格

6. 查询/详情---详情表、销售排行榜

四.  修改密码


效果:

1. 用户名不可编辑,下面三项必填,否则对话框提示。

2. 旧密码区有keyAdapter,每次输入都比较与该用户的密码是否相同,以图标来显示

3. 确认修改成功后, 显示密码修改成功,并更新数据库,最后dispose掉。


五. 添加供应商


效果:

1. 全称和电话必填,只读权限无法添加

2. 成功添加完一个后,数据库更新,刷新所有文本框

六. 修改/删除供应商


效果:

1. 界面出来时就将数据库中的内容事先拿出来,并在选择供应商那里添加好所有的供应商,

    然后每次点击一个时,其他文本框内容显示成该供应商的。

2. 除全称外都可以改,只读用户无法执行修改和删除操作。


七. 进货单


效果:

1. 进货编号和经手人两个文本框有FocusListener,进货时间默认为系统时间,可以修改

2. 点击添加后,table中出现空行,可以在里面编辑数据,带*必填,否则报错

3. 填完一行后,品种数量,货品总数和合计金额自动更新,且这三个文本框不可修改。

4. 验收结论默认正常,操作人员为本用户且不可修改。

5. 点击进货入库,将进货信息存入进货信息表,将货物存到库存表(有除数量外一样的则不添加,只更新数量)


八. 退货单

效果:

1. 界面基本和进货单一致,继承自同一个框架类

2. 选择一个供应商,则表格显示来自该供应商的所有货物

3. 可在表格中修改数量,点击选中后,表格该行颜色改变,下面三个文本框数据更新。此处用一个ArrayList来存选中的那几个,table有个自定义的渲染器TableCellRenderer来实现选中的那几行颜色和没选中的不一样。

4. 点击取消选中,从那个ArrayList中去掉那一行,下面数据更新。

5. 有权限要求,只读的无法点击退货-出库

6. 点击退货-出库,退货信息存到退货信息表,库存表相应的减少那些货物


九. 销售单


效果:

1. 框架一样,只是中间那个表格变成了两个表格两个按钮和两个label

2. 选择一个供应商后,下面显示来自该供应商的货物,选中一个后,点击右箭头则会添加到购物车,下面数据更新;右边选择一行,点击左箭头,则删除,下面数据更新。

3. 点击销售,将销售信息存到销售信息表,库存表内减少相应的货物。

4. 有权限限制,只读用户无法销售


十. 销售退货单

和退货单基本一样,一个表示退给供应商,一个表示客户退回来。


十一. 库存盘点/调整价格


效果:

1. 界面显示时将所有库存信息显示出来,此表格可排序,不可编辑

2. 输入关键词文本框有keyAdapter,根据输入内容(输入关键词或者正则表达式)将匹配的相关结果显示出来(突然意识到查询按钮貌似没用了...)这里用到了TableSorter,需要注意的一点是排序或者筛选后行的对应有变。详见另一篇博文《TableSorter的使用及行对应问题》

3. 选中一行,点击价格调整,则该行的单价单元格可以编辑。(自定义DefaultTableModel,多一个函数来传入该单元格的行列值,然后再isEditable里设置即可;此外,有个cellEditListener,当用户编辑完后直接连接数据库更新)


十二. 详情表


效果:

1. 有四个界面,分别用来显示数据库中的四张表。

2. 选择删选方式那里用到了CardLayout,用来切换不同删选方式的内容。


十三. 销售排行榜


没啥效果..

主要还是table的使用问题。

原创粉丝点击