武汉理工大学资产管理系统课程设计
目录
1、 项目介绍 ................................................................................................................................... 1 2、 需求分析 ................................................................................................................................... 1
2.1系统需求 ............................................................................................................................ 1 2.2功能需求 ............................................................................................................................ 1 2.3可行性分析 ........................................................................................................................ 1 3、 概要设计 ................................................................................................................................... 1
3.1系统设计 ............................................................................................................................ 1 3.2数据库设计 ........................................................................................................................ 3 4、 详细设计 ................................................................................................................................... 5
4.1.dbconnection.cs类 ........................................................................................................ 5 4.2、系统登录模块 ................................................................................................................. 5 4.3、浏览用户功能 ................................................................................................................. 6 4.4、浏览用户功能 ................................................................................................................. 8 4.5、部门信息设置 ................................................................................................................. 9 4.6、统计查询 ....................................................................................................................... 12 5、总结........................................................................................................................................... 13
资产管理系统
1、项目介绍
资产是企业管理中的一个重要组成部分,而对资产的管理是对企业资源的根本管理。固定资产管理系统可以有效地对固定资产进行科学管理,防止虚增资产和国有资产流失,其中包括基本信息设置、资产管理、资产处理、统计汇总管理
2、需求分析
2.1
系统需求
资产管理系统是企业管理中的一个重要组成部分,固定资产具有价值高,
使用周期长、使用地点分散、管理难度大等特点。本系统让用户从繁重的资产管理中解脱出来。通过一系列功能,用户可以知道企业中每一件资产的状态以及现有价值,通过添加、修改功能可以动态地对企业中的资产进行管理。所以我设计了这个系统。
2.2功能需求
本系统可以为管理员和普通用户所使用:管理员:普通用户:本系统是
一个主要包括系统管理、基本数据管理、资产管理、统计查询、关于系统等功能较齐全的固定资产管理系统。
系统管理包括:用户登录验证、用户的添加、更改用户密码、更改用户权限、退出等功能。
基本数据管理包括:资产分类设置、部门信息设置,设置这些项目是为了标识出某项固定资产的分类,数量单位以及存放或使用单位。
资产管理包括:资产信息的浏览、修改、删除,资产借出,资产归还等功能。统计查询包括:统计汇总,资产查询,报表打印等功能。关于系统包括:关于软件的一些简介和软件设计成员的介绍等
2.3可行性分析
1)易用性:系统界面设计力求简单明确,简单快速、方便使用,设计人性化,操作简单便捷。
2)安全性:用户必须经过输入用户名和密码才能登录到系统中,防止非法用户进入系统,同时用户要分系统管理员和普通用户不同的权限,防止出现越权操作。
3)扩充性:系统模块之间相互独立,系统可扩充性强。当添加新功能是,只需改动少量部分或不改动,而不是重新设计。
2.4数据库分析
本系统采用SQL Server 2005,根据系统需求设计数据表,数据之间关系明确
3、概要设计
3.1系统设计
资产管理系统流程图
3.2数据库设计
表3-1 资产分类
列名
资产分类ID(sort_id
)
Smallint
Not Null sort_parented >=
数据类型(精度范
围) Smallint
空/非空 约束条件
Not Null PK, Sort_ID > 0
资产父分类ID (sort_parentid)
资产分类名称 (sort_name)
备注(sort_remark)
补充说明
Varchar(50) Varchar(200)
Not Null
对于一级分类,父分类ID为0;对于二级分类,父分
类ID为其父分类的资产分类ID 表3-2 折旧方式
列名
折旧方式ID (dpr_id)
折旧方式名称 (dpr_name)
数据类型(精度范
围) Smallint Varchar(20)
空/非空 Not Null Not Null
约束条件 PK,0,1,2,3,4 “平均年限法”,“工作量法”,“双倍余额递减法”,“年数总和法”,“不折旧”
折旧方式说明 (dpr_declare) 补充说明
Varchar(200)
折旧方式ID可能的取值及其意义:0 平均年限法,1工作量法,2双倍余额递减法,3年数总和法,4不折旧
表3-3 资产来源
列名 资产来源ID (sour_id) 资产来源名称 (sour_name)
数据类型(精度范
围) Smallint Varchar(20)
空/非空 Not Null Not Null
约束条件 PK,0,1,2,3,4,5,6,
7,8 “购入”,“自建”,“接受投资”,“接受捐赠”,“抵债”,“并购”,“罚没”,“租用”,
“盘盈”
备注 (sour_remark)
补充说明
Varchar(200)
资产来源ID的可能取值及其意义:0购入,1自建,2接受投资,3接受捐赠,4抵债,5并购,6罚没,7租用,8
盘盈
表3-4 资产状态
列名 资产状态ID (status_id) 资产状态名称 (status_name)
备注 (status_remark)
补充说明
表3-5 注销方式
列名 注销方式ID (logout_id) 注销方式名称 (logout_name)
Varchar(20)
Not Null
“出售”,“报废”,“捐赠”,“遗失”,“盘
亏”
备注 (logout_remark)
补充说明
表3-6 资产信息
列名
资产编号 (ast_id)
资产分类
数据类型(精度范
围) Smallint Varchar(20)
空/非空 Not Null
约束条件 PK,0,1,2,3,4
Not Null “库存”,“使用
中”,“修理中”,“出借中”,“已注销”
Varchar(200)
资产状态ID的可能取值及其意义:0库存,1使用中,
2修理中,3出借中,4已注销
数据类型(精度范
围) Smallint
空/非空 Not Null
约束条件 PK,0,1,2,3,4
Varchar(200)
注销方式ID的可能取值及其意义:0出售,1报废,2
捐赠,3遗失,4盘亏
数据类型(精度范
围) Varchar(50) Smallint
空/非空 Not Null Not Null
约束条件 PK FK
资产名称 (ast_name)
生产厂家 (ast_producer) 出厂日期 (ast_prddate) 资产型号 (ast_model) 资产配置 (ast_config) 资产单价 (ast_price) 资产数量 (ast_amount) 数量单位 (ast_unit)
入库日期 (ast_storedate) 入库经手人ID (ast_handlerid) 入库经手人姓名(ast_handler) 所在部门ID (ast_deptid) 负责人ID (ast_chargerid) 负责人姓名(ast_charger) 领用日期 (ast_rcvdate) 使用年限 (ast_usetime) 资产净值 (ast_netvalue) 折旧日期
DateTime
Not Null
Float(5)
Not Null
Smallint
Not Null
DateTime
Varchar(10)
Not Null
Varchar(20)
Not Null
Smallint
Not Null
FK
Varchar(10)
Not Null
Varchar(20)
Not Null
smallint DateTime
Not Null Not Null
Float(5)
Not Null
Float(5)
Not Null
Varchar(100)
Varchar(50)
DateTime
Varchar(50) Varchar(50)
Not Null
残值率 (ast_slvgrt)
折旧方式ID (ast_dprid)
Float(5) smallint
Not Null Not Null
FK
4、详细设计
4.1.dbconnection.cs类
public static string connection
{
get {
return "Data Source=(local);Initial Catalog=db_zc;Integrated Security=True;"; }
}
4.2、系统登录模块
private void btnok_Click(object sender, EventArgs e) {
if (cmbname.Text.Trim() == "" || textPassword.Text.Trim() == "" || cmbm.Text.Trim() == "")
MessageBox.Show("输入信息不完整\n 请重新输入", "提示"); else {
mycon.Open();
string sql = "select * from tb_usr where usr_id='" + cmbname.Text.Trim() + "'and usr_passwd='"
+ textPassword.Text.Trim() + "'and usr_pope='"+cmbm.Text.Trim()+"'";
SqlCommand cmd = new SqlCommand(sql, mycon); if (cmd.ExecuteScalar() != null) {
cmbname.Items.Add(cmbname.Text.ToString()); this.Visible = false;
Frmmain main = new Frmmain(); main.Tag = this.FindForm();
SqlDataReader dr = cmd.ExecuteReader(); dr.Read();
if (cmbm.Text.Trim() == "管理员") {
main.toolStripStatusLabel3.Text = cmbname.Text.Trim();
main.toolStripStatusLabel2.Text = "管理员"; main.ShowDialog(); } else {
main.添加用户ToolStripMenuItem.Enabled = false; main.基本数据管理DToolStripMenuItem.Enabled = false;
main.资产管理MToolStripMenuItem.Enabled = false; main.toolStripButton1.Enabled = false; main.toolStripButton3.Enabled = false; main.toolStripButton4.Enabled = false; main.toolStripButton6.Enabled = false; main.toolStripStatusLabel3.Text = cmbname.Text.Trim();
main.toolStripStatusLabel2.Text = "普通用户"; main.ShowDialog(); } } else
MessageBox.Show("用户名等信息输入错误!","警告"); mycon.Close();
}
登陆界面
4.3、浏览用户功能
private void Showinfo() {
mycon.Open();
string sql = "select usr_id as 用户名,usr_name as 姓名, '***' as 密
码,usr_pope as 身份from tb_usr";
SqlDataAdapter adp = new SqlDataAdapter(sql, mycon); ds = new DataSet(); ds.Clear();
adp.Fill(ds,"user");
this.dgvusrs.DataSource = ds.Tables["user"].DefaultView; this.dgvusrs.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
this.dgvusrs.DefaultCellStyle.SelectionBackColor = Color.YellowGreen;
this.dgvusrs.ReadOnly = true; mycon.Close(); }
private void toolStripButton1_Click(object sender, EventArgs e) {
if (this.dgvusrs.DataSource != null && this.dgvusrs.CurrentCell != null)
{
Frmmodifyusr mod = new Frmmodifyusr(); mod.txtid.Text = this.dgvusrs[0,
this.dgvusrs.CurrentCell.RowIndex].Value.ToString().Trim();
mod.txtname.Text = this.dgvusrs[1,
this.dgvusrs.CurrentCell.RowIndex].Value.ToString().Trim();
mod.cmbm.Text = this.dgvusrs[3,
this.dgvusrs.CurrentCell.RowIndex].Value.ToString().Trim();
mod.StartPosition = FormStartPosition.CenterParent; mod.ShowDialog();
if (mod.DialogResult == DialogResult.OK && mod.blmodify == true)
Showinfo(); } else
MessageBox.Show("没有指定类型信息!", "提示"); }
private void toolStripButton2_Click(object sender, EventArgs e) {
if (this.dgvusrs.DataSource != null && this.dgvusrs.CurrentCell != null)
{
mycon.Open();
string sql = "delete from tb_usr where usr_id='" + this.dgvusrs[0,
this.dgvusrs.CurrentCell.RowIndex].Value.ToString().Trim() + "'";
SqlCommand cmd = new SqlCommand(sql, mycon);
cmd.ExecuteNonQuery();
MessageBox.Show("删除用户'" + this.dgvusrs[0,
this.dgvusrs.CurrentCell.RowIndex].Value.ToString().Trim() + "'
成功!", "提示");
mycon.Close();
Showinfo();
}
else
MessageBox.Show("没有指定类型信息!", "提示");
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
this.Close();
}
}
用户浏览界面
4.4、浏览用户功能
private void Frmast_Load(object sender, EventArgs e)
{
Showinfo();
}
private void Showinfo()
{
mycon.Open();
string sql = "select ast_id as 资产编号,sort_id as 所属类别,ast_name
as 资产名称,ast_price as 资产单价,ast_number as 资产数
量,dept_name as 所属部门,ast_indata as 入库日期,ast_ustime as 使
用年限,ast_out as 借出数量from tb_ast";
SqlDataAdapter adp = new SqlDataAdapter(sql, mycon);
ds = new DataSet();
ds.Clear();
adp.Fill(ds, "ast");
this.dgvast.DataSource = ds.Tables["ast"].DefaultView;
this.dgvast.DefaultCellStyle.SelectionBackColor =
Color.YellowGreen;
mycon.Close();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
Frmaddast ast = new Frmaddast();
ast.StartPosition = FormStartPosition.CenterParent;
ast.ShowDialog();
Showinfo();
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
if (this.dgvast.DataSource != null && this.dgvast.CurrentCell != null) {
Frmmodifyast ast1 = new Frmmodifyast();
ast1.txtid.Text = this.dgvast[0,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.txtsort.Text = this.dgvast[1,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.txtname.Text = this.dgvast[2,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.txtprice.Text = this.dgvast[3,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.txtnumb.Text = this.dgvast[4,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.txtdept.Text = this.dgvast[5,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.txtin.Text = this.dgvast[6,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.txtus.Text = this.dgvast[7,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.txtout.Text = this.dgvast[8,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim();
ast1.StartPosition = FormStartPosition.CenterParent;
ast1.ShowDialog();
if (ast1.DialogResult == DialogResult.OK && ast1.blmodify ==
true)
Showinfo();
}
else
MessageBox.Show("没有指定类型信息!", "提示");
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
if (this.dgvast.DataSource != null && this.dgvast.CurrentCell != null) {
mycon.Open();
string sql = "delete from tb_ast where ast_id='" + this.dgvast[0,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim() + "'";
SqlCommand cmd = new SqlCommand(sql, mycon);
cmd.ExecuteNonQuery();
MessageBox.Show("删除资产'" + this.dgvast[0,
this.dgvast.CurrentCell.RowIndex].Value.ToString().Trim() + "'
成功!", "提示");
mycon.Close();
Showinfo();
}
else
MessageBox.Show("没有指定类型信息!", "提示");
}
资产浏览
4.5、部门信息设置
private void Showinfo()
{
mycon.Open();
string sql = "select dept_id as 部门编号,dept_name as 部门名
称,dept_remark as 部门描述from tb_dept";
SqlDataAdapter adp = new SqlDataAdapter(sql, mycon);
ds = new DataSet();
ds.Clear();
adp.Fill(ds, "user");
this.dgvbm.DataSource = ds.Tables["user"].DefaultView;
if (this.dgvbm.DataSource != null && this.dgvbm.CurrentCell != null) {
txtid.Text = this.dgvbm[0,
this.dgvbm.CurrentCell.RowIndex].Value.ToString().Trim();
txtname.Text = this.dgvbm[1,
this.dgvbm.CurrentCell.RowIndex].Value.ToString().Trim();
txtremark.Text = this.dgvbm[2,
this.dgvbm.CurrentCell.RowIndex].Value.ToString().Trim();
}
mycon.Close();
}
private void btnadd_Click(object sender, EventArgs e)
{
if (txtid.Text.Trim() == "" || txtname.Text.Trim() == "" ||
txtremark.Text.Trim() == "")
MessageBox.Show("请输入完整信息!", "提示");
else
{
mycon.Open();
SqlCommand cmd = new SqlCommand("", mycon);
string sql = "select * from tb_dept where dept_id='" +
txtid.Text.Trim() + "'";
cmd.CommandText = sql;
if (cmd.ExecuteScalar() == null) //没有相同的编号
{
sql = "INSERT INTO tb_dept VALUES('" +
txtid.Text.Trim() + "','" + txtname.Text.Trim() +
"','" + txtremark.Text.Trim() + "')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox.Show("添加部门信息成功!", "提示"); mycon.Close();
Showinfo();
}
else
{
MessageBox.Show("部门编号" + txtid.Text.Trim() + "已经
存在!", "提示");
txtid.Text = "";
txtname.Text = "";
txtremark.Text = "";
txtid.Focus();
mycon.Close();
}
}
}
private void btndel_Click(object sender, EventArgs e)
{
if (this.dgvbm.DataSource != null && this.dgvbm.CurrentCell != null
&& txtid.Text.Trim() != "")
{
mycon.Open();
string sql = "delete from tb_dept where dept_id='" +
txtid.Text.Trim() + "'";
SqlCommand cmd = new SqlCommand(sql, mycon);
cmd.ExecuteNonQuery();
MessageBox.Show("删除部门信息'" + txtid.Text.Trim() + "'成功!", "提示");
mycon.Close();
Showinfo();
}
else
MessageBox.Show("没有指定类型信息!", "提示");
}
private void btnxg_Click(object sender, EventArgs e)
{
if (this.dgvbm.DataSource != null && this.dgvbm.CurrentCell != null) {
if (txtid.Text.Trim() == "" || txtname.Text.Trim() == "")
MessageBox.Show("信息不完整!", "提示");
else
{
mycon.Open();
string sql = "select * from tb_dept where dept_id='" +
txtid.Text.Trim() + "'";
SqlCommand cmd = new SqlCommand("", mycon);
cmd.CommandText = sql;
if (cmd.ExecuteScalar() != null)
{
sql = "update tb_dept set dept_name='" +
txtname.Text.Trim() + "',dept_remark='" +
txtremark.Text.Trim() +
"'where dept_id='" + txtid.Text.Trim() + "'";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox.Show("修改成功!", "提示");
}
else
MessageBox.Show("表中不存在此项!", "警告"); mycon.Close();
}
Showinfo();
}
else
MessageBox.Show("没有指定类型信息!", "提示");
}
private void dgvbm_Click(object sender, EventArgs e)
{
txtid.Text = this.dgvbm[0,
this.dgvbm.CurrentCell.RowIndex].Value.ToString().Trim();
txtname.Text = this.dgvbm[1,
this.dgvbm.CurrentCell.RowIndex].Value.ToString().Trim();
txtremark.Text = this.dgvbm[2,
this.dgvbm.CurrentCell.RowIndex].Value.ToString().Trim();
}
部门信息设置界面
4.6、统计查询
private void btnok_Click(object sender, EventArgs e)
{
string sql = "select ast_id as 资产编号,sort_id as 所属类别,ast_name
as 资产名称,ast_price as 资产单价,ast_number as
资产数量,dept_name as 所属部门,ast_indata as 入库
日期,ast_ustime as 使用年限,ast_out as 借出数量
from tb_ast where";
if (txtid.Text.Trim() != "")
{
sql += " ast_id ='" + txtid.Text.Trim() + "'";
if (txtsort.Text.Trim() != "")
{
sql += " and sort_id ='" + txtsort.Text.Trim() + "'";
if (txtdept.Text.Trim() != "")
sql += " and dept_name ='" + txtdept.Text.Trim() + "'"; }
else
{
if (txtdept.Text.Trim() != "")
sql += " and dept_name ='" + txtdept.Text.Trim() + "'"; }
}
else
{
if (txtsort.Text.Trim() != "")
{
sql += " sort_id ='" + txtsort.Text.Trim() + "'";
if (txtdept.Text.Trim() != "")
sql += " and dept_name ='" + txtdept.Text.Trim() + "'"; }
else
{
if (txtdept.Text.Trim() != "")
sql += " dept_name ='" + txtdept.Text.Trim() + "'"; else
{
MessageBox.Show("请填写查询条件!", "提示"); return;
}
}
}
mycon.Open();
SqlDataAdapter adp = new SqlDataAdapter(sql, mycon);
DataSet ds = new DataSet();
ds.Clear();
adp.Fill(ds, "a");
if (ds.Tables[0].Rows.Count != 0)
{
this.dgvq.DataSource = ds.Tables[0].DefaultView;
this.labhint.Text = "共有" + ds.Tables[0].Rows.Count + "条查询记录!";
}
else
{
this.dgvq.DataSource = null;
this.labhint.Text = "没有该资产记录!";
}
mycon.Close();
}
5、总结
总的来说,本次试验工作量较大,因为以前很少接触C#,所以在设计的时候,遇到了很多问题,本次课设中,在前几天找资料学习中,遇到了很多问题,也与同学交流,探讨。逐步的解决了知识上的问题,但是,仍有较多的地方不明白,需要进一步的学习。在学习与探讨中。我明白了交流和合作的重要性。真是因为和同学之间的相互合作,才把课设得以完成。虽然实验上仍有问题,但是较之以前,我收获了很多知识和书本上没有写的东西。劳累,辛苦在最后的成果面前都变得暗淡无光。剩下的只有喜悦。