From f5753c00a318111e2350d91bdbf800e02f133950 Mon Sep 17 00:00:00 2001 From: cyf Date: Fri, 30 Jan 2026 07:35:38 +0000 Subject: [PATCH] SVN r1101 SVN-Revision: r1101 --- .../FrmBaseAccraditation.cs | 85 ++++++++++++++----- 1 file changed, 66 insertions(+), 19 deletions(-) diff --git a/插件库/Lskj.BaseAccraditation/FrmBaseAccraditation.cs b/插件库/Lskj.BaseAccraditation/FrmBaseAccraditation.cs index 011a88d..83e9445 100644 --- a/插件库/Lskj.BaseAccraditation/FrmBaseAccraditation.cs +++ b/插件库/Lskj.BaseAccraditation/FrmBaseAccraditation.cs @@ -142,6 +142,12 @@ namespace Lskj.BaseAccraditation /// The sender. public event RefreshThePage refreshThePage; public delegate void RefreshThePage(string promptInformation, string id); + /// + /// 是否有明细必填 + /// + public bool DetailsRequired = false; + + #endregion #region 初始化分割条位置 @@ -845,28 +851,34 @@ namespace Lskj.BaseAccraditation //修改字段 GridControlEx gridControl = tabpage.Tag as GridControlEx; string DetailModifyFields = rt["modifyFields"] + ""; + string DetailRequiredFields = Detailtable.Columns.Contains("requiredFields") ? rt["requiredFields"] + "" : ""; bool isEditable = string.IsNullOrEmpty(DetailModifyFields); + if (!string.IsNullOrWhiteSpace(DetailRequiredFields)) DetailsRequired = true; gridControl.GridView.OptionsBehavior.Editable = !isEditable; GridColumnCollection gc = gridControl.GridView.Columns; + //设置表格可编辑列和必填列 + gridControl.SetReadOnlyAllColumn(); + gridControl.SetFieldStatus(DetailModifyFields, DetailRequiredFields); + //if (isEditable) continue; - DetailModifyFields = DetailModifyFields + ","; - foreach (GridColumn item in gc) - { - GridColumnModel gcmodel = item.Tag as GridColumnModel; - item.OptionsColumn.AllowEdit = DetailModifyFields.IndexOf(item.FieldName + ",", StringComparison.OrdinalIgnoreCase) != -1; - item.OptionsColumn.ReadOnly = !item.OptionsColumn.AllowEdit; - if (!item.OptionsColumn.AllowEdit) - { - item.AppearanceHeader.Options.UseForeColor = true; - item.AppearanceHeader.ForeColor = ColorTranslator.FromHtml(HeaderColor); - } - else - { - item.AppearanceHeader.Options.UseForeColor = true; - item.AppearanceHeader.ForeColor = Color.Black; - } - if (gcmodel.FieldType == ControlType.LabMemoEdit) item.OptionsColumn.AllowEdit = true; - } + //DetailModifyFields = DetailModifyFields + ","; + //foreach (GridColumn item in gc) + //{ + // GridColumnModel gcmodel = item.Tag as GridColumnModel; + // item.OptionsColumn.AllowEdit = DetailModifyFields.IndexOf(item.FieldName + ",", StringComparison.OrdinalIgnoreCase) != -1; + // item.OptionsColumn.ReadOnly = !item.OptionsColumn.AllowEdit; + // if (!item.OptionsColumn.AllowEdit) + // { + // item.AppearanceHeader.Options.UseForeColor = true; + // item.AppearanceHeader.ForeColor = ColorTranslator.FromHtml(HeaderColor); + // } + // else + // { + // item.AppearanceHeader.Options.UseForeColor = true; + // item.AppearanceHeader.ForeColor = Color.Black; + // } + // if (gcmodel.FieldType == ControlType.LabMemoEdit) item.OptionsColumn.AllowEdit = true; + //} } } #endregion @@ -1568,7 +1580,20 @@ namespace Lskj.BaseAccraditation graphicsText.DrawString(this._waterMark.Text, new Font("宋体", 20, FontStyle.Bold), new SolidBrush(Color.Red), new PointF(x, y), format, -20f); e.Graphics.TranslateTransform(x, y); e.Graphics.RotateTransform(-20f); - e.Graphics.DrawRectangle(new Pen(Color.Red, 2f), new Rectangle(-45, -19, 90, 32)); + + if (Business.Impl.LanguageTranslation.Translatable) + { + // 1. 测量文本尺寸 + SizeF textSize = e.Graphics.MeasureString(this._waterMark.Collect, new Font("宋体", 20, FontStyle.Bold), new SizeF(float.MaxValue, float.MaxValue), format); + // 2. 计算边框矩形的尺寸和位置 + int rectWidth = (int)textSize.Width + 10; + e.Graphics.DrawRectangle(new Pen(Color.Red, 2f), new Rectangle(-rectWidth / 2, -19, rectWidth, 32)); + } + else + { + e.Graphics.DrawRectangle(new Pen(Color.Red, 2f), new Rectangle(-45, -19, 90, 32)); + } + } } } @@ -1919,7 +1944,24 @@ namespace Lskj.BaseAccraditation { this.SaveAdditionalModules(); } + if (this.DetailsRequired) + { + foreach (XtraTabPage page in this.tab_basicInfo.TabControlObj.TabPages) + { + GridDetailModel model = this.tab_basicInfo.GetGridDetailModel(page); + bool isDetailAttach = (model.IsReadOnly || model.IsChart); + + if (page.Tag is GridControlEx) + { + string sqlValue = isDetailAttach ? model.DetailSql : GetSearchSql(model); + GridControlEx grdExMain = (page.Tag as GridControlEx); + if (!isDetailAttach) grdExMain.LastSearchSql = sqlValue; + this.tab_basicInfo.SetGridDataSource(page, MainImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._baseRowData, sqlValue))); + if(!string.IsNullOrWhiteSpace(grdExMain.RequiredFields) &&!grdExMain.GridControl.isRequiredFields(grdExMain.RequiredFields, grdExMain.GridView)) return; + } + } + } if (VerificationRequired()) return; WaitForm.ShowForm(ResourceKeys.Handing); @@ -2617,6 +2659,11 @@ namespace Lskj.BaseAccraditation { sqlValue = ReplaceHelper.ReplaceWhereCond(sqlValue) + string.Format(" and {0}='{1}'", model.UnionValue, unionPatentValue); } + if (!string.IsNullOrEmpty(model.UnionCond)) + { + string UnionCond = ReplaceHelper.ReplaceRowParam(this._baseRowData, model.UnionCond); + sqlValue +=UnionCond; + } return sqlValue; } #endregion