diff --git a/插件库/Lskj.Control/BandedGridControlEx.cs b/插件库/Lskj.Control/BandedGridControlEx.cs index c1636db..20da0fd 100644 --- a/插件库/Lskj.Control/BandedGridControlEx.cs +++ b/插件库/Lskj.Control/BandedGridControlEx.cs @@ -254,13 +254,14 @@ namespace Lskj.Control e.Appearance.ForeColor = ColorTranslator.FromHtml(model.ForceColor); } - FontStyle fontStyle = new FontStyle(); - if (model.IsBold) fontStyle = fontStyle | FontStyle.Bold; - if (model.IsItalic) fontStyle = fontStyle | FontStyle.Italic; - if (model.IsStrickOut) fontStyle = fontStyle | FontStyle.Strikeout; - if (model.IsUnderLine) fontStyle = fontStyle | FontStyle.Underline; + FontStyle fontStyle = FontStyle.Regular; - e.Appearance.Font = new Font(e.Appearance.Font, fontStyle); + if (model.IsBold) fontStyle |= FontStyle.Bold; + if (model.IsItalic) fontStyle |= FontStyle.Italic; + if (model.IsStrickOut) fontStyle |= FontStyle.Strikeout; + if (model.IsUnderLine) fontStyle |= FontStyle.Underline; + + e.Appearance.FontStyleDelta = fontStyle; } } catch (Exception) @@ -355,13 +356,14 @@ namespace Lskj.Control e.Appearance.ForeColor = ColorTranslator.FromHtml(model.ForceColor); } - FontStyle fontStyle = new FontStyle(); + FontStyle fontStyle = FontStyle.Regular; + if (model.IsBold) fontStyle |= FontStyle.Bold; if (model.IsItalic) fontStyle |= FontStyle.Italic; if (model.IsStrickOut) fontStyle |= FontStyle.Strikeout; if (model.IsUnderLine) fontStyle |= FontStyle.Underline; - e.Appearance.Font = new Font(e.Appearance.Font, fontStyle); + e.Appearance.FontStyleDelta = fontStyle; } } catch (Exception ex) @@ -987,13 +989,14 @@ namespace Lskj.Control e.Appearance.ForeColor = ColorTranslator.FromHtml(model.ForceColor); } - FontStyle fontStyle = new FontStyle(); - if (model.IsBold) fontStyle = fontStyle | FontStyle.Bold; - if (model.IsItalic) fontStyle = fontStyle | FontStyle.Italic; - if (model.IsStrickOut) fontStyle = fontStyle | FontStyle.Strikeout; - if (model.IsUnderLine) fontStyle = fontStyle | FontStyle.Underline; + FontStyle fontStyle = FontStyle.Regular; - e.Appearance.Font = new Font(e.Appearance.Font, fontStyle); + if (model.IsBold) fontStyle |= FontStyle.Bold; + if (model.IsItalic) fontStyle |= FontStyle.Italic; + if (model.IsStrickOut) fontStyle |= FontStyle.Strikeout; + if (model.IsUnderLine) fontStyle |= FontStyle.Underline; + + e.Appearance.FontStyleDelta = fontStyle; } } catch (Exception) diff --git a/插件库/Lskj.Control/BrowserSetting/BsLifeSpanHandler.cs b/插件库/Lskj.Control/BrowserSetting/BsLifeSpanHandler.cs index 159752e..8f6de7c 100644 --- a/插件库/Lskj.Control/BrowserSetting/BsLifeSpanHandler.cs +++ b/插件库/Lskj.Control/BrowserSetting/BsLifeSpanHandler.cs @@ -17,13 +17,4 @@ namespace Lskj.Control.BrowserSetting } protected override void OnAfterCreated(Xilium.CefGlue.CefBrowser browser) { - base.OnAfterCreated(browser); - BsClient.Created(browser); - } - protected override void OnBeforeClose(CefBrowser browser) - { - base.OnBeforeClose(browser); - } - - } -} \ No newline at end of file + base.OnAfterCreated(browser \ No newline at end of file diff --git a/插件库/Lskj.Control/BrowserSetting/BsRequestHandler.cs b/插件库/Lskj.Control/BrowserSetting/BsRequestHandler.cs index 9d20921..de7ba43 100644 --- a/插件库/Lskj.Control/BrowserSetting/BsRequestHandler.cs +++ b/插件库/Lskj.Control/BrowserSetting/BsRequestHandler.cs @@ -6,4 +6,71 @@ using Xilium.CefGlue; namespace Lskj.Control.BrowserSetting { - public class BsRequestHandle \ No newline at end of file + public class BsRequestHandler : CefRequestHandler + { + private readonly CefResourceRequestHandler externalProtocolResourceRequestHandler = new BsExternalProtocolResourceRequestHandler(); + + protected override CefResourceRequestHandler GetResourceRequestHandler(CefBrowser browser, CefFrame frame, CefRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling) + { + if (BsExternalProtocolHandler.IsPrintProtocol(request.Url)) + return externalProtocolResourceRequestHandler; + + return null; + } + + protected override bool OnBeforeBrowse(CefBrowser browser, CefFrame frame, CefRequest request, bool userGesture, bool isRedirect) + { + string url = request.Url; + + if (BsExternalProtocolHandler.IsPrintProtocol(url)) + { + if (frame == null || frame.IsMain) + { + BsExternalProtocolHandler.TryHandle(url); + return true; + } + + return false; + } + + return base.OnBeforeBrowse(browser, frame, request, userGesture, isRedirect); + } + + protected override bool OnOpenUrlFromTab(CefBrowser browser, CefFrame frame, string targetUrl, CefWindowOpenDisposition targetDisposition, bool userGesture) + { + if (BsExternalProtocolHandler.TryHandle(targetUrl)) + return true; + + return base.OnOpenUrlFromTab(browser, frame, targetUrl, targetDisposition, userGesture); + } + + protected override void OnRenderProcessTerminated(CefBrowser browser, CefTerminationStatus status) + { + browser.Reload(); + } + } + + internal static class BsExternalProtocolHandler + { + private const string PrintProtocol = "lskjprint:"; + + public static bool IsPrintProtocol(string url) + { + return !string.IsNullOrEmpty(url) && url.StartsWith(PrintProtocol, StringComparison.OrdinalIgnoreCase); + } + + public static bool TryHandle(string url) + { + if (!IsPrintProtocol(url)) + return false; + + try + { + var processStartInfo = new System.Diagnostics.ProcessStartInfo(url) + { + UseShellExecute = true + }; + System.Diagnostics.Process.Start(processStartInfo); + } + catch (Exception ex) + \ No newline at end of file diff --git a/插件库/Lskj.Control/BrowserSetting2/BsLifeSpanHandler.cs b/插件库/Lskj.Control/BrowserSetting2/BsLifeSpanHandler.cs index 873174c..e73cd34 100644 --- a/插件库/Lskj.Control/BrowserSetting2/BsLifeSpanHandler.cs +++ b/插件库/Lskj.Control/BrowserSetting2/BsLifeSpanHandler.cs @@ -25,5 +25,25 @@ namespace Lskj.Control.BrowserSetting2 base.OnBeforeClose(browser); } + protected override bool OnBeforePopup( + CefBrowser browser, + CefFrame frame, + string targetUrl, + string targetFrameName, + CefWindowOpenDisposition targetDisposition, + bool userGesture, + CefPopupFeatures popupFeatures, + CefWindowInfo windowInfo, + ref CefClient client, + CefBrowserSettings settings, + ref CefDictionaryValue extraInfo, + ref bool noJavascriptAccess) + { + if (BsExternalProtocolHandler.TryHandle(targetUrl)) + return true; + + return base.OnBeforePopup(browser, frame, targetUrl, targetFrameName, targetDisposition, + userGesture, popupFeatures, windowInfo, ref client, settings, ref extraInfo, ref noJavascriptAccess); + } } -} \ No newline at end of file +} diff --git a/插件库/Lskj.Control/BrowserSetting2/BsRequestHandler.cs b/插件库/Lskj.Control/BrowserSetting2/BsRequestHandler.cs index 1c357d0..59889f6 100644 --- a/插件库/Lskj.Control/BrowserSetting2/BsRequestHandler.cs +++ b/插件库/Lskj.Control/BrowserSetting2/BsRequestHandler.cs @@ -2,4 +2,105 @@ using System.Collections.Generic; using System.Linq; using System.Text; -us \ No newline at end of file +using Xilium.CefGlue; + +namespace Lskj.Control.BrowserSetting2 +{ + public class BsRequestHandler : CefRequestHandler + { + private readonly CefResourceRequestHandler externalProtocolResourceRequestHandler = new BsExternalProtocolResourceRequestHandler(); + + protected override CefResourceRequestHandler GetResourceRequestHandler(CefBrowser browser, CefFrame frame, CefRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling) + { + if (BsExternalProtocolHandler.TryMatch(request.Url)) + return externalProtocolResourceRequestHandler; + + return null; + } + + protected override bool OnBeforeBrowse(CefBrowser browser, CefFrame frame, CefRequest request, bool userGesture, bool isRedirect) + { + string url = request.Url; + + if (BsExternalProtocolHandler.TryMatch(url)) + { + if (frame == null || frame.IsMain) + { + BsExternalProtocolHandler.TryHandle(url); + return true; + } + + return false; + } + + return base.OnBeforeBrowse(browser, frame, request, userGesture, isRedirect); + } + + protected override bool OnOpenUrlFromTab(CefBrowser browser, CefFrame frame, string targetUrl, CefWindowOpenDisposition targetDisposition, bool userGesture) + { + if (BsExternalProtocolHandler.TryHandle(targetUrl)) + return true; + + return base.OnOpenUrlFromTab(browser, frame, targetUrl, targetDisposition, userGesture); + } + + protected override void OnRenderProcessTerminated(CefBrowser browser, CefTerminationStatus status) + { + browser.Reload(); + } + } + + internal static class BsExternalProtocolHandler + { + private const string PrintProtocol = "lskjprint:"; + + public static bool TryMatch(string url) + { + return !string.IsNullOrEmpty(url) && url.StartsWith(PrintProtocol, StringComparison.OrdinalIgnoreCase); + } + + public static bool TryHandle(string url) + { + if (!TryMatch(url)) + return false; + + try + { + var processStartInfo = new System.Diagnostics.ProcessStartInfo(url) + { + UseShellExecute = true + }; + System.Diagnostics.Process.Start(processStartInfo); + } + catch (Exception ex) + { + System.Windows.Forms.MessageBox.Show( + "打开打印程序失败:" + ex.Message, + "提示", + System.Windows.Forms.MessageBoxButtons.OK, + System.Windows.Forms.MessageBoxIcon.Warning); + } + + return true; + } + } + + internal sealed class BsExternalProtocolResourceRequestHandler : CefResourceRequestHandler + { + protected override CefCookieAccessFilter GetCookieAccessFilter(CefBrowser browser, CefFrame frame, CefRequest request) + { + return null; + } + + protected override void OnProtocolExecution(CefBrowser browser, CefFrame frame, CefRequest request, ref bool allowOsExecution) + { + if (BsExternalProtocolHandler.TryMatch(request.Url)) + { + allowOsExecution = true; + return; + } + + base.OnProtocolExecution(browser, frame, request, ref allowOsExecution); + } + } +} diff --git a/插件库/Lskj.Control/FrmAnnouncement.Designer.cs b/插件库/Lskj.Control/FrmAnnouncement.Designer.cs new file mode 100644 index 0000000..210833c --- /dev/null +++ b/插件库/Lskj.Control/FrmAnnouncement.Designer.cs @@ -0,0 +1,39 @@ + +namespace Lskj.Control +{ + partial class FrmAnnouncement + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.txtEdit = new DevExpress.XtraEditors.MemoEdit(); + ((System.ComponentModel.ISupportInitialize)(this.txtEdit.Properties)).BeginInit(); + this.SuspendLayout(); + // + // txtEdit + // + this.txtEdit.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtEdit.Loca \ No newline at end of file diff --git a/插件库/Lskj.Control/FrmAnnouncement.cs b/插件库/Lskj.Control/FrmAnnouncement.cs new file mode 100644 index 0000000..bdfec6b --- /dev/null +++ b/插件库/Lskj.Control/FrmAnnouncement.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using Lskj.Business.Impl; +using Lskj.Core; +using Lskj.Util; + +namespace Lskj.Control +{ + public partial class FrmAnnouncement : BaseForm + { + private const string AnnouncementSql = "select * from p_ErpProUpdateInfo where AnnouncementDisplay=1 order by updateDate desc"; + private Panel bottomPanel; + private DevExpress.XtraEditors.SimpleButton btnConfirm; + + public FrmAnnouncement() + { + InitializeComponent(); + InitializeAnnouncementForm(); + this.Load += FrmAnnouncement_Load; + this.Shown += FrmAnnouncement_Shown; + } + + private void InitializeAnnouncementForm() + { + this.FormBorderStyle = FormBorderStyle.Sizable; + this.MaximizeBox = true; + this.MinimizeBox = true; + this.MinimumSize = new Size(500, 300); + + this.txtEdit.ReadOnly = true; + this.txtEdit.Properties.ScrollBars = ScrollBars.Vertical; + + bottomPanel = new Panel(); + bottomPanel.Dock = DockStyle.Bottom; + bottomPanel.Height = 50; + + btnConfirm = new DevExpress.XtraEditors.SimpleButton(); + btnConfirm.Text = "ȷ"; + btnConfirm.Size = new Size(90, 28); + btnConfirm.Click += BtnConfirm_Click; + + bottomPanel.Controls.Add(btnConfirm); + bottomPanel.Resize += BottomPanel_Resize; + this.Controls.Add(bottomPanel); + bottomPanel.BringToFront(); + CenterConfirmButton(); + } + + private void FrmAnnouncement_Load(object sender, EventArgs e) + { + try + { + DataTable table = SqlHelper.ExecuteDataTable(AnnouncementSql); + this.txtEdit.Text = BuildAnnouncementText(table); + this.txtEdit.SelectionStart = 0; + this.txtEdit.SelectionLength = 0; + } + catch (Exception ex) + { + string message = ErrorMessage.PromptErrorMessage(ex); + MessageUtil.Show(message, ex.Message); + LogHelper.Instance.WriteError(ex); + } + } + + private void FrmAnnouncement_Shown(object sender, EventArgs e) + { + if (btnConfirm != null) + { + btnConfirm.Focus(); + } + } + + private void BottomPanel_Resize(object sender, EventArgs e) + { + CenterConfirmButton(); + } + + private void CenterConfirmButton() + { + if (bottomPanel == null || btnConfirm == null) return; + + btnConfirm.Location = new Point( + (bottomPanel.ClientSize.Width - btnConfirm.Width) / 2, + (bottomPanel.ClientSize.Height - btnConfirm.Height) / 2); + } + + private void BtnConfirm_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private string BuildAnnouncementText(DataTable table) + { + if (table == null || table.Rows.Count == 0) return string.Empty; + + // ڷ飨SQLѰupdateDate desc򣬷ȻӴС + var dateGroups = new List>>(); + DateTime? currentDate = null; + List currentGroup = null; + + foreach (DataRow row in table.Rows) + { + DateTime updateDate; + if (!DateTime.TryParse(row["updateDate"] + "", out updateDate)) + continue; + + DateTime dateOnly = updateDate.Date; + string content = row["verDesp"] + ""; + + if (currentDate != dateOnly) + { + currentDate = dateOnly; + currentGroup = new List(); + dateGroups.Add(new KeyValuePair>(dateOnly, currentGroup)); + } + + currentGroup.Add(content); + } + + StringBuilder text = new StringBuilder(); + foreach (var group in dateGroups) + { + if (text.Length > 0) text.AppendLine(); + + text.Append("ʱ䣺"); + text.AppendLine(group.Key.ToString("yyyy-MM-dd")); + + for (int i = 0; i < group.Value.Count; i++) + { + text.AppendLine((i + 1) + ". " + group.Value[i]); + } + } + + return text.ToString(); + } + + private string FormatUpdateDate(object value) + { + if (value == null || value == DBNull.Value) return string.Empty; + + DateTime updateDate; + if (DateTime.TryParse(value + "", out updateDate)) + { + return updateDate.ToString("yyyy-MM-dd"); + } + + return value + ""; + } + } +} diff --git a/插件库/Lskj.Control/FrmAnnouncement.resx b/插件库/Lskj.Control/FrmAnnouncement.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/插件库/Lskj.Control/FrmAnnouncement.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/插件库/Lskj.Control/FrmExport.cs b/插件库/Lskj.Control/FrmExport.cs index 7bdc26d..741ecc1 100644 --- a/插件库/Lskj.Control/FrmExport.cs +++ b/插件库/Lskj.Control/FrmExport.cs @@ -133,7 +133,7 @@ namespace Lskj.Control hasBoolean = true; } GridColumnModel model = col.Tag as GridColumnModel; - if (model != null && (model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabMultiSelectValueParam || model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText))) + if (model != null && (model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabMultiSelectValueParam || model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText) || model.FieldType == ControlType.LabModuleAddRowsID)) { StoreValueList.Add(col.FieldName); hasBoolean = true; @@ -455,7 +455,7 @@ namespace Lskj.Control } GridColumnModel model = col.Tag as GridColumnModel; - if (model != null && (model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabMultiSelectValueParam || model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText))) + if (model != null && (model.FieldType == ControlType.LabMultiSelectValue || model.FieldType == ControlType.LabMultiSelectValueNew || model.FieldType == ControlType.LabTreeLookValue || model.FieldType == ControlType.LabMultiSelectValueParam || model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText) || model.FieldType == ControlType.LabModuleAddRowsID)) { StoreValueList.Add(col.FieldName); hasBoolean = true; @@ -992,10 +992,10 @@ namespace Lskj.Control } } - else if (model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText)) + else if (model.FieldType == ControlType.LabSelectReturnId || (model.FieldType == ControlType.LabSelectReturnIdNew && model.ModuleFrameDisplayText) || model.FieldType == ControlType.LabModuleAddRowsID) { string sqlValue = model.SqlSource; - if ((model.IsRadio && !string.IsNullOrWhiteSpace(model.addModuleld)) || model.FieldType == ControlType.LabSelectReturnIdNew) + if ((model.IsRadio && !string.IsNullOrWhiteSpace(model.addModuleld)) || model.FieldType == ControlType.LabSelectReturnIdNew || model.FieldType == ControlType.LabModuleAddRowsID) { //单选模式数据源为模块sql 新版模块选中返回id固定位模块sql DataRow modelRow = Business.Impl.MainImpl.GetSystemdllTab(model.addModuleld); diff --git a/插件库/Lskj.Control/GridControlEx.cs b/插件库/Lskj.Control/GridControlEx.cs index 809f89b..9da89a7 100644 --- a/插件库/Lskj.Control/GridControlEx.cs +++ b/插件库/Lskj.Control/GridControlEx.cs @@ -29,7 +29,6 @@ using Lskj.Util; using Lskj.Control.Properties; using Lskj.Model; using Lskj.Data; -using System.Diagnostics; using DevExpress.XtraEditors; using System.Data.SqlClient; using System.IO; @@ -54,6 +53,7 @@ using System.Collections; using Newtonsoft.Json; using System.Net; using System.Data.Common; +using Lskj.Control.SpecialDate; namespace Lskj.Control { @@ -1053,6 +1053,9 @@ namespace Lskj.Control case ControlType.LabShortDate: InitDateTimeEdit(column, model.FieldType); break; + case ControlType.LabDateHalfDay: + InitSpecialDate(column, model); + break; case ControlType.LabTime: case ControlType.LabShortTime: InitTimeEdit(column, model.FieldType); @@ -1176,6 +1179,9 @@ namespace Lskj.Control InitComboxEdit(column, model); } } + + + /// /// 说明:设置列格式化 /// 创建人:龚宇超 @@ -3773,6 +3779,125 @@ namespace Lskj.Control gridControl.RepositoryItems.Add(dateEdit); gridColumn.ColumnEdit = dateEdit; } + + + + + /// + /// 初始化表格专用日期半天选择列,保存值格式为 yyyy-MM-dd 上午/下午。 + /// + private void InitSpecialDate(GridColumn gridColumn, GridColumnModel model) + { + SpecialDatePopup specialDatePopup = new SpecialDatePopup(); + specialDatePopup.Dock = DockStyle.Fill; + + PopupContainerControl popupControl = new PopupContainerControl(); + popupControl.Controls.Add(specialDatePopup); + popupControl.Size = specialDatePopup.Size; + // 通过 PopupControl.Tag 保存弹出层实例,QueryPopUp 时可取回并同步当前单元格值。 + popupControl.Tag = specialDatePopup; + + RepositoryItemPopupContainerEdit dateEdit = new RepositoryItemPopupContainerEdit(); + dateEdit.NullText = ""; + dateEdit.Buttons.Clear(); + dateEdit.Buttons.Add(new EditorButton(ButtonPredefines.Combo)); + // 允许手工修改文本,同时保留下拉选择。 + //dateEdit.TextEditStyle = TextEditStyles.Standard; + // 只能下拉选择 + dateEdit.TextEditStyle = TextEditStyles.DisableTextEditor; + dateEdit.PopupControl = popupControl; + // 下拉打开前,把当前单元格值回填到弹出层。 + dateEdit.QueryPopUp += OnSpecialDateQueryPopUp; + dateEdit.Tag = model; + + // 弹出层只抛出按钮动作,真正写入表格单元格由 GridControlEx 统一处理。 + specialDatePopup.ConfirmClick += OnSpecialDateConfirmClick; + specialDatePopup.ClearClick += OnSpecialDateClearClick; + specialDatePopup.CancelClick += OnSpecialDateCancelClick; + + gridControl.RepositoryItems.Add(dateEdit); + gridColumn.ColumnEdit = dateEdit; + } + + /// + /// 下拉框弹出前,同步当前编辑器和当前单元格值到 SpecialDatePopup。 + /// + private void OnSpecialDateQueryPopUp(object sender, CancelEventArgs e) + { + try + { + PopupContainerEdit popupEdit = sender as PopupContainerEdit; + if (popupEdit == null) return; + + SpecialDatePopup specialDatePopup = popupEdit.Properties.PopupControl.Tag as SpecialDatePopup; + if (specialDatePopup == null) return; + + popupEdit.Properties.PopupControl.Size = specialDatePopup.Size; + // 记录本次正在编辑的 PopupContainerEdit,确定/清空/取消时需要回写或关闭它。 + specialDatePopup.OwnerEdit = popupEdit; + specialDatePopup.SetValue(popupEdit.EditValue + ""); + } + catch (Exception ex) + { + string Message = ErrorMessage.PromptErrorMessage(ex, Model.ModuleCode); + MessageUtil.Show(Message, ex.Message); + } + } + + /// + /// 用户点击确定,把弹出层选择的日期和上午/下午写回当前单元格。 + /// + private void OnSpecialDateConfirmClick(object sender, EventArgs e) + { + SpecialDatePopup specialDatePopup = sender as SpecialDatePopup; + if (specialDatePopup == null) return; + SpecialDateSetEditValue(sender, specialDatePopup.SelectedValue); + } + + /// + /// 用户点击清除,清空当前单元格值。 + /// + private void OnSpecialDateClearClick(object sender, EventArgs e) + { + SpecialDateSetEditValue(sender, string.Empty); + } + + /// + /// 用户点击取消,只关闭下拉框,不修改当前单元格值。 + /// + private void OnSpecialDateCancelClick(object sender, EventArgs e) + { + PopupContainerEdit popupEdit = GetSpecialDateOwnerEdit(sender); + if (popupEdit != null) + { + popupEdit.ClosePopup(); + } + } + + /// + /// 统一设置当前单元格值,并提交编辑器,让 GridView 后续保存流程能取到新值。 + /// + private void SpecialDateSetEditValue(object sender, string value) + { + PopupContainerEdit popupEdit = GetSpecialDateOwnerEdit(sender); + if (popupEdit == null) return; + + popupEdit.EditValue = value; + popupEdit.ClosePopup(); + this.gridView.PostEditor(); + } + + /// + /// 从弹出层取回本次正在编辑的 PopupContainerEdit。 + /// + private PopupContainerEdit GetSpecialDateOwnerEdit(object sender) + { + SpecialDatePopup specialDatePopup = sender as SpecialDatePopup; + return specialDatePopup == null ? null : specialDatePopup.OwnerEdit; + } + + + /// /// 说明:创建Time控件 /// 创建人:龚宇超 @@ -5032,7 +5157,8 @@ namespace Lskj.Control btnEdit.SeparatorChar = ','; btnEdit.ValueMember = model.FieldType == ControlType.LabSelectReturnIdNew ? model.ValueMember : model.TextMember; - if (model.ModuleFrameDisplayText) + //model.ModuleFrameDisplayText 2026-5-23 丁哥说不需要这个字段 + if (model.FieldType == ControlType.LabSelectReturnIdNew) { DataTable dataTable = MainImpl.GetDataTableResult(modelLookUp.SysModel.MenuSql); btnEdit.DataSource = dataTable; @@ -5325,10 +5451,10 @@ namespace Lskj.Control public virtual void SetGridRowColors(DataTable table) { this.GridRowColorsTable = table; + if (table != null && table.Rows.Count > 0) { DataRow rowItem = table.Select("1=1").FirstOrDefault(x => (x["condition"] + "").Contains("COLUMN_")); - if (rowItem != null) { this.gridView.RowCellStyle -= new RowCellStyleEventHandler(OnGridViewRowCellStyle); @@ -6361,15 +6487,17 @@ namespace Lskj.Control e.Appearance.ForeColor = ColorTranslator.FromHtml(model.ForceColor); } } - - FontStyle fontStyle = new FontStyle(); - if (model.IsBold) fontStyle = fontStyle | FontStyle.Bold; - if (model.IsItalic) fontStyle = fontStyle | FontStyle.Italic; - if (model.IsStrickOut) fontStyle = fontStyle | FontStyle.Strikeout; - if (model.IsUnderLine) fontStyle = fontStyle | FontStyle.Underline; - e.Appearance.Font = new Font(e.Appearance.Font, fontStyle); + FontStyle fontStyle = FontStyle.Regular; + + if (model.IsBold) fontStyle |= FontStyle.Bold; + if (model.IsItalic) fontStyle |= FontStyle.Italic; + if (model.IsStrickOut) fontStyle |= FontStyle.Strikeout; + if (model.IsUnderLine) fontStyle |= FontStyle.Underline; + + e.Appearance.FontStyleDelta = fontStyle; + } } catch (Exception) @@ -6413,13 +6541,14 @@ namespace Lskj.Control e.Appearance.ForeColor = ColorTranslator.FromHtml(model.ForceColor); } - FontStyle fontStyle = new FontStyle(); - if (model.IsBold) fontStyle = fontStyle | FontStyle.Bold; - if (model.IsItalic) fontStyle = fontStyle | FontStyle.Italic; - if (model.IsStrickOut) fontStyle = fontStyle | FontStyle.Strikeout; - if (model.IsUnderLine) fontStyle = fontStyle | FontStyle.Underline; + FontStyle fontStyle = FontStyle.Regular; - e.Appearance.Font = new Font(e.Appearance.Font, fontStyle); + if (model.IsBold) fontStyle |= FontStyle.Bold; + if (model.IsItalic) fontStyle |= FontStyle.Italic; + if (model.IsStrickOut) fontStyle |= FontStyle.Strikeout; + if (model.IsUnderLine) fontStyle |= FontStyle.Underline; + + e.Appearance.FontStyleDelta = fontStyle; } } catch (Exception) @@ -6480,7 +6609,6 @@ namespace Lskj.Control // mergedRowHandle.Add(item.RowHandle); // } //} - if (gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect) { int[] selectRows = gridView.GetSelectedRows(); @@ -6552,13 +6680,14 @@ namespace Lskj.Control e.Appearance.ForeColor = ColorTranslator.FromHtml(model.ForceColor); } - FontStyle fontStyle = new FontStyle(); - if (model.IsBold) fontStyle = fontStyle | FontStyle.Bold; - if (model.IsItalic) fontStyle = fontStyle | FontStyle.Italic; - if (model.IsStrickOut) fontStyle = fontStyle | FontStyle.Strikeout; - if (model.IsUnderLine) fontStyle = fontStyle | FontStyle.Underline; + FontStyle fontStyle = FontStyle.Regular; - e.Appearance.Font = new Font(e.Appearance.Font, fontStyle); + if (model.IsBold) fontStyle |= FontStyle.Bold; + if (model.IsItalic) fontStyle |= FontStyle.Italic; + if (model.IsStrickOut) fontStyle |= FontStyle.Strikeout; + if (model.IsUnderLine) fontStyle |= FontStyle.Underline; + + e.Appearance.FontStyleDelta = fontStyle; } } catch (Exception) @@ -6584,7 +6713,7 @@ namespace Lskj.Control string PromptText = string.Empty; // 判断单元格值是否为 null 或空 - if (PromptMessage.TryGetValue(e.Column.FieldName, out PromptText) && (e.CellValue == null || string.IsNullOrEmpty(e.CellValue.ToString()))) + if ((e.CellValue == null || string.IsNullOrEmpty(e.CellValue.ToString()))&&PromptMessage.TryGetValue(e.Column.FieldName, out PromptText)) { // 绘制默认单元格背景 e.DefaultDraw(); @@ -9066,6 +9195,7 @@ namespace Lskj.Control foreach (GridColumn item in gc) { GridColumnModel model = item.Tag as GridColumnModel; + if (model == null) continue; item.OptionsColumn.AllowEdit = false; item.OptionsColumn.ReadOnly = !item.OptionsColumn.AllowEdit; diff --git a/插件库/Lskj.Control/LabelDateHalfDayEdit.Designer.cs b/插件库/Lskj.Control/LabelDateHalfDayEdit.Designer.cs new file mode 100644 index 0000000..7273fbb --- /dev/null +++ b/插件库/Lskj.Control/LabelDateHalfDayEdit.Designer.cs @@ -0,0 +1,100 @@ +namespace Lskj.Control +{ + partial class LabelDateHalfDayEdit + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.plRight = new System.Windows.Forms.Panel(); + this.txtEdit = new DevExpress.XtraEditors.PopupContainerEdit(); + this.plLeft = new System.Windows.Forms.Panel(); + this.lblText = new System.Windows.Forms.Label(); + this.plRight.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.txtEdit.Properties)).BeginInit(); + this.plLeft.SuspendLayout(); + this.SuspendLayout(); + // + // plRight + // + this.plRight.Controls.Add(this.txtEdit); + this.plRight.Dock = System.Windows.Forms.DockStyle.Fill; + this.plRight.Location = new System.Drawing.Point(40, 0); + this.plRight.Name = "plRight"; + this.plRight.Size = new System.Drawing.Size(122, 21); + this.plRight.TabIndex = 3; + // + // txtEdit + // + this.txtEdit.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtEdit.Location = new System.Drawing.Point(0, 0); + this.txtEdit.Name = "txtEdit"; + this.txtEdit.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.txtEdit.Size = new System.Drawing.Size(122, 20); + this.txtEdit.TabIndex = 0; + // + // plLeft + // + this.plLeft.Controls.Add(this.lblText); + this.plLeft.Dock = System.Windows.Forms.DockStyle.Left; + this.plLeft.Location = new System.Drawing.Point(0, 0); + this.plLeft.Name = "plLeft"; + this.plLeft.Size = new System.Drawing.Size(40, 21); + this.plLeft.TabIndex = 2; + // + // lblText + // + this.lblText.AutoSize = true; + this.lblText.Location = new System.Drawing.Point(5, 4); + this.lblText.Name = "lblText"; + this.lblText.Size = new System.Drawing.Size(29, 12); + this.lblText.TabIndex = 0; + this.lblText.Text = "名称"; + // + // LabelDateHalfDayEdit + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.Transparent; + this.Controls.Add(this.plRight); + this.Controls.Add(this.plLeft); + this.Name = "LabelDateHalfDayEdit"; + this.Size = new System.Drawing.Size(162, 21); + this.plRight.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.txtEdit.Properties)).EndInit(); + this.plLeft.ResumeLayout(false); + this.plLeft.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel plRight; + private DevExpress.XtraEditors.PopupContainerEdit txtEdit; + private System.Windows.Forms.Panel plLeft; + private System.Windows.Forms.Label lblText; + } +} diff --git a/插件库/Lskj.Control/LabelDateHalfDayEdit.cs b/插件库/Lskj.Control/LabelDateHalfDayEdit.cs new file mode 100644 index 0000000..65a90fb --- /dev/null +++ b/插件库/Lskj.Control/LabelDateHalfDayEdit.cs @@ -0,0 +1,199 @@ +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; +using DevExpress.XtraEditors; +using DevExpress.XtraEditors.Controls; +using Lskj.Control.SpecialDate; + +namespace Lskj.Control +{ + /// + /// 日期半天控件,显示格式为 yyyy-MM-dd 上午/下午。 + /// + public partial class LabelDateHalfDayEdit : BaseUserControl + { + private SpecialDatePopup specialDatePopup; + private PopupContainerControl popupControl; + + /// + /// 日期半天下拉编辑框。 + /// + public PopupContainerEdit TextEdit { get { return txtEdit; } } + + /// + /// 左侧文本。 + /// + public Label Label { get { return lblText; } } + + public LabelDateHalfDayEdit() + { + InitializeComponent(); + InitPopup(); + } + + /// + /// 设置控件显示文本。 + /// + public override string LabelText + { + get + { + return this.lblText.Text; + } + set + { + this.lblText.Text = value; + if (FontSize > 0) + { + this.plLeft.Dock = DockStyle.Left; + this.plLeft.AutoSize = false; + this.lblText.AutoSize = false; + this.lblText.Dock = DockStyle.Fill; + this.lblText.Location = new Point(0, 0); + this.lblText.TextAlign = ContentAlignment.MiddleLeft; + this.txtEdit.Properties.AutoHeight = false; + this.plLeft.Width = value.Length * GetCharWidth(); + GetCharWidthMultilingual(this.lblText, this.lblText.Text, this.plLeft); + } + else + { + this.plLeft.Width = this.lblText.Width + PaddingLeft; + } + } + } + + /// + /// 字体大小。 + /// + public override float FontSize + { + get + { + return base.FontSize; + } + set + { + base.FontSize = value; + if (value > 0) + { + this.lblText.Font = new Font(this.lblText.Font.FontFamily, value); + this.TextEdit.Font = new Font(this.TextEdit.Font.FontFamily, value); + } + } + } + + /// + /// 设置控件值,MyControl.SetControlValue 会通过该属性给控件赋值。 + /// + public override string EditText + { + get + { + return this.txtEdit.Text; + } + set + { + this.txtEdit.EditValue = string.IsNullOrWhiteSpace(value) ? null : value; + } + } + + /// + /// 控件提示文本。 + /// + public override string NullText + { + get + { + return this.txtEdit.Properties.NullValuePrompt; + } + set + { + if (!string.IsNullOrEmpty(value)) + { + this.TextEdit.Properties.NullValuePromptShowForEmptyValue = true; + this.TextEdit.Properties.NullValuePrompt = value; + } + base.NullText = value; + } + } + + /// + /// 只读状态。 + /// + public override bool ReadOnly + { + get + { + return base.ReadOnly; + } + set + { + base.ReadOnly = value; + this.txtEdit.Properties.ReadOnly = value; + this.txtEdit.Enabled = !value; + this.lblText.ForeColor = value ? base.ReadOnlyLabelForceColor : Required ? base.RequiredLabelForceColor : base.DefaultLabelForceColor; + } + } + + /// + /// 必填状态。 + /// + public override bool Required + { + get + { + return base.Required; + } + set + { + base.Required = value; + if (value) + { + this.lblText.ForeColor = base.RequiredLabelForceColor; + } + } + } + + private void InitPopup() + { + this.specialDatePopup = new SpecialDatePopup(); + this.specialDatePopup.Dock = DockStyle.Fill; + + this.popupControl = new PopupContainerControl(); + this.popupControl.Controls.Add(this.specialDatePopup); + this.popupControl.Size = this.specialDatePopup.Size; + + this.txtEdit.Properties.PopupControl = this.popupControl; + this.txtEdit.Properties.TextEditStyle = TextEditStyles.Standard; + this.txtEdit.QueryPopUp += TextEdit_QueryPopUp; + + this.specialDatePopup.ConfirmClick += SpecialDatePopup_ConfirmClick; + this.specialDatePopup.ClearClick += SpecialDatePopup_ClearClick; + this.specialDatePopup.CancelClick += SpecialDatePopup_CancelClick; + } + + private void TextEdit_QueryPopUp(object sender, CancelEventArgs e) + { + this.popupControl.Size = this.specialDatePopup.Size; + this.specialDatePopup.OwnerEdit = this.txtEdit; + this.specialDatePopup.SetValue(this.txtEdit.EditValue + ""); + } + + private void SpecialDatePopup_ConfirmClick(object sender, System.EventArgs e) + { + this.txtEdit.EditValue = this.specialDatePopup.SelectedValue; + this.txtEdit.ClosePopup(); + } + + private void SpecialDatePopup_ClearClick(object sender, System.EventArgs e) + { + this.txtEdit.EditValue = string.Empty; + this.txtEdit.ClosePopup(); + } + + private void SpecialDatePopup_CancelClick(object sender, System.EventArgs e) + { + this.txtEdit.ClosePopup(); + } + } +} diff --git a/插件库/Lskj.Control/LabelDateHalfDayEdit.resx b/插件库/Lskj.Control/LabelDateHalfDayEdit.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/插件库/Lskj.Control/LabelDateHalfDayEdit.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/插件库/Lskj.Control/Model/CommonMenu.cs b/插件库/Lskj.Control/Model/CommonMenu.cs index 76d7974..e4f75c8 100644 --- a/插件库/Lskj.Control/Model/CommonMenu.cs +++ b/插件库/Lskj.Control/Model/CommonMenu.cs @@ -419,7 +419,8 @@ namespace Lskj.Control.Model default: List str = new List { - _model.FormText, + //_model.FormText, + model.MenuName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "3", diff --git a/插件库/Lskj.Control/Model/ControlModel.cs b/插件库/Lskj.Control/Model/ControlModel.cs index 966ab0b..b4bd073 100644 --- a/插件库/Lskj.Control/Model/ControlModel.cs +++ b/插件库/Lskj.Control/Model/ControlModel.cs @@ -332,4 +332,11 @@ namespace Lskj.Control.Model ///是否为 单据动态生成列开始日期控件 /// public bool SchedStartDataControl { get; set; } - /// \ No newline at end of file + /// + /// 弹出列表框中字体大小 + /// + public int ListBoxFontSize { get; set; } + /// + /// 字段浏览权限 + /// + public string PrivilegeVie \ No newline at end of file diff --git a/插件库/Lskj.Control/Model/ControlType.cs b/插件库/Lskj.Control/Model/ControlType.cs index 4b44626..1ddd0e3 100644 --- a/插件库/Lskj.Control/Model/ControlType.cs +++ b/插件库/Lskj.Control/Model/ControlType.cs @@ -67,6 +67,10 @@ namespace Lskj.Control.Model /// 日期框 显示(年-月) /// public const int LabShortDate = 444444; + /// + /// 日期框 显示(年-月-日 上午/下午),保存字符串 + /// + public const int LabDateHalfDay = 445; /// /// 自动搜索框 保存Value值, 显示Text值 @@ -477,6 +481,14 @@ namespace Lskj.Control.Model ///模块选择返回行,返回text /// public const int LabModuleAddRowsText = 168; + /// + /// 模块选择返回ID(新版)单选 + /// + public const int LabSelectReturnIdSingleNew = 171; + /// + /// 模块选择返回Text(新版)单选 + /// + public const int LabSelectReturnTextSingleNew = 172; /// /// 说明:是否为Value类型 @@ -577,4 +589,5 @@ namespace Lskj.Control.Model /// /// 不需要根据数据源sql获取数据源的控件 /// - /// + /// public string PlanLetfControl; /// - /// 隐藏下方操作按钮 + /// 隐藏下方操作按钮(后续配置Dll模板,配置为Lskj.Report.dll也会隐藏下方,dll模板的配置是cs和bs通用的) /// public bool HideBottomPanel; /// @@ -298,6 +298,10 @@ namespace Lskj.Control.Model /// 刷新单表明细时忽略关联字段(单表中,有关联模块,但是没有关联条件,关联值,是不会去查询数据的) /// public bool IgnoreAssociatedFields; + /// + /// Dll模板 + /// + public string Library; /// /// 主模块编号 @@ -361,4 +365,5 @@ namespace Lskj.Control.Model this.BottomRefreshMain = item.Table.Columns.Contains("BottomRefreshMain") ? "1".Equals(item["BottomRefreshMain"] + "") : false; this.LoadFilter = item.Table.Columns.Contains("LoadFilter") ? "1".Equals(item["LoadFilter"] + "") : false; this.DynamicDetails = item.Table.Columns.Contains("DynamicDetails") ? "1".Equals(item["DynamicDetails"] + "") : false; - this.DetailSearch = item.Tabl \ No newline at end of file + this.DetailSearch = item.Table.Columns.Contains("DetailSearch") ? "1".Equals(item["DetailSearch"] + "") : false; + \ No newline at end of file diff --git a/插件库/Lskj.Control/Model/MyControl.cs b/插件库/Lskj.Control/Model/MyControl.cs index bf2174a..872a671 100644 --- a/插件库/Lskj.Control/Model/MyControl.cs +++ b/插件库/Lskj.Control/Model/MyControl.cs @@ -402,6 +402,7 @@ namespace Lskj.Control.Model if (control != null) { BaseUserControl baseControl = control as BaseUserControl; + baseControl.Location = model.Location; System.Threading.SynchronizationContext.Current.Post(SetProperty, null); void SetProperty(object state) { @@ -412,7 +413,7 @@ namespace Lskj.Control.Model baseControl.LabelText = model.LabelText; baseControl.NullText = model.NullText; //baseControl.EditText = model.DefaultValue; - baseControl.Location = model.Location; + //baseControl.Location = model.Location; baseControl.Size = model.Size; if (!model.ReadOnly && !string.IsNullOrWhiteSpace(model.ControlTitleColor)) { @@ -1647,11 +1648,18 @@ namespace Lskj.Control.Model { SetControlValue(model, this.ParentKey); } + else if (model.RememberValue&& ConditionalCaching.ConditionalCaches.ContainsKey(model.id) && !string.IsNullOrWhiteSpace(ConditionalCaching.ConditionalCaches[model.id])) + { + SetControlValue(model, ConditionalCaching.ConditionalCaches[model.id]); + } else if (!string.IsNullOrEmpty(model.DefaultValue)) { string defaultValue = this.SystemModel != null ? ReplaceHelper.ReplaceRowParam(this.SystemModel.maintabFocusedRow, model.DefaultValue) : model.DefaultValue; SetControlValue(model, defaultValue); } + + + } //智能搜索框第一次加载时手动触发 if (changeLabelAutoGridLooks.Count > 0) @@ -2013,6 +2021,11 @@ namespace Lskj.Control.Model } //value = dateEdit.TextEdit.EditValue == null ? dateEdit.EditText : dateEdit.TextEdit.EditValue.ToString(); break; + case ControlType.LabDateHalfDay: + // 日期半天控件 + LabelDateHalfDayEdit dateHalfDayEdit = ctr as LabelDateHalfDayEdit; + if (dateHalfDayEdit != null) value = dateHalfDayEdit.TextEdit.EditValue == null ? dateHalfDayEdit.EditText : dateHalfDayEdit.TextEdit.EditValue.ToString(); + break; case ControlType.LabShortDate: //为保存和表格保存格式相同。默认取EditValue值 LabelDateEdit dateEditNew = ctr as LabelDateEdit; @@ -4120,6 +4133,9 @@ namespace Lskj.Control.Model model.AuditControlTitleColor = item.Table.Columns.Contains("AuditControlTitleColor") ? item["AuditControlTitleColor"] + "" : ""; model.ModuleFrameDisplayText = item.Table.Columns.Contains("ModuleFrameDisplayText") ? "1".Equals(item["ModuleFrameDisplayText"] + "") : false; model.InputBoxFontSize = item.Table.Columns.Contains("InputBoxFontSize") && !string.IsNullOrEmpty(item["InputBoxFontSize"] + "") ? Convert.ToInt32(item["InputBoxFontSize"] + "") : 0; + model.RememberValue = item.Table.Columns.Contains("RememberValue") ? "1".Equals(item["RememberValue"] + "") : false; + + //为了和工具里和bs里统一 if (model.FieldType == 42) { @@ -4133,6 +4149,18 @@ namespace Lskj.Control.Model model.FieldType = 160; model.IsRadio = false; } + if (model.FieldType == 171) + { + //模块选择返回ID(新版)单选 + model.FieldType = 160; + model.IsRadio = true; + } + if (model.FieldType == 172) + { + //模块选择返回Text(新版)单选 + model.FieldType = 161; + model.IsRadio = true; + } return model; } @@ -4239,6 +4267,16 @@ namespace Lskj.Control.Model } baseControl = dateEdit; break; + case ControlType.LabDateHalfDay: + // 日期半天控件 + LabelDateHalfDayEdit dateHalfDayEdit = new LabelDateHalfDayEdit(); + dateHalfDayEdit.TextEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + + dateHalfDayEdit.TextEdit.KeyDown += new KeyEventHandler(OnTextEditKeyDown); + dateHalfDayEdit.TextEdit.TextChanged += new EventHandler(OnTextEditTextChanged); + if (!isLoadBorder) dateHalfDayEdit.TextEdit.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + baseControl = dateHalfDayEdit; + break; case ControlType.LabComboxValue: case ControlType.LabComboxText: case ControlType.LabComboxValueParam: @@ -4667,7 +4705,7 @@ namespace Lskj.Control.Model model.SourceSql = ""; //设置了ModuleFrameDisplayText(显示text值),就把配置的模块sql传给model.SourceSql - if (model.ModuleFrameDisplayText) + if (model.FieldType == ControlType.LabSelectReturnIdNew) { moduleReturnsIdNew.ModuleFrameDisplayText = true; model.SourceSql = moduleReturnsIdNew._lookUpForm.SysModel.MenuSql; @@ -5175,6 +5213,13 @@ namespace Lskj.Control.Model if (baseControl != null && baseControl.Model != null) { ControlModel model = baseControl.Model as ControlModel; + if (model.RememberValue) + { + //记录控件值 + string fieldValue = GetControlValue(model); + ConditionalCaching.ConditionalCaches[model.id] = fieldValue; + } + if (this.CanExecControl) { // 是否存在计算值 @@ -6258,4 +6303,4 @@ namespace Lskj.Control.Model LabelDateEdit dateEdit = controlObj as LabelDateEdit; value = dateEdit.TextEdit.EditValue == null ? dateEdit.EditText : dateEdit.TextEdit.DateTime.ToString("yyyy-MM-dd"); } - else if \ No newline at end of file + else if ( \ No newline at end of file diff --git a/插件库/Lskj.Control/ModuleEx.cs b/插件库/Lskj.Control/ModuleEx.cs index 193f95e..1c908a3 100644 --- a/插件库/Lskj.Control/ModuleEx.cs +++ b/插件库/Lskj.Control/ModuleEx.cs @@ -671,6 +671,8 @@ namespace Lskj.Control sqlValue = ReplaceHelper.ReplaceRowParam(this.treeGridLeft.GetViewFocusedDataRow(), sqlValue); //isLoadGridSplit = rowitem != null && rowitem.Table.Columns.Contains("ReminderInformation"); } + + //if (isLoadGridSplit) //{ // this.ModuleGridObj.VisibleSearchPanel = false; @@ -1109,6 +1111,19 @@ namespace Lskj.Control } } + if (this.SysModel.LeftUnioCond && e != null) + { + DataRow dr = this.gridLeft.GetViewFocusedDataRow(); + foreach (ControlModel item in this.ModuleGridObj.SearchObj.ControlModels) + { + if (dr.Table.Columns.Contains(item.FieldName)) + { + this.ModuleGridObj.SearchObj.SetControlValue(item, dr[item.FieldName] + ""); + } + } + + } + if (this.SysModel.IgnoreMainload) { // 只加载明细 @@ -1247,6 +1262,18 @@ namespace Lskj.Control this.ModuleGridObj.SetDisplayColumns(dataRow["ReminderInformation"] + ""); } } + if (this.SysModel.LeftUnioCond ) + { + DataRow dr = this.treeGridLeft.GetViewFocusedDataRow(); + foreach (ControlModel item in this.ModuleGridObj.SearchObj.ControlModels) + { + if (dr.Table.Columns.Contains(item.FieldName)) + { + this.ModuleGridObj.SearchObj.SetControlValue(item, dr[item.FieldName] + ""); + } + } + + } this.SetMainGridView(); if (this.IsDragDetail) diff --git a/插件库/Lskj.Control/TabControlEx.cs b/插件库/Lskj.Control/TabControlEx.cs index 7175eb1..5901aaa 100644 --- a/插件库/Lskj.Control/TabControlEx.cs +++ b/插件库/Lskj.Control/TabControlEx.cs @@ -1385,7 +1385,10 @@ namespace Lskj.Control } gridEx.VisibleOperPanel = !model.IsReadOnly; - if (model.HideBottomPanel) gridEx.VisibleOperPanel = false; + if (model.HideBottomPanel|| model.Library.Equals("Lskj.Report.dll", StringComparison.OrdinalIgnoreCase)) + { + gridEx.VisibleOperPanel = false; + } gridEx.InitializeControl(model.SystemModel, dyncModel); gridEx.GridControlObj.Tag = model; diff --git a/插件库/Lskj.Control/TreeBandedGridControlEx.cs b/插件库/Lskj.Control/TreeBandedGridControlEx.cs index e772d1d..3d82e4a 100644 --- a/插件库/Lskj.Control/TreeBandedGridControlEx.cs +++ b/插件库/Lskj.Control/TreeBandedGridControlEx.cs @@ -54,19 +54,29 @@ namespace Lskj.Control /// 获取模块配置 /// public ModuleModel moduleModel; - public TreeList TreeListObj { get { return gcMain; } } + public override TreeList TreeListObj { get { return gcMain; } } /// /// 树表格固定菜单 /// - public ContextMenuStrip MenuStrip { get { return contextMenuStrip; } } + public override ContextMenuStrip MenuStrip { get { return contextMenuStrip; } } /// /// 默认全部展开 /// - public string Expansion = "1"; + private string _expansion = "1"; + public override string Expansion + { + get { return _expansion; } + set { _expansion = value; } + } //treeList树展开的节点块 - public List treeListNodes = new List(); + private List _treeListNodes = new List(); + public override List treeListNodes + { + get { return _treeListNodes; } + set { _treeListNodes = value; } + } /// /// 按初始顺序保存全部gridBand @@ -272,7 +282,7 @@ namespace Lskj.Control /// /// The sender. /// The instance containing the event data. - protected void OnGridViewRowStyle(object sender, GetCustomNodeCellStyleEventArgs e) + protected override void OnGridViewRowStyle(object sender, GetCustomNodeCellStyleEventArgs e) { if (this.GridRowColorsTable != null && this.GridRowColorsTable.Rows.Count > 0) { @@ -324,7 +334,7 @@ namespace Lskj.Control /// The source of the event. /// The instance containing the event data. /// - protected void OnGridViewRowCellStyle(object sender, CustomDrawNodeCellEventArgs e) + protected override void OnGridViewRowCellStyle(object sender, CustomDrawNodeCellEventArgs e) { if (this.GridRowColorsTable != null && this.GridRowColorsTable.Rows.Count > 0 && !string.IsNullOrEmpty(e.CellValue + "")) { @@ -596,7 +606,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The dr row. - protected void InitEditColumns(TreeListColumn column, GridColumnModel model) + protected override void InitEditColumns(TreeListColumn column, GridColumnModel model) { switch (model.FieldType) { @@ -722,7 +732,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitAutoLinefeedEdit(TreeListColumn gridColumn, GridColumnModel model) + public override void InitAutoLinefeedEdit(TreeListColumn gridColumn, GridColumnModel model) { DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit AutoLinefeedEdit = new DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit(); gridColumn.ColumnEdit = AutoLinefeedEdit; @@ -738,7 +748,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitPasswordEdit(TreeListColumn gridColumn, GridColumnModel model) + public override void InitPasswordEdit(TreeListColumn gridColumn, GridColumnModel model) { RepositoryItemTextEdit passEdit = new RepositoryItemTextEdit(); passEdit.UseSystemPasswordChar = true; @@ -756,7 +766,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitComboxEdit(TreeListColumn gridColumn, GridColumnModel model) + public override void InitComboxEdit(TreeListColumn gridColumn, GridColumnModel model) { RepositoryItemLookUpEdit comboxEdit = new RepositoryItemLookUpEdit(); if (model.FontSize > 0) comboxEdit.Appearance.Font = new Font("微软雅黑", model.FontSize); @@ -811,7 +821,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitProgressEdit(TreeListColumn gridColumn) + public override void InitProgressEdit(TreeListColumn gridColumn) { RepositoryItemProgressBar progressEdit = new RepositoryItemProgressBar(); progressEdit.ShowTitle = true; @@ -831,7 +841,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitAutoSearchEdit(TreeListColumn gridColumn, GridColumnModel model) + public override void InitAutoSearchEdit(TreeListColumn gridColumn, GridColumnModel model) { int popWidth = 0; @@ -935,7 +945,7 @@ namespace Lskj.Control /// /// The grid column. /// Type of the field. - public void InitDateTimeEdit(TreeListColumn gridColumn, int fieldType) + public override void InitDateTimeEdit(TreeListColumn gridColumn, int fieldType) { RepositoryItemDateEdit dateEdit = new RepositoryItemDateEdit(); dateEdit.DisplayFormat.FormatString = dateEdit.EditFormat.FormatString = dateEdit.Mask.EditMask = DateFormat.Format(fieldType); @@ -971,7 +981,7 @@ namespace Lskj.Control /// /// The grid column. /// Type of the field. - public void InitTimeEdit(TreeListColumn gridColumn, int fieldType) + public override void InitTimeEdit(TreeListColumn gridColumn, int fieldType) { RepositoryItemTimeEdit timeEdit = new RepositoryItemTimeEdit(); timeEdit.DisplayFormat.FormatString = timeEdit.EditFormat.FormatString = timeEdit.Mask.EditMask = DateFormat.Format(fieldType); @@ -991,7 +1001,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitCalcEdit(TreeListColumn gridColumn) + public override void InitCalcEdit(TreeListColumn gridColumn) { RepositoryItemCalcEdit calcEdit = new RepositoryItemCalcEdit(); calcEdit.AllowMouseWheel = false; @@ -1010,7 +1020,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitMemoEdit(TreeListColumn gridColumn) + public override void InitMemoEdit(TreeListColumn gridColumn) { RepositoryItemMemoExEdit memoEdit = new RepositoryItemMemoExEdit(); memoEdit.WordWrap = true; @@ -1037,7 +1047,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitRemarkEdit(TreeListColumn gridColumn) + public override void InitRemarkEdit(TreeListColumn gridColumn) { RepositoryItemMemoEdit memo = new RepositoryItemMemoEdit(); memo.Appearance.TextOptions.WordWrap = WordWrap.Wrap;//自动换行 @@ -1056,7 +1066,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitMutilEdit(TreeListColumn gridColumn, GridColumnModel model) + public override void InitMutilEdit(TreeListColumn gridColumn, GridColumnModel model) { FrmLookUp mutilLookUp = new FrmLookUp(); mutilLookUp.ValueField = model.ValueMember; @@ -1103,7 +1113,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitAutoTreeSearchEdit(TreeListColumn gridColumn, GridColumnModel model, bool isMulitClick = true, bool isRootNode = true) + public override void InitAutoTreeSearchEdit(TreeListColumn gridColumn, GridColumnModel model, bool isMulitClick = true, bool isRootNode = true) { PubTreeLookUp _popup = new PubTreeLookUp(); //_popup.LookUp = gridColumn; @@ -1150,7 +1160,7 @@ namespace Lskj.Control /// /// The grid column. /// The model. - public void InitMutilComboxEdit(TreeListColumn gridColumn, GridColumnModel model) + public override void InitMutilComboxEdit(TreeListColumn gridColumn, GridColumnModel model) { RepositoryItemCheckedComboBoxEdit comboxEdit = new RepositoryItemCheckedComboBoxEdit(); comboxEdit.AllowFocused = true; @@ -1177,7 +1187,7 @@ namespace Lskj.Control /// /// The grid column. /// The model. - public void InitRichEdit(TreeListColumn gridColumn) + public override void InitRichEdit(TreeListColumn gridColumn) { RepositoryItemRichTextEdit richEdit = new RepositoryItemRichTextEdit(); richEdit.Encoding = Encoding.UTF8;//乱码问题 @@ -1194,7 +1204,7 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - public void InitPicEdit(TreeListColumn gridColumn) + public override void InitPicEdit(TreeListColumn gridColumn) { RepositoryItemPictureEdit picEdit = new RepositoryItemPictureEdit(); picEdit.AutoHeight = true; @@ -1309,7 +1319,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitCheckEdit(TreeListColumn gridColumn) + public override void InitCheckEdit(TreeListColumn gridColumn) { RepositoryItemCheckEdit checkEdit = new RepositoryItemCheckEdit(); checkEdit.ValueChecked = 1; @@ -1488,13 +1498,13 @@ namespace Lskj.Control /// /// The table. /// The custom colum key. - public void InitializeTreeMethod() + public override void InitializeTreeMethod() { this.TreeListObj.CellValueChanging += new DevExpress.XtraTreeList.CellValueChangedEventHandler(OnCellValueChaning); } - protected void OnCellValueChaning(object sender, CellValueChangedEventArgs e) + protected override void OnCellValueChaning(object sender, CellValueChangedEventArgs e) { try { @@ -1522,7 +1532,7 @@ namespace Lskj.Control /// The node. /// The check. /// The grid column. - protected void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, TreeListColumn gridColumn) + protected override void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, TreeListColumn gridColumn) { for (int i = 0; i < node.Nodes.Count; i++) { @@ -1544,7 +1554,7 @@ namespace Lskj.Control /// The node. /// The check. /// The grid column. - protected void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, TreeListColumn gridColumn) + protected override void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, TreeListColumn gridColumn) { if (node.ParentNode != null) { @@ -1572,13 +1582,13 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - protected void SetGridRowHeightAndFont() + protected override void SetGridRowHeightAndFont() { if (SystemInfo.Instance.GridRowFontSize > 0) - this.gcMain.Appearance.Row.Font = new Font("微软雅黑", SystemInfo.Instance.GridRowFontSize); + this.TreeListObj.Appearance.Row.Font = new Font("微软雅黑", SystemInfo.Instance.GridRowFontSize); if (SystemInfo.Instance.GridRowHeight > 0) { - this.gcMain.ColumnPanelRowHeight = this.gcMain.RowHeight = SystemInfo.Instance.GridRowHeight; + this.TreeListObj.ColumnPanelRowHeight = this.TreeListObj.RowHeight = SystemInfo.Instance.GridRowHeight; } } /// @@ -1749,7 +1759,7 @@ namespace Lskj.Control /// /// The grid column. /// The model. - protected virtual void SetColumnFormat(TreeListColumn gridColumn, GridColumnModel model) + public override void SetColumnFormat(TreeListColumn gridColumn, GridColumnModel model) { if (gridColumn == null || model == null) return; @@ -1927,7 +1937,7 @@ namespace Lskj.Control /// /// The sender. /// The instance containing the event data. - protected virtual void OnTreeGridViewKeyDown(object sender, KeyEventArgs e) + protected override void OnTreeGridViewKeyDown(object sender, KeyEventArgs e) { try { @@ -2058,7 +2068,7 @@ namespace Lskj.Control /// /// The table. /// if set to true [select row handler]. - public DataTable GetGridViewDataSource() + public override DataTable GetGridViewDataSource() { return this.gcMain.DataSource as DataTable; } @@ -2197,7 +2207,7 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - protected virtual void SetAutoColumns() + protected override void SetAutoColumns() { try { @@ -2361,7 +2371,7 @@ namespace Lskj.Control /// /// 记录展开的节点 /// - public void GetTreeExpanded() + public override void GetTreeExpanded() { treeListNodes.Clear(); @@ -2372,7 +2382,7 @@ namespace Lskj.Control } - public void setRecursive(TreeListNode treeNode) + public override void setRecursive(TreeListNode treeNode) { if (treeNode.Expanded) treeListNodes.Add(treeNode); // Visit each node recursively. @@ -2448,7 +2458,7 @@ namespace Lskj.Control /// /// The sender. /// The instance containing the event data. - protected void OnAutoSearchEditPopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) + protected override void OnAutoSearchEditPopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) { try { @@ -2595,7 +2605,7 @@ namespace Lskj.Control /// /// The source of the event. /// The instance containing the event data. - protected void OnPopupGridViewEnter(object sender, KeyEventArgs e) + protected override void OnPopupGridViewEnter(object sender, KeyEventArgs e) { try { @@ -2744,7 +2754,7 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - protected void OnModuleChoice(object sender, ButtonPressedEventArgs e) + protected override void OnModuleChoice(object sender, ButtonPressedEventArgs e) { try { @@ -2798,7 +2808,7 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - protected void OnModuleRowsChoice(object sender, ButtonPressedEventArgs e) + protected override void OnModuleRowsChoice(object sender, ButtonPressedEventArgs e) { try { @@ -3072,4 +3082,4 @@ namespace Lskj.Control } table.Rows.Add(newRow); //this.gridView.FocusedRowHandle = _rowNumber - 1; - \ No newline at end of file + \ No newline at end of file diff --git a/插件库/Lskj.Control/TreeGridControlEx.cs b/插件库/Lskj.Control/TreeGridControlEx.cs index 742bdb3..569348c 100644 --- a/插件库/Lskj.Control/TreeGridControlEx.cs +++ b/插件库/Lskj.Control/TreeGridControlEx.cs @@ -50,19 +50,29 @@ namespace Lskj.Control /// public partial class TreeGridControlEx : GridControlEx { - public TreeList TreeListObj { get { return gcMain; } } + public virtual TreeList TreeListObj { get { return gcMain; } } /// /// 树表格固定菜单 /// - public ContextMenuStrip MenuStrip { get { return contextMenuStrip; } } + public virtual ContextMenuStrip MenuStrip { get { return contextMenuStrip; } } /// /// 默认全部展开 /// - public string Expansion = "1"; + private string _expansion = "1"; + public virtual string Expansion + { + get { return _expansion; } + set { _expansion = value; } + } //treeList树展开的节点块 - public List treeListNodes = new List(); + private List _treeListNodes = new List(); + public virtual List treeListNodes + { + get { return _treeListNodes; } + set { _treeListNodes = value; } + } /// /// 排序字段 @@ -102,7 +112,7 @@ namespace Lskj.Control this.gcMain.KeyDown += new KeyEventHandler(OnTreeGridViewKeyDown); this.gcMain.SelectionChanged += new EventHandler(gcMain_SelectionChanged); this.gcMain.CustomDrawNodeCell += new CustomDrawNodeCellEventHandler(OnCustomDrawNodeCell); - this.TreeListObj.CustomDrawNodeIndicator += TreeListObj_CustomDrawNodeIndicator;//显示行号 + this.gcMain.CustomDrawNodeIndicator += TreeListObj_CustomDrawNodeIndicator;//显示行号 this.gcMain.CellValueChanged += GcMain_CellValueChanged; this.gcMain.NodesReloaded += OnNodesReloaded; this.gcMain.ColumnFilterChanged += TreeList1_ColumnFilterChanged; @@ -117,7 +127,7 @@ namespace Lskj.Control if (LicenseManager.UsageMode != LicenseUsageMode.Designtime) { - this.SetGridRowHeightAndFont(); + SetGridRowHeightAndFont(this.gcMain); if (SystemInfo.Instance.ExpandButtonType.Equals("1")) { this.gcMain.CustomDrawNodeButton += OnCustomDrawNodeButton;//绘制按钮 @@ -194,7 +204,7 @@ namespace Lskj.Control { // 跳过空节点 if (node == null) continue; - DataRowView dataRowView = this.gcMain.GetDataRecordByNode(node) as DataRowView; + DataRowView dataRowView = this.TreeListObj.GetDataRecordByNode(node) as DataRowView; DataRow gridRow = dataRowView != null ? dataRowView.Row : null; if ("true".Equals(EvalHelper.Eval(ReplaceHelper.ReplaceEvalCond(ReplaceHelper.ReplaceRowParam(gridRow, columnModel.SumCond))) + "", StringComparison.OrdinalIgnoreCase)) @@ -255,7 +265,7 @@ namespace Lskj.Control { //try //{ - //List cells = this.gcMain.GetSelectedCells(); + //List cells = this.TreeListObj.GetSelectedCells(); //DataRow[] rows = GetViewFocusedDataRows(); //this.pl_buttom.Visible = cells.Count > 1 && rows.Length > 1; @@ -312,9 +322,9 @@ namespace Lskj.Control { DataRow rowItem = table.Select("1=1").FirstOrDefault(x => (x["condition"] + "").Contains("COLUMN_")); if (rowItem != null) - this.gcMain.CustomDrawNodeCell += new CustomDrawNodeCellEventHandler(OnGridViewRowCellStyle); + this.TreeListObj.CustomDrawNodeCell += new CustomDrawNodeCellEventHandler(OnGridViewRowCellStyle); else - this.gcMain.NodeCellStyle += new GetCustomNodeCellStyleEventHandler(OnGridViewRowStyle); + this.TreeListObj.NodeCellStyle += new GetCustomNodeCellStyleEventHandler(OnGridViewRowStyle); } } /// @@ -328,12 +338,12 @@ namespace Lskj.Control /// /// The sender. /// The instance containing the event data. - protected void OnGridViewRowStyle(object sender, GetCustomNodeCellStyleEventArgs e) + protected virtual void OnGridViewRowStyle(object sender, GetCustomNodeCellStyleEventArgs e) { if (this.GridRowColorsTable != null && this.GridRowColorsTable.Rows.Count > 0) { // 渲染界面数据量过多界面刷新会很慢 - DataRowView dataRowView = this.gcMain.GetDataRecordByNode(e.Node) as DataRowView; + DataRowView dataRowView = this.TreeListObj.GetDataRecordByNode(e.Node) as DataRowView; DataRow gridRow = dataRowView != null ? dataRowView.Row : null; foreach (DataRow item in this.GridRowColorsTable.Rows) { @@ -380,12 +390,12 @@ namespace Lskj.Control /// The source of the event. /// The instance containing the event data. /// - protected void OnGridViewRowCellStyle(object sender, CustomDrawNodeCellEventArgs e) + protected virtual void OnGridViewRowCellStyle(object sender, CustomDrawNodeCellEventArgs e) { if (this.GridRowColorsTable != null && this.GridRowColorsTable.Rows.Count > 0 && !string.IsNullOrEmpty(e.CellValue + "")) { // 渲染界面数据量过多界面刷新会很慢 - DataRowView dataRowView = this.gcMain.GetDataRecordByNode(e.Node) as DataRowView; + DataRowView dataRowView = this.TreeListObj.GetDataRecordByNode(e.Node) as DataRowView; DataRow gridRow = dataRowView != null ? dataRowView.Row : null; foreach (DataRow item in this.GridRowColorsTable.Rows) { @@ -453,21 +463,21 @@ namespace Lskj.Control //根据记录展开对应节点 foreach (TreeListNode treeListNode in treeListNodes) { - TreeListNode treeListNode1 = this.gcMain.Nodes.TreeList.FindNodeByID(treeListNode.Id); + TreeListNode treeListNode1 = this.TreeListObj.Nodes.TreeList.FindNodeByID(treeListNode.Id); if (treeListNode1 != null) treeListNode1.Expanded = true; } this.TreeListObj.FocusedNode = this.TreeListObj.GetNodeByVisibleIndex(lastNodeIndex); if ((Expansion + "").Equals("1")) { - this.gcMain.ExpandAll(); + this.TreeListObj.ExpandAll(); } else if ((Expansion + "").Equals("2")) { - this.gcMain.ExpandToLevel(0); + this.TreeListObj.ExpandToLevel(0); } else if ((Expansion + "").Equals("3")) { - this.gcMain.CollapseAll(); + this.TreeListObj.CollapseAll(); } //if (selectRowHandler) @@ -531,14 +541,14 @@ namespace Lskj.Control this.SetColumnSumming(gridColumn, model); // 创建列 this.InitEditColumns(gridColumn, model); - this.gcMain.Columns.AddRange(new TreeListColumn[] { gridColumn }); - //gcMain.Bands[0].Columns.Add(gridColumn); + this.TreeListObj.Columns.AddRange(new TreeListColumn[] { gridColumn }); + //TreeListObj.Bands[0].Columns.Add(gridColumn); this.ColumnList.Add(model); } if (!dataCaches.GetValue(this, "CustomColumnByDatabase", out DataTable customTable)) { - customTable = this.gcMain.GetCustomColumnByDatabase(this.CustomColumKey); + customTable = this.TreeListObj.GetCustomColumnByDatabase(this.CustomColumKey); } this.SetCustomColumns(customTable); @@ -557,7 +567,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The dr row. - protected void InitEditColumns(TreeListColumn column, GridColumnModel model) + protected virtual void InitEditColumns(TreeListColumn column, GridColumnModel model) { switch (model.FieldType) { @@ -648,7 +658,7 @@ namespace Lskj.Control break; case ControlType.LabPicUrl: // 用工具类创建图片列(绑定 Tag、Repository、UnboundType) - LabPicUrlPreview_TreeList.InitPicColumn(this.gcMain, column, model); + LabPicUrlPreview_TreeList.InitPicColumn(this.TreeListObj, column, model); break; case ControlType.LabSelectReturnId: case ControlType.LabSelectReturnText: @@ -691,7 +701,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitAutoLinefeedEdit(TreeListColumn gridColumn, GridColumnModel model) + public virtual void InitAutoLinefeedEdit(TreeListColumn gridColumn, GridColumnModel model) { DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit AutoLinefeedEdit = new DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit(); gridColumn.ColumnEdit = AutoLinefeedEdit; @@ -707,7 +717,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitPasswordEdit(TreeListColumn gridColumn, GridColumnModel model) + public virtual void InitPasswordEdit(TreeListColumn gridColumn, GridColumnModel model) { RepositoryItemTextEdit passEdit = new RepositoryItemTextEdit(); passEdit.UseSystemPasswordChar = true; @@ -725,7 +735,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitComboxEdit(TreeListColumn gridColumn, GridColumnModel model) + public virtual void InitComboxEdit(TreeListColumn gridColumn, GridColumnModel model) { RepositoryItemLookUpEdit comboxEdit = new RepositoryItemLookUpEdit(); if (model.FontSize > 0) comboxEdit.Appearance.Font = new Font("微软雅黑", model.FontSize); @@ -780,7 +790,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitProgressEdit(TreeListColumn gridColumn) + public virtual void InitProgressEdit(TreeListColumn gridColumn) { RepositoryItemProgressBar progressEdit = new RepositoryItemProgressBar(); progressEdit.ShowTitle = true; @@ -800,7 +810,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitAutoSearchEdit(TreeListColumn gridColumn, GridColumnModel model) + public virtual void InitAutoSearchEdit(TreeListColumn gridColumn, GridColumnModel model) { int popWidth = 0; @@ -904,7 +914,7 @@ namespace Lskj.Control /// /// The grid column. /// Type of the field. - public void InitDateTimeEdit(TreeListColumn gridColumn, int fieldType) + public virtual void InitDateTimeEdit(TreeListColumn gridColumn, int fieldType) { RepositoryItemDateEdit dateEdit = new RepositoryItemDateEdit(); dateEdit.DisplayFormat.FormatString = dateEdit.EditFormat.FormatString = dateEdit.Mask.EditMask = DateFormat.Format(fieldType); @@ -939,7 +949,7 @@ namespace Lskj.Control /// /// The grid column. /// Type of the field. - public void InitTimeEdit(TreeListColumn gridColumn, int fieldType) + public virtual void InitTimeEdit(TreeListColumn gridColumn, int fieldType) { RepositoryItemTimeEdit timeEdit = new RepositoryItemTimeEdit(); timeEdit.DisplayFormat.FormatString = timeEdit.EditFormat.FormatString = timeEdit.Mask.EditMask = DateFormat.Format(fieldType); @@ -959,7 +969,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitCalcEdit(TreeListColumn gridColumn) + public virtual void InitCalcEdit(TreeListColumn gridColumn) { RepositoryItemCalcEdit calcEdit = new RepositoryItemCalcEdit(); calcEdit.AllowMouseWheel = false; @@ -978,7 +988,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitMemoEdit(TreeListColumn gridColumn) + public virtual void InitMemoEdit(TreeListColumn gridColumn) { RepositoryItemMemoExEdit memoEdit = new RepositoryItemMemoExEdit(); memoEdit.WordWrap = true; @@ -1005,7 +1015,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitRemarkEdit(TreeListColumn gridColumn) + public virtual void InitRemarkEdit(TreeListColumn gridColumn) { RepositoryItemMemoEdit memo = new RepositoryItemMemoEdit(); memo.Appearance.TextOptions.WordWrap = WordWrap.Wrap;//自动换行 @@ -1024,7 +1034,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitMutilEdit(TreeListColumn gridColumn, GridColumnModel model) + public virtual void InitMutilEdit(TreeListColumn gridColumn, GridColumnModel model) { FrmLookUp mutilLookUp = new FrmLookUp(); mutilLookUp.ValueField = model.ValueMember; @@ -1067,7 +1077,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitAutoTreeSearchEdit(TreeListColumn gridColumn, GridColumnModel model, bool isMulitClick = true, bool isRootNode = true) + public virtual void InitAutoTreeSearchEdit(TreeListColumn gridColumn, GridColumnModel model, bool isMulitClick = true, bool isRootNode = true) { PubTreeLookUp _popup = new PubTreeLookUp(); //_popup.LookUp = gridColumn; @@ -1114,7 +1124,7 @@ namespace Lskj.Control /// /// The grid column. /// The model. - public void InitMutilComboxEdit(TreeListColumn gridColumn, GridColumnModel model) + public virtual void InitMutilComboxEdit(TreeListColumn gridColumn, GridColumnModel model) { RepositoryItemCheckedComboBoxEdit comboxEdit = new RepositoryItemCheckedComboBoxEdit(); comboxEdit.AllowFocused = true; @@ -1141,7 +1151,7 @@ namespace Lskj.Control /// /// The grid column. /// The model. - public void InitRichEdit(TreeListColumn gridColumn) + public virtual void InitRichEdit(TreeListColumn gridColumn) { RepositoryItemRichTextEdit richEdit = new RepositoryItemRichTextEdit(); richEdit.Encoding = Encoding.UTF8;//乱码问题 @@ -1158,7 +1168,7 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - public void InitPicEdit(TreeListColumn gridColumn) + public virtual void InitPicEdit(TreeListColumn gridColumn) { RepositoryItemPictureEdit picEdit = new RepositoryItemPictureEdit(); picEdit.AutoHeight = true; @@ -1316,7 +1326,7 @@ namespace Lskj.Control /// 版本:1.0 /// /// The grid column. - public void InitCheckEdit(TreeListColumn gridColumn) + public virtual void InitCheckEdit(TreeListColumn gridColumn) { RepositoryItemCheckEdit checkEdit = new RepositoryItemCheckEdit(); checkEdit.ValueChecked = 1; @@ -1567,10 +1577,10 @@ namespace Lskj.Control this.SetColumnSumming(gridColumn, model); // 创建列 this.InitEditColumns(gridColumn, model); - this.gcMain.Columns.AddRange(new TreeListColumn[] { gridColumn }); + this.TreeListObj.Columns.AddRange(new TreeListColumn[] { gridColumn }); this.ColumnList.Add(model); } - DataTable customTable = this.gcMain.GetCustomColumnByDatabase(this.CustomColumKey); + DataTable customTable = this.TreeListObj.GetCustomColumnByDatabase(this.CustomColumKey); this.SetCustomColumns(customTable); // 延迟加载数据源 @@ -1634,7 +1644,7 @@ namespace Lskj.Control case ControlType.LabComboxValueParam: case ControlType.LabComboxTextParam: case ControlType.LabTreeType: - RepositoryItemLookUpEdit lookUp = this.gcMain.Columns[item.FieldName].ColumnEdit as RepositoryItemLookUpEdit; + RepositoryItemLookUpEdit lookUp = this.TreeListObj.Columns[item.FieldName].ColumnEdit as RepositoryItemLookUpEdit; lookUp.DataSource = dataTable; break; case ControlType.LabAutoCompleteValue: @@ -1646,7 +1656,7 @@ namespace Lskj.Control case ControlType.LabAutoGridValueParam: case ControlType.LabAutoGridTextParam: int popWidth = 0; - RepositoryItemGridLookUpEdit lookGridUp = this.gcMain.Columns[item.FieldName].ColumnEdit as RepositoryItemGridLookUpEdit; + RepositoryItemGridLookUpEdit lookGridUp = this.TreeListObj.Columns[item.FieldName].ColumnEdit as RepositoryItemGridLookUpEdit; DataTable table = dataTable; lookGridUp.DataSource = table; @@ -1705,13 +1715,13 @@ namespace Lskj.Control /// /// The table. /// The custom colum key. - public void InitializeTreeMethod() + public virtual void InitializeTreeMethod() { this.TreeListObj.CellValueChanging += new DevExpress.XtraTreeList.CellValueChangedEventHandler(OnCellValueChaning); } - protected void OnCellValueChaning(object sender, CellValueChangedEventArgs e) + protected virtual void OnCellValueChaning(object sender, CellValueChangedEventArgs e) { try { @@ -1739,7 +1749,7 @@ namespace Lskj.Control /// The node. /// The check. /// The grid column. - protected void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, TreeListColumn gridColumn) + protected virtual void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, TreeListColumn gridColumn) { for (int i = 0; i < node.Nodes.Count; i++) { @@ -1761,7 +1771,7 @@ namespace Lskj.Control /// The node. /// The check. /// The grid column. - protected void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, TreeListColumn gridColumn) + protected virtual void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, TreeListColumn gridColumn) { if (node.ParentNode != null) { @@ -1789,16 +1799,22 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - protected void SetGridRowHeightAndFont() + protected virtual void SetGridRowHeightAndFont() { + SetGridRowHeightAndFont(this.TreeListObj); + } + + private void SetGridRowHeightAndFont(TreeList treeList) + { + if (treeList == null) return; if (SystemInfo.Instance.GridRowFontSize > 0) { - this.gcMain.Appearance.Row.Font = new Font("微软雅黑", SystemInfo.Instance.GridRowFontSize); - this.gcMain.Appearance.HeaderPanel.Font = new Font("微软雅黑", SystemInfo.Instance.GridRowFontSize); + treeList.Appearance.Row.Font = new Font("微软雅黑", SystemInfo.Instance.GridRowFontSize); + treeList.Appearance.HeaderPanel.Font = new Font("微软雅黑", SystemInfo.Instance.GridRowFontSize); } if (SystemInfo.Instance.GridRowHeight > 0) { - this.gcMain.ColumnPanelRowHeight = this.gcMain.RowHeight = SystemInfo.Instance.GridRowHeight; + treeList.ColumnPanelRowHeight = treeList.RowHeight = SystemInfo.Instance.GridRowHeight; } } /// @@ -1834,11 +1850,11 @@ namespace Lskj.Control { if (rowItem == null) { - success = this.gcMain.SaveCustomColumnToDatabase(this.CustomColumKey); + success = this.TreeListObj.SaveCustomColumnToDatabase(this.CustomColumKey); } else { - success = this.gcMain.UpdateCustomColumnToDatabase(this.CustomColumKey); + success = this.TreeListObj.UpdateCustomColumnToDatabase(this.CustomColumKey); } MessageUtil.Show(success ? ResourceKeys.SaveSuccess : ResourceKeys.SaveFault); @@ -1892,9 +1908,9 @@ namespace Lskj.Control } if (MessageUtil.Show(ResourceKeys.IsResetColumn, MessageBoxButtons.YesNo) == DialogResult.Yes) { - bool success = this.gcMain.ResetCustomColumnToDatabase(this.CustomColumKey); + bool success = this.TreeListObj.ResetCustomColumnToDatabase(this.CustomColumKey); - DataTable customTable = this.gcMain.GetCustomColumnByDatabase(this.CustomColumKey); + DataTable customTable = this.TreeListObj.GetCustomColumnByDatabase(this.CustomColumKey); this.SetCustomColumns(customTable, false); MessageUtil.Show(success ? ResourceKeys.ResetSuccess : ResourceKeys.ResetFault); } @@ -1958,7 +1974,7 @@ namespace Lskj.Control // 设置底部合计 if (gridColumn.VisibleIndex == 0) { - gcMain.OptionsView.ShowSummaryFooter = true; + TreeListObj.OptionsView.ShowSummaryFooter = true; gridColumn.AllNodesSummary = true; gridColumn.SummaryFooter = SummaryItemType.Count; gridColumn.SummaryFooterStrFormat = "合计:{0:#,###}行"; @@ -1967,7 +1983,7 @@ namespace Lskj.Control { if (model.CanSum) { - gcMain.OptionsView.ShowSummaryFooter = true; + TreeListObj.OptionsView.ShowSummaryFooter = true; gridColumn.AllNodesSummary = true; gridColumn.SummaryFooter = !string.IsNullOrEmpty(model.SumCond) ? DevExpress.XtraTreeList.SummaryItemType.Custom : DevExpress.XtraTreeList.SummaryItemType.Sum; gridColumn.SummaryFooterStrFormat = "{0:" + model.DataFormat + "}"; @@ -2003,10 +2019,10 @@ namespace Lskj.Control bool isFix = "True".Equals(rowItem["IfFixColumn"] + "", StringComparison.OrdinalIgnoreCase); GridColumnModel column = this.ColumnList.Find(x => x.FieldName == fieldName); - TreeListColumn gridColumn = this.gcMain.Columns.ColumnByName(fieldName); + TreeListColumn gridColumn = this.TreeListObj.Columns.ColumnByName(fieldName); if (column != null && gridColumn != null && gridColumn.Visible && gridColumn.Width > 0) { - TreeListColumn colObj = this.gcMain.Columns[fieldName]; + TreeListColumn colObj = this.TreeListObj.Columns[fieldName]; colObj.VisibleIndex = index; colObj.Width = fieldWidth; colObj.Visible = visible; @@ -2020,9 +2036,9 @@ namespace Lskj.Control for (int i = 0; i < this.ColumnList.Count; i++) { GridColumnModel column = this.ColumnList[i]; - if (this.gcMain.Columns.ColumnByName(column.FieldName) != null) + if (this.TreeListObj.Columns.ColumnByName(column.FieldName) != null) { - TreeListColumn colObj = this.gcMain.Columns[column.FieldName]; + TreeListColumn colObj = this.TreeListObj.Columns[column.FieldName]; colObj.VisibleIndex = i; colObj.Width = column.Width; colObj.Visible = column.Visible; @@ -2050,16 +2066,16 @@ namespace Lskj.Control // 替换本列下所有数据为当前单元格数据 if (e.KeyCode == Keys.F6 || e.KeyCode == Keys.F7) { - TreeListColumn column = this.gcMain.FocusedColumn; + TreeListColumn column = this.TreeListObj.FocusedColumn; GridColumnModel model = column.Tag as GridColumnModel; if (column != null && column.OptionsColumn.AllowEdit && - this.gcMain.Nodes.Count > 0 && - this.gcMain.OptionsBehavior.Editable) + this.TreeListObj.Nodes.Count > 0 && + this.TreeListObj.OptionsBehavior.Editable) { // 允许操作 //焦点行节点 - TreeListNode focusedNode = gcMain.FocusedNode; + TreeListNode focusedNode = TreeListObj.FocusedNode; //获取当前界面上排序的节点 List dataSourceInTreeListOrder = GetDataSourceInTreeListOrder(); //选中行 @@ -2069,7 +2085,7 @@ namespace Lskj.Control //界面上的全部数据条数 int totalRowCount = dataSourceInTreeListOrder.Count; //操作的单元格 - List cells = this.gcMain.GetSelectedCells(); + List cells = this.TreeListObj.GetSelectedCells(); if (cells.Count == 1 && focusedRowHandle + 1 < totalRowCount) { @@ -2123,7 +2139,7 @@ namespace Lskj.Control } - gcMain.PostEditor(); + TreeListObj.PostEditor(); //if (isFilterContain) //{ // gridView.FocusedRowHandle = gridView.FocusedRowHandle - 1; @@ -2143,14 +2159,14 @@ namespace Lskj.Control // 已当前列为基准,按顺序生成本列数据 if (e.KeyCode == Keys.F8) { - TreeListColumn column = this.gcMain.FocusedColumn; + TreeListColumn column = this.TreeListObj.FocusedColumn; if (column != null && column.OptionsColumn.AllowEdit && - this.gcMain.Nodes.Count > 0 && - this.gcMain.OptionsBehavior.Editable) + this.TreeListObj.Nodes.Count > 0 && + this.TreeListObj.OptionsBehavior.Editable) { // 允许操作 - TreeListNode focusedNode = gcMain.FocusedNode; + TreeListNode focusedNode = TreeListObj.FocusedNode; //获取当前界面上排序的节点 List dataSourceInTreeListOrder = GetDataSourceInTreeListOrder(); //选中行 @@ -2160,7 +2176,7 @@ namespace Lskj.Control //界面上的全部数据条数 int totalRowCount = dataSourceInTreeListOrder.Count; //操作的单元格 - List cells = this.gcMain.GetSelectedCells(); + List cells = this.TreeListObj.GetSelectedCells(); if (cells.Count == 1 && focusedRowHandle + 1 < totalRowCount) { @@ -2202,9 +2218,9 @@ namespace Lskj.Control { //选中节点下方的节点,和对应的行 TreeListNode node = dataSourceInTreeListOrder[i]; - gcMain.SetFocusedNode(node); + TreeListObj.SetFocusedNode(node); node.SetValue(column, leftString + value.ToString().PadLeft(valueNum, '0')); - gcMain.PostEditor(); + TreeListObj.PostEditor(); value++; } e.Handled = true; @@ -2217,9 +2233,9 @@ namespace Lskj.Control for (int i = focusedRowHandle; i <= totalRowCount; i++) { TreeListNode node = dataSourceInTreeListOrder[i]; - gcMain.SetFocusedNode(node); + TreeListObj.SetFocusedNode(node); node.SetValue(column, value); - gcMain.PostEditor(); + TreeListObj.PostEditor(); value++; } e.Handled = true; @@ -2240,25 +2256,25 @@ namespace Lskj.Control { //List cells=new List(); ////复选框状态 - //if (gcMain.OptionsSelection.MultiSelect == true && gcMain.OptionsSelection.MultiSelectMode == TreeListMultiSelectMode.RowSelect && gcMain.OptionsSelection.EnableAppearanceFocusedCell == false && this.GetViewFocusedDataRows().Length == 0) + //if (TreeListObj.OptionsSelection.MultiSelect == true && TreeListObj.OptionsSelection.MultiSelectMode == TreeListMultiSelectMode.RowSelect && TreeListObj.OptionsSelection.EnableAppearanceFocusedCell == false && this.GetViewFocusedDataRows().Length == 0) //{ // //GridViewInfo info = gridView.GetViewInfo() as GridViewInfo; // //GridCellInfo cellInfo = info.GetGridCellInfo(gridView.FocusedRowHandle, gridView.FocusedColumn); - // TreeListCell cell = new TreeListCell(gcMain.FocusedNode, gcMain.FocusedColumn); + // TreeListCell cell = new TreeListCell(TreeListObj.FocusedNode, TreeListObj.FocusedColumn); // cells.Add(cell); //} //else //{ - // cells = this.gcMain.GetSelectedCells(); + // cells = this.TreeListObj.GetSelectedCells(); //} - var selectNodes = this.gcMain.Selection; + var selectNodes = this.TreeListObj.Selection; if (selectNodes != null && selectNodes.Count == 1) { //object obj = gridView.GetFocusedRowCellValue(gridView.FocusedColumn); - object obj = this.gcMain.FocusedNode.GetDisplayText(this.gcMain.FocusedColumn); + object obj = this.TreeListObj.FocusedNode.GetDisplayText(this.TreeListObj.FocusedColumn); if (obj != null) { Clipboard.SetDataObject(obj + ""); @@ -2272,8 +2288,8 @@ namespace Lskj.Control for (int i = 0; i < selectNodes.Count; i++) { TreeListNode treeNode = selectNodes[i]; - List cells = gcMain.GetSelectedCells(treeNode); - DataRowView dataRowView = this.gcMain.GetDataRecordByNode(treeNode) as DataRowView; + List cells = TreeListObj.GetSelectedCells(treeNode); + DataRowView dataRowView = this.TreeListObj.GetDataRecordByNode(treeNode) as DataRowView; dataRows[i] = dataRowView != null ? dataRowView.Row : null; foreach (TreeListColumn cell in cells) { @@ -2290,7 +2306,7 @@ namespace Lskj.Control } else { - gcMain.CopyToClipboard(); + TreeListObj.CopyToClipboard(); e.Handled = true; } } @@ -2301,12 +2317,12 @@ namespace Lskj.Control // MessageUtil.Show("搜索模式下无法粘贴行."); // return; //} - TreeListColumn column = this.gcMain.FocusedColumn; + TreeListColumn column = this.TreeListObj.FocusedColumn; GridColumnModel model = column.Tag as GridColumnModel; if (column != null && column.OptionsColumn.AllowEdit && - this.gcMain.Nodes.Count > 0 && - this.gcMain.OptionsBehavior.Editable) + this.TreeListObj.Nodes.Count > 0 && + this.TreeListObj.OptionsBehavior.Editable) { object _objData = null; IDataObject dataObj = Clipboard.GetDataObject(); @@ -2319,7 +2335,7 @@ namespace Lskj.Control } else if (e.Control && e.KeyCode == Keys.F) { - this.gcMain.ShowFindPanel(); + this.TreeListObj.ShowFindPanel(); } } catch (Exception ex) @@ -2341,11 +2357,11 @@ namespace Lskj.Control /// DataRow. public override DataRow GetViewFocusedDataRow() { - TreeListNode treeNode = this.gcMain.FocusedNode as TreeListNode; + TreeListNode treeNode = this.TreeListObj.FocusedNode as TreeListNode; if (treeNode != null) { - DataRowView dataRowView = this.gcMain.GetDataRecordByNode(treeNode) as DataRowView; + DataRowView dataRowView = this.TreeListObj.GetDataRecordByNode(treeNode) as DataRowView; return dataRowView != null ? dataRowView.Row : null; } @@ -2366,7 +2382,7 @@ namespace Lskj.Control { if (treeNode != null) { - DataRowView dataRowView = this.gcMain.GetDataRecordByNode(treeNode) as DataRowView; + DataRowView dataRowView = this.TreeListObj.GetDataRecordByNode(treeNode) as DataRowView; return dataRowView != null ? dataRowView.Row : null; } @@ -2386,25 +2402,25 @@ namespace Lskj.Control /// DataRow[]. public override DataRow[] GetViewFocusedDataRows() { - var selectNodes = this.gcMain.Selection; + var selectNodes = this.TreeListObj.Selection; DataRow[] dataRows = new DataRow[selectNodes.Count]; for (int i = 0; i < selectNodes.Count; i++) { TreeListNode treeNode = selectNodes[i]; - DataRowView dataRowView = this.gcMain.GetDataRecordByNode(treeNode) as DataRowView; + DataRowView dataRowView = this.TreeListObj.GetDataRecordByNode(treeNode) as DataRowView; dataRows[i] = dataRowView != null ? dataRowView.Row : null; } //设置了复选框这个获取所有选中的节点行 - if (this.gcMain.OptionsView.ShowCheckBoxes == true && this.gcMain.OptionsSelection.MultiSelect == true && this.gcMain.OptionsSelection.MultiSelectMode == TreeListMultiSelectMode.RowSelect) + if (this.TreeListObj.OptionsView.ShowCheckBoxes == true && this.TreeListObj.OptionsSelection.MultiSelect == true && this.TreeListObj.OptionsSelection.MultiSelectMode == TreeListMultiSelectMode.RowSelect) { List TreeListNodeList = this.TreeListObj.GetAllCheckedNodes(); dataRows = new DataRow[TreeListNodeList.Count]; for (int i = 0; i < TreeListNodeList.Count; i++) { TreeListNode treeNode = TreeListNodeList[i]; - DataRowView dataRowView = this.gcMain.GetDataRecordByNode(treeNode) as DataRowView; + DataRowView dataRowView = this.TreeListObj.GetDataRecordByNode(treeNode) as DataRowView; dataRows[i] = dataRowView != null ? dataRowView.Row : null; } @@ -2423,9 +2439,9 @@ namespace Lskj.Control /// /// The table. /// if set to true [select row handler]. - public DataTable GetGridViewDataSource() + public virtual DataTable GetGridViewDataSource() { - return this.gcMain.DataSource as DataTable; + return this.TreeListObj.DataSource as DataTable; } /// /// 说明:设置数据源 @@ -2442,13 +2458,13 @@ namespace Lskj.Control { if (this.ColumnList == null || this.ColumnList.Count == 0) { - this.gcMain.Columns.Clear(); + this.TreeListObj.Columns.Clear(); } lastNodeIndex = 0; if (selectRowHandler) lastNodeIndex = this.TreeListObj.GetVisibleIndexByNode(this.TreeListObj.FocusedNode); GetTreeExpanded(); - this.gcMain.ClearNodes(); - this.gcMain.DataSource = table; + this.TreeListObj.ClearNodes(); + this.TreeListObj.DataSource = table; this.AdjustIndicatorWidthSmart(); this.SetAutoColumns(); } @@ -2457,7 +2473,7 @@ namespace Lskj.Control if (adapter == null) return 0; if (this.ColumnList == null || this.ColumnList.Count == 0) { - this.gcMain.Columns.Clear(); + this.TreeListObj.Columns.Clear(); } lastNodeIndex = 0; if (selectRowHandler) lastNodeIndex = this.TreeListObj.GetVisibleIndexByNode(this.TreeListObj.FocusedNode); @@ -2508,21 +2524,21 @@ namespace Lskj.Control GetTreeExpanded(); - this.gcMain.DataSource = dataSet.Tables[0]; + this.TreeListObj.DataSource = dataSet.Tables[0]; this.AdjustIndicatorWidthSmart(); this.SetAutoColumns(); if ((Expansion + "").Equals("1")) { - this.gcMain.ExpandAll(); + this.TreeListObj.ExpandAll(); } else if ((Expansion + "").Equals("2")) { - this.gcMain.ExpandToLevel(0); + this.TreeListObj.ExpandToLevel(0); } else if ((Expansion + "").Equals("3")) { - this.gcMain.CollapseAll(); + this.TreeListObj.CollapseAll(); } return dataSet.Tables[0] != null ? dataSet.Tables[0].Rows.Count : 0; @@ -2543,11 +2559,11 @@ namespace Lskj.Control if (this.ColumnList == null || this.ColumnList.Count == 0) { bool isShowFooter = false; - for (int i = 0; i < gcMain.Columns.Count; i++) + for (int i = 0; i < TreeListObj.Columns.Count; i++) { try { - TreeListColumn col = gcMain.Columns[i]; + TreeListColumn col = TreeListObj.Columns[i]; col.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains; col.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; @@ -2568,7 +2584,7 @@ namespace Lskj.Control { isShowFooter = true; - gcMain.OptionsView.ShowSummaryFooter = true; + TreeListObj.OptionsView.ShowSummaryFooter = true; col.AllNodesSummary = true; col.SummaryFooter = SummaryItemType.Count; col.SummaryFooterStrFormat = "合计:{0:#,###}行"; @@ -2581,7 +2597,7 @@ namespace Lskj.Control { isShowFooter = true; - gcMain.OptionsView.ShowSummaryFooter = true; + TreeListObj.OptionsView.ShowSummaryFooter = true; col.AllNodesSummary = true; col.SummaryFooter = DevExpress.XtraTreeList.SummaryItemType.Sum; col.SummaryFooterStrFormat = "{0:}"; @@ -2621,18 +2637,18 @@ namespace Lskj.Control /// /// 记录展开的节点 /// - public void GetTreeExpanded() + public virtual void GetTreeExpanded() { treeListNodes.Clear(); - foreach (TreeListNode n in this.gcMain.Nodes) + foreach (TreeListNode n in this.TreeListObj.Nodes) { setRecursive(n); } } - public void setRecursive(TreeListNode treeNode) + public virtual void setRecursive(TreeListNode treeNode) { if (treeNode.Expanded) treeListNodes.Add(treeNode); // Visit each node recursively. @@ -2662,7 +2678,7 @@ namespace Lskj.Control { try { - this.gcMain.ExpandAll(); + this.TreeListObj.ExpandAll(); } catch (Exception ex) { @@ -2686,7 +2702,7 @@ namespace Lskj.Control { try { - this.gcMain.CollapseAll(); + this.TreeListObj.CollapseAll(); } catch (Exception ex) { @@ -2708,7 +2724,7 @@ namespace Lskj.Control /// /// The sender. /// The instance containing the event data. - protected void OnAutoSearchEditPopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) + protected virtual void OnAutoSearchEditPopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) { try { @@ -2855,7 +2871,7 @@ namespace Lskj.Control /// /// The source of the event. /// The instance containing the event data. - protected void OnPopupGridViewEnter(object sender, KeyEventArgs e) + protected virtual void OnPopupGridViewEnter(object sender, KeyEventArgs e) { try { @@ -3003,7 +3019,7 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - protected void OnModuleChoice(object sender, ButtonPressedEventArgs e) + protected virtual void OnModuleChoice(object sender, ButtonPressedEventArgs e) { try { @@ -3120,7 +3136,7 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - protected void OnModuleRowsChoice(object sender, ButtonPressedEventArgs e) + protected virtual void OnModuleRowsChoice(object sender, ButtonPressedEventArgs e) { try { @@ -3188,7 +3204,7 @@ namespace Lskj.Control DataRow dataRow = this.GetViewFocusedDataRow(); if (!string.IsNullOrEmpty(model.SqlSource)) { - foreach (DevExpress.XtraGrid.Columns.GridColumn gridColumn in this.gcMain.Columns) + foreach (DevExpress.XtraGrid.Columns.GridColumn gridColumn in this.TreeListObj.Columns) { GridColumnModel colModel = gridColumn.Tag as GridColumnModel; if (!string.IsNullOrEmpty(colModel.unionCompare) && colModel.unionCompare.Trim().Split('^').Length == 2) @@ -3236,7 +3252,7 @@ namespace Lskj.Control /// The instance containing the event data. private void OnCustomDrawNodeCell(object sender, CustomDrawNodeCellEventArgs e) { - if (e.Node == this.gcMain.FocusedNode) + if (e.Node == this.TreeListObj.FocusedNode) e.Appearance.BackColor = ColorTranslator.FromHtml("#9feb6a"); @@ -3260,18 +3276,18 @@ namespace Lskj.Control string[] _arrayRowStr = _tempStr.Split(_split, StringSplitOptions.None); if (_arrayRowStr.Length < 1) return; - TreeListColumn focColumn = this.gcMain.FocusedColumn; - focColumn = focColumn == null ? this.gcMain.Columns[0] : focColumn; + TreeListColumn focColumn = this.TreeListObj.FocusedColumn; + focColumn = focColumn == null ? this.TreeListObj.Columns[0] : focColumn; if (focColumn != null) { DataTable table = this.GetGridViewDataSource(); int beforeNumber = table.Rows.Count; - _rowNumber = this.gcMain.GetVisibleIndexByNode(this.gcMain.FocusedNode); + _rowNumber = this.TreeListObj.GetVisibleIndexByNode(this.TreeListObj.FocusedNode); if (_rowNumber < 0) { _rowNumber = 0; } - if (_arrayRowStr.Length != this.gcMain.Selection.Count) + if (_arrayRowStr.Length != this.TreeListObj.Selection.Count) { //选择区域与粘贴行数不匹配 } @@ -3286,8 +3302,8 @@ namespace Lskj.Control { newRow = table.NewRow(); //table.Rows.Add(newRow); - TreeListColumnCollection gridColumns = this.gcMain.Columns; - this.gcMain.FocusedNode = this.gcMain.GetNodeByVisibleIndex(_rowNumber); + TreeListColumnCollection gridColumns = this.TreeListObj.Columns; + this.TreeListObj.FocusedNode = this.TreeListObj.GetNodeByVisibleIndex(_rowNumber); foreach (TreeListColumn col in gridColumns) { GridColumnModel model = col.Tag as GridColumnModel; @@ -3307,17 +3323,17 @@ namespace Lskj.Control } } } - this.gcMain.FocusedNode = this.gcMain.GetNodeByVisibleIndex(_rowNumber); + this.TreeListObj.FocusedNode = this.TreeListObj.GetNodeByVisibleIndex(_rowNumber); if (_arrayStr2.Length == 0) _arrayStr2[0] = _arrayRowStr[i]; int _colNumber = beforeNumber == 0 ? 0 : focColumn.VisibleIndex; for (int j = 0; j < _arrayStr2.Length; j++)//j = _colNumber { - TreeListColumn col = this.gcMain.VisibleColumns[_colNumber]; + TreeListColumn col = this.TreeListObj.VisibleColumns[_colNumber]; GridColumnModel model = col.Tag as GridColumnModel; - if (model != null && (model.CanCopy || ((this.gcMain.OptionsBehavior.Editable) && (this.gcMain.VisibleColumns[_colNumber].OptionsColumn.AllowEdit)))) + if (model != null && (model.CanCopy || ((this.TreeListObj.OptionsBehavior.Editable) && (this.TreeListObj.VisibleColumns[_colNumber].OptionsColumn.AllowEdit)))) { // 返回ID类型特殊处理 string cellValue = _arrayStr2[j]; @@ -3340,7 +3356,7 @@ namespace Lskj.Control if (newRow == null) { DataRow dataRow = this.GetViewFocusedDataRow(); - dataRow[this.gcMain.FocusedColumn.FieldName] = value; + dataRow[this.TreeListObj.FocusedColumn.FieldName] = value; } else { @@ -3375,15 +3391,15 @@ namespace Lskj.Control { // 其它处理(如绑定左侧树结构数据) //if (OnParseGridDataCallBack != null) this.OnParseGridDataCallBack(newRow); - for (int j = 0; j < this.gcMain.Columns.Count; j++) + for (int j = 0; j < this.TreeListObj.Columns.Count; j++) { - if (this.gcMain.Columns[j].Tag == null) continue; - if ((this.gcMain.Columns[j].Tag as GridColumnModel).LimitLength > 0) + if (this.TreeListObj.Columns[j].Tag == null) continue; + if ((this.TreeListObj.Columns[j].Tag as GridColumnModel).LimitLength > 0) { - int MaxInputLength = System.Text.Encoding.Default.GetBytes(newRow[this.gcMain.Columns[j].FieldName].ToString()).Length; - if (MaxInputLength > (this.gcMain.Columns[j].Tag as GridColumnModel).LimitLength) + int MaxInputLength = System.Text.Encoding.Default.GetBytes(newRow[this.TreeListObj.Columns[j].FieldName].ToString()).Length; + if (MaxInputLength > (this.TreeListObj.Columns[j].Tag as GridColumnModel).LimitLength) { - newRow.SetColumnError(newRow.Table.Columns[this.gcMain.Columns[j].FieldName], "当前输入文本超过设定长度!");//不满足条件设置错误信息 + newRow.SetColumnError(newRow.Table.Columns[this.TreeListObj.Columns[j].FieldName], "当前输入文本超过设定长度!");//不满足条件设置错误信息 } } } @@ -3392,10 +3408,10 @@ namespace Lskj.Control } else { - //this.gcMain.UpdateCurrentRow(); + //this.TreeListObj.UpdateCurrentRow(); } } - this.gcMain.ShowEditor(); + this.TreeListObj.ShowEditor(); e.Handled = true; //SendKeys.Send("{Esc}"); } @@ -3461,15 +3477,15 @@ namespace Lskj.Control } if ((Expansion + "").Equals("1")) { - this.gcMain.ExpandAll(); + this.TreeListObj.ExpandAll(); } else if ((Expansion + "").Equals("2")) { - this.gcMain.ExpandToLevel(0); + this.TreeListObj.ExpandToLevel(0); } else if ((Expansion + "").Equals("3")) { - this.gcMain.CollapseAll(); + this.TreeListObj.CollapseAll(); } } @@ -3480,7 +3496,7 @@ namespace Lskj.Control public string GetNewNodesId() { int id = 1; - DataTable gridTable = (this.gcMain.DataSource as DataTable).TrimDeleteRows(); + DataTable gridTable = (this.TreeListObj.DataSource as DataTable).TrimDeleteRows(); //获取表里最大的节点id if (gridTable != null && gridTable.Rows.Count > 0) { @@ -3506,7 +3522,7 @@ namespace Lskj.Control public void GenerateNodeID() { //树表格当前数据源重新生成id - DataTable dt = this.gcMain.DataSource as DataTable; + DataTable dt = this.TreeListObj.DataSource as DataTable; int i = 1; foreach (DataRow item in dt.Rows) { @@ -3562,7 +3578,7 @@ namespace Lskj.Control DeleteFailedRows.Add(rowItem[TreeListObj.KeyFieldName] + ""); } } - DataTable table = this.gcMain.DataSource as DataTable; + DataTable table = this.TreeListObj.DataSource as DataTable; foreach (DataRow item in deleteRows) { table.Rows.Remove(item); @@ -3599,7 +3615,7 @@ namespace Lskj.Control Pid = node.Id + ""; } - DataTable gridTable = (this.gcMain.DataSource as DataTable).TrimDeleteRows(); + DataTable gridTable = (this.TreeListObj.DataSource as DataTable).TrimDeleteRows(); if (!gridTable.Columns.Contains(ERPInfo.Instance.isAddRows)) { gridTable.Columns.Add(ERPInfo.Instance.isAddRows, typeof(String)); @@ -3624,7 +3640,7 @@ namespace Lskj.Control { try { - DataTable gridTable = (this.gcMain.DataSource as DataTable).TrimDeleteRows(); + DataTable gridTable = (this.TreeListObj.DataSource as DataTable).TrimDeleteRows(); DataRow tmpRow = gridTable.NewRow(); int position = gridTable.Rows.Count - 1; foreach (GridColumnModel model in this.ColumnList) @@ -3658,9 +3674,9 @@ namespace Lskj.Control } } } - tmpRow[this.gcMain.KeyFieldName] = GetNewNodesId();//节点id + tmpRow[this.TreeListObj.KeyFieldName] = GetNewNodesId();//节点id gridTable.Rows.Add(tmpRow); - this.gcMain.ShowEditor(); + this.TreeListObj.ShowEditor(); } catch (Exception ex) @@ -3787,8 +3803,8 @@ namespace Lskj.Control return; } - DataRow DragRow = (this.gcMain.GetDataRecordByNode(SelectedNode) as DataRowView).Row;//拖拽行 - DataRow TargetRow = (this.gcMain.GetDataRecordByNode(TreeListNode) as DataRowView).Row; //目标行 + DataRow DragRow = (this.TreeListObj.GetDataRecordByNode(SelectedNode) as DataRowView).Row;//拖拽行 + DataRow TargetRow = (this.TreeListObj.GetDataRecordByNode(TreeListNode) as DataRowView).Row; //目标行 int SerialNumber = int.Parse(TargetRow[this.SortField] + "") + 1;//目标行序号+1 foreach (DataRow item in dataTable.Rows) @@ -3855,7 +3871,7 @@ namespace Lskj.Control private void SortAllNodes(TreeListNode node) { - DataRow rowItem = (this.gcMain.GetDataRecordByNode(node) as DataRowView).Row; + DataRow rowItem = (this.TreeListObj.GetDataRecordByNode(node) as DataRowView).Row; rowItem[this.SortField] = NumberValue; NumberValue++; @@ -3900,8 +3916,8 @@ namespace Lskj.Control /// public void GcMain_CellValueChanged(object sender, CellValueChangedEventArgs e) { - //TreeListNode aaa = this.gcMain.Nodes[e.Node.Id+1];//获取当前改变行下一行的节点 - //DataRow a = (this.gcMain.GetDataRecordByNode(aaa) as DataRowView).Row;//根据节点获取行数据 + //TreeListNode aaa = this.TreeListObj.Nodes[e.Node.Id+1];//获取当前改变行下一行的节点 + //DataRow a = (this.TreeListObj.GetDataRecordByNode(aaa) as DataRowView).Row;//根据节点获取行数据 //treeListNode.SetValue(e.Column, "新值"); // 赋值 @@ -3917,7 +3933,7 @@ namespace Lskj.Control treeListNode.SetValue(e.Column, result); } - DataTable dataTable = this.gcMain.DataSource as DataTable; + DataTable dataTable = this.TreeListObj.DataSource as DataTable; int rowHandle = treeListNode.Id; //根据某一列的值自动填充对应值 @@ -3937,7 +3953,7 @@ namespace Lskj.Control foreach (DataRow selectRow in selectRows) { int dataSourceIndex = dataTable.Rows.IndexOf(selectRow); - TreeListNode node = this.gcMain.Nodes[dataSourceIndex]; + TreeListNode node = this.TreeListObj.Nodes[dataSourceIndex]; selectRow[e.Column.FieldName] = e.Value; //关联 if (!string.IsNullOrEmpty(model.UnionFields)) @@ -3965,7 +3981,7 @@ namespace Lskj.Control //验证数据长度 if (model.LimitLength > 0 && e.Value != null) { - DataRow HandleRow = (this.gcMain.GetDataRecordByNode(treeListNode) as DataRowView).Row; + DataRow HandleRow = (this.TreeListObj.GetDataRecordByNode(treeListNode) as DataRowView).Row; int MaxInputLength = System.Text.Encoding.Default.GetBytes(e.Value.ToString()).Length; if (model.LimitLength < MaxInputLength) HandleRow.SetColumnError(HandleRow.Table.Columns[e.Column.ColumnHandle], "当前输入文本超过设定长度!");//满足条件设置错误信息 @@ -3992,8 +4008,8 @@ namespace Lskj.Control /// The field value. protected virtual void SetUnionValue(GridColumnModel model, string fieldValue, TreeListNode node) { - DataTable table = this.gcMain.DataSource as DataTable; - DataRow rowItem = table.Rows.Count == 0 || this.gcMain.FocusedNode != null ? this.GetViewFocusedDataRow() : this.gcMain.FocusedNode == node || node == null ? this.GetViewFocusedDataRow() : (this.gcMain.GetDataRecordByNode(node) as DataRowView).Row; + DataTable table = this.TreeListObj.DataSource as DataTable; + DataRow rowItem = table.Rows.Count == 0 || this.TreeListObj.FocusedNode != null ? this.GetViewFocusedDataRow() : this.TreeListObj.FocusedNode == node || node == null ? this.GetViewFocusedDataRow() : (this.TreeListObj.GetDataRecordByNode(node) as DataRowView).Row; string unionValues = model.UnionValues; @@ -4051,12 +4067,12 @@ namespace Lskj.Control this.GridSumming = true; try { - DataTable table = this.gcMain.DataSource as DataTable; - DataRow rowItem = table.Rows.Count == 0 || this.gcMain.FocusedNode != null ? this.GetViewFocusedDataRow() : this.gcMain.FocusedNode == node || node == null ? this.GetViewFocusedDataRow() : (this.gcMain.GetDataRecordByNode(node) as DataRowView).Row; + DataTable table = this.TreeListObj.DataSource as DataTable; + DataRow rowItem = table.Rows.Count == 0 || this.TreeListObj.FocusedNode != null ? this.GetViewFocusedDataRow() : this.TreeListObj.FocusedNode == node || node == null ? this.GetViewFocusedDataRow() : (this.TreeListObj.GetDataRecordByNode(node) as DataRowView).Row; if (rowItem != null && model != null) { - foreach (TreeListColumn col in this.gcMain.Columns) + foreach (TreeListColumn col in this.TreeListObj.Columns) { GridColumnModel colModel = col.Tag as GridColumnModel; if (colModel == null) continue; @@ -4227,12 +4243,12 @@ namespace Lskj.Control /// The field value. public void UpperChange(GridColumnModel model, GridColumnModel gridModel, TreeListNode node) { - DataTable Table = this.gcMain.DataSource as DataTable; - DataRow rowItem = (this.gcMain.GetDataRecordByNode(node) as DataRowView).Row; + DataTable Table = this.TreeListObj.DataSource as DataTable; + DataRow rowItem = (this.TreeListObj.GetDataRecordByNode(node) as DataRowView).Row; string UpperFieldName = ReplaceHelper.GetParamFields(gridModel.DefaultValue)[0]; UpperFieldName = UpperFieldName.Replace("}", "").Replace("{", ""); UpperFieldName = UpperFieldName.Substring(UpperFieldName.IndexOf('_') + 1); - if (string.IsNullOrWhiteSpace(rowItem[gridModel.FieldName] + "") || this.gcMain.FocusedNode != node) + if (string.IsNullOrWhiteSpace(rowItem[gridModel.FieldName] + "") || this.TreeListObj.FocusedNode != node) { if (node.Id != 0 && Table.Columns.Contains(ERPInfo.Instance.isAddRows)) { @@ -4257,7 +4273,7 @@ namespace Lskj.Control { Table.Rows[node.Id + 1][ERPInfo.Instance.isAddRows] = 0; } - this.OnGridViewtUpperValueChanged(this.gcMain.Columns[gridModel.FieldName], Table.Rows[node.Id + 1][gridModel.FieldName] + "", node.Id + 1, gridModel); + this.OnGridViewtUpperValueChanged(this.TreeListObj.Columns[gridModel.FieldName], Table.Rows[node.Id + 1][gridModel.FieldName] + "", node.Id + 1, gridModel); } } @@ -4276,7 +4292,7 @@ namespace Lskj.Control { if (Newcolumn == null) return; GridColumnModel model = Newcolumn.Tag as GridColumnModel; - TreeListNode node = this.gcMain.Nodes[rowhandle]; + TreeListNode node = this.TreeListObj.Nodes[rowhandle]; if (!string.IsNullOrEmpty(model.UnionFields)) { this.SetUnionValue(model, value, node); @@ -4307,7 +4323,7 @@ namespace Lskj.Control if (!string.IsNullOrEmpty(model.EnableCond)) { GridColumnModel[] columns = this.ColumnList.Where(x => x.EnableCond.Contains("{" + model.FieldName + "}")).ToArray(); - DataRow rowItem = (this.gcMain.GetDataRecordByNode(node) as DataRowView).Row; + DataRow rowItem = (this.TreeListObj.GetDataRecordByNode(node) as DataRowView).Row; foreach (GridColumnModel item in columns) { try @@ -4315,7 +4331,7 @@ namespace Lskj.Control string disableCond = ReplaceHelper.ReplaceRowParam(rowItem, item.EnableCond.Replace("{" + model.FieldName + "}", fieldValue)); string diaableType = item.DisableType; //this.gridView.Columns.ColumnByFieldName(model.FieldName).Visible = ("true".Equals(EvalHelper.Eval(ReplaceHelper.ReplaceEvalCond(disableCond)) + "", StringComparison.OrdinalIgnoreCase)); - this.gcMain.Columns.ColumnByFieldName(model.FieldName).Visible = ("true".Equals(ValidateCond(disableCond, null) + "", StringComparison.OrdinalIgnoreCase)); + this.TreeListObj.Columns.ColumnByFieldName(model.FieldName).Visible = ("true".Equals(ValidateCond(disableCond, null) + "", StringComparison.OrdinalIgnoreCase)); } catch (Exception) { @@ -4383,7 +4399,7 @@ namespace Lskj.Control /// public bool IsColumnSorted() { - foreach (TreeListColumn column in this.gcMain.Columns) + foreach (TreeListColumn column in this.TreeListObj.Columns) { if (column.SortIndex > 0) { @@ -4399,7 +4415,7 @@ namespace Lskj.Control /// public void ClearAllSort() { - this.gcMain.ClearSorting(); + this.TreeListObj.ClearSorting(); } @@ -4575,7 +4591,7 @@ namespace Lskj.Control public override void SetFieldStatus(string ModifyFields, string RequiredFields, DataTable AuthorityTable = null) { - TreeListColumnCollection gc = this.gcMain.Columns; + TreeListColumnCollection gc = this.TreeListObj.Columns; bool Modify = false; bool Required = false; Color RequiredForceColor = string.IsNullOrEmpty(SystemInfo.Instance.ControlRequiredColor) ? Color.Blue : ColorTranslator.FromHtml(SystemInfo.Instance.ControlRequiredColor); @@ -4635,4 +4651,38 @@ namespace Lskj.Control /// 修改备注: /// 版本:1.0 /// - /// 判断是否只刷新UpdateColu \ No newline at end of file + /// 判断是否只刷新UpdateColumn中配置的列的数据源 + public void RefreshDataSource(bool UpdateColumnRefresh = false) + { + //this.mLoading = false; + SetColumnsSource(); + } + + + /// + /// 设置序号列宽度 + /// + public void AdjustIndicatorWidthSmart() + { + try + { + int nodeCount = this.TreeListObj.AllNodesCount;// 获取节点总数 + if (nodeCount == 0) return; + // 计算数字宽度(TreeList可能有层级,适当增加系数) + int numberWidth = (int)(nodeCount.ToString().Length * 7.5) + 16; // 系数和偏移量略大于GridView + + // 设置宽度(范围可适当放宽,如50-100px,适应层级缩进) + this.TreeListObj.IndicatorWidth = Math.Max(40, Math.Min(80, numberWidth)); + } + catch (Exception ex) + { + + } + } + + + + + + } +}