using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraTab; using Lskj.Business; using Lskj.Business.Impl; using Lskj.Control; using Lskj.Control.BrowserSetting; using Lskj.Control.Model; using Lskj.Core; using Lskj.Model; using Lskj.PubArtworkDynamic.Control; using Lskj.Util; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Windows.Forms; namespace Lskj.PubArtworkDynamic { public partial class FrmMain : BaseForm { /// /// 模块类 /// public ViewModel MainViewModel; /// /// 左侧节点上方主键 /// private string leftTopGridIdValue { get { ModuleGridDetail moduleGridDetail = (ModuleGridDetail)MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0]; string rtnString = ""; DataRow dataRow = moduleGridDetail.TopGridEx.GridView.GetFocusedDataRow(); if (dataRow != null) { if (!string.IsNullOrEmpty(MainViewModel.MoudleMainObj.UploadIdValueField) && dataRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.UploadIdValueField)) { rtnString = dataRow[MainViewModel.MoudleMainObj.UploadIdValueField] + ""; } } return rtnString; } } /// /// 左侧节点上方主键 /// private string leftBottomGridIdValue { get { ModuleGridDetail moduleGridDetail = (ModuleGridDetail)MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0]; string rtnString = ""; DataRow dataRow = moduleGridDetail.BottomGridEx.GridView.GetFocusedDataRow(); if (dataRow != null) { if (!string.IsNullOrEmpty(MainViewModel.MoudleMainObj.UploadIdValueField) && dataRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.UploadIdValueField)) { rtnString = dataRow[MainViewModel.MoudleMainObj.UploadIdValueField] + ""; } } return rtnString; } } public FrmMain() { InitializeComponent(); Load += OnFrmMainLoad; } /// /// 动态链接库Model /// public DynamicDllModel SysModel; /// /// 底部左侧搜索 /// public MyControl BottomLeftSearchObj; /// /// 底部右侧搜索 /// public MyControl BottomRightSearchObj; #region 事件 /// /// 加载完成后 /// /// /// private void OnFrmMainLoad(object sender, EventArgs e) { try { MainViewModel = new ViewModel(SysModel) { LeftTabControl = tabControlLeft, RightTabControl = tabControlRight, BottomLeftGridEx = gmLeft_Control, BottomRightGridEx = gmRight_Control }; InitControls(MainViewModel); } catch (Exception ex) { MessageUtil.Show(ex.Message); } } /// /// 底部左侧右键菜单回调 /// /// /// private void OnRightMenuLeftCallBack(object sender, EventArgs e) { } /// /// 底部右侧右键菜单回调 /// /// /// private void OnRightMenuRightCallBack(object sender, EventArgs e) { } /// /// 分隔条位置改变 /// /// /// private void OnSplitterPositionChanged(object sender, EventArgs e) { if (sender == this.splitMainControl) { IniHelper.Write(string.Format("Step_spliterPositionMain_{0}", this.MainViewModel.SysModel.ModuleCode), this.splitMainControl.SplitterPosition + ""); } else if (sender == this.splitRightControl) { IniHelper.Write(string.Format("Step_spliterPositionRight_{0}", this.MainViewModel.SysModel.ModuleCode), this.splitRightControl.SplitterPosition + ""); } else if (sender == this.splitBottomControl) { IniHelper.Write(string.Format("Step_spliterPositionBottom_{0}", this.MainViewModel.SysModel.ModuleCode), this.splitBottomControl.SplitterPosition + ""); } } #endregion /// /// 初始化控件 /// private void InitControls(ViewModel mainViewModel) { InitializeSplitPosition(); InitBottomGrid(); InitLeftTabPages(mainViewModel.LeftDetailRows); InitRightTabPages(mainViewModel.RightDetailRows); InitDrag(); //初始化后刷新数据 ModuleGridDetail moduleGridDetail = MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail; moduleGridDetail.SearchButton.PerformClick(); tabControlLeft.TabControlObj.SelectedPageChanged += OnLeftTabControlPageChanged; tabControlRight.TabControlObj.SelectedPageChanged += OnRightTabControlPageChanged; } /// /// 初始化左侧页签 /// /// private void InitLeftTabPages(List gridDetailRows) { XtraTabPage mainPage = new XtraTabPage(); mainPage.Text = MainViewModel.SysModel.FormText; ModuleGridDetail mainGridDetail = new ModuleGridDetail(null, SysModel.OtherParams()); mainGridDetail.MainViewModel = MainViewModel; mainGridDetail.Dock = DockStyle.Fill; mainGridDetail.Tag = MainViewModel.SysModel; mainPage.Tag = mainGridDetail; mainPage.Controls.Add(mainGridDetail); tabControlLeft.TabControlObj.TabPages.Add(mainPage); foreach (DataRow item in gridDetailRows) { if ((item["orderId"] + "").Equals("99") || (item["orderId"] + "").Equals("100")) { continue; } GridDetailModel model = new GridDetailModel(item); model.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(model.UnionModule));//获取主模块构建类 XtraTabPage page = new XtraTabPage(); page.Text = model.DetailName; ModuleGridDetail moduleGridDetail = new ModuleGridDetail(model, SysModel.OtherParams()); moduleGridDetail.MainViewModel = MainViewModel; moduleGridDetail.Dock = DockStyle.Fill; moduleGridDetail.Tag = model; page.Tag = moduleGridDetail; page.Controls.Add(moduleGridDetail); tabControlLeft.TabControlObj.TabPages.Add(page); } } /// /// 初始化右侧页签 /// /// private void InitRightTabPages(List gridDetailRows) { foreach (DataRow item in gridDetailRows) { GridDetailModel model = new GridDetailModel(item); model.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(model.UnionModule));//获取主模块构建类 XtraTabPage page = new XtraTabPage(); page.Text = model.DetailName; ModuleGrid moduleGrid = new ModuleGrid(model); moduleGrid.MainViewModel = MainViewModel; moduleGrid.Dock = DockStyle.Fill; moduleGrid.Tag = model; page.Tag = moduleGrid; page.Controls.Add(moduleGrid); tabControlRight.TabControlObj.TabPages.Add(page); } } /// /// 初始化下方表格 /// private void InitBottomGrid() { gmLeft_Control.GridView.OptionsSelection.MultiSelect = false; gmLeft_Control.GridView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect; gmRight_Control.GridView.OptionsSelection.MultiSelect = false; gmRight_Control.GridView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect; //左侧 DataRow bottomLeftDetailRow = MainViewModel.LeftDetailRows.Where(n => (n["orderId"] + "").Equals("100")).FirstOrDefault(); if (bottomLeftDetailRow != null) { GridDetailModel bottomLeftModel = new GridDetailModel(bottomLeftDetailRow); gmLeft_Control.Tag = bottomLeftModel; bottomLeftModel.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(bottomLeftModel.UnionModule)); if (bottomLeftModel.IsReadOnly) { BottomLeftSearchObj = new MyControl(bottomLeftModel.DetailSql, gmLeft_Control);//构建主表mycontrol } else { BottomLeftSearchObj = new MyControl(bottomLeftModel.SystemModel.MenuSql, gmLeft_Control);//构建主表mycontrol } DataTable leftGridColumns = new DataTable(); if (!string.IsNullOrEmpty(bottomLeftModel.UnionModule)) { leftGridColumns = BaseModuleImpl.GetBaseGridColumns(bottomLeftModel.UnionModule); } else { leftGridColumns = ReportImpl.GetReportDetailColumns(MainViewModel.SysModel.ModuleCode, bottomLeftModel.Id + ""); } gmLeft_Control.GridView.OptionsBehavior.Editable = false; gmLeft_Control.SetReadOnlyColumns(leftGridColumns, GridCustomColumnStruct.BaseMainGridView + bottomLeftModel.FormKey);//明细 DynamicModel leftDyncModel = new DynamicModuleModel(new string[] { bottomLeftModel.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, MainViewModel.SysModel.Privilege, bottomLeftModel.UnionModule, "0" }); if (!string.IsNullOrEmpty(bottomLeftModel.SystemModel.ModeCode)) { gmLeft_Control.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(bottomLeftModel.SystemModel.ModeCode), leftDyncModel, OnRightMenuLeftCallBack, BottomLeftSearchObj); } else if (!string.IsNullOrEmpty(bottomLeftModel.FormKey)) { gmLeft_Control.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(bottomLeftModel.FormKey), leftDyncModel, OnRightMenuLeftCallBack, BottomLeftSearchObj); } //绑定行改变事件 gmLeft_Control.GridView.FocusedRowChanged += OnGmLeftGridViewFocusedRowChanged; //BottomLeftSearchObj.SearchGrid(); //右侧 DataTable bottomRightDetailRows = BaseModuleImpl.GetBaseDetailPages(bottomLeftModel.UnionModule);//获取关联模块配置明细 DataRow bottomRightDetailRow = bottomRightDetailRows.Rows.Count > 0 ? bottomRightDetailRows.Rows[0] : null; if (bottomRightDetailRow != null) { GridDetailModel bottomRightModel = new GridDetailModel(bottomRightDetailRow); gmRight_Control.Tag = bottomRightModel; bottomRightModel.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(bottomRightModel.UnionModule)); if (bottomRightModel.IsReadOnly) { BottomRightSearchObj = new MyControl(bottomRightModel.DetailSql, gmRight_Control);//构建主表mycontrol } else { BottomRightSearchObj = new MyControl(bottomRightModel.SystemModel.MenuSql, gmRight_Control);//构建主表mycontrol } DataTable rightGridColumns = new DataTable(); if (!string.IsNullOrEmpty(bottomRightModel.UnionModule)) { rightGridColumns = BaseModuleImpl.GetBaseGridColumns(bottomRightModel.UnionModule); } else { rightGridColumns = ReportImpl.GetReportDetailColumns(MainViewModel.SysModel.ModuleCode, bottomRightModel.Id + ""); } gmRight_Control.GridView.OptionsBehavior.Editable = false; gmRight_Control.SetReadOnlyColumns(rightGridColumns, GridCustomColumnStruct.BaseMainGridView + bottomRightModel.FormKey);//明细 DynamicModel rightDyncModel = new DynamicModuleModel(new string[] { bottomRightModel.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, MainViewModel.SysModel.Privilege, bottomRightModel.UnionModule, "0" }); if (!string.IsNullOrEmpty(bottomRightModel.SystemModel.ModeCode)) { gmRight_Control.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(bottomRightModel.SystemModel.ModeCode), rightDyncModel, OnRightMenuRightCallBack, BottomRightSearchObj); } else if (!string.IsNullOrEmpty(bottomRightModel.FormKey)) { gmRight_Control.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(bottomRightModel.FormKey), rightDyncModel, OnRightMenuRightCallBack, BottomRightSearchObj); } //BottomRightSearchObj.SearchGrid(); } if (bottomLeftDetailRow != null && bottomRightDetailRow != null) { splitBottomControl.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Both; } else if (bottomLeftDetailRow != null && bottomRightDetailRow == null) { splitBottomControl.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Panel1; } else if (bottomLeftDetailRow == null && bottomRightDetailRow == null) { splitBottomControl.Visible = false; } } } /// /// 初始化拖拽 /// private void InitDrag() { ////右上方向底部拖拽,经沟通不使用 //foreach (XtraTabPage xtraTabPage in tabControlRight.TabControlObj.TabPages) //{ // ModuleGrid moduleGrid = (ModuleGrid)xtraTabPage.Controls[0]; // //右上方向底部左侧拖拽 // GridDragGrid dragTopToBottomLeftGrid = new GridDragGrid(moduleGrid.MainGridEx.GridView, gmLeft_Control.GridView); // dragTopToBottomLeftGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragToBottomLeftGridCompleted); // //右上方向底部右侧侧拖拽 // GridDragGrid dragTopToBottomRightGrid = new GridDragGrid(moduleGrid.MainGridEx.GridView, gmRight_Control.GridView); // dragTopToBottomRightGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragToBottomRightGridCompleted); //} //右上方向左侧拖拽 foreach (XtraTabPage xtraTabPage in tabControlRight.TabControlObj.TabPages) { ModuleGrid moduleGrid = (ModuleGrid)xtraTabPage.Controls[0]; foreach (XtraTabPage leftXtraTabPage in tabControlLeft.TabControlObj.TabPages) { ModuleGridDetail moduleGridDetail = (ModuleGridDetail)leftXtraTabPage.Controls[0]; //向左侧上方拖拽 if (moduleGridDetail.DragDirection==0|| moduleGridDetail.DragDirection == 1) { GridDragGrid dragTopToLeftTopGrid = new GridDragGrid(moduleGrid.MainGridEx.GridView, moduleGridDetail.TopGridEx.GridView); dragTopToLeftTopGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragToLeftTopGridCompleted); } //向左侧下方拖拽 if (moduleGridDetail.DragDirection == 0 || moduleGridDetail.DragDirection == 2) { GridDragGrid dragTopToLeftBottomGrid = new GridDragGrid(moduleGrid.MainGridEx.GridView, moduleGridDetail.BottomGridEx.GridView); dragTopToLeftBottomGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragToLeftBottomGridCompleted); } } } //底部左侧向右上方拖拽 foreach (XtraTabPage xtraTabPage in tabControlRight.TabControlObj.TabPages) { ModuleGrid moduleGrid = (ModuleGrid)xtraTabPage.Controls[0]; GridDragGrid dragBottomLeftToTopGrid = new GridDragGrid(gmLeft_Control.GridView, moduleGrid.MainGridEx.GridView); dragBottomLeftToTopGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragBottomLeftToTopGridCompleted); } } /// /// 移动文件 /// /// private bool MoveFile(DataRow rowItem, string sid, string tid, out string Msg, string typeid = "", string ver = "") { bool isMove = false; Msg = ""; string postUrl = ""; try { string fileId = rowItem["fileId"] + ""; string sNameSql = $"select vName from P_fm_FileTab where fileId = '{rowItem["fileId"]}'"; string sName = BaseImpl.GetResult(sNameSql) + ""; if (string.IsNullOrEmpty(typeid)) { postUrl = "{0}Api/FileUploadApi.ashx?moduleId={1}&filename={2}&sid={3}&tid={4}&username={5}&userid={6}&method={7}"; postUrl = string.Format(postUrl, SystemInfo.Instance.OAUrl, SysModel.ModuleCode, sName, sid, tid, ERPInfo.Instance.UserName, ERPInfo.Instance.UserId, "MoveFileTo"); } else { postUrl = "{0}Api/FileUploadApi.ashx?moduleId={1}&filename={2}&sid={3}&tid={4}&username={5}&userid={6}&typeid={7}&ver={8}&method={9}"; postUrl = string.Format(postUrl, SystemInfo.Instance.OAUrl, SysModel.ModuleCode, sName, sid, tid, ERPInfo.Instance.UserName, ERPInfo.Instance.UserId, typeid, ver, "MoveFileTo"); } HttpTools.setting("application/x-www-form-urlencoded", null, null); string result = ""; CookieCollection cookieCollection = null; HttpWebResponse webResponse = HttpTools.Post(postUrl, null, null, HttpTools.Method.POST, out cookieCollection, out result); if (webResponse != null && !string.IsNullOrEmpty(result)) { JObject jsonObject = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(result); string isSuccess = jsonObject["success"] + ""; if (isSuccess.Equals("True", StringComparison.CurrentCultureIgnoreCase)) { string searchSql = @"update P_fm_FileTab set Pid='{1}' where dllcoid = '{0}' and fileId='{2}' "; searchSql = string.Format(searchSql, this.MainViewModel.SysModel.ModuleCode, tid, fileId); SqlHelper.ExecuteNonQuery(searchSql); isMove = true; } else { if (jsonObject.ContainsKey("msg")) { Msg = jsonObject["msg"] + ""; } isMove = false; } } else { isMove = false; Msg = "上传请求失败"; } } catch (Exception ex) { Msg = ex.Message; isMove = false; } return isMove; } /// /// 获取查询条件 /// /// /// /// public string GetSearchSql(GridDetailModel model, DataRow rowItem) { string fieldName = !string.IsNullOrEmpty(model.UnionParentField) && rowItem.Table.Columns.Contains(model.UnionParentField) ? model.UnionParentField : MainViewModel.MoudleMainObj.ParmaryKey; string sqlValue = model.IsReadOnly || model.IsChart ? model.DetailSql : model.SystemModel.MenuSql; sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, sqlValue); if (ReplaceHelper.IsSelect(sqlValue) && !string.IsNullOrEmpty(model.UnionValue)) { sqlValue = ReplaceHelper.ReplaceWhereCond(sqlValue) + string.Format(" and {0}='{1}'", model.UnionValue, rowItem[fieldName] + ""); } if (!string.IsNullOrEmpty(model.UnionCond)) { string UnionCond = ReplaceHelper.ReplaceRowParam(rowItem, model.UnionCond); sqlValue += UnionCond; } return sqlValue; } /// /// 初始化分隔条 /// private void InitializeSplitPosition() { this.splitMainControl.SplitterPositionChanged += new EventHandler(OnSplitterPositionChanged); this.splitRightControl.SplitterPositionChanged += new EventHandler(OnSplitterPositionChanged); this.splitBottomControl.SplitterPositionChanged += new EventHandler(OnSplitterPositionChanged); string mianSpliterPosition = IniHelper.Read(string.Format("Step_spliterPositionMain_{0}", this.MainViewModel.SysModel.ModuleCode)); if (!string.IsNullOrEmpty(mianSpliterPosition)) this.splitMainControl.SplitterPosition = Convert.ToInt32(mianSpliterPosition); string rightSpliterPosition = IniHelper.Read(string.Format("Step_spliterPositionRight_{0}", this.MainViewModel.SysModel.ModuleCode)); if (!string.IsNullOrEmpty(rightSpliterPosition)) this.splitRightControl.SplitterPosition = Convert.ToInt32(rightSpliterPosition); string bottomSpliterPosition = IniHelper.Read(string.Format("Step_spliterPositionBottom_{0}", this.MainViewModel.SysModel.ModuleCode)); if (!string.IsNullOrEmpty(bottomSpliterPosition)) this.splitBottomControl.SplitterPosition = Convert.ToInt32(bottomSpliterPosition); } /// /// 向左侧上方拖拽完成时 /// /// /// private void OnDragToLeftTopGridCompleted(object sender, GridDragGridArgs e) { ModuleGridDetail moduleGridDetail = this.tabControlLeft.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail; try//拖拽后执行文件分配 { int[] selectRowIndexs = e.SourceGridViewObj.GetSelectedRows(); DataRow[] selectRows = new DataRow[selectRowIndexs.Length]; for (int i = 0; i < selectRowIndexs.Length; i++) { selectRows[i] = e.SourceGridViewObj.GetDataRow(selectRowIndexs[i]); } if (selectRows == null || selectRows.Length == 0) return; DataRow targetRow = moduleGridDetail.TopGridEx.GetViewFocusedDataRow(); int[] records = new int[selectRows.Length]; string resultStr = string.Empty; string result = string.Empty; for (int i = 0; i < selectRows.Length; i++) { try { records[i] = ReplaceHelper.ReplaceRowParamCond(targetRow, MainViewModel.MoudleMainObj.DragCond) ? 1 : 0; } catch { records[i] = 0; } if (records[i] == 0) { resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], "不满足移动条件"); continue; } string sid = targetRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.MoveIdValueField) ? targetRow[MainViewModel.MoudleMainObj.MoveIdValueField] + "" : ""; bool isMove = MoveFile(selectRows[i], this.leftTopGridIdValue, sid, out result); if (!isMove) { resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], result); } } if (!string.IsNullOrEmpty(resultStr)) { MessageUtil.Show(resultStr); } } catch (Exception ex) { MessageUtil.Show(ex.Message); } finally { int focusedTopRowHandle = moduleGridDetail.TopGridEx.GridView.FocusedRowHandle; int focusedBottomRowHandle = moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle; moduleGridDetail.SearchMainObj.SearchLastGrid(); moduleGridDetail.RefushLeftDetail(); moduleGridDetail.TopGridEx.GridView.FocusedRowHandle = focusedTopRowHandle; moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle = focusedBottomRowHandle; moduleGridDetail.OnGridViewRowClick(null, null); } } /// /// 向左侧下方拖拽完成时 /// /// /// private void OnDragToLeftBottomGridCompleted(object sender, GridDragGridArgs e) { ModuleGridDetail moduleGridDetail = this.tabControlLeft.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail; try//拖拽后执行文件分配 { int[] selectRowIndexs = e.SourceGridViewObj.GetSelectedRows(); DataRow[] selectRows = new DataRow[selectRowIndexs.Length]; for (int i = 0; i < selectRowIndexs.Length; i++) { selectRows[i] = e.SourceGridViewObj.GetDataRow(selectRowIndexs[i]); } if (selectRows == null || selectRows.Length == 0) return; DataRow[] targetRows = new DataRow[] { moduleGridDetail.BottomGridEx.GetViewFocusedDataRow() }; if (selectRows.Length > 0 && targetRows.Length > 0) { int[,] records = new int[selectRows.Length, targetRows.Length]; string resultStr = string.Empty; string result = string.Empty; for (int i = 0; i < selectRows.Length; i++) { for (int j = 0; j < targetRows.Length; j++) { try { DataRow targetRow = targetRows[j]; records[i, j] = ReplaceHelper.ReplaceRowParamCond(targetRow, MainViewModel.MoudleMainObj.DragCond) ? 1 : 0; string sid = targetRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.MoveIdValueField) ? targetRow[MainViewModel.MoudleMainObj.MoveIdValueField] + "" : ""; bool isMove = MoveFile(selectRows[i], this.leftTopGridIdValue, sid, out result); if (!isMove) { resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], result); } } catch { records[i, j] = 0; } if (records[i, j] == 0) { resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], "不满足移动条件"); continue; } } } if (!string.IsNullOrEmpty(resultStr)) { MessageUtil.Show(resultStr); } } } catch (Exception ex) { MessageUtil.Show(ex.Message); } finally { int focusedTopRowHandle = moduleGridDetail.TopGridEx.GridView.FocusedRowHandle; int focusedBottomRowHandle = moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle; moduleGridDetail.SearchMainObj.SearchLastGrid(); moduleGridDetail.RefushLeftDetail(); moduleGridDetail.TopGridEx.GridView.FocusedRowHandle = focusedTopRowHandle; moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle = focusedBottomRowHandle; moduleGridDetail.OnGridViewRowClick(null, null); } } /// /// 下方左侧向上方拖拽完成时 /// /// /// private void OnDragBottomLeftToTopGridCompleted(object sender, GridDragGridArgs e) { ModuleGridDetail moduleGridDetail = this.tabControlLeft.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail; try//拖拽后执行文件分配 { int[] selectRowIndexs = e.SourceGridViewObj.GetSelectedRows(); DataRow[] selectRows = new DataRow[selectRowIndexs.Length]; for (int i = 0; i < selectRowIndexs.Length; i++) { selectRows[i] = e.SourceGridViewObj.GetDataRow(selectRowIndexs[i]); } if (selectRows == null || selectRows.Length == 0) return; DataRow targetRow = moduleGridDetail.TopGridEx.GetViewFocusedDataRow(); int[] records = new int[selectRows.Length]; string resultStr = string.Empty; string result = string.Empty; for (int i = 0; i < selectRows.Length; i++) { try { records[i] = ReplaceHelper.ReplaceRowParamCond(targetRow, MainViewModel.MoudleMainObj.DragCond) ? 1 : 0; } catch { records[i] = 0; } if (records[i] == 0) { resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], "不满足移动条件"); continue; } string sid = selectRows[i]["Pid"] + ""; string tid = targetRow.Table.Columns.Contains(MainViewModel.MoudleMainObj.UploadIdValueField) ? targetRow[MainViewModel.MoudleMainObj.UploadIdValueField] + "" : ""; bool isMove = MoveFile(selectRows[i], sid, tid, out result); if (!isMove) { resultStr += string.Format("文件{0}移动失败,原因:{1}\r\n", selectRows[i]["name"], result); } } if (!string.IsNullOrEmpty(resultStr)) { MessageUtil.Show(resultStr); } } catch (Exception ex) { MessageUtil.Show(ex.Message); } finally { int focusedTopRowHandle = moduleGridDetail.TopGridEx.GridView.FocusedRowHandle; int focusedBottomRowHandle = moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle; moduleGridDetail.SearchMainObj.SearchLastGrid(); moduleGridDetail.RefushLeftDetail(); moduleGridDetail.TopGridEx.GridView.FocusedRowHandle = focusedTopRowHandle; moduleGridDetail.BottomGridEx.GridView.FocusedRowHandle = focusedBottomRowHandle; moduleGridDetail.OnGridViewRowClick(null, null); } } /// /// 底部左侧行选中改变时刷新右侧数据 /// /// /// private void OnGmLeftGridViewFocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { GridView gridView = (GridView)sender; DataRow rowItem = gridView.GetFocusedDataRow(); GridDetailModel gridDetailRightModel = gmRight_Control.Tag != null && gmRight_Control.Tag is GridDetailModel ? gmRight_Control.Tag as GridDetailModel : null; if (gridDetailRightModel != null) { string searchSql = this.GetSearchSql(gridDetailRightModel, rowItem); DataTable table = MainImpl.GetDataTableResult(searchSql); this.gmRight_Control.LastSearchSql = searchSql; this.gmRight_Control.SetGridViewDataSource(table); } } /// /// 左侧页签选中改变时 /// /// /// private void OnLeftTabControlPageChanged(object sender, TabPageChangedEventArgs e) { ModuleGridDetail moduleGridDetail = MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail; moduleGridDetail.SearchButton.PerformClick(); } /// /// 右侧页签选中改变时 /// /// /// private void OnRightTabControlPageChanged(object sender, TabPageChangedEventArgs e) { ModuleGridDetail moduleGridDetail = MainViewModel.LeftTabControl.TabControlObj.SelectedTabPage.Controls[0] as ModuleGridDetail; moduleGridDetail.RefushWaitDetail(); } } }