www.pudn.com > UDS1.1_51aspx.rar > DocumentFlow.cs


using System; 
using System.Data; 
using System.Data.SqlClient; 
 
namespace UDS.Components 
{ 
	#region 工作流的函数 
	///  
	/// DocumentFlow 的摘要说明。 
	///  
	public class DocumentFlow 
	{ 
 
		////////////////////////////////////////// 
		///				公文流转 
		////////////////////////////////////////// 
		 
		#region 添加文档 
		///  
		/// 添加文档 
		///  
		/// 拟稿人 
		/// 所用流程ID 
		/// 样式表数据的SQL语句 
		public int AddDocument(string UserName,long FlowID,string SQL) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocBuilder",SqlDbType.VarChar,300,UserName), 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@SQL",SqlDbType.NText,4000,SQL) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_AddDocument",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 删除文档 
		///  
		/// 删除文档 
		///  
		/// 被删除的文档ID 
		public int DeleteDocument(long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_DeleteDocument",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		}	 
		#endregion 
 
		#region 修改文档 
		///  
		/// 修改文档 
		///  
		/// 更新文档语句 
		public int UpdateDocument(string UpdateSQL) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@SQL",SqlDbType.NText,4000,UpdateSQL) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_UpdateDocument",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		}	 
		#endregion 
 
