当前位置:首页 > 免费毕业设计

asp.netERP客户关系系统设计(源代码+LW)

asp.netERP客户关系系统设计(源代码+LW)

  • 网站价格: 2
  • 特殊技术: asp
  • 作品类型: 免费毕设
  • 售后服务:

联系方式: 微信:biyebang QQ: 629001810

作品详情

 

摘要

ERP(Enterprise Resources Planning,企业资源计划),是指建立在信息技术应用基础上,结合系统化的管理思想,为企业决策层及员工提供决策手段的管理平台。

车间管理子系统要求根据物料需求计划,能力需求计划以及生产工艺流程制定车间作业计划,车间管理人员按车间作业计划进行调度,下达车间生产作业订单,根据产品物料清单(BOM)填写领料单安排领料,制程中不断产生生产进度报告,监控生产活动的整个过程。

 

本次设计采用Microsoft Visual Studio.Net 2003Sql Server 2000作为开发工具,在客户端通过Windows 应用程序的形式来访问数据库,并对数据库进行操作。

 

目录

 

系统设计


本ERP系统计划包括:销售管理,库存管理,采购管理,制造标准管理,计划管理,车间管理(生产管理),人力资源管理,财务管理共8个子系统,各子系统的数据流关系如图2.1所示。其中总帐管理,应收管理,应付管理,成本管理,工资管理五个模块均属于财务管理子系统。

 

2.2 车间管理子系统设计

本人主要负责车间管理子系统的设计,车间管理子系统要求根据物料需求计划,能力需求计划以及生产工艺流程制定车间作业计划,车间管理人员按车间作业计划进行调度,下达车间生产作业订单,根据产品物料清单(BOM)填写领料单安排领料,制程中不断产生生产进度报告,监控生产活动的整个过程。其工作流程图如图2.2所示。

 

2.2.1车间管理子系统数据流图

如下图2.2所示,车间管理的主要流程:根据订单建立车间的生产任务文件以及车间的物料文件。

首先,根据车间的具体情况来建立车间参数设置文件以及任务优先级别设置文件,其中车间参数设置文件用来设置每个车间生产的货物种类及生产能力(数量),而任务优先级设置文件则用来设置每个任务的优先生产的级别。

然后根据计划部门的生产订单的订单编号来确定生产任务,并且结合生产标准来为每个生产任务建立一个生产任务文件,将订单的任务下发到每个车间,而且为每个任务建立一个时间系统来随时显示生产进度。同时还要建立一个任务例外信息文件,用来记录因特殊情况而不能按时完成或者不能完成的任务以及额外任务的信息。

建立了生产任务文件之后,根据标准制定部门所制定的生产工艺以及标准来生成车间物料文件。在本系统中生产工艺以及标准从生产订单中一并获得。

 

2.2.2 功能模块图

车间系统维护

如上图2.3所示,主要包含了3个部分:

l  车间系统参数:本系统的内部数据,无输入源以及输出去向,系统功能包括设置该已编号车间生产的货物种类以及生产能力,包含了车间编号、货物编号以及日产量三个主要字段。

l  任务优先级设置:本系统的内部数据,无输入源以及输出去向,系统功能包括设置生产任务的优先级别,包含了车间任务文件编号以及优先级两个主要字段。

l  工序优先级设置:本系统的内部数据,无输入源以及输出去向,系统功能包括设置工序的优先级别。

车间任务管理

如上图2.3所示,主要包含了8个部分:

l  车间任务建立:源数据由生产计划部门的生产计划文件(根据生产文件的编号来识别)提供,系统功能包括建立任务,设置任务编号,包含了生产编号、货物编号、货物名称、货物需求数量。

l  任务模拟下达

l  车间任务确认:系统功能为将任务(订单)分配到每个车间,包含了车间编号以及货物编号、货物名称、货物需求数量四个字段。

l  委外任务下达:系统功能为下达计划外的任务,包含了任务编号以及例外信息字段,将任务编号返回车间任务文件建立一个车间任务。

l  车间任务下达:系统功能为将建立好的车间任务文件下达到每个车间,包含了任务编号以及车间编号两个字段。

l  工序作业计划

l  车间任务执行:系统功能为显示当前的生产任务进度,包含了车间编号、货物编号、货物名称、货物需求数量以及已完成数量。

l  生产任务结清:系统功能为结清当前生产任务,删除任务以及货物入库,包含了货物编号、货物名称、货物需求数量、任务建立日期、任务完成日期、当前日期、生产编号、任务编号。

