⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 workflowbll.cs

📁 ASP.NET+VML开发的工作流图软件
💻 CS
字号:
using System;

namespace VML.WorkFlow
{
	/// <summary>
	/// WorkFlowBLL 的摘要说明。
	/// </summary>
	public class WorkFlowBLL
	{
		public WorkFlowBLL()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}

		public  System.Xml.XmlDataDocument TransWorkFlowMap(int WorkFlowID)
		{
			//取得原有系统的工作流程数
			VML.OnlySp.Flow data=new VML.OnlySp.Flow();
			VML.WorkFlow.WorkFlow WorkFlowmap=new WorkFlow();
			data.ReadXml(System.Web.HttpContext.Current.Request.MapPath("WorkFlowData.xml"));
			//data=new VML.WorkFlow.WorkFlowDAL().GetFlowItems(WorkFlowID);
			//将数据转化为现在格式
				this.TransData(WorkFlowmap,data);
			System.Xml.XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument(WorkFlowmap);	
			return	xmlDoc;
		}

		/// <summary>
		/// 建立新的流程的初始数据
		/// </summary>
		/// <returns></returns>
		public  System.Xml.XmlDataDocument CreateEmptyFlowData()
		{
			//可考虑加入起始节点
			VML.WorkFlow.WorkFlow WorkFlowmap=new WorkFlow();
			//加入起始节点
			VML.WorkFlow.WorkFlow.WorkFlowItemRow ItemR=WorkFlowmap.WorkFlowItem.NewWorkFlowItemRow();
			//转换为现有对象属性
			ItemR.ItemID=0;
			ItemR.Name="开始节点";
			ItemR.LimiteDate="0";
			ItemR.PosX="1000px";
			ItemR.PosY="1400px";
			WorkFlowmap.WorkFlowItem.Rows.Add(ItemR);
			//加入结束点
			VML.WorkFlow.WorkFlow.WorkFlowItemRow ItemEndR=WorkFlowmap.WorkFlowItem.NewWorkFlowItemRow();
			//转换为现有对象属性
			ItemEndR.ItemID=-1;
			ItemEndR.Name="结否节点";
			ItemEndR.LimiteDate="0";
			ItemEndR.PosX="5000px";
			ItemEndR.PosY="1400px";
			WorkFlowmap.WorkFlowItem.Rows.Add(ItemEndR);
			System.Xml.XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument(WorkFlowmap);	
			return	xmlDoc;
		}

		/// <summary>
		/// 保存数据到数据库
		/// </summary>
		/// <param name="XMLData"></param>
		public void SaveWorkFlowData(string XMLData)
		{
			VML.OnlySp.Flow data=new VML.OnlySp.Flow();
			System.Xml.XmlDocument doc=new System.Xml.XmlDocument();
			doc.LoadXml(XMLData);
			doc.Save(System.Web.HttpContext.Current.Request.MapPath("WorkFlowData.xml"));
			
		}


		private void TransData(VML.WorkFlow.WorkFlow WorkFlowmap,
			VML.OnlySp.Flow data)
		{
			//因为我不需要位置信息了,所以呢,可以顺序读取。
			foreach(VML.OnlySp.Flow.OnlySp_FlowDetailRow FlowR in data.OnlySp_FlowDetail.Rows)
			{
				VML.WorkFlow.WorkFlow.WorkFlowItemRow ItemR=WorkFlowmap.WorkFlowItem.NewWorkFlowItemRow();
				//转换为现有对象属性
				ItemR.ItemID=FlowR.DepartID;
				ItemR.Name=FlowR.Name;
				ItemR.LimiteDate=FlowR.LimiteDate.ToString();
				ItemR.PosX=FlowR.PosX;
				ItemR.PosY=FlowR.PosY;
				WorkFlowmap.WorkFlowItem.Rows.Add(ItemR);
				//取得前置部门集合
				string[] priDepIDs=FlowR.PriDepID.Split(',');//更正无前置时的错误
				if(FlowR.PriDepID!="")
				{
					foreach(string depID in priDepIDs)
					{
						//增加关系
						VML.WorkFlow.WorkFlow.RelationRow RelR=WorkFlowmap.Relation.NewRelationRow();
						RelR.MasterItem=int.Parse(depID);
						RelR.SecondItem=FlowR.DepartID;
						WorkFlowmap.Relation.Rows.Add(RelR);
					}
				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -