using DevExpress.Utils.Menu;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Menu;
using DevExpress.XtraGrid.Views.Grid;
using Lskj.Business;
using Lskj.Business.Impl;
using Lskj.Control.Model;
using Lskj.Data;
using Lskj.Model;
using Lskj.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Lskj.Control.MultiModelLookUp
{
public partial class FrmModelLookUp : BaseForm
{
#region 私有字段
///
/// 复选框字段名称
///
private string _checkFieldName = "_check";
///
/// The _id
///
private string _id = "_id";
#endregion
#region 公有字段
///
/// 数据源
///
/// The data source.
public DataTable DataSource
{
get
{
return this.gcMain.gridControl.DataSourceTable();
}
set
{
this.gcMain.gridControl.DataSource = value;
}
}
///
/// 控件类型
///
/// The type.
public int IsType { get; set; }
///
/// 绑定ValueMember
///
public string ValueMember { get; set; }
///
/// 隐藏值字段
///
public string ValueField { get; set; }
///
/// 显示值字段
///
public string TextField { get; set; }
///
/// 备注字段
///
public string RemarkField = "remark";
///
/// 数据源
///
/// The source SQL.
public string SourceSQL { get; set; }
///
/// 隐藏值
///
/// The edit value.
public string EditValue { get; set; }
///
/// 显示值
///
/// The edit text.
public string EditText { get; set; }
///
/// CurrentOperColumnKey值
///
/// The data source.
public string CurrentOperColumnKey = string.Empty;
///
/// CurrentOperModel值
///
/// The data source.
public GridColumnModel CurrentOperModel = null;
///
/// 配置的关联ModuleCodel值
///
/// The Union ModuleCodel.
public string UnionModuleCodel;
///
/// 左侧树数据
///
public DataRow LeftRowObj;
///
/// 系统模块实体对象
///
/// The system model.
public ModuleModel SysModel { get; private set; }
///
/// 自定义查询条件
///
public MyControl SearchObj { get; private set; }
///
/// 分割条位置
///
public int PositionSplitter;
///
/// 分割条位置
///
public int WindowHeight;
///
/// 单选模式
///
public bool SingleChoiceMode;
///
/// 表格列根据配置加载(默认是加载sql数据源中的中文列,目前只支持单选模式) 2025-03-06 改成单选默认根据配置加载
///
public bool ConfigureColumnMode = false;
///
/// 第一次进入
///
private bool isFirst = true;
///
/// 左侧树结构
///
public TreeViewEx LeftTreeViewEx;
///
/// 左侧表格
///
public GridControlEx LeftGridEx;
///
/// 左侧结构关联字段
///
public string ParentUnionField;
///
/// 左侧树结构、表格主键
///
public string ParentKeyField;
#endregion
public FrmModelLookUp(string ModuleCodel)
{
InitializeComponent();
this.UnionModuleCodel = ModuleCodel;
this.Disposed += new EventHandler(OnFrmModelLookUp_Disposed);
this.gcMain.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing);
this.gcMain.GridControl.ContextMenuStrip = contextMenuStrip1;
this.gcMain.GridView.DoubleClick += new EventHandler(OnRowCellClick);
this.gcDetail.GridView.DoubleClick += new EventHandler(OnDoubleClick);
GridDragGrid dragGrid = new GridDragGrid(this.gcMain.GridView, this.gcDetail.GridView);
GridDragGrid backdragGrid = new GridDragGrid(this.gcDetail.GridView, this.gcMain.GridView);
//设置关联模块
bool result = SetAssociatedModules();
this.pl_top.Height = 0;
this.gcDetail.GridView.OptionsSelection.EnableAppearanceFocusedCell = false;
this.Resize += new System.EventHandler(maximization);
this.splitMain_Right.SplitterMoved += new EventHandler(PositionChange);
this.gcDetail.GridView.OptionsView.ColumnAutoWidth = true;
this.gcMain.GridView.OptionsView.ColumnAutoWidth = true;
}
//关联模块号;是否为单选模式
public FrmModelLookUp(string ModuleCodel, bool singleChoiceMode)
{
InitializeComponent();
this.UnionModuleCodel = ModuleCodel;
this.SingleChoiceMode = singleChoiceMode;
this.Disposed += new EventHandler(OnFrmModelLookUp_Disposed);
this.gcMain.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing);
this.gcMain.GridControl.ContextMenuStrip = contextMenuStrip1;
GridDragGrid dragGrid = new GridDragGrid(this.gcMain.GridView, this.gcDetail.GridView);
GridDragGrid backdragGrid = new GridDragGrid(this.gcDetail.GridView, this.gcMain.GridView);
//设置关联模块
bool result = SetAssociatedModules();
//单选模式,不显示明细表,主表双击选中后退出选择界面
if (SingleChoiceMode)
{
this.splitMain_Right.PanelVisibility = SplitPanelVisibility.Panel1;
this.gcMain.GridView.DoubleClick += new EventHandler(OnRowCellClickRadio);
//设置上方条件
DataTable queryTable = BaseModuleImpl.GetCustomQueryFields(this.SysModel.CondKey);//加载自定义配置字段
this.SearchObj = new MyControl(this.SysModel.MenuSql, this.gcMain, LeftTreeViewEx, LeftGridEx);
this.SearchObj.ParentUnionField = this.ParentUnionField;
this.pl_top.Height = this.SearchObj.InitSearchControl(queryTable, this.pl_top);
this.SearchObj.OnSearchAfterCallBack += SearchObj_OnSearchAfterCallBack;
this.SourceSQL = this.SysModel.MenuSql;
}
else
{
this.gcMain.GridView.DoubleClick += new EventHandler(OnRowCellClick);
this.gcDetail.GridView.DoubleClick += new EventHandler(OnDoubleClick);
this.pl_top.Height = 0;
this.Resize += new System.EventHandler(maximization);
this.splitMain_Right.SplitterMoved += new EventHandler(PositionChange);
}
//右键
//DataTable dt = BaseModuleImpl.GetBaseGridRightMenus(this.UnionModuleCodel);
//string[] obj = new string[]{
// "",
// ERPInfo.Instance.UserId,
// ERPInfo.Instance.UserName,
// "3",
// this.UnionModuleCodel,
//}; ;
//DynamicModel dynamicModel = new DynamicModel(obj);
//this.gcMain.SetGridRightMenus(dt, dynamicModel, null, this.SearchObj, null);
this.gcDetail.GridView.OptionsSelection.EnableAppearanceFocusedCell = false;
this.gcDetail.GridView.OptionsView.ColumnAutoWidth = true;
this.gcMain.GridView.OptionsView.ColumnAutoWidth = true;
}
#region 方法
#region 设置分割条位置
///
/// 说明:设置分割条位置
/// 创建人:王一帆
/// 创建日期:2021-07-21
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
protected void InitlizeSpiltLocation()
{
try
{
string width = IniHelper.Read(string.Format("base_width_{0}", this.UnionModuleCodel));//通过Key获取Value值
if (!string.IsNullOrEmpty(width))
{
this.splitMain.SplitterPosition = Convert.ToInt32(width);
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteError(ex);
MessageUtil.Show(ex);
}
}
#endregion
#region 保存表格属性
///
/// 说明:保存表格属性
/// 创建人:王一帆
/// 创建日期:2021-07-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
protected virtual void SaveItemClick(object sender, EventArgs e)
{
DataRow rowItem = null;
bool success = BaseImpl.HasExistsDataRow(ResourceKeys.SettingTableName, "formKey", CurrentOperColumnKey, string.Format(" and OperatorId='{0}' ", ERPInfo.Instance.UserId), out rowItem);
if (!success)
{
MessageUtil.Show(ResourceKeys.NotFoundSettingColumnTable);
return;
}
if (MessageUtil.Show(ResourceKeys.IsSaveColumn, MessageBoxButtons.YesNo) == DialogResult.Yes)
{
try
{
if (rowItem == null)
{
success = this.gcMain.GridView.SaveCustomColumnToDatabase(this.CurrentOperColumnKey);
}
else
{
success = this.gcMain.GridView.UpdateCustomColumnToDatabase(this.CurrentOperColumnKey);
}
this.SetDetailDataSource();
MessageUtil.Show(success ? ResourceKeys.SaveSuccess : ResourceKeys.SaveFault);
}
catch (SqlException sex)
{
if (sex.Message.Contains(ResourceKeys.FieldLenIsShort) &&
MessageUtil.Show(ResourceKeys.SaveFault + "\r\n" + ResourceKeys.CanUpgradeTable, MessageBoxButtons.YesNo) == DialogResult.Yes &&
BaseImpl.UpdateTableField(ResourceKeys.SettingTableName, "formKey", "varchar(200)"))
{
MessageUtil.Show(ResourceKeys.UpdateSuccess);
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteError(ex);
LogUtil.WriteError("保存表格属性出错", ex);
MessageUtil.Show(ex);
}
}
}
#endregion
#region 设置明细数据源
///
/// 说明:设置明细数据源
/// 创建人:王一帆
/// 创建日期:2021-07-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void SetDetailDataSource()
{
DataTable table = this.DataSource.Copy();
DataRow[] rows = table.Select(_checkFieldName + "=True");
if (rows != null && rows.Length > 0)
this.gcDetail.GridControl.DataSource = rows.CopyToDataTable();
else
{
this.gcDetail.GridControl.DataSource = table;
this.gcDetail.GridControl.DataSourceTable().Clear();
}
}
#endregion
#region 设置默认选中
///
/// 说明:设置默认选中
/// 创建人:龚宇超
/// 创建日期:2018-03-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void SetDefaultValue()
{
this.gcDetail.gridControl.DataSourceTable().Clear();
if (!string.IsNullOrEmpty(EditValue) && this.IsType == ControlType.LabSelectReturnId)
{
this.UpdateChecked(EditValue.Trim().Replace(", ", ",").TrimEnd(',').Split(','), ValueMember, true);
}
else
{
if (!string.IsNullOrEmpty(EditText))
{
this.UpdateChecked(EditText.Trim().Replace(", ", ",").TrimEnd(',').Split(','), TextField, false);
}
}
}
#endregion
#region 设置只读列
///
/// 说明:设置只读列
/// 创建人:王一帆
/// 创建日期:2021-07-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void SetReadOnlyColumns()
{
if (this.ConfigureColumnMode && SingleChoiceMode) //this.ConfigureColumnMode &&
{
DataTable _gridColumns = BaseModuleImpl.GetBaseGridColumns(this.UnionModuleCodel);
this.gcMain.SetReadOnlyColumns(_gridColumns, GridCustomColumnStruct.BaseMainGridView + this.SysModel.FormKey);
}
else
{
this.gcMain.GridView.Columns.Clear();
this.gcDetail.GridView.Columns.Clear();
GridColumn checkColumn = new GridColumn();
checkColumn.Name = checkColumn.FieldName = this._checkFieldName;
checkColumn.Caption = "选";
checkColumn.Width = 30;
checkColumn.Visible = true;
checkColumn.OptionsColumn.AllowEdit = false;
GridColumn valueColumn = new GridColumn();
valueColumn.FieldName = valueColumn.Name = ValueField;
valueColumn.Caption = "编码";
valueColumn.Width = 150;
//valueColumn.Visible = true;
valueColumn.Visible = ValueMember.Substring(0, 1) != "_";
valueColumn.OptionsColumn.AllowEdit = false;
GridColumn textColumn = new GridColumn();
textColumn.FieldName = textColumn.Name = TextField;
textColumn.Caption = "名称";
textColumn.Width = 150;
//textColumn.Visible = true;
textColumn.Visible = TextField.Substring(0, 1) != "_";
textColumn.OptionsColumn.AllowEdit = false;
this.gcMain.GridView.Columns.AddRange(new GridColumn[] { checkColumn, valueColumn, textColumn });
this.gcDetail.GridView.Columns.AddRange(new GridColumn[] { checkColumn, valueColumn, textColumn });
if (DataSource.Columns.IndexOf("remark") != -1)
{
DataColumn column = DataSource.Columns.Cast().FirstOrDefault(x => x.ColumnName.ToLower() == RemarkField);
if (column != null) RemarkField = column.ColumnName;
GridColumn remarkColumn = new GridColumn();
remarkColumn.Name = remarkColumn.FieldName = RemarkField;
remarkColumn.Caption = "备注";
remarkColumn.Visible = true;
remarkColumn.Width = 400;//this.gcMain.Width-300;
//字段第一个字符为下划线代表不显示
if (RemarkField.Substring(0, 1) == "_")
remarkColumn.Visible = false;
this.gcMain.GridView.Columns.Add(remarkColumn);
this.gcDetail.GridView.Columns.Add(remarkColumn);
}
DataTable DT = this.gcMain.gridControl.DataSource == null ? new DataTable() : this.gcMain.gridControl.DataSource as DataTable;
foreach (DataColumn dcol in DT.Columns)
{
if ((dcol.ColumnName.Substring(0, 1) != "_") && (dcol.ColumnName.ToLower() != ValueField.ToLower()) && (dcol.ColumnName.ToLower() != TextField.ToLower()) && ((int)dcol.ColumnName[0] > 127))
{
GridColumn otherColumn = new GridColumn();
otherColumn.Name = otherColumn.FieldName = otherColumn.Caption = dcol.ColumnName;
otherColumn.Visible = true;
otherColumn.Width = 150;
this.gcMain.GridView.Columns.Add(otherColumn);
this.gcDetail.GridView.Columns.Add(otherColumn);
}
}
}
SetCustomColumns();
}
#endregion
#region 加载自定义列
///
/// 说明:加载自定义列
/// 创建人:王一帆
/// 创建日期:2019-9-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void SetCustomColumns()
{
if (string.IsNullOrEmpty(this.CurrentOperColumnKey) || !BaseImpl.HasExistsTable(ResourceKeys.SettingTableName)) return;
DataTable customTable = this.gcMain.GridView.GetCustomColumnByDatabase(this.CurrentOperColumnKey);
if (customTable != null && customTable.Rows.Count > 0)
{
foreach (DataRow rowItem in customTable.Rows)
{
string fieldName = rowItem["fieldName"] + "";
int fieldWidth = Convert.ToInt32(rowItem["fieldWidth"]);
int index = Convert.ToInt32(rowItem["orderid"]);
bool visible = "1".Equals(rowItem["isVisible"] + "") && fieldWidth > 0;
bool isFix = "True".Equals(rowItem["IfFixColumn"] + "", StringComparison.OrdinalIgnoreCase);
GridColumn gridColumn = this.gcMain.GridView.Columns.ColumnByName(fieldName);
if (gridColumn != null && gridColumn.Visible && gridColumn.Width > 0)
{
GridColumn colObj = this.gcMain.GridView.Columns[fieldName];
colObj.VisibleIndex = index;
colObj.Width = fieldWidth;
colObj.Visible = visible;
colObj.Fixed = isFix ? FixedStyle.Left : FixedStyle.None;
}
}
}
}
#endregion
#region 获取选中行数据
///
/// 说明:获取选中行数据
/// 创建人:王一帆
/// 创建日期:2021-07-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// DataRow[].
public DataRow[] GetViewFocusedDataRows(GridView gridView)
{
int[] rows = gridView.GetSelectedRows();
DataRow[] dataRows = new DataRow[rows.Length];
for (int i = 0; i < rows.Length; i++)
{
dataRows[i] = gridView.GetDataRow(rows[i]);
}
return dataRows;
}
#endregion
#region 刷新左侧树数据
///
/// 说明:设置左侧树数据
/// 创建人:王一帆
/// 创建日期:2021-07-21
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
protected void SetLeftTreeView()
{
this.LeftRowObj = BaseModuleImpl.GetBaseLeftTreeField(this.UnionModuleCodel);//获取表格左侧树字段
if (this.LeftRowObj != null)
{
//this.ModuleGridObj.ParentUnionField = this.LeftRowObj["fieldname"] + "";
this.ParentUnionField = this.LeftRowObj["fieldname"] + "";
this.ParentKeyField = this.LeftRowObj["fieldsqlid"] + "";
this.treeLeft.TreeNodeKeyField = this.LeftRowObj["fieldsqlid"] + "";
this.treeLeft.TreeNodeTextField = this.LeftRowObj["fieldsqlname"] + "";
this.treeLeft.TreeNodeSelectAfter += new TreeViewEventHandler(OnTreeLeftTreeNodeSelected);
this.treeLeft.BindTreeView(BaseImpl.GetDataTableResult(this.LeftRowObj["fieldsql"] + ""));
}
else
{
// 根据模块上配置的sql加载树
if (this.SysModel != null && !string.IsNullOrEmpty(this.SysModel.TreeSQL))
{
this.ParentUnionField = "SpeciesNo";
this.ParentKeyField = "SpeciesNo";
this.treeLeft.TreeNodeKeyField = "SpeciesNo";
this.treeLeft.TreeNodeTextField = "SpeciesName";
this.treeLeft.TreeNodeSelectAfter += new TreeViewEventHandler(OnTreeLeftTreeNodeSelected);
this.treeLeft.BindTreeView(BaseImpl.GetDataTableResult(this.SysModel.TreeSQL));
}
}
}
///
/// 说明:树节点点击后刷新数据
/// 创建人:龚宇超
/// 创建日期:2017-10-26
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
protected void OnTreeLeftTreeNodeSelected(object sender, TreeViewEventArgs e)
{
string where = string.Format(" and {0} like '{1}%' ", this.treeLeft.TreeNodeKeyField, e.Node.Name);
string sqlValue = ReplaceHelper.IsProcedure(SourceSQL) ?
ReplaceHelper.ReplaceTreeViewParentKeyCond(SourceSQL, treeLeft.GetSelectNodeValue()) :
ReplaceHelper.ReplaceWhereCond(this.SourceSQL) + where;
this.DataSource = MainImpl.GetDataTableResult(sqlValue);
this.SetSelectionBox();
this.SetDefaultValue();
}
///
/// 说明:加载主表格数据
/// 创建人:龚宇超
/// 创建日期:2018-01-31
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The where key.
protected void SetMainGridView(string where = "")
{
//string sqlValue = ReplaceHelper.ReplaceWhereCond(this.SysModel.MenuSql);
//sqlValue = this.SysModel.MenuSql.StartsWith("select", StringComparison.OrdinalIgnoreCase) ? sqlValue + where : sqlValue;
//if (IsExcel && !string.IsNullOrEmpty(this._labPicName))
//{
// string sql = MainImpl.GetDefaultValue(sqlValue, this.ModuleGridObj.ParentKeyField, Model.OtherParams());
// DataTable dt = MainImpl.GetDataTableResult(ReplaceLeftOrGridValue(sql));
// if (dt.Rows.Count > 0)
// {
// this._currentRow = dt.Rows[0];
// Byte[] file = (byte[])this._currentRow[this._labPicName];
// if (file.Length <= 0)
// {
// this.excelControlEx1.SpreadSheetBarObj.Control.CreateNewDocument();
// }
// else
// {
// if (!string.IsNullOrEmpty(this.excelControlEx1.CurrentPath) && File.Exists(this.excelControlEx1.CurrentPath))
// {
// File.Delete(this.excelControlEx1.CurrentPath);
// }
// this.excelControlEx1.LoadFileSteam(file);
// }
// }
// else
// {
// this.excelControlEx1.SpreadSheetBarObj.Control.CreateNewDocument();
// MessageUtil.Show(ResourceKeys.NotConfigExcel);
// }
//}
//else
//{
// // 左侧gridView时,需要替换sql参数(包含查询条件、表格选中行).
// if (this.gridLeft.Visible)
// {
// sqlValue = this._leftGridSearchObj != null ? this._leftGridSearchObj.ReplaceParentControlValue(sqlValue) : sqlValue;
// sqlValue = ReplaceHelper.ReplaceRowParam(this.gridLeft.GridView.GetFocusedDataRow(), sqlValue);
// }
// this.ModuleGridObj.SearchObj.SearchGrid(sqlValue);
// if (!this.IsDragDetail)
// this.ModuleGridDetailObj.SetDetailGridDataSource();
//}
}
#endregion
#region 创建界面
///
/// 说明:创建界面
/// 创建人:王一帆
/// 创建日期:2021-07-21
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The menu code.
public void InitControls(string UnionModuleCodel)
{
//单选模式以模块sql为为准
if (SingleChoiceMode)
{
this.SourceSQL = this.SysModel.MenuSql;
}
if (LeftTreeViewEx != null && LeftTreeViewEx.TreeView.Nodes.Count > 0)
{
LeftTreeViewEx.TreeView.SelectedNode = LeftTreeViewEx.TreeView.Nodes[0];//重新打开时默认选中第一条
LeftTreeViewEx.TreeView.Nodes[0].Expand();
}
else if (LeftGridEx != null)
{
LeftGridEx.GridView.SelectRow(0);
}
this.DataSource = BaseImpl.GetDataTableResult(this.SourceSQL);
this.SetSelectionBox();
//创建表格列
if (isFirst)
{
this.SetReadOnlyColumns();
this.isFirst = false;
}
//单选模式不需要设置下方表中选中行
//if (!SingleChoiceMode) this.SetDefaultValue();
this.SetDefaultValue();
}
private void SearchObj_OnSearchAfterCallBack(object sender, EventArgs e)
{
this.SetSelectionBox();
//this.SetReadOnlyColumns();
}
#endregion
#region 设置左侧表格数据
///
/// 说明:设置左侧表格数据
/// 创建人:龚宇超
/// 创建日期:2017-10-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
protected void SetLeftGridView()
{
this.LeftRowObj = BaseModuleImpl.GetBaseLeftTreeField(UnionModuleCodel);//获取表格左侧树字段
if (this.LeftRowObj != null)
{
DataTable dtTable = BaseModuleImpl.GetBaseLeftGridField(UnionModuleCodel);
DataTable dtColorTable = BaseModuleImpl.GetBaseGridRowColors(this.LeftRowObj["fieldKey"] + "");
this.gridLeft.GridView.RowClick += new DevExpress.XtraGrid.Views.Grid.RowClickEventHandler(OnGridViewRowClick);
this.gridLeft.SetGridRowColors(dtColorTable);
this.gridLeft.SetReadOnlyColumns(dtTable, GridCustomColumnStruct.BaseLeftGridView + UnionModuleCodel);
this.ParentUnionField = this.LeftRowObj["fieldname"] + "";
this.ParentKeyField = this.LeftRowObj["fieldname"] + "";
}
}
#endregion
#region 更新选中状态
///
/// 说明:更新选中状态
/// 创建人:龚宇超
/// 创建日期:2018-03-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The spilts.
/// Name of the field.
/// if set to true [check].
private void UpdateChecked(string[] spilts, string fieldName, bool isValue, bool check = true)
{
if (spilts == null || spilts.Length == 0 || string.IsNullOrEmpty(fieldName) || this.DataSource == null || this.DataSource.Rows.Count == 0)
return;
for (int i = 0; i < spilts.Length; i++)
{
DataRow rowItem = rowItem = this.DataSource.Rows.Cast().FirstOrDefault(x => x[isValue ? ValueMember : TextField] + "" == spilts[i].Trim());
if (rowItem != null)
{
rowItem[_checkFieldName] = check;
rowItem.AcceptChanges();
}
}
this.SetDetailDataSource();
}
#endregion
#region 刷新右侧表格数据
///
/// 说明:刷新右侧表格数据
/// 创建人:龚宇超
/// 创建日期:2018-03-19
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
protected void OnGridViewRowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
try
{
this.SetMainGridView();
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
#endregion
#endregion
#region 事件
#region 分割条位置改变
///
/// 说明:分割条位置包含时记录位置
/// 创建人:曹屹峰
/// 创建日期:2021-08-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void PositionChange(object sender, EventArgs e)
{
PositionSplitter = this.splitMain_Right.SplitterPosition;
}
#endregion
#region 窗口大小改变
///
/// 说明:窗口大小改变时改变分割条位置
/// 创建人:曹屹峰
/// 创建日期:2021-08-25
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void maximization(object sender, EventArgs e)
{
double a = (double)PositionSplitter / (double)WindowHeight;
this.splitMain_Right.SplitterPosition = Convert.ToInt32(Math.Round((double)this.Height * a));
WindowHeight = this.Height;
}
#endregion
#region 选中行
///
/// 说明:选中行
/// 创建人:王一帆
/// 创建日期:2021-07-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
private void OnRowCellClick(object sender, EventArgs e)
{
DataRow rowItem = this.gcMain.GridView.GetFocusedDataRow();
if (rowItem != null)
{
rowItem[_checkFieldName] = "True".Equals(rowItem[_checkFieldName] + "") ? 0 : 1;
//rowItem[_checkFieldName] = rowItem.Table.Columns.Contains(_checkFieldName) : "True".Equals(rowItem[_checkFieldName] + "") ? 0 : 1 ? 0;
rowItem.AcceptChanges();
}
this.SetDetailDataSource();
}
///
/// 说明:选中行(单选模式)
/// 创建人:曹屹峰
/// 创建日期:2024-01-02
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
private void OnRowCellClickRadio(object sender, EventArgs e)
{
DataRow dr = this.gcMain.GridView.GetFocusedDataRow();
//DataRow[] rowItems = this.DataSource.Select(_checkFieldName + "=True");
if (dr != null)
{
this.EditValue = dr[ValueMember] + "";
this.EditText = dr[TextField] + "";
this.DialogResult = DialogResult.OK;
this.Close();
}
}
#endregion
#region 取消选择
///
/// 说明:取消选择
/// 创建人:王一帆
/// 创建日期:2021-07-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
private void OnDoubleClick(object sender, EventArgs e)
{
if (this.gcDetail.GridView.RowCount == 0) return;
DataRow rowItem = this.gcDetail.GridView.GetFocusedDataRow();
DataRow[] sourceRowItems = this.DataSource.Select(_id + "=" + rowItem[_id] + "");
if (rowItem != null && sourceRowItems != null && sourceRowItems.Length > 0)
{
sourceRowItems[0][_checkFieldName] = 0;
sourceRowItems[0].AcceptChanges();
}
this.SetDetailDataSource();
}
#endregion
#region 关闭时清空唯一键
///
/// 说明:关闭时清空唯一键
/// 创建人:王一帆
/// 创建日期:2021-07-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
private void OnFormClosing(object sender, FormClosingEventArgs e)
{
CurrentOperColumnKey = "";
CurrentOperModel = null;
}
#endregion
#region 确定
///
/// 说明:确定
/// 创建人:龚宇超
/// 创建日期:2018-03-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
private void btnOk_Click(object sender, EventArgs e)
{
this.EditValue = string.Empty;
this.EditText = string.Empty;
DataRow[] rowItems = this.DataSource.Select(_checkFieldName + "=True");
foreach (DataRow item in rowItems)
{
this.EditValue += item[ValueMember] + ",";
this.EditText += item[TextField] + ",";
}
//this.EditValue = this.EditValue.Trim(',');
//this.EditText = this.EditText.Trim(',');
this.DialogResult = DialogResult.OK;
this.Close();
}
#endregion
#region 取消
///
/// 说明:取消
/// 创建人:龚宇超
/// 创建日期:2018-03-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
#endregion
#region 全选所有数据
///
/// 全选所有数据
///
///
///
private void btn_selectAll_Click(object sender, EventArgs e)
{
DataTable DataSource = this.gcMain.GridView.GetGridViewFilteredAndSortedDataToDataTable();
foreach (DataRow item in DataSource.Rows)
{
DataRow rowItem = this.DataSource.Select("1=1").FirstOrDefault(x => (item[_id] + "").Equals(x[_id] + ""));
rowItem[_checkFieldName] = 1;
rowItem.AcceptChanges();
}
this.SetDetailDataSource();
}
#endregion
#region 取消全选
///
/// 取消全选
///
///
///
private void btn_cancelAll_Click(object sender, EventArgs e)
{
DataTable dt = this.DataSource.Clone();
foreach (DataRow item in this.DataSource.Rows)
{
if ("True".Equals(item[_checkFieldName] + ""))
{
item[_checkFieldName] = 0;
}
}
this.SetDetailDataSource();
}
#endregion
#region 释放时清理数据源
///
/// 说明:释放时清理数据源
/// 创建人:龚宇超
/// 创建日期:2018-03-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
private void OnFrmModelLookUp_Disposed(object sender, EventArgs e)
{
if (this.DataSource != null)
{
this.DataSource = null;
}
GC.Collect();
}
#endregion
#region 设置关联模块
///
/// 说明:设置管理模块
/// 创建人:龚宇超
/// 创建日期:2018-03-20
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private bool SetAssociatedModules()
{
if (!string.IsNullOrWhiteSpace(this.UnionModuleCodel))
{
DataRow modelRow = MainImpl.GetSystemdllTab(this.UnionModuleCodel);//获取单个模块信息
if (modelRow == null)
{
MessageUtil.Show("模块编号[" + UnionModuleCodel + "],配置错误!\r\n该模块信息未找到!");
return false;
}
this.SysModel = new ModuleModel(modelRow);// 系统模块实体对象
if (this.SysModel != null)
{
if (this.SysModel.ModuleFrameHeight > 0 && this.SysModel.ModuleFrameWidth > 0)
{
this.Height = this.SysModel.ModuleFrameHeight;
this.Width = this.SysModel.ModuleFrameWidth;
}
switch (this.SysModel.MenuType)
{
case 1: // 左侧为树节点
this.pl_left_top.Visible = false;
this.gridLeft.Visible = false;
this.treeLeft.Visible = true;
this.InitlizeSpiltLocation();//设置分割条位置
this.SetLeftTreeView();//设置左侧树数据
this.LeftTreeViewEx = this.treeLeft;
break;
case 2: // 左侧为表格
this.gridLeft.Visible = true;
this.treeLeft.Visible = false;
this.InitlizeSpiltLocation();
this.SetLeftGridView();
//this.ModuleGridObj.SaveEvent += new Lskj.Control.ModuleGridEx.SaveEventHander(SetDetailGridView);
this.LeftGridEx = this.gridLeft;
break;
case 3: // 左侧为空
default:
this.splitMain.PanelVisibility = SplitPanelVisibility.Panel2;
break;
}
}
else
{
this.splitMain.PanelVisibility = SplitPanelVisibility.Panel2;
}
return true;
}
return false;
}
#endregion
//设置选中框的值
private void SetSelectionBox()
{
if (this.DataSource != null)
{
if (!this.DataSource.Columns.Contains(_checkFieldName))
{
this.DataSource.Columns.Add(_checkFieldName, typeof(bool));
this.DataSource.Columns.Add(_id, typeof(int));
for (int i = 0; i < DataSource.Rows.Count; i++)
{
DataSource.Rows[i][_checkFieldName] = 0;
DataSource.Rows[i][_id] = i;
}
}
this.gcDetail.GridControl.DataSource = this.gcMain.gridControl.DataSourceTable().Clone();
}
}
#endregion
}
}