车间物料管理

如上图2.3所示,主要包含了3个部分:

l  任务用料分配:系统功能为分配每个任务文件的用料,包含了任务编号、物料编号、物料名称、物料数量。

l  任务用料领料

l  车间物料盘点:系统功能为盘点已经使用的物料,包含了任务编号,物料编号、物料名称、物料数量。

生产完工管理

如上图2.3所示,主要包含了5个部分:

l  完工工序送检:系统功能为将完工的工序送检。

l  工序完工维护

l  生产工序完工:系统功能为判断生产工序是否完工。

l  生产任务完工:系统功能为判断当前任务是否完工,包含了任务编号、货物需求数量以及已完成数量。

l  工序计件单价:系统功能为记录工序中的计件单价。

 

2.2.3数据辞典

车间参数设置文件

SETUP

来源:自建

2.1  车间参数设置表

中文意义

库字段名

字段类型

其他信息

备注说明

车间编号

WORKSHOP ID

NUMBER(10,0)

NOT NULL

 

货物编号

CARGO ID

NUMBER(10,0)

NOT NULL

 

日产量

OUTPERDAY

NUMBER

   

设置编号

SETUPID

NUMBER(10,0)

NOT NULL

PRIMARY

 

任务例外信息文件

EXCEPTIONS

来源:自建

 

 

2.2 任务例外信息表

中文意义

库字段名

字段类型

其他信息

备注说明

任务编号

MISSION ID

NUMBER(10,0)

NOT  NULL

PRIMARY

例外原因

REASON

VARCHAR(50)

   

 

任务优先级设置文件

PRIORITY

    来源:自建

2.3 任务优先级设置表

中文意义

库字段名

字段类型

其他信息

备注说明

任务编号

MISSION  ID

NUMBER(10,0)

NOT  NULL

PRIMARY

优先级

PRI  ID

NUMBER(10,0)

NOT  NULL

 

 

车间任务文件

MISSION

    来源:自建

    去向:库存管理系统

2.4 车间任务表

中文意义

库字段名

字段类型

其他信息

备注说明

车间编号

WORKSHOP  ID

NUMBER(10,0)

NOT  NULL

 

货物编号

CARGO  ID

NUMBER(10,0)

NOT  NULL

 

货物名称

CARGO  NAME

VARCHAR(50)

   

货物需求数量

CARGO  NUM

NUMBER

NOT  NULL

 

建立日期

CREAT  DATE

DATE

   

完成日期

DONE  DATE

DATE

   

当前日期

CUR  DATE

DATE

   

任务编号

MISSION  ID

NUMBER(10,0)

NOT  NULL

PRIMARY

生产编号

PRODUCTID

NUMBER(10,0)

NOT  NULL

 

完成数量

FINISH  NUM

NUMBER(10,0)

   

 

车间物料文件

MATERIEL

    来源:自建

    去向:库存管理系统

 

2.5 车间物料表

中文意义

库字段名

字段类型

其他信息

备注说明

物料编号

MATERIEL  ID

NUMBER(10,0)

NOT  NULL

 

任务编号

MISSION  ID

NUMBER(10,0)

NOT  NULL

 

物料名称

MATERIEL  NA

VARCHAR(50)

   

物料数量

MATERIEL  NU

NUMBER(10,0)

NOT  NULL

 

物料文件编号

FILE  ID

NUMBER(10,0)

NOT  NULL

PRIMARY

生产编号

PRODUCTID

NUMBER(10,0)

NOT  NULL

 

 

2.2.4与其他子系统的关系

与其它子系统的关系基于数据库文件的共享,即通过数据库中资料的修改实现数据的传递,如下图2.4所示

来自计划管理的订单是制定车间任务文件的标准。

来自计划管理的物料计划是制定物料文件的标准。

送交库存管理的入库单是其制定入库货物的标准。

送交库存管理的物料单是其制定出库物料的标准

系统实现

3.1首页workshop.aspx的制作

本页为车间管理系统的首页,提供到各个页面的链接,如下图3.1所示,

其中:

【车间参数设置】指向parameter.aspx

【物料管理】指向materiel.aspx

【生产任务管理】指向mission.aspx

【生产优先级设置】指向priority.aspx

【任务例外信息】指向except.aspx

3.2 车间参数设置页面parameter.aspx的制作

3.2.1浏览功能

