using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using Business = SuperMap.RealEstate.Finance.Running.Business; using WFSB = SuperMap.RealEstate.WorkFlow.Support.Business; namespace SuperMap.RealEstate.Finance.Compents.ProinstCompact { public partial class CompactSign : UserControl { Running.Business.FINANCEPROINST _FINANCEPROINST = null; protected override void OnInit(EventArgs e) { base.OnInit(e); _FINANCEPROINST = Running.Business.FINANCEPROINST.CreateInstance(Page); } protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; USER_IDS.Clear(); if (!string.IsNullOrEmpty(ACTDEF_ID.SelectedValue)) { foreach (DataRow _DataRow in _FINANCEPROINST.ExecuteDataTable(@"SELECT * FROM PLATFORM_FRAMEWORK.T_USER A WHERE EXISTS(SELECT 1 FROM WORKFLOW_SUPPORT.T_ROLE B,WORKFLOW_SUPPORT.T_USERROLE C WHERE A.USER_ID = C.USER_ID AND B.ROLE_ID = C.ROLE_ID AND B.ACTDEF_ID = " + ACTDEF_ID.SelectedValue + ")").Rows) { ListItemEx _ListItem = new ListItemEx(); _ListItem.Text = _DataRow["USER_NAME"].ToString(); _ListItem.Value = _DataRow["USER_ID"].ToString(); USER_IDS.Items.Add(_ListItem); } if (CurrObject.PropertyObject != null && CurrObject.USER_IDS != null) { USER_IDS.SelectedValue = CurrObject.USER_IDS; } } } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { } public override bool LoadData() { bool Flag = true; SearchParameter _SearchParameter = new SearchParameter(); this.CurrObject.AddSearchParameter("FINANCEPROINST_ID", _FINANCEPROINST.FINANCEPROINST_ID); Running.Business.PROINSTCOMPACT _PROINSTCOMPACT = new Business.PROINSTCOMPACT(CurrObject); _PROINSTCOMPACT.AddSearchParameter("FINANCEPROINST_ID", _FINANCEPROINST.FINANCEPROINST_ID); if (_PROINSTCOMPACT.Search()) { CurrObject.AddSearchParameter("TENDER_ID", _PROINSTCOMPACT.PROINSTCOMPACT_ID); } ACTDEF_ID.Items.Clear(); if (ModifyType == ModifyTypeEnum.ReadOnly || ModifyType == ModifyTypeEnum.ReadOnlyVisible) { foreach (WorkFlow.Support.Business.ActDef _ActDef in new WorkFlow.Support.Business.ActDef(CurrObject).FillCollection( "WHERE ACTDEF_ID = " + _FINANCEPROINST.ProInst.NowActInst.ActDef_ID)) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = _ActDef.ActDef_Name; _ListItemEx.Value = _ActDef.ActDef_ID.ToString(); ACTDEF_ID.Items.Add(_ListItemEx); CurrObject.SearchParameters.Remove(_SearchParameter); _SearchParameter.Name = "ACTDEF_ID"; _SearchParameter.Value = _ActDef.ActDef_ID; CurrObject.SearchParameters.Add(_SearchParameter); //CurrObject.AddSearchParameter("ACTDEF_ID", _ActDef.ActDef_ID); if (this.CurrObject.Search() && Flag) { this.BindObjectToControl(); Flag = false; break; } } } else { foreach (WorkFlow.Support.Business.ActDef _ActDef in new WorkFlow.Support.Business.ActDef(CurrObject).FillCollection( "WHERE ACTDEF_ID IN (SELECT NEXTACTDEF_ID FROM WORKFLOW_SUPPORT.T_ROUTE WHERE ACTDEF_ID = " + _FINANCEPROINST.ProInst.NowActInst.ActDef_ID + ")")) { if (_ActDef.ActDef_Type.ToInt32() == 3020) { foreach (WFSB.ActDef _NextActDef in new WFSB.ActDef(CurrObject).FillCollection( "WHERE ACTDEF_ID IN (SELECT NEXTACTDEF_ID FROM WORKFLOW_SUPPORT.T_ROUTE WHERE ACTDEF_ID = " + _ActDef.ActDef_ID + ")")) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = _NextActDef.ActDef_Name; _ListItemEx.Value = _NextActDef.ActDef_ID.ToString(); ACTDEF_ID.Items.Add(_ListItemEx); CurrObject.SearchParameters.Remove(_SearchParameter); _SearchParameter.Name = "ACTDEF_ID"; _SearchParameter.Value = _NextActDef.ActDef_ID; CurrObject.SearchParameters.Add(_SearchParameter); //CurrObject.AddSearchParameter("ACTDEF_ID", _NextActDef.ActDef_ID); if (this.CurrObject.Search() && Flag) { this.BindObjectToControl(); Flag = false; } } } else { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = _ActDef.ActDef_Name; _ListItemEx.Value = _ActDef.ActDef_ID.ToString(); ACTDEF_ID.Items.Add(_ListItemEx); CurrObject.SearchParameters.Remove(_SearchParameter); _SearchParameter.Name = "ACTDEF_ID"; _SearchParameter.Value = _ActDef.ActDef_ID; CurrObject.SearchParameters.Add(_SearchParameter); //CurrObject.AddSearchParameter("ACTDEF_ID", _ActDef.ActDef_ID); if (this.CurrObject.Search() && Flag) { this.BindObjectToControl(); Flag = false; } } } } return true; } public override bool LoadDataEx(Web.UI.WebControls.ClientSetEventArgs ClientSet) { return base.LoadDataEx(ClientSet); } //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { CurrObject.ACTINST_ID = int.Parse(_FINANCEPROINST.ProInst.NowActInst.ActInst_ID.ToString()); e.CurrObject.FINANCEPROINST_ID = _FINANCEPROINST.FINANCEPROINST_ID; Running.Business.PROINSTCOMPACT _PROINSTCOMPACT = new Business.PROINSTCOMPACT(CurrObject); _PROINSTCOMPACT.AddSearchParameter("FINANCEPROINST_ID", _FINANCEPROINST.FINANCEPROINST_ID); if (_PROINSTCOMPACT.Search()) { CurrObject.TENDER_ID = _PROINSTCOMPACT.PROINSTCOMPACT_ID; TENDER_ID.Text = _PROINSTCOMPACT.PROINSTCOMPACT_ID.ToString(); } else { throw new Exception("请保存合同信息后再填写会审人员!"); } if (string.IsNullOrEmpty(CurrObject.USER_IDS)) { throw new Exception("请选择会审人员后,再点击保存!"); } else { string _USER_NAMES = ""; foreach (FrameWork.Business.User _User in new FrameWork.Business.User(CurrObject).FillCollection( "WHERE USER_ID IN (" + CurrObject.USER_IDS + ")")) { _USER_NAMES += (string.IsNullOrEmpty(_USER_NAMES) ? "" : ",") + _User.User_Name; } USER_NAMES.Text = _USER_NAMES; CurrObject.USER_NAMES = _USER_NAMES; } base.OnDataAction_BeforeSave(e); } public override void OnDataAction_AfterSave(DataActionEventArgs e) { base.OnDataAction_AfterSave(e); } protected void ACTDEF_ID_CallBackSetControl(object sender, ClientSetEventArgs e) { USER_IDS.Clear(); if (!string.IsNullOrEmpty(e.Argument)) { foreach (DataRow _DataRow in _FINANCEPROINST.ExecuteDataTable(@"SELECT * FROM PLATFORM_FRAMEWORK.T_USER A WHERE EXISTS(SELECT 1 FROM WORKFLOW_SUPPORT.T_ROLE B,WORKFLOW_SUPPORT.T_USERROLE C WHERE A.USER_ID = C.USER_ID AND B.ROLE_ID = C.ROLE_ID AND B.ACTDEF_ID = " + ACTDEF_ID.SelectedValue + ")").Rows) { ListItemEx _ListItem = new ListItemEx(); _ListItem.Text = _DataRow["USER_NAME"].ToString(); _ListItem.Value = _DataRow["USER_ID"].ToString(); USER_IDS.Items.Add(_ListItem); } e.SetDropDownListEx(USER_IDS); } } } }