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

📄 floweditreceiver.aspx.cs

📁 ASP C#代码实例 适合初学人士学习使用
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using OfficeAuto.Components;

namespace OfficeAuto.DesktopModules.DocumentFlow
{
	/// <summary>
	/// FlowEditReceiver 的摘要说明。
	/// </summary>
	public class FlowEditReceiver : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.ListBox UserList;
		protected System.Web.UI.WebControls.Button AddBtn;
		protected System.Web.UI.WebControls.Button AddAllBtn;
		protected System.Web.UI.WebControls.ListBox ReceiverList;
		protected System.Web.UI.WebControls.ImageButton deleteBtn;
		protected System.Web.UI.WebControls.Button Button1;
		protected System.Web.UI.WebControls.Button Button2;
		protected System.Web.UI.WebControls.Button ReturnBtn;
	
		private int nDocFlowID = 0;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			///判断用户是否登录,否则跳转到登录页面
			if(Session["UserID"] == null)
			{
				Response.Redirect("~/Default.aspx");
			}

			if(Request.Params["FlowID"] != null)
			{
				nDocFlowID = Int32.Parse(Request.Params["FlowID"].ToString());
			}
			if(!Page.IsPostBack)
			{
				///绑定用户的数据
				BindUserData();

				///绑定当前流转的所有的用户
				if(nDocFlowID > 0)
				{
					BindFlowReceiverData(nDocFlowID);
				}
			}
		}

		private void BindUserData()
		{
			///获取数据
			StaffDB user = new StaffDB();
			SqlDataReader recu = user.GetStaffs();

			///绑定数据
			UserList.DataSource = recu;
			UserList.DataTextField = "RealName";
			UserList.DataValueField = "Staff_ID";
			UserList.DataBind();

			recu.Close();			
		}

		private void BindFlowReceiverData(int nDocFlowID)
		{
			///获取数据
			OfficeAuto.Components.FlowReceiver flowRece = new OfficeAuto.Components.FlowReceiver();
			SqlDataReader recfR = flowRece.GetReceiverByFlow(nDocFlowID);
			
			///绑定数据
			ReceiverList.DataSource = recfR;
			ReceiverList.DataTextField = "RealName";
			ReceiverList.DataValueField = "ReceiverID";
			ReceiverList.DataBind();

			recfR.Close();

			///获取所有接受文档用户的ID
			ArrayList receiverList = new ArrayList();
			foreach(ListItem item in ReceiverList.Items)
			{
				receiverList.Add(item.Value);
			}
			///保存更新前的接收人数据
			DocFlowDetails flowDetail = (DocFlowDetails)Session[Session.SessionID + DocFlowDetails.DocFlowDetail];
			flowDetail.ReceiverList = receiverList;
			Session[Session.SessionID + DocFlowDetails.DocFlowDetail] = flowDetail;
		}

		private void AddBtn_Click(object sender, System.EventArgs e)
		{
			if(UserList.SelectedIndex > -1)
			{
				///判定用户列表中是否存在将要添加的用户
				if(IsExistUser(ReceiverList,UserList.SelectedItem) == false)
				{
					ReceiverList.Items.Add(UserList.SelectedItem);
				}
				else
				{
					Response.Write("<script>alert(\"你选择的数据项已经存在,请重新选择!\")</script>");
				}
			}
			else
			{
				Response.Write("<script>alert(\"请选择你的数据项!\")</script>");
			}
		}

		/// <summary>
		/// 判定用户列表中是否存在将要添加的用户,
		/// 存在不添加,否则添加
		/// </summary>
		/// <param name="listBox" type="ListBox"></param>
		/// <param name="listItem" type="ListItem"></param>
		private bool IsExistUser(ListBox listBox,ListItem listItem)
		{
			bool isExist = false;
			if(listBox.Items.Count > 0)
			{
				for(int i = 0; i< listBox.Items.Count; i++)
				{
					///判定用户列表中是否存在将要添加的用户
					if(listItem.Text == listBox.Items[i].Text)
					{
						isExist = true;
						break;
					}
				}
			}
			return(isExist);
		}

		private void AddAllBtn_Click(object sender, System.EventArgs e)
		{
			///添加所有用户
			ReceiverList.Items.Clear();
			foreach(ListItem item in UserList.Items)
			{
				ReceiverList.Items.Add(item);
			}
		}

		private void deleteBtn_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			if(ReceiverList.SelectedIndex > -1)
			{
				///删除选择的用户
				ReceiverList.Items.Remove(ReceiverList.SelectedItem);
			}
			else
			{
				Response.Write("<script>alert(\"请选择你的数据项!\")</script>");
			}
		}

		private void FinishBtn_Click(object sender, System.EventArgs e)
		{
			if(Session[Session.SessionID + DocFlowDetails.DocFlowDetailEdit] != null)
			{
				///获取所有接受文档用户的ID
				ArrayList receiverList = new ArrayList();
				foreach(ListItem item in ReceiverList.Items)
				{
					receiverList.Add(item.Value);
				}
				///更新并保存数据
				DocFlowDetails flowDetail = (DocFlowDetails)Session[Session.SessionID + DocFlowDetails.DocFlowDetailEdit];
				flowDetail.ReceiverList = receiverList;
				Session[Session.SessionID + DocFlowDetails.DocFlowDetailEdit] = flowDetail;

				///完成设计
				DocFlow flow = new DocFlow();

				try
				{
					UpdateDocFlow(flow,flowDetail);
				}
				catch(Exception ex)
				{
					///更新操作回滚操作
					if(Session[Session.SessionID + DocFlowDetails.DocFlowDetail] != null)
					{
						///获取更新前的数据							
						DocFlowDetails flowDetailPrev = (DocFlowDetails)Session[Session.SessionID + DocFlowDetails.DocFlowDetail];
						UpdateDocFlow(flow,flowDetailPrev);
					}
					///显示错误信息
					Response.Write("<script>alert(\"公文流转设置错误,原因如下:" + ex.Message + "!\")</script>");	
				}

				///显示提示信息
				Response.Write("<script>alert(\"公文流转设置已经完成!!!\")</script>");				
			}
		}

		private void UpdateDocFlow(DocFlow flow,DocFlowDetails flowDetail)
		{
			flow.UpdateDocFlow(nDocFlowID,flowDetail.FlowName,flowDetail.FlowDesn,flowDetail.FlowMethodID);

			///添加公文流转中的所有文档
			OfficeAuto.Components.FlowDocument flowDoc = new OfficeAuto.Components.FlowDocument();
			///先删除已经存在的文档和流转之间的所有关系,为添加新的关系做准备
			flowDoc.DeleteDocumentByFlow(nDocFlowID);
			for(int i = 0; i < flowDetail.DocumentList.Count; i++)
			{
				flowDoc.AddFlowDocument(nDocFlowID,Int32.Parse(flowDetail.DocumentList[i].ToString()));
			}

			///添加公文流转中的所有接受人
			OfficeAuto.Components.FlowReceiver flowRece = new OfficeAuto.Components.FlowReceiver();
			///先删除已经存在的文档和接受者之间的所有关系,为添加新的关系做准备
			flowRece.DeleteReceiverByFlow(nDocFlowID);
			for(int j = 0; j < flowDetail.ReceiverList.Count; j++)
			{
				flowRece.AddFlowReceiver(nDocFlowID,Int32.Parse(flowDetail.ReceiverList[j].ToString()));
			}
		}

		private void CancelBtn_Click(object sender, System.EventArgs e)
		{
			///返回到创建公文流转的起始页面
			Response.Redirect("ViewFlow.aspx");
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.AddBtn.Click += new System.EventHandler(this.AddBtn_Click);
			this.AddAllBtn.Click += new System.EventHandler(this.AddAllBtn_Click);
			this.deleteBtn.Click += new System.Web.UI.ImageClickEventHandler(this.deleteBtn_Click);
			this.Button1.Click += new System.EventHandler(this.FinishBtn_Click);
			this.Button2.Click += new System.EventHandler(this.CancelBtn_Click);
			this.ReturnBtn.Click += new System.EventHandler(this.CancelBtn_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
	}
}

⌨️ 快捷键说明

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