提供客户对参数的浏览功能是必要的,建立一个sqlDataAdapter,对参数设置文件parameter的所有记录进行查询,sql语句为 “SELECT workshopid, cargoid, outperday, setupid FROM parameter”.然后建立DataSet,将查找出的数据存入其中的DataTable中,并建立名为Client_data的会话(Session)来缓存数据,并用于各DataSet之间的数据交换中介.其关键源代码如下:

 

private void LoadData()

         {

             DataSetds=new DataSet();

             DataTabledt=new DataTable("parameter");

             ds.Tables.Add(dt);        

            

             this.sqlDataAdapter1.Fill(ds);

             Session["parameter"]= ds;

       }  

然后建立Web窗体DataGrid,用于在页面中显示查找出来的数据,如下图3.2所示.此DataGrid的数据源应绑定到DataSet上,关键代码如下:

private void UpdateView()

         {

             DataSetds=(DataSet)Session["parameter"];//从Session中读出数据

             DataGrid1.DataSource= ds.Tables["parameter"];

             this.DataGrid1.DataBind();

         }

3.2.2编辑功能

为此DataGrid增加编辑、删除功能列,并将删除列转换为模板列,在页脚中添加“新建”链接按钮,指向本页面,用于实现新建客户资料记录功能。

为DataGrid配置grid_DeleteCommand, grid_UpdateCommand, DataGrid1_EditCommand,grid_CancelCommand,分别实现删除记录,更新记录,转到编辑模式,取消更新等功能。本系统中的编辑功能采用即地编辑模式。新建界面如下图3.3所示:

删除操作的处理过程,只要点击【删除】按钮,就将调用grid_DeleteCommnad,删除所选择的行,更新数据库并刷新页面。

编辑操作的处理过程如下:点击【编辑】按钮,调用DataGrid1_EditCommand将选中行转换到编辑模式如图3.3,在编辑框中输入数据后点击【更新】,将调用grid_UpdateCommand,将输入数据更新到数据库,并刷新页面显示。若点击【取消】按钮,将调用grid_CancelCommand取消更新,回到原页面。

下面详细介绍grid_DeleteCommnad和grid_UpdateCommand,其原理都是使用SqlCommand对数据库进行操作。而SqlCommand的参数由DataGrid传递。源代码如下(注意DataGrid的DataKeyField应设置为CLIENT表的主键CLIENTID,以用于增删改查):

private void grid_DeleteCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)

         {

             StringstrCmd = "DELETE FROM parameter WHERE setupid=@ID";

             SqlCommandcmd = new SqlCommand(strCmd, this.sqlConnection1);

 

 

             SqlParameterp1 = new SqlParameter("@ID",SqlDbType.Int);

             p1.Direction= ParameterDirection.Input;

             p1.Value= DataGrid1.DataKeys[e.Item.ItemIndex];

             cmd.Parameters.Add(p1);                 

                 

            

             this.sqlConnection1.Open();

             cmd.ExecuteNonQuery();

             this.sqlConnection1.Close();

            

             LoadData();

             UpdateView();

       }

 