		#region 文档签收 
		///  
		/// 文档签收 
		///  
		/// 签收人 
		/// 要被签收的文档ID 
		public int SignInDocument(string UserName,long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StaffName",SqlDbType.VarChar ,300,UserName), 
											mySQL.MakeInParam("@DocID",SqlDbType.Int,4,DocID)											 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_SignINDoc",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 取消签收 
		///  
		/// 取消签收 
		///  
		/// 签收人 
		/// 被取消的文档ID 
		public int CancelSignInDocument(string UserName,long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StaffName",SqlDbType.VarChar ,300,UserName), 
											mySQL.MakeInParam("@DocID",SqlDbType.Int,4,DocID)											 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_CancelSignINDoc",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 添加批注 
		///  
		/// 添加批注 
		///  
		/// 批注人 
		/// 批注的文档ID 
		/// 批注类型,通过,拒绝,完成 
		public int AddPostil(string UserName,long DocID,string Postil,int PostilType,long ObjID,long ObjType) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID),											 
											mySQL.MakeInParam("@Postiler",SqlDbType.VarChar  ,300,UserName), 
											mySQL.MakeInParam("@PostilContent",SqlDbType.NText,3000,Postil), 
											mySQL.MakeInParam("@PostilType",SqlDbType.Int   ,4,PostilType), 
											mySQL.MakeInParam("@ObjID",SqlDbType.Int   ,4,ObjID), 
											mySQL.MakeInParam("@ObjType",SqlDbType.Int   ,4,ObjType) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_AddPostil",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 否决文档 
		///  
		/// 否决文档 
		///  
		/// 被否决的文档ID 
		public int FaileDocument(long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_FaileDocument",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 打回文档 
		///  
		/// 打回文档 
		///  
		/// 被打回的文档ID 
		public int BackDocument(long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_BackDocument",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 通过文档 
		///  
		/// 通过文档 
		///  
		/// 审批人 
		/// 当前文档ID		 
		/// 所在项目ID 
		public int PostDocument(string UserName,long DocID,long ProjectID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StaffName",SqlDbType.VarChar,300,UserName), 
											mySQL.MakeInParam("@DocID",SqlDbType.VarChar,300,DocID),											 
											mySQL.MakeInParam("@ProjectID",SqlDbType.Int,4,ProjectID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_PostDocument",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
		#endregion 
 
		#region 结束文档 
		///  
		/// 结束文档 
		///  
		/// 被结束的文档ID 
		public int FinishDocument(long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_FinishDocument",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 删除文档最近的批注 
		///  
		/// 删除文档最近的批注 
		///  
		/// 文档ID 
		public int CancelPostil(long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_CancelPostil",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		}	 
		#endregion 
		 
		#region 获得步骤流转规则 
		///  
		/// 获得步骤流转规则 
		///  
		/// 流程ID 
		/// 步骤ID 
		public int GetStepRule(long FlowID,long StepID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int,4,StepID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_GetStepRule",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
		#endregion 
 
		#region 获得步骤结束权利 
		///  
		/// 获得步骤结束权利 
		///  
		/// 流程ID 
		/// 步骤ID 
		public int GetStepRightToFinish(long FlowID,long StepID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int,4,StepID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_GetStepRightToFinish",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
		#endregion 
		 
		#region 获得文档的是否为新拟稿 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 文档ID		 
		public int IsNewDocument(long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_IsNewDocument",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
		#endregion		 
 
		#region 获得用户所有的项目,返回表格 
		///  
		/// 获得用户所有的项目 
		///  
		/// 用户名 
		/// 返回表格 
		public int GetProject(string UserName,out DataTable dt ) 
		{ 
			//int iReturn=0; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@UserName",SqlDbType.VarChar ,300,UserName) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_GetTaskClass",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
		 
		#region 获得用户所有的项目,返回表格 
			///  
			/// 获得用户所有的项目 
			///  
			/// 用户名 
			/// 返回表格 
			public int GetProject(string UserName,out SqlDataReader dr ) 
			{ 
				//int iReturn=0; 
				dr = null; 
				UDS.Components.Database mySQL = new UDS.Components.Database(); 
				SqlParameter[] parameters = { 
												mySQL.MakeInParam("@UserName",SqlDbType.VarChar ,300,UserName) 
											}; 
			 
				try 
				{ 
					mySQL.RunProc("sp_GetTaskClass",parameters,out dr);							 
				} 
				catch(Exception e) 
				{ 
					Error.Log(e.ToString());					 
				} 
				finally 
				{ 
					//mySQL.Close(); 
					//mySQL = null;	 
				} 
				return 0; 
			}		 
		#endregion 
 
		#region 获得文档的批注,返回记录集 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetDocumentPostil(long DocID,out SqlDataReader dr ) 
		{ 
			//int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetDocumentPostil",parameters,out dr);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dr = null; 
			} 
			finally 
			{ 
				//mySQL.Close(); 
				//mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得文档的批注,返回表格 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetDocumentPostil(long DocID,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetDocumentPostil",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得文档的信息实体,返回记录集 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 文档ID 
		/// 返回记录集 
		public int GetDocumentInfo(long DocID,out SqlDataReader dr ) 
		{ 
			//int iReturn=-1; 
			//SqlDataReader dd; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetDocumentInfo",parameters,out dr);						 
			} 
			catch(Exception e) 
			{ 
				dr = null; 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				//mySQL.Close(); 
				//mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得文档的信息实体,返回表格 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetDocumentInfo(long DocID,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetDocumentInfo",parameters,out dr);						 
				dt =UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				dt = null; 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		 
 
		#region 获得步骤成员,返回表格 
		///  
		/// 获得环节成员,返回表格 
		///  
		/// 流程ID 
		/// 步骤ID 
		/// 返回表格 
		public int GetStaffInStep(long FlowID,long StepID,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID)											 
											 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetStaffInStep",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得步骤成员,返回表格 
		///  
		/// 获得环节成员,返回表格 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetStaffInStep(long DocID,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)																						 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetStaffInStep_Ex",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得步骤接受人员,返回表格 
		///  
		/// 获得步骤接受人员,返回表格 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetReceiver(long DocID,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetReceiver",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得步骤已经签收人员,返回表格 
		///  
		/// 获得步骤已经签收人员,返回表格 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetSignIner(long DocID,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetSignIner",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得步骤未签收人员,返回表格 
		///  
		/// 获得步骤未签收人员,返回表格 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetUnSignIner(long DocID,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetUnSignIner",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得步骤已经批阅人员,返回表格 
		///  
		/// 获得步骤已经批阅人员,返回表格 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetPostiler(long DocID,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetPostiler",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得流程头信息,返回表格 
		///  
		/// 流程ID 
		/// 返回表格 
		public string GetStyleHeadline(long FlowID) 
		{ 
			string str=""; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetStyleHead",parameters,out dr);		 
				if(dr.Read()) 
				{ 
					str = dr["Flow_Name"].ToString() + "(流水号:" + string.Format(dr["Times"].ToString(),"03d") + ")"; 
				} 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return str; 
		}		 
		#endregion			 
 
		#region 获得文档的附件,返回表格 
		///  
		/// 获得文档的附件,返回表格 
		///  
		/// 文档ID 
		/// 返回表格 
		public int GetDocumentAttach(long DocID,out DataTable dt) 
		{			 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetDocumentAttach",parameters,out dr);		 
 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				throw new Exception("获得公文的附件出错!",e); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion			 
 
		#region 添加公文附件数据库 
		///  
		/// 添加文件附件数据库操作 
		///  
		/// DocAttachFile类 
		/// 文件ID 
		public void AddAttach(UDS.Components.DocAttachFile att,long DocID)  
		{		 
			 
			UDS.Components.Database data = new UDS.Components.Database();	 
			SqlParameter[] prams = { 
									   data.MakeInParam("@DocID",  SqlDbType.Int, 20, DocID), 
									   data.MakeInParam("@FileName",  SqlDbType.VarChar, 300, att.FileName), 
									   data.MakeInParam("@FileSize",  SqlDbType.Int, 20, att.FileSize), 
									   data.MakeInParam("@FileAttribute",  SqlDbType.SmallInt,20, att.FileAttribute), 
									   data.MakeInParam("@FileVisualPath",  SqlDbType.NVarChar, 200, att.FileVisualPath), 
									   data.MakeInParam("@FileAuthor",  SqlDbType.NVarChar, 50, att.FileAuthor), 
									   data.MakeInParam("@FileCatlog",  SqlDbType.NVarChar, 20, att.FileCatlog), 
									   data.MakeInParam("@FileAddedDate", SqlDbType.DateTime, 30, DateTime.Parse(att.FileAddedDate)) 
								   }; 
			try  
			{ 
				data.RunProc("sp_Flow_AddFile", prams); 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("文件附件发送出错!",ex); 
			} 
			 
		} 
		#endregion 
 
		#region 删除公文附件数据库 
		///  
		/// 删除文件附件数据库操作 
		///  
		/// 文件ID 
		public void DeleteAttach(long DocID)  
		{		 
			 
			UDS.Components.Database data = new UDS.Components.Database();	 
			SqlParameter[] prams = { 
									   data.MakeInParam("@DocID",  SqlDbType.Int, 20, DocID) 
								   }; 
			try  
			{ 
				data.RunProc("sp_Flow_DeleteFile", prams); 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("文件附件删除出错!",ex); 
			}			 
		} 
		#endregion 
 
		#region 获得公文附件名 
		///  
		/// 获得公文附件名 
		///  
		/// 文件ID 
		public string GetAttachName(long DocID)  
		{		 
			 
			string AttachName=""; 
 
			UDS.Components.Database data = new UDS.Components.Database();	 
			SqlDataReader dr = null; 
			 
			SqlParameter[] prams = { 
									   data.MakeInParam("@DocID",  SqlDbType.Int, 20, DocID) 
								   }; 
			try  
			{ 
				data.RunProc("sp_Flow_GetDocumentAttach", prams,out dr); 
				if(dr.Read()) 
					AttachName = dr["FileVisualPath"].ToString() + dr["FileName"].ToString(); 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("获得文件附出错!",ex); 
			}			 
			finally 
			{ 
				dr.Close(); 
				dr	= null; 
				data = null; 
			} 
			return AttachName; 
		} 
		#endregion 
 
		#region 添加公文批注附件数据库 
		///  
		/// 添加文件批注附件数据库操作 
		///  
		/// DocAttachFile类 
		/// 文件ID 
		public void AddPostilAttach(UDS.Components.DocAttachFile att,long PostilID)  
		{		 
			 
			UDS.Components.Database data = new UDS.Components.Database();	 
			SqlParameter[] prams = { 
									   data.MakeInParam("@PostilID",  SqlDbType.Int, 20, PostilID), 
									   data.MakeInParam("@FileName",  SqlDbType.VarChar, 300, att.FileName), 
									   data.MakeInParam("@FileSize",  SqlDbType.Int, 20, att.FileSize), 
									   data.MakeInParam("@FileAttribute",  SqlDbType.SmallInt,20, att.FileAttribute), 
									   data.MakeInParam("@FileVisualPath",  SqlDbType.NVarChar, 200, att.FileVisualPath), 
									   data.MakeInParam("@FileAuthor",  SqlDbType.NVarChar, 50, att.FileAuthor), 
									   data.MakeInParam("@FileCatlog",  SqlDbType.NVarChar, 20, att.FileCatlog), 
									   data.MakeInParam("@FileAddedDate", SqlDbType.DateTime, 30, DateTime.Parse(att.FileAddedDate)) 
								   }; 
			try  
			{ 
				data.RunProc("sp_Flow_AddPostilFile", prams); 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("文件附件发送出错!",ex); 
			} 
			 
		} 
		#endregion 
 
		#region 获得文档的所在项目ID 
		///  
		/// 获得文档的所在项目ID 
		///  
		/// 文档ID 
		public static int GetDocumentProjectID(long DocID) 
		{			 
			int iReturn=0; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_GetDocumentProjectID",parameters);		 
 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				throw new Exception("获得公文的项目ID出错!",e); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		}		 
		#endregion			 
 
		#region 获得是否按照项目流转 
		///  
		/// 获得是否按照项目流转ID 
		///  
		/// 用户名 
		/// 文档ID 
		public bool IsProject(string UserName,long DocID) 
		{			 
			bool iReturn = false; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StaffName",SqlDbType.VarChar,100,UserName), 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetPrePostInfo",parameters,out dr);		 
				if(dr.Read()) 
				{ 
					if(dr["Flow_Rule"].ToString()=="2") 
						iReturn = true; 
				} 
 
				dr.Close(); 
				dr = null; 
 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				throw new Exception("获得是否按照项目流转出错!",e); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		}		 
		#endregion			 
 
		///////////////////////////////////////////// 
		///				流程自定义表单 
		///////////////////////////////////////////// 
 
		#region 添加自定义风格表格 
		///  
		/// 添加自定义风格表格 
		///  
		/// 风格名 
		/// 简介ID 
		/// 模板路径 
		public int AddStyle(string StyleName,string StyleRemark,string Teamplate) 
		{ 
 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StyleName",SqlDbType.VarChar,100,StyleName), 
											mySQL.MakeInParam("@StyleRemark",SqlDbType.VarChar,100,StyleRemark), 
											mySQL.MakeInParam("@Teamplate",SqlDbType.VarChar,100,Teamplate) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_AddStyle",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 删除自定义风格表格 
		///  
		/// 删除自定义风格表格 
		///  
		/// 风格ID 
		public int DeleteStyle(long StyleID,string Path) 
		{ 
 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID) 
										}; 
			try 
			{ 
				DeleteTemplate(StyleID,Path);		//删除模板实体 
				iReturn = mySQL.RunProc("sp_Flow_DeleteStyle",parameters);						 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 修改自定义风格表格 
		///  
		/// 修改自定义风格表格 
		///  
		/// 风格ID 
		/// 风格名 
		/// 简介ID 
		/// 模板路径 
		public int UpdateStyle(long StyleID,string StyleName,string StyleRemark,string Teamplate,string Path) 
		{ 
 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID), 
											mySQL.MakeInParam("@StyleName",SqlDbType.VarChar,100,StyleName), 
											mySQL.MakeInParam("@StyleRemark",SqlDbType.VarChar,100,StyleRemark), 
											mySQL.MakeInParam("@Teamplate",SqlDbType.VarChar,100,Teamplate) 
										}; 
			try 
			{ 
				DeleteTemplate(StyleID,Path); 
				iReturn = mySQL.RunProc("sp_Flow_UpdateStyle",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 添加自定义风格详细定义 
		///  
		/// 添加自定义风格详细定义 
		///  
		/// 风格表格ID 
		/// 帮定字段名 
		/// 字段意义 
		/// 是否作为条件判断字段 
		/// 是否多行 
		/// 控件高度 
		/// 控件宽 
		/// 控件在表单中的位置 
		/// 填表示例 
 
		public int AddStyleDescription(long StyleID,string FieldName,string FieldDescription,int Judged,int MultiLine,int Height,int Width,int Position,string Example) 
		{ 
 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID), 
											mySQL.MakeInParam("@FieldName",SqlDbType.VarChar,100,FieldName), 
											mySQL.MakeInParam("@FieldDescription",SqlDbType.VarChar,100,FieldDescription), 
											mySQL.MakeInParam("@Judged",SqlDbType.Int,4,Judged), 
											mySQL.MakeInParam("@MultiLine",SqlDbType.Int,4,MultiLine), 
											mySQL.MakeInParam("@Height",SqlDbType.Int,4,Height), 
											mySQL.MakeInParam("@Width",SqlDbType.Int,4,Width), 
											mySQL.MakeInParam("@Position",SqlDbType.Int,4,Position), 
											mySQL.MakeInParam("@Example",SqlDbType.VarChar,100,Example) 
 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_AddStyle_Description",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion		 
 
		#region 删除自定义风格表格详细定义 
		///  
		/// 删除自定义风格表格详细定义,一行定义表示一个控件 
		///  
		/// 风格详细定义ID 
		public int DeleteStyleDescription(long DescriptionID) 
		{ 
 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DescriptionID",SqlDbType.Int,4,DescriptionID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_DeleteStyle_Description",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 修改自定义风格详细定义 
		///  
		/// 修改自定义风格详细定义 
		///  
		/// 风格详细定义ID 
		/// 风格表格ID 
		/// 帮定字段名 
		/// 字段意义 
		/// 是否作为条件判断字段 
		/// 是否多行 
		/// 控件高度 
		/// 控件宽 
		/// 控件在表单中的位置 
		/// 填表示例 
 
		public int UpdateStyleDescription(long DescriptionID,long StyleID,string FieldName,string FieldDescription,int Judged,int MultiLine,int Height,int Width,int Position,string Example) 
		{ 
 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DescriptionID",SqlDbType.Int,4,DescriptionID), 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID), 
											mySQL.MakeInParam("@FieldName",SqlDbType.VarChar,100,FieldName), 
											mySQL.MakeInParam("@FieldDescription",SqlDbType.VarChar,100,FieldDescription), 
											mySQL.MakeInParam("@Judged",SqlDbType.Int,4,Judged), 
											mySQL.MakeInParam("@MultiLine",SqlDbType.Int,4,MultiLine), 
											mySQL.MakeInParam("@Height",SqlDbType.Int,4,Height), 
											mySQL.MakeInParam("@Width",SqlDbType.Int,4,Width), 
											mySQL.MakeInParam("@Position",SqlDbType.Int,4,Position), 
											mySQL.MakeInParam("@Example",SqlDbType.VarChar,100,Example) 
 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_UpdateStyle_Description",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 获得自定义风格表格一条详细定义 
		///  
		/// 获得单一样式描述 
		///  
		/// 流程ID 
		/// 数据集合 
		public int GetDescription(long DescriptionID,out SqlDataReader dr ) 
		{ 
			//int iReturn=-1; 
			dr = null; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DescriptionID",SqlDbType.Int ,4,DescriptionID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetDescription",parameters,out dr);		 
			} 
			catch(Exception ex) 
			{ 
				Error.Log(ex.ToString()); 
				 
			} 
			finally 
			{ 
				//mySQL.Close(); 
				//mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 通过流程ID得到流程模板名 
		///  
		/// 通过流程ID得到流程模板名 
		///  
		/// 流程ID 
		public string GetStyleTemplate(long FlowID) 
		{ 
			string str=""; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeOutParam("@Template",SqlDbType.VarChar,100) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetStyleTemplate",parameters);		 
				str = parameters[1].Value.ToString(); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				throw new Exception("获得表格模板错误!",e); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			 
			if(str.Length>0) 
				return @"Template\" + str; 
			else 
				return ""; 
		} 
		#endregion 
 
		#region 通过表单ID得到流程模板名 
		///  
		/// 通过表单ID得到流程模板名 
		///  
		/// 流程ID 
		public string GetStyleTemplateEx(long StyleID) 
		{ 
			string str=""; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID), 
											mySQL.MakeOutParam("@Template",SqlDbType.VarChar,100) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetStyleTemplateEx",parameters);		 
				str = parameters[1].Value.ToString(); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				throw new Exception("获得表格模板错误!",e); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			 
			if(str.Length>0) 
				return @"Template\" + str; 
			else 
				return ""; 
		} 
		#endregion 
 
		#region 删除模板实体 
		///  
		/// 删除模板实体 
		/// 		 
		/// 风格表格ID 
		/// 路径 
		public int DeleteTemplate(long StyleID,string Path) 
		{ 
 
			int iReturn=0; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlDataReader dr;			 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int,4,StyleID) 
										}; 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetStyle",parameters,out dr);		 
				if(dr.Read()) 
				{ 
					string FileName; 
					FileName = Path + "\\" + dr["Template"].ToString(); 
 
					if(System.IO.File.Exists(FileName)==true) 
					{ 
						System.IO.File.Delete(FileName); 
					} 
				} 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		} 
		#endregion 
 
		#region 获得流程的表格样式描述 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 流程ID 
		/// 是否包括条件判断的字段 
		/// 数据集合 
		public int GetStyleDescription(long FlowID,int Judged,out SqlDataReader dr ) 
		{ 
			//int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@Judged",SqlDbType.Int ,4,0) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_flow_getstyle_description",parameters,out dr);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dr = null; 
			} 
			finally 
			{ 
				//mySQL.Close(); 
				//mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得流程的表格样式描述 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 流程ID 
		/// 数据集合 
		public int GetStyleDescription(long StyleID,out SqlDataReader dr ) 
		{ 
			//int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_flow_getstyle_description_ex",parameters,out dr);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dr = null; 
			} 
			finally 
			{ 
				//mySQL.Close(); 
				//mySQL = null;	 
			} 
			return 0; 
		}		 
		#endregion 
 
		#region 获得流程的表格样式描述 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 流程ID 
		/// 是否包括条件判断的字段 
		/// 返回表格 
		public int GetStyleDescription(long FlowID,int Judged,out DataTable dt ) 
		{ 
			//int iReturn=-1; 
			SqlDataReader dr; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@Judged",SqlDbType.Int ,4,0) 
										}; 
			 
			try 
			{ 
				mySQL.RunProc("sp_flow_getstyle_description",parameters,out dr);		 
				dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return 0; 
		}	 
		#endregion 
 
		////////////////////////////////////////////// 
		///				流程管理相关 
		////////////////////////////////////////////// 
 
		#region 添加流程 
		///  
		/// 添加流程 
		///  
		/// 流程名 
		/// 流程简介 
		/// 流程制定者 
		/// 流程自定义表单 
		public int AddFlow(string FlowName,string FlowRemark,string Builder,long StyleID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowName",SqlDbType.VarChar ,300,FlowName), 
											mySQL.MakeInParam("@FlowRemark",SqlDbType.NText ,3000,FlowRemark ), 
											mySQL.MakeInParam("@Builder",SqlDbType.VarChar,300,Builder), 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_AddFlow",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 删除流程 
		///  
		/// 删除流程 
		///  
		/// 被删除的流程ID 
		public int DeleteFlow(long FlowID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_DeleteFlow",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		}	 
		#endregion	 
 
		#region 修改流程 
		///  
		/// 修改流程 
		///  
		/// 流程ID 
		/// 流程名 
		/// 流程简介 
		/// 流程制定者 
		/// 流程自定义表单 
		public int UpdateFlow(long FlowID,string FlowName,string FlowRemark,string Builder,long StyleID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@FlowName",SqlDbType.VarChar ,300,FlowName), 
											mySQL.MakeInParam("@FlowRemark",SqlDbType.NText ,3000,FlowRemark ), 
											mySQL.MakeInParam("@Builder",SqlDbType.VarChar,300,Builder), 
											mySQL.MakeInParam("@StyleID",SqlDbType.Int ,4,StyleID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_UpdateFlow",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 得到流程基本信息 
		///  
		/// 得到流程基本信息 
		///  
		/// 流程ID 
		/// 返回表格 
		public int GetFlow(long FlowID,out DataTable dt) 
		{ 
			int iReturn=-1; 
			SqlDataReader dr; 
						 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID) 
										}; 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetFlow",parameters,out dr);		 
				iReturn = 0; 
				dt = Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
		#endregion 
 
		#region 得到流程名 
		///  
		/// 得到流程名 
		///  
		/// 流程ID 
		/// 返回表格 
		public string GetFlowTitle(long FlowID) 
		{			 
			string strReturn=""; 
			SqlDataReader dr; 
						 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID) 
										}; 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetFlow",parameters,out dr);								 
				if(dr.Read()) 
				{ 
					strReturn = "" + dr["Flow_Name"].ToString() + ""; 
				} 
				dr.Close(); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString());				 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return strReturn; 
		} 
 
		#endregion 
 
		////////////////////////////////////////////// 
		///				流程步骤管理相关 
		//////////////////////////////////////////////		 
				 
 
		#region 添加步骤 
		///  
		/// 添加步骤 
		/// 		 
		/// 步骤名 
		/// 步骤简介 
		/// 是否有权利结束 
		/// 流转规则 
		/// 会签数目		 
		public int AddStep(long FlowID,string StepName,string StepRemark,int RightToFinish,int FlowRule,int PassNum,int LocalAlert,int BaseHour,int CycTimes,int Period) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepName",SqlDbType.VarChar ,300,StepName), 
											mySQL.MakeInParam("@StepRemark",SqlDbType.NText ,3000,StepRemark), 
											mySQL.MakeInParam("@RightToFinish",SqlDbType.Bit,1,RightToFinish), 
											mySQL.MakeInParam("@FlowRule",SqlDbType.Int,4,FlowRule),									 
											mySQL.MakeInParam("@PassNum",SqlDbType.Int,4,PassNum), 
											mySQL.MakeInParam("@LocalAlert",SqlDbType.Bit,1,LocalAlert), 
											mySQL.MakeInParam("@BaseHour",SqlDbType.Int,4,BaseHour), 
											mySQL.MakeInParam("@CycTimes",SqlDbType.Int,4,CycTimes), 
											mySQL.MakeInParam("@Period",SqlDbType.Int,4,Period)								 
										}; 
			try 
			{				 
				iReturn = mySQL.RunProc("sp_Flow_AddStep",parameters);		 
			} 
			catch (Exception ex) 
			{ 
				UDS.Components.Error.Log(ex.ToString());							 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null; 
			} 
 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 删除步骤 
		///  
		/// 删除步骤 
		///  
		/// 被删除的步骤的流程ID 
		/// 被删除的步骤的步骤ID 
		public int DeleteStep(long FlowID,long StepID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_DeleteStep",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		}	 
		#endregion 
		 
		#region 修改步骤 
		///  
		/// 修改步骤 
		///  
		/// 流程ID 
		/// 步骤ID 
		/// 步骤名 
		/// 步骤简介 
		/// 是否有权利结束 
		/// 流转规则 
		/// 会签数目 
		public int UpdateStep(long FlowID,long StepID,string StepName,string StepRemark,int RightToFinish,int FlowRule,int PassNum,int LocalAlert,int BaseHour,int CycTimes,int Period) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID), 
											mySQL.MakeInParam("@StepName",SqlDbType.VarChar ,300,StepName), 
											mySQL.MakeInParam("@StepRemark",SqlDbType.NText ,3000,StepRemark), 
											mySQL.MakeInParam("@RightToFinish",SqlDbType.Bit,1,RightToFinish), 
											mySQL.MakeInParam("@FlowRule",SqlDbType.Int,4,FlowRule),									 
											mySQL.MakeInParam("@PassNum",SqlDbType.Int,4,PassNum), 
											mySQL.MakeInParam("@LocalAlert",SqlDbType.Bit,1,LocalAlert), 
											mySQL.MakeInParam("@BaseHour",SqlDbType.Int,4,BaseHour), 
											mySQL.MakeInParam("@CycTimes",SqlDbType.Int,4,CycTimes), 
											mySQL.MakeInParam("@Period",SqlDbType.Int,4,Period)								 
 
										}; 
			try 
			{				 
				iReturn = mySQL.RunProc("sp_Flow_UpdateStep",parameters);		 
			} 
			catch (Exception ex) 
			{ 
				UDS.Components.Error.Log(ex.ToString());							 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null; 
			} 
 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 上移步骤 
		///  
		/// 上移步骤 
		///  
		/// 流程ID 
		/// 步骤ID 
		public int MoveUpStep(long FlowID,long StepID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID) 
										}; 
			try 
			{				 
				iReturn = mySQL.RunProc("sp_Flow_MoveUpStep",parameters);		 
			} 
			catch (Exception ex) 
			{ 
				UDS.Components.Error.Log(ex.ToString());							 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null; 
			} 
 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 得到步骤基本信息 
		///  
		/// 得到步骤基本信息 
		///  
		/// 流程ID 
		/// 步骤ID 
		/// 返回表格 
		public int GetStep(long FlowID,long StepID,out DataTable dt) 
		{ 
			int iReturn=-1; 
			SqlDataReader dr; 
						 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID) 
										}; 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetStep",parameters,out dr);		 
				iReturn = 0; 
				dt = Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 得到流程的最大步骤 
		///  
		/// 得到流程的最大步骤 
		///  
		/// 流程ID 
		/// 最大步骤 
		public int GetMaxStep(long FlowID) 
		{ 
			int iReturn=-1; 
						 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID)											 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_GetMaxStep",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString());				 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 得到步骤名 
		///  
		/// 得到步骤名 
		///  
		/// 流程ID		 
		public string GetStepTitle(long FlowID,long StepID) 
		{			 
			string strReturn=""; 
			SqlDataReader dr; 
						 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID) 
										}; 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetStep",parameters,out dr);								 
				if(dr.Read()) 
				{ 
					strReturn = "" + dr["Step_Name"].ToString() + ""; 
				} 
				dr.Close(); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString());				 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return strReturn; 
		} 
 
		#endregion 
 
		////////////////////////////////////////////// 
		///				流程跳转管理相关 
		//////////////////////////////////////////////		 
				 
 
		#region 添加跳转 
		///  
		/// 添加跳转 
		///  
		/// 流程ID 
		/// 步骤ID 
		/// 字段名 
		/// 比较符号 
		/// 比较值 
		///  
		public int AddJump(long FlowID,long StepID,string FieldName,string Compare,double CompareValue,long ToStepID,int FlowRule) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID), 
											mySQL.MakeInParam("@FieldName",SqlDbType.VarChar  ,50,FieldName), 
											mySQL.MakeInParam("@Compare",SqlDbType.VarChar,50,Compare), 
											mySQL.MakeInParam("@CompareValue",SqlDbType.Float ,8,CompareValue), 
											mySQL.MakeInParam("@ToStepID",SqlDbType.Float ,8,ToStepID), 
											mySQL.MakeInParam("@FlowRule",SqlDbType.Int ,4,FlowRule) 
										}; 
			try 
			{				 
				iReturn = mySQL.RunProc("sp_Flow_AddJump",parameters);		 
			} 
			catch (Exception ex) 
			{ 
				UDS.Components.Error.Log(ex.ToString());							 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null; 
			} 
 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 删除跳转 
		///  
		/// 删除步骤 
		///  
		/// 被删除的跳转的流程ID 
		/// 被删除的跳转的步骤ID 
		/// 被删除的跳转的优先等级 
		public int DeleteJump(long FlowID,long StepID,long Priority) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID), 
											mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_DeleteJump",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
 
		}	 
		#endregion 
		 
		#region 修改跳转 
		///  
		/// 修改跳转 
		///  
		/// 流程ID 
		/// 步骤ID 
		/// 优先级 
		/// 字段名 
		/// 比较符号 
		/// 比较值 
		///  
		public int UpdateJump(long FlowID,long StepID,long Priority,string FieldName,string Compare,double CompareValue,long ToStepID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID), 
											mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority),	 
											mySQL.MakeInParam("@FieldName",SqlDbType.VarChar  ,50,FieldName), 
											mySQL.MakeInParam("@Compare",SqlDbType.VarChar,50,Compare), 
											mySQL.MakeInParam("@CompareValue",SqlDbType.Float ,8,CompareValue), 
											mySQL.MakeInParam("@ToStepID",SqlDbType.Float ,8,ToStepID)								 
										}; 
			try 
			{				 
				iReturn = mySQL.RunProc("sp_Flow_UpdateJump",parameters);		 
			} 
			catch (Exception ex) 
			{ 
				UDS.Components.Error.Log(ex.ToString());							 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null; 
			} 
 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 上移跳转 
		///  
		/// 上移跳转 
		///  
		/// 流程ID 
		/// 步骤ID 
		/// 优先级 
		public int MoveUpJump(long FlowID,long StepID,long Priority) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID), 
											mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority) 
										}; 
			try 
			{				 
				iReturn = mySQL.RunProc("sp_Flow_MoveUpJump",parameters);		 
			} 
			catch (Exception ex) 
			{ 
				UDS.Components.Error.Log(ex.ToString());							 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null; 
			} 
 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 得到跳转基本信息 
		///  
		/// 得到步骤基本信息 
		///  
		/// 流程ID 
		/// 步骤ID 
		/// 优先级 
		/// 返回表格 
		public int GetJump(long FlowID,long StepID,long Priority,out DataTable dt) 
		{ 
			int iReturn=-1; 
			SqlDataReader dr; 
						 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@FlowID",SqlDbType.Int ,4,FlowID), 
											mySQL.MakeInParam("@StepID",SqlDbType.Int ,4,StepID), 
											mySQL.MakeInParam("@Priority",SqlDbType.Int ,4,Priority) 
										}; 
			try 
			{ 
				mySQL.RunProc("sp_Flow_GetJump",parameters,out dr);		 
				iReturn = 0; 
				dt = Tools.ConvertDataReaderToDataTable(dr); 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
				dt = null; 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
 
		#endregion 
 
		////////////////////////////////////////////// 
		///				  其他杂项 
		////////////////////////////////////////////// 
 
		#region 处理消息 
		///  
		/// 获得流程的表格样式描述 
		///  
		/// 错误消息		 
		/// 文档ID		 
		public string DoMessage(int ErrorNum,long DocID,bool DefaultOperation) 
		{ 
			string ErrorMessage=""; 
 
			switch(ErrorNum) 
			{ 
				case 0: 
					ErrorMessage="成功"; 
					break; 
				case -1: 
					ErrorMessage="流程结束!"; 
					break; 
				case -2: 
					if(DefaultOperation==true) 
					{ 
						if(this.IsNewDocument(DocID)>0) 
							this.DeleteDocument(DocID); 
						else 
							this.CancelPostil(DocID); 
					} 
					ErrorMessage="没有职位上级"; 
					break; 
				case -3: 
					if(DefaultOperation==true) 
					{ 
						if(this.IsNewDocument(DocID)>0) 
							this.DeleteDocument(DocID); 
						else 
							this.CancelPostil(DocID); 
					} 
					ErrorMessage="没有项目上级"; 
					break; 
				case -4: 
					ErrorMessage="需要全体通过"; 
					break; 
				case -5: 
					ErrorMessage="通过人数不够"; 
					break; 
				case -6: 
					if(DefaultOperation==true) 
					{ 
						if(this.IsNewDocument(DocID)>0) 
							this.DeleteDocument(DocID); 
						else 
							this.CancelPostil(DocID); 
					} 
					ErrorMessage="该流程无你所在的环节"; 
					break; 
				case -7: 
					ErrorMessage="下一步骤没有成员"; 
					break; 
				default: 
					break; 
			} 
			return ErrorMessage; 
		} 
		#endregion 
 
		#region 获得文档的存在状态 
		///  
		/// 获得文档的存在状态 
		///  
		/// 被检查的文档ID 
		public int GetDocumentStatus(long DocID) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_GetDocumentStatus",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
		#endregion 
 
		#region 获得文档的操作状态 
		///  
		/// 获得文档的操作状态 
		///  
		/// 被检查的文档ID 
		public int GetDocumentStatus(long DocID,string UserName) 
		{ 
			int iReturn=-1; 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@StaffName",SqlDbType.VarChar ,300,UserName), 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID) 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_Flow_GetDocumentStatusByStaff",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString()); 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
		#endregion 
 
		#region 权限判断 
		///  
		/// 权限判断 
		///  
		/// 对象接点ID 
		/// 用户名 
		/// 权利代号 
		/// 是否有权利 1有 0无 
		public bool GetAccessPermission(int classID,string UserName,int actID) 
		{ 
			int flag = 0; 
			// 定义数据库操作类及DataReader 
			Database data = new Database(); 
				 
			// 执行存储过程,并返回SqlDataReader对象 
			SqlParameter[] prams = { 
									   data.MakeInParam("@Class_ID" , SqlDbType.Int, 20, classID), 
									   data.MakeInParam("@UserName" , SqlDbType.NVarChar, 20, UserName), 
									   data.MakeInParam("@Act_ID" , SqlDbType.Int, 20, actID), 
									   // data.MakeInParam("@Inheit" , SqlDbType.Bit, 1, 1),	 
									   data.MakeOutParam("@ReturnValue",SqlDbType.Int,20) 
								   }; 
			 
			try  
			{ 
				data.RunProc("sp_GetAccessPermission",prams); 
				flag = Int32.Parse(prams[3].Value.ToString()); 
				return (flag==1)?true:false; 
			} 
			catch(Exception ex) 
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("获取访问权出错",ex); 
			} 
			finally 
			{ 
				data	   = null; 
			} 
			 
		} 
 
		#endregion 
 
		#region 得到文档关联的流程 
		///  
		/// 得到文档关联的流程 
		///  
		/// 文档ID 
		/// 文档关联的流程ID 
		public int GetDocumentFlowID(long DocID) 
		{ 
			int iReturn=-1; 
						 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)											 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_GetDocumentFlowID",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString());				 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
 
		#endregion 
 
		#region 得到文档关联的步骤 
		///  
		/// 得到文档关联的步骤 
		///  
		/// 文档ID 
		/// 文档关联的流程ID 
		public int GetDocumentStepID(long DocID) 
		{ 
			int iReturn=-1; 
						 
			UDS.Components.Database mySQL = new UDS.Components.Database(); 
 
			SqlParameter[] parameters = { 
											mySQL.MakeInParam("@DocID",SqlDbType.Int ,4,DocID)											 
										}; 
			try 
			{ 
				iReturn = mySQL.RunProc("sp_GetDocumentStepID",parameters);		 
			} 
			catch(Exception e) 
			{ 
				Error.Log(e.ToString());				 
			} 
			finally 
			{ 
				mySQL.Close(); 
				mySQL = null;	 
			} 
			return iReturn; 
		} 
 
		#endregion 
 
	} 
	#endregion 
 
}