diff --git a/插件库/Lskj.Control/ModuleGridEx.cs b/插件库/Lskj.Control/ModuleGridEx.cs index 167d95d..d9badeb 100644 --- a/插件库/Lskj.Control/ModuleGridEx.cs +++ b/插件库/Lskj.Control/ModuleGridEx.cs @@ -455,7 +455,7 @@ namespace Lskj.Control /// /// 附加模块关联主表的树型模式 /// - public bool AdditionalAssociatedMain=false; + public bool AdditionalAssociatedMain = false; /// @@ -942,7 +942,21 @@ namespace Lskj.Control this.panelControl1.Controls.Add(this.gcMain); } - + //如果配置了聚合模式则构建多表头覆盖当前表格 + if (SysModel.IsCustomGroup == 1) + { + BandedGridControlEx bandedGridControlEx = new BandedGridControlEx(); + bandedGridControlEx.moduleModel = this.SysModel; + bandedGridControlEx.Model = this.Model; + bandedGridControlEx.SysModel = this.SysModel; + bandedGridControlEx.Dock = DockStyle.Fill; + // 明确设置禁止自动调整列宽 + bandedGridControlEx.BandedView.OptionsView.ColumnAutoWidth = false; + gcMain.CustomGroupBandEx = bandedGridControlEx; + this.panelControl1.Controls.Add(bandedGridControlEx); + bandedGridControlEx.BringToFront(); + } + // 报表类型创建只读列 if (this.Model is DynamicReportModel) { @@ -992,20 +1006,20 @@ namespace Lskj.Control this.gcMain.SetGridRightMenus(dt, this.Model, OnGridViewRightCallBack, this.SearchObj, null); } //如果配置了聚合模式则构建多表头覆盖当前表格 - if (SysModel.IsCustomGroup == 1) - { - BandedGridControlEx bandedGridControlEx = new BandedGridControlEx(); - bandedGridControlEx.moduleModel = this.SysModel; - bandedGridControlEx.Model = this.Model; - bandedGridControlEx.SysModel = this.SysModel; - bandedGridControlEx.Dock = DockStyle.Fill; - // 明确设置禁止自动调整列宽 - bandedGridControlEx.BandedView.OptionsView.ColumnAutoWidth = false; - gcMain.CustomGroupBandEx = bandedGridControlEx; - bandedGridControlEx.SetGridRightMenus(dt, this.Model, OnGridViewRightCallBack, this.SearchObj, null); - this.panelControl1.Controls.Add(bandedGridControlEx); - bandedGridControlEx.BringToFront(); - } + //if (SysModel.IsCustomGroup == 1) + //{ + // BandedGridControlEx bandedGridControlEx = new BandedGridControlEx(); + // bandedGridControlEx.moduleModel = this.SysModel; + // bandedGridControlEx.Model = this.Model; + // bandedGridControlEx.SysModel = this.SysModel; + // bandedGridControlEx.Dock = DockStyle.Fill; + // // 明确设置禁止自动调整列宽 + // bandedGridControlEx.BandedView.OptionsView.ColumnAutoWidth = false; + // gcMain.CustomGroupBandEx = bandedGridControlEx; + // bandedGridControlEx.SetGridRightMenus(dt, this.Model, OnGridViewRightCallBack, this.SearchObj, null); + // this.panelControl1.Controls.Add(bandedGridControlEx); + // bandedGridControlEx.BringToFront(); + //} InitializedragState(); SetGridRowHeightAndFont(); if (Model.IsBaseModule) @@ -2154,8 +2168,8 @@ namespace Lskj.Control mLeftFieldId = row[_leftGridField["fieldsqlid"] + ""] + ""; mLeftFieldName = row[_leftGridField["fieldsqlname"] + ""] + ""; mLeftGridData = row.ToJsonObject(); - } - else if (row != null && AdditionalAssociatedMain) + } + else if (row != null && AdditionalAssociatedMain) { mLeftFieldId = row[ParentKeyField] + ""; mLeftFieldName = row[ParentKeyField] + ""; @@ -3588,7 +3602,7 @@ namespace Lskj.Control this.gcMain.IgnoreTab = this.SysModel.IgnoreTab; } - + //判断是否隐藏数据导入按钮 string[] authorizedPersonnel = SysModel.ImportPermissions.Split(',');//有导入权限的人员 @@ -4184,24 +4198,27 @@ namespace Lskj.Control { try { - int oldRowHandle = gcMain.GridView.FocusedRowHandle; - if (!(gcMain is TreeGridControlEx) && oldRowHandle < 0) return; - DataTable dt = this.gcMain.GridView.GetGridViewFilteredAndSortedDataToDataTable(); - if (gcMain is TreeGridControlEx) dt = (gcMain as TreeGridControlEx).GetGridViewDataSource(); - if (dt == null || dt.Rows.Count == 0) return; - DataRow SelectTheLine = gcMain is TreeGridControlEx ? (gcMain as TreeGridControlEx).GetViewFocusedDataRow() : dt.Rows[oldRowHandle]; - this.SearchObj.RememberRow = (this.SysModel.AccordingNameSelected == 0); - this.SearchObj.SearchLastGrid(); - if (this.SysModel.AccordingNameSelected != 0)//根据主键刷新目标选中行 + if (DetailRightGridCallBack == null)//刷新所有页签本身会刷新自己 { - DataRow items = dt.Rows.Cast().FirstOrDefault(x => x[ParmaryKey].Equals(SelectTheLine[ParmaryKey])); - dt = this.gcMain.GridView.GetGridViewFilteredAndSortedDataToDataTable(); - BindingSource bindingSource = new BindingSource(); - bindingSource.DataSource = dt; - int numberOfRows = bindingSource.Find(ParmaryKey, SelectTheLine[ParmaryKey].ToString()); - this.gcMain.GridView.ClearSelection(); - this.gcMain.GridView.FocusedRowHandle = numberOfRows; - this.gcMain.GridView.SelectRow(numberOfRows); + int oldRowHandle = gcMain.GridView.FocusedRowHandle; + if (!(gcMain is TreeGridControlEx) && oldRowHandle < 0) return; + DataTable dt = this.gcMain.GridView.GetGridViewFilteredAndSortedDataToDataTable(); + if (gcMain is TreeGridControlEx) dt = (gcMain as TreeGridControlEx).GetGridViewDataSource(); + if (dt == null || dt.Rows.Count == 0) return; + DataRow SelectTheLine = gcMain is TreeGridControlEx ? (gcMain as TreeGridControlEx).GetViewFocusedDataRow() : dt.Rows[oldRowHandle]; + this.SearchObj.RememberRow = (this.SysModel.AccordingNameSelected == 0); + this.SearchObj.SearchLastGrid(); + if (this.SysModel.AccordingNameSelected != 0)//根据主键刷新目标选中行 + { + DataRow items = dt.Rows.Cast().FirstOrDefault(x => x[ParmaryKey].Equals(SelectTheLine[ParmaryKey])); + dt = this.gcMain.GridView.GetGridViewFilteredAndSortedDataToDataTable(); + BindingSource bindingSource = new BindingSource(); + bindingSource.DataSource = dt; + int numberOfRows = bindingSource.Find(ParmaryKey, SelectTheLine[ParmaryKey].ToString()); + this.gcMain.GridView.ClearSelection(); + this.gcMain.GridView.FocusedRowHandle = numberOfRows; + this.gcMain.GridView.SelectRow(numberOfRows); + } } if (this.RightGridCallBack != null) this.RightGridCallBack(sender, e); if (DetailRightGridCallBack != null) this.DetailRightGridCallBack(sender, e); @@ -5081,7 +5098,7 @@ namespace Lskj.Control } } - + } catch (Exception ex) { @@ -5091,7 +5108,7 @@ namespace Lskj.Control } - + /// /// 说明:粘贴表格后更新树结构关联字段 @@ -5198,7 +5215,7 @@ namespace Lskj.Control { List buttons = new List();//没有隐藏的按钮集合 //刷新按钮 - //刷新按钮 + //刷新按钮 if (SystemInfo.Instance.FoundationHideTableRefresh) { this.btnRefresh.Visible = false; @@ -5615,33 +5632,4 @@ namespace Lskj.Control // 获取字体和最大宽度 Document document = richEdit.Document; - Font font = richEdit.Font; - int maxWidth = richEdit.ClientSize.Width - richEdit.Padding.Horizontal; - - // 获取前3行文本 - string[] lines = richEdit.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.None); - int lineCount = Math.Min(4, lines.Length); - string firstThreeLines = string.Join(Environment.NewLine, lines.Take(lineCount)); - - // 创建StringFormat - StringFormat format = new StringFormat(StringFormat.GenericTypographic); - format.FormatFlags |= StringFormatFlags.MeasureTrailingSpaces; - - // 测量文本高度 - using (Graphics g = richEdit.CreateGraphics()) - { - SizeF textSize = g.MeasureString( - firstThreeLines, - font, - maxWidth, - format - ); - return (int)Math.Ceiling(textSize.Height); - } - } - - - - - } -} + \ No newline at end of file diff --git a/插件库/Lskj.Control/TabControlEx.cs b/插件库/Lskj.Control/TabControlEx.cs index 080935c..c32d12c 100644 --- a/插件库/Lskj.Control/TabControlEx.cs +++ b/插件库/Lskj.Control/TabControlEx.cs @@ -1283,6 +1283,8 @@ namespace Lskj.Control tabMultipledetails.ParentControlEx = this.ParentControlEx; tabMultipledetails.IsDragDetail = this.IsDragDetail; tabMultipledetails.Model = this.Model; + tabMultipledetails.OnSaveGridCallBack += OnDetailSaveGridCallBack; + tabMultipledetails.DetailRightGridCallBack += OnDetailRightCallback; tabMultipledetails.DrgaParentPrimaryKey = this.DrgaParentPrimaryKey; tabMultipledetails.InitTabPages(isMeage); tabMultipledetails.Dock = DockStyle.Fill; diff --git a/插件库/Lskj.Control/TabMultipledetails.cs b/插件库/Lskj.Control/TabMultipledetails.cs index 7cccf98..43bc48e 100644 --- a/插件库/Lskj.Control/TabMultipledetails.cs +++ b/插件库/Lskj.Control/TabMultipledetails.cs @@ -80,8 +80,15 @@ namespace Lskj.Control /// /// 左侧表刷新右侧表 /// - public bool UnioDetail=false; - + public bool UnioDetail = false; + /// + /// Occurs when [on Save Grid call back]. + /// + public event EventHandler OnSaveGridCallBack; + /// + /// 下面明细表右键执行后回调 + /// + public event EventHandler DetailRightGridCallBack; #endregion #region /// @@ -244,6 +251,10 @@ namespace Lskj.Control gridEx.ParentKeyField = string.IsNullOrEmpty(model.UnionParentField) ? model.SystemModel.ParmaryKey : model.UnionParentField; gridEx.DetailKeyField = model.UnionValue; gridEx.GridControlObj.ParentControl = gridEx.SearchObj; + + gridEx.OnSaveGridCallBack += OnSaveGridCallBack; + gridEx.DetailRightGridCallBack += DetailRightGridCallBack; + //左侧表设置后,添加事件。行改变时刷新右侧表 if (model.IsUnioDetail) { @@ -723,9 +734,9 @@ namespace Lskj.Control gridEx2.GridControlObj.GridView.SelectRowHandler(oldRowHandle2); } } - catch (Exception ex) + catch (Exception ex) { - + } } @@ -738,7 +749,7 @@ namespace Lskj.Control { try { - if (this.gridEx1.SearchObj != null) + if (this.gridEx1.SearchObj != null) { foreach (ControlModel item in this.gridEx1.SearchObj.ControlModels) { @@ -748,7 +759,7 @@ namespace Lskj.Control } } } - if (this.gridEx2.SearchObj != null) + if (this.gridEx2.SearchObj != null) { foreach (ControlModel item in this.gridEx2.SearchObj.ControlModels) { @@ -758,7 +769,7 @@ namespace Lskj.Control } } } - + } catch (Exception ex) {