务编号
MISSIONID
NUMBER(10,0)
NOTNULL
PRIMARY
生产编号
PRODUCTID
NUMBER(10,0)
NOTNULL
完成数量
FINISHNUM
NUMBER(10,0)
车间物料文件
MATERIEL
来源:自建
去向:库存管理系统
表2.5车间物料表
中文意义
库字段名
字段类型
其他信息
备注说明
物料编号
MATERIELID
NUMBER(10,0)
NOTNULL
任务编号
MISSIONID
NUMBER(10,0)
NOTNULL
物料名称
MATERIELNA
VARCHAR(50)
物料数量
MATERIELNU
NUMBER(10,0)
NOTNULL
物料文件编号
FILEID
NUMBER(10,0)
NOTNULL
PRIMARY
生产编号
PRODUCTID
NUMBER(10,0)
NOTNULL
2.2.4与其他子系统的关系
与其它子系统的关系基于数据库文件的共享,即通过数据库中资料的修改实现数据的传递,如下图2.4所示
图2.4车间系统与其他系统的关系
来自计划管理的订单是制定车间任务文件的标准。
来自计划管理的物料计划是制定物料文件的标准。
送交库存管理的入库单是其制定入库货物的标准。
送交库存管理的物料单是其制定出库物料的标准。
三、过程论述
本系统是在SQLSEVER2000数据库和MicrosoftVisualStudio.NET2003平台上实现,利用了ASP.NET,ADO.NET,C#.NET等技术,具体实现过程如下:
本系统共计6个aspx页面,分别是首页workshop.aspx,参数设置页面parameter.aspx,优先级设置页面priority.aspx,任务管理页面mission.aspx,物料管理页面materiel.aspx,任务例外信息管理页面except.aspx。
3.1首页workshop.aspx的制作
本页为车间管理系统的首页,提供到各个页面的链接,如下图3.1所示,
其中:
【车间参数设置】指向parameter.aspx
【物料管理】指向materiel.aspx
【生产任务管理】指向mission.aspx
【生产优先级设置】指向priority.aspx
【任务例外信息】指向except.aspx
图3.1车间管理首页
3.2车间参数设置页面parameter.aspx的制作
3.2.1浏览功能
提供客户对参数的浏览功能是必要的,建立一个sqlDataAdapter,对参数设置文件parameter的所有记录进行查询,sql语句为"SELECTworkshopid,cargoid,outperday,setupidFROMparameter".然后建立DataSet,将查找出的数据存入其中的DataTable中,并建立名为Client_data的会话(Session)来缓存数据,并用于各DataSet之间的数据交换中介.其关键源代码如下:
privatevoidLoadData()
{
DataSetds=newDataSet();
DataTabledt=newDataTable("parameter");
ds.Tables.Add(dt);
this.sqlDataAdapter1.Fill(ds);
Session["parameter"]=ds;
}
然后建立Web窗体DataGrid,用于在页面中显示查找出来的数据,如下图3.2所示.此DataGrid的数据源应绑定到DataSet上,关键代码如下:
privatevoidUpdateView()
{
DataSetds=(DataSet)Session["parameter"];//从Session中读出数据
DataGrid1.DataSource=ds.Tables["parameter"];
this.DataGrid1.DataBind();
}
图3.2车间参数设置页面
3.2.2编辑功能
为此DataGrid增加编辑、删除功能列,并将删除列转换为模板列,在页脚中添加"新建"链接按钮,指向本页面,用于实现新建客户资料记录功能。
为DataGrid配置grid_DeleteCommand,grid_UpdateCommand,DataGrid1_EditCommand,grid_CancelCommand,分别实现删除记录,更新记录,转到编辑模式,取消更新等功能。本系统中的编辑功能采用即地编辑模式。新建界面如下图3.3所示:
图3.3车间参数设置的编辑页面
删除操作的处理过程,只要点击【删除】按钮,就将调用grid_DeleteCommnad,删除所选择的行,更新数据库并刷新页面。
编辑操作的处理过程如下:点击【编辑】按钮,调用DataGrid1_EditCommand将选中行转换到编辑模式如图3.3,在编辑框中输入数据后点击【更新】,将调用grid_UpdateCommand,将输入数据更新到数据库,并刷新页面显示。若点击【取消】按钮,将调用grid_CancelCommand取消更新,回到原页面。
下面详细介绍grid_DeleteCommnad和grid_UpdateCommand,其原理都是使用SqlCommand对数据库进行操作。而SqlCommand的参数由DataGrid传递。源代码如下(注意DataGrid的DataKeyField应设置为CLIENT表的主键CLIENTID,以用于增删改查):
privatevoidgrid_DeleteCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgse)
{
StringstrCmd="DELETEFROMparameterWHEREsetupid=@ID";
SqlCommandcmd=newSqlCommand(strCmd,this.sqlConnection1);
SqlParameterp1=newSqlParameter("@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的源代码如下:
privatevoidgrid_UpdateCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgse)
{
TextBoxtxtworkshopid=(TextBox)e.Item.Cells[1].Controls[0];
TextBoxtxtcargoid=(TextBox)e.Item.Cells[2].Controls[0];
TextBoxtxtoutperday=(TextBox)e.Item.Cells[3].Controls[0];
//MUSTdecidewhethertoUPDATEortoINSERT.Thedecisionismadebasedon
//thefactthattheDataSethasaddedrows
DataSetds=(DataSet)Session["parameter"];
DataTabledt=ds.Tables["parameter"];
DataRowdrLast=dt.Rows[dt.Rows.Count-1];
if(drLast.RowState==DataRowState.Added)
{
//Dropthenewlyaddedrowfrommemory
//drLast.RejectChanges();
StringstrCmd="INSERTparameter(workshopid,cargoid,outperday) VALUES(@workshopid,@cargoid,@outperday)";
SqlCommandcmd=newSqlCommand(strCmd,this.sqlConnection1);
//IDisanidentitycolumn
SqlParameterp1=newSqlParameter("@workshopid",SqlDbType.Int,4);
p1.Direction=ParameterDirection.Input;
p1.Value=Convert.ToInt32(txtworkshopid.Text);
cmd.Parameters.Add(p1);
SqlParameterp2=newSqlParameter("@cargoid",SqlDbType.Int,4);
p2.Direction=ParameterDirection.Input;
p2.Value=Convert.ToInt32(txtcargoid.Text);
cmd.Parameters.Add(p2);
SqlParameterp3=newSqlParameter("@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
{
//Preparethecommandtext
StringstrCmd="UPDATEparameterSETworkshopid=@workshopid,cargoid=@cargoid,outperday=@outperdayWHEREsetupid=@ID";
SqlCommandcmd=newSqlCommand(strCmd,this.sqlConnection1);
SqlParameterp1=newSqlParameter("@ID",SqlDbType.Int);
p1.Direction=ParameterDirection.I
上一篇:
Asp_net2(论文和程序).0,Csharp)Asp_net在线考试系统源码及毕业设计论文
下一篇:
试析影响公路路面平整度的因素及应采取的施工措施