📄 floweditreceiver.aspx.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 + -