版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、业务流程定义创建的表:XT_LCXX:流程信息表XT_JDXX:节点信息表(原)(改过)XT_LCSL:流程实例(原)(改过)流程实例表中添加了节点顺序,不再用上节点id,下节点id,功能类似,这样可以方便一个节点的下一个步骤允许两个节点同时操作的情况。所以稍做了改变。但是不太确定在其他情况是否都能够满足要求,还在观察中。LC_LSJL:历史记录逻辑顺序:定义流程时:1、 定义流程客体,即流程中流转被操作的对象;2、 流程中需要经过的步骤,即节点,注意节点的先后顺序;3、 每个步骤中操作该对象的主体,即人员或角色;这样一个完整的流程就定义好了。实现界面:1、列表为已存在的流程,图片按钮为创建新
2、流程。2、点击空的流程时出现起点。点击已有流程时则展示流程示意图3、点击起点按钮时,开始定义节点(第一个)。4、第一个节点出现后,鼠标悬停在节点之上时,提示操作人员和操作类型,点击按钮时则出现菜单有3个选择:添加,修改和删除。5、点击增加时,弹出设置节点的窗口,在节点顺序的下拉框中可以选择要添加的节点的顺序,是与当前节点属于同一时间段进行的,还是下一步骤。点击删除时,直接删除掉该节点。操作流程时:1、 在创建流程信息表中包含对象的时候,同时向历史记录表中插入一条记录,并标明状态;2、 根据节点表中的操作人员和历史记录中待处理事件列表,选出待“我”处理的任务;3、 处理完成后,相应增加历史记录,
3、表明目前状态,并把本流程上一个状态注销,(若有并行步骤则需添加多条记录);4、 最终完成后该流程的所有记录的状态都注销。工作流类的设计:实体类:有属性:id,名称等等有方法:add、edit、delete,添加的部分有选择添加下个节点是什么类型的有编制、审核、审批、结束添加的时候,更新到数据库有三个类:public class LCpublic class JDpublic class LCSL分别是流程类,节点类,和流程实例类。一、在流程类中 有一个字段: private string _lcid;有四个属性: public string Bz public string Lcmc publ
4、ic string Lcztpublic string Lcyhid实例化流程是有两种方法:1是创建一个数据库中不存在的新流程,需要传入参数: public LC(string lcmc,string lczt,string bz,string yhid)2是实例化一个数据库中已存在的流程,则只需传入LCID即可: public LC(string lcid) string Sql_Select = "select t.lc_mc,t.lc_zt,t.lc_yhid,t.lc_cjrq,t.lc_xgrq,t.lc_scbj,t.lc_bz from xt_lcxx t where
5、t.lc_id='" + lcid + "'" DataTable Dt = DBHelper.GetDataSet(Sql_Select); if (Dt.Rows.Count = 1) this._lcmc = Dt.Rows0"lc_mc".ToString(); this._lczt = Dt.Rows0"lc_lczt".ToString(); this._lcyhid = Dt.Rows0"lc_yhid".ToString(); this._bz = Dt.Rows0&quo
6、t;lc_bz".ToString(); 会将其他信息添加到流程类的属性中。流程类中有方法:/ 增加基本流程信息public string Add_CL() / 修改流程基本信息 public string Edit_CL(string Lcid) public string Delete_CL(string Lcid)在节点类中:有属性: public string Jdid public string Czlx public string Czry public string Yhid public string Bz有方法: / 增加一个新节点 public string Ad
7、d_JD() / 修改节点 public string Edit_JD(string Jdid) / 删除节点 public string Delete_JD(string jdid)实例化节点时,有三种方法1实例化一个空的节点,2实例化一个新的节点(没有节点id),根据节点id实例化一个数据库中已存在的节点(其他属性自动添加)。三、流程实例类有属性: public string Lcid public string Yhid public string Bz有方法:/ 向流程添加节点(流程id必须提前设定好)/ <param name="Jdcc">节点的层次
8、,001是与上节点同一层次,002是下一层次</param>public string Add_JdtoLc(string Jdid,string Jdcc)public string Delete_JdFromLc(string Jdid)必须注意一点,在流程实例中,添加节点和删除节点有点不同:添加的时候是先用节点类添加一个节点,然后再用流程实例类向流程添加这个节点,而删除的时候直接用流程实例类删除掉节点,因为在Delete_JdFromLc方法中已经调用了Delete_JD方法。附类的全部代码:using System;using System.Data;using Syste
9、m.Configuration;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.OracleClient;using System.Collections.Generic;/using Syst
10、em.ComponentModel;/ <summary>/WorkFlow 的摘要说明/ </summary>public class WorkFlowpublic WorkFlow()/TODO: 在此处添加构造函数逻辑/ <summary>/ 流程(基本信息)实体类,实现流程的增删改/ </summary>public class LC / <summary> / 实例化空流程 / </summary> public LC() / <summary> / 实例化准备添加的新流程 / </summar
11、y> / <param name="lcmc"></param> / <param name="lczt"></param> / <param name="bz"></param> / <param name="yhid"></param> public LC(string lcmc,string lczt,string bz,string yhid) this._lcmc = lcmc; this._lczt =
12、 lczt; this._bz = bz; this._lcyhid = yhid; / <summary> / 实例化数据库中已存在的流程,得到该流程的所有属性 / </summary> / <param name="lcid"></param> public LC(string lcid) this._lcid = lcid; try string Sql_Select = "select t.lc_mc,t.lc_zt,t.lc_yhid,t.lc_cjrq,t.lc_xgrq,t.lc_scbj,t.lc_b
13、z from xt_lcxx t where t.lc_id='" + lcid + "'" DataTable Dt = DBHelper.GetDataSet(Sql_Select); if (Dt.Rows.Count = 1) this._lcmc = Dt.Rows0"lc_mc".ToString(); this._lczt = Dt.Rows0"lc_lczt".ToString(); this._lcyhid = Dt.Rows0"lc_yhid".ToString();
14、this._bz = Dt.Rows0"lc_bz".ToString(); catch (Exception e) throw e; private string _lcid; private string _bz; public string Bz get return _bz; set _bz = value; private string _lcmc; / <summary> / 流程名称 / </summary> public string Lcmc get return _lcmc; set _lcmc = value; private
15、string _lczt; public string Lczt get return _lczt; set _lczt = value; / <summary> / 或许在类中可以直接得到登陆的用户id,就不需要再传值了。 / </summary> private string _lcyhid; public string Lcyhid get return _lcyhid; set _lcyhid = value; / <summary> / 增加基本流程信息 / </summary> / <returns>数据库操作信息或错误信
16、息</returns> public string Add_CL() string info=string.Empty; try _lcid = DBHelper.GetScalar("select get_next_id('xt_lcxx','lc_id','LCXX') from dual").ToString(); string Sql_Insert = "insert into xt_lcxx(lc_id,lc_mc,lc_zt,lc_yhid,lc_cjrq,lc_bz) values('
17、;" + _lcid + "','" + _lcmc + "','" + _lczt + "','" + _lcyhid + "',trunc(sysdate,'dd'),'" + _bz + "')" info = DBHelper.ExecuteCommand(Sql_Insert).ToString(); catch (Exception e) info = e.Message.ToStrin
18、g(); return info; / <summary> / 修改流程基本信息 / </summary> / <param name="Lcid">准备修改的流程id</param> / <returns></returns> public string Edit_CL(string Lcid) string info = string.Empty; try string Sql_Update = "update xt_lcxx set lc_mc='" + _lcmc +
19、 "',lc_yhid='" + _lcyhid + "',lc_xgrq=trunc(sysdate,'dd'),lc_bz='"+_bz+"' where lc_id='"+Lcid+"' "/流程的id对应主体,不可变 info = DBHelper.ExecuteCommand(Sql_Update).ToString(); catch (Exception e) info = e.Message.ToString(); return
20、info; public string Delete_CL(string Lcid) string info = string.Empty; try string Sql_Delete = "delet xt_lcxx where lc_id='" + Lcid + "'" info = DBHelper.ExecuteCommand(Sql_Delete).ToString(); catch (Exception e) info = e.Message.ToString(); return info; / <summary>
21、/ 节点实体类,实现节点的增删改/ </summary>public class JD public JD() / <summary> / 实例化节点实体(已存在的节点) / </summary> / <param name="jdid">节点id</param> public JD(string jdid) this._jdid = jdid; try string Sql_Select = "select a.jd_czry, a.jd_yhdw,a.jd_yhid,a.jd_cjrq,a.jd_bz
22、, a.jd_czlx,a.jd_xgrq,a.jd_scbj from xt_jdxx a where a.jd_id='" + jdid + "'" DataTable Dt = DBHelper.GetDataSet(Sql_Select); if (Dt.Rows.Count = 1) this._czry = Dt.Rows0"jd_czry".ToString(); this._czlx = Dt.Rows0"jd_czlx".ToString(); this._yhid = Dt.Rows0&q
23、uot;jd_yhid".ToString(); this._bz = Dt.Rows0"jd_bz".ToString(); catch (Exception e) throw e; / <summary> / 实例化新节点,(准备添加到数据库) / </summary> / <param name="czry">节点的操作人员</param> / <param name="yhid">该记录的添加人员</param> / <param name
24、="bz">备注</param> public JD(string czry, string czlx, string yhid, string bz) this._czry = czry; this._czlx = czlx; this._yhid = yhid; this._bz = bz; private string _jdid; public string Jdid get return _jdid; set _jdid = value; private string _czlx; public string Czlx get return _c
25、zlx; set _czlx = value; private string _czry; public string Czry get return _czry; set _czry = value; private string _yhid; public string Yhid get return _yhid; set _yhid = value; private string _bz; public string Bz get return _bz; set _bz = value; / <summary> / 增加节点 / </summary> / <
26、returns></returns> public string Add_JD() string info = string.Empty; try _jdid = DBHelper.GetScalar("select get_next_id('xt_jdxx','jd_id','JDXX') from dual").ToString(); / this.Jdid = _jdid; string Sql_Insert = "insert into xt_jdxx(jd_id,jd_czry,jd_yh
27、dw,jd_yhid,jd_cjrq,jd_bz,jd_czlx) values('" + _jdid + "','" + _czry + "',(select yhxx_yhdw from xt_yhxx where yhxx_id='" + _czry + "' ),'" + _yhid + "',trunc(sysdate,'dd'),'" + _bz + "','" + _c
28、zlx + "')" info = DBHelper.ExecuteCommand(Sql_Insert).ToString(); catch (Exception e) info = e.Message.ToString(); return info; / <summary> / 修改节点 / </summary> / <param name="Jdid"></param> / <returns></returns> public string Edit_JD(string
29、 Jdid) string info = string.Empty; try string Sql_Update = "update xt_jdxx x set x.jd_czry='" + _czry + "',x.jd_yhdw=(select yhxx_yhdw from xt_yhxx where yhxx_id='" + _czry + "' ),x.jd_yhid='" + _yhid + "',x.jd_xgrq=trunc(sysdate,'dd'
30、;),x.jd_bz='" + _bz + "',jd_czlx='" + _czlx + "' where x.jd_id='" + _jdid + "'" info = DBHelper.ExecuteCommand(Sql_Update).ToString(); catch (Exception e) info = e.Message.ToString(); return info; / <summary> / 删除节点 / </summary>
31、/ <param name="jdid"></param> / <returns></returns> public string Delete_JD(string jdid) string info = string.Empty; try string Sql_Delete = "delete xt_jdxx where jd_id='" + jdid + "'" info = DBHelper.ExecuteCommand(Sql_Delete).ToString()
32、; catch (Exception e) info = e.Message.ToString(); return info; / <summary>/ 流程实例实体类,实现流程过程的连接/ </summary>public class LCSL public LCSL() /属性 private string _yhid;/用户id public string Yhid get return _yhid; set _yhid = value; private string _bz;/备注 public string Bz get return _bz; set _bz
33、 = value; private string _lcid; public string Lcid get return _lcid; set _lcid = value; /方法 / <summary> / 向流程添加节点(流程id必须提前设定好) / </summary> / <param name="Jdid">节点id</param> / <param name="Jdcc">节点的层次,001是与上节点同一层次,002是下一层次</param> / <returns
34、></returns> public string Add_JdtoLc(string Jdid,string Jdcc) string info = string.Empty; string Sql_Jdsx = string.Empty; try switch (Jdcc) case "001": Sql_Jdsx = " nvl(to_number(select max (lcsl_jdsx) from xt_lcsl where lcsl_id = '" + _lcid + "'), 1) "
35、 break; case "002": Sql_Jdsx = " nvl(to_number(select max (lcsl_jdsx) from xt_lcsl where lcsl_id = '" + _lcid + "')+1, 1) " break; string Jl_id = DBHelper.GetScalar("select get_next_id('xt_lcsl','jl_id','LCJD') from dual").ToStr
36、ing(); string Sql_Insert = "insert into xt_lcsl(jl_id,lcsl_id,lcsl_jdid,lcsl_qsbj,lcsl_ljd_id,lcsl_njd_id,lcsl_yhid,lcsl_cjrq,lcsl_bz,lcsl_jdsx) values('" + Jl_id + "','" + _lcid + "','" + Jdid + "','002',(select max(lcsl_jdid) from
37、xt_lcsl where lcsl_id='" + _lcid + "'),'','" + _yhid + "',trunc(sysdate,'dd'),'" + _bz + "',"+Sql_Jdsx+") " info = DBHelper.ExecuteCommand(Sql_Insert).ToString(); catch (Exception e) info = e.Message.ToString(); / /
38、else info = "请先创建流程" return info; public string Delete_JdFromLc(string Jdid) JD Curent_Jd = new JD(); string info = string.Empty; try string Sql_Delete = "delete xt_lcsl where lcsl_jdid='" + Jdid + "' and lcsl_id='" + _lcid + "'" info = DBHelpe
39、r.ExecuteCommand(Sql_Delete).ToString(); Curent_Jd.Delete_JD(Jdid); catch (Exception e) info = e.Message.ToString(); return info; / <summary> / 从数据库中得到某流程的所有节点 / </summary> / <param name="LC_ID"></param> / <returns></returns> public static IList<JD>
40、; Get_JdBySql(string LC_ID) List<JD> JDLists = new List<JD>(); string sql_select = "select * from xt_Lcsl where lcsl_id='" + LC_ID + "'" using (DataTable table = DBHelper.GetDataSet(sql_select) foreach (DataRow row in table.Rows) JD Jd = new JD(); Jd.Jdid = ro
41、w"Lcsl_jdid".ToString(); JDLists.Add(Jd); return JDLists; 附2界面代码:<% Page Language="C#" AutoEventWireup="true" CodeFile="Set_Lc.aspx.cs" Inherits="_Set_Lc" %><% Register Assembly="DevExpress.Web.ASPxEditors.v9.3, Version=, Culture
42、=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %><% Register Assembly="DevExpress.Web.v9.3, Version=, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxPopupControl&qu
43、ot; TagPrefix="dx" %><% Register Assembly="DevExpress.Web.ASPxGridView.v9.3, Version=, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %><% Register Assembly="DevExpress.Web.v9.3,
44、 Version=, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxDataView" TagPrefix="dx" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><
45、html xmlns="/1999/xhtml"><head runat="server"> <title>无标题页</title> <script id="close" type="text/javascript"> </script></head><body> <form id="form1" runat="server"> <div
46、 style="text-align: center"> <div> <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" KeyFieldName="LC_ID"> <SettingsBehavior AllowFocusedRow="True" /> <Columns> <dx:GridViewCommandC
47、olumn VisibleIndex="0"> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn VisibleIndex="1" Caption="序号"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn VisibleIndex="2" Caption="流程名称" FieldName="LC_MC"&
48、gt; </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn VisibleIndex="3" Caption="流转对象" FieldName="LC_ZT"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn VisibleIndex="4" Caption="备注" FieldName="LC_BZ">
49、</dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Visible="false" FieldName="LC_ID"> </dx:GridViewDataTextColumn> <dx:GridViewDataHyperLinkColumn Caption="定义流程" VisibleIndex="5"> <DataItemTemplate> <asp:LinkButton ID=&quo
50、t;Dy" runat="server" Text="定义流程" OnClick="Dy_Click"></asp:LinkButton> </DataItemTemplate> </dx:GridViewDataHyperLinkColumn> </Columns> </dx:ASPxGridView> </div> <dx:ASPxImage ID="ASPxImage1" runat="server&quo
51、t; ImageUrl="/img/define.gif" Cursor="pointer" ToolTip="开始定义流程"> <EmptyImage AlternateText="定义流程"> </EmptyImage> </dx:ASPxImage> <dx:ASPxPopupControl ID="ASPxPopupControl1" runat="server" ClientInstanceName="pop
52、up" AllowDragging="True" AutoUpdatePosition="True" HeaderText="添加流程" PopupVerticalAlign="Below" PopupElementID="ASPxImage1" > <ContentCollection> <dx:PopupControlContentControl runat="server"> <table style="text-align: right" width="100%"> <tr> <td style="width: 50%"> <dx:ASPxLabel ID="ASPx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年超耐候水性氟碳漆项目可行性研究报告
- 2024年度ROHS合规性电子产品检测与认证合同
- 2024年渔具轮座项目可行性研究报告
- 2024至2030年中国镀铝膜复膜胶数据监测研究报告
- 2024年有机膦阻垢缓蚀剂项目可行性研究报告
- 2024年复合式冲淋洗眼器项目可行性研究报告
- 二零二四年度股权投资合同with优先购买权与反稀释保护
- 二零二四年份灯光设计与施工一体化服务合同
- 2024年中国过滤线市场调查研究报告
- 2024年中国磨砂PP笔筒市场调查研究报告
- 职业打假人投诉、举报处理规范
- 危重患者早期识别课件
- 预防事故和职业病的措施及应注意的安全事项
- 丰田核心竞争力及战略分析课件
- 高风险作业施工安全措施
- 生物分离工程吸附分离及离子交换
- 外科手术中肝脏切除技术讲解
- 机动车驾驶培训汽车安全驾驶课件
- 《人员烫伤应急预案》课件
- 驾校年度安全生产目标方案
- 新能源基础知识入门
评论
0/150
提交评论