grid_UpdateCommand的源代码如下:

 private voidgrid_UpdateCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)

         {

                         

             TextBoxtxtworkshopid = (TextBox) e.Item.Cells[1].Controls[0];

             TextBoxtxtcargoid = (TextBox) e.Item.Cells[2].Controls[0];

             TextBoxtxtoutperday = (TextBox) e.Item.Cells[3].Controls[0];

                         

 

             // MUST decide whether to UPDATE or to INSERT. The decisionis made based on

             // the fact that the DataSet has added rows

 

             DataSetds = (DataSet) Session["parameter"];

             DataTabledt = ds.Tables["parameter"];

             DataRowdrLast = dt.Rows[dt.Rows.Count-1];

 

             if (drLast.RowState == DataRowState.Added)

             {

                  // Drop the newly added row from memory

                  //drLast.RejectChanges();

 

            StringstrCmd = "INSERT parameter ( workshopid,cargoid,outperday ) VALUES( @workshopid,@cargoid,@outperday)";

                  SqlCommandcmd = new SqlCommand(strCmd, this.sqlConnection1);

 

                  //ID is an identity column

 

                  SqlParameterp1 = new SqlParameter("@workshopid",SqlDbType.Int, 4);

                  p1.Direction= ParameterDirection.Input;

                  p1.Value= Convert.ToInt32(txtworkshopid.Text);

                  cmd.Parameters.Add(p1);

 

                  SqlParameterp2 = new SqlParameter("@cargoid",SqlDbType.Int, 4);

                  p2.Direction= ParameterDirection.Input;

                  p2.Value= Convert.ToInt32(txtcargoid.Text);

                  cmd.Parameters.Add(p2);

 

                  SqlParameterp3 = new SqlParameter("@outperday",SqlDbType.Int,4);

                  p3.Direction= ParameterDirection.Input;

                  p3.Value=Convert.ToInt32(txtoutperday.Text);              

                  cmd.Parameters.Add(p3);

 

                 

          this.sqlConnection1.Open();

                  cmd.ExecuteNonQuery();

                  this.sqlConnection1.Close();

 

             }

             else

             {               

                  // Prepare the command text

              StringstrCmd = "UPDATE parameter SET workshopid=@workshopid,cargoid=@cargoid,outperday=@outperday WHERE setupid=@ID";

                  SqlCommandcmd = new SqlCommand(strCmd, this.sqlConnection1);

 

                  SqlParameterp1 = new SqlParameter("@ID",SqlDbType.Int);

                  p1.Direction= ParameterDirection.Input;

                  p1.Value= DataGrid1.DataKeys[e.Item.ItemIndex];

                  cmd.Parameters.Add(p1);

 

        

                  SqlParameterp2 = new SqlParameter("@workshopid",SqlDbType.Int, 4);

                  p2.Direction= ParameterDirection.Input;

                  p2.Value= Convert.ToInt32(txtworkshopid.Text);

                  cmd.Parameters.Add(p2);

 

                  SqlParameterp3 = new SqlParameter("@cargoid",SqlDbType.Int, 4);

                  p3.Direction= ParameterDirection.Input;

                  p3.Value= Convert.ToInt32(txtcargoid.Text);

                  cmd.Parameters.Add(p3);

 

                  SqlParameterp4 = new SqlParameter("@outperday",SqlDbType.Int,4);

                  p4.Direction= ParameterDirection.Input;              

                  p4.Value=Convert.ToInt32(txtoutperday.Text);

                  cmd.Parameters.Add(p4);

                 

                 

                  this.sqlConnection1.Open();

                  cmd.ExecuteNonQuery();

                  this.sqlConnection1.Close();

 

             }

 

             // Reset the edit mode for the current item

             DataGrid1.EditItemIndex= -1;

 

             // Refresh the grid

             LoadData();

             UpdateView();

         }

   }

 

3.3 物料管理页面materiel.aspx的制作

3.3.1浏览功能

浏览功能的建立类似于参数设置页面,其SQL语句为“SELECT materielid, materielna, materielnu, missionid, fileid,productid FROM materiel”,页面效果如下图3.4:

3.3.2 编辑功能

本页面同样提供了删除,编辑,新建三个页面编辑功能,同样利用grid_DeleteCommand,grid_UpdateCommand,DataGrid1_EditCommand,grid_CancelCommand来实现,而且设置与车间参数设置页面基本相同。如下图3.5所示。

3.4 生产任务设置页面mission.aspx的制作

3.4.1浏览功能

浏览功能与上述页面的设置类似,其SQL 语句为“SELECT workshopid, cargoid,cargoname, cargonumber, creatdate, donedate, curdate, missionid, productid,finishnum FROM mission”,页面效果如下图3.6所示。

3.4.2编辑功能

这里介绍一下DataGrid1_EditCommand,grid_CancelCommand,其原理都是使用SqlCommand对数据库进行操作。而SqlCommand的参数由DataGrid传递。源代码如下:

private void DataGrid1_EditCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)

         {

             // Set the current item to edit mode

             DataGrid1.EditItemIndex= e.Item.ItemIndex;

 

             // Refresh the grid

             UpdateView();

       }

 

grid_CancelCommand源代码如下:

private void grid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgse)

         {

             DataGrid1.EditItemIndex= -1;

 

             // Reject changes on the last row

             DataSetds = (DataSet) Session["materiel"];

             DataTabledt = ds.Tables["materiel"];

             DataRowdrLast = dt.Rows[dt.Rows.Count-1];

             if (drLast.RowState == DataRowState.Added)

             {

                  drLast.RejectChanges();            

             }

 

             // Refresh the grid

             UpdateView();

       }

本页面同样提供了删除、新建、编辑三个页面编辑功能,利用grid_DeleteCommand,grid_UpdateCommand,DataGrid1_EditCommand,grid_CancelCommand来实现,而且设置与车间参数设置页面基本相同。如下图3.7所示。

源文件


 

 

帮我毕业网微信

版权所有© 帮我毕业网 并保留所有权利

QQ 1370405256 微信 biyebang

QQ:629001810微信:biyebang

收缩