using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Lskj.Control;
using Lskj.Business;
using Lskj.Data;
using DevExpress.XtraGrid.Columns;
using Lskj.Util;
using Lskj.Control.Model;
using Lskj.Business.Impl;
using DevExpress.XtraTab;
using Lskj.Model;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid;
namespace Lskj.PubModuleDetail3
{
public partial class TabIntoControl : TabControlEx
{
///
/// 是否加载明细刷新
///
/// true if [_ un refresh]; otherwise, false.
private bool _UnRefresh
{
get
{
return Model is DynamicModuleDetailModel || Model is DynamicModuleModel || Model is DynamicProductionModel;
}
}
///
/// 拖拽模式
///
public bool IsDragDetail;
///
/// 拖拽目标主键字段
///
public string DrgaParentPrimaryKey;
///
/// 添加数据sql赋值
///
public string ControlSql;
///
/// tab标签
///
private List _gridDetail;
///
/// tab标签里明细数据
///
private List _gridIntoDetail;
///
/// The system model
///
public DynamicModel Model;
///
/// 父表格
///
public GridControlEx ParentGridEx;
///
/// 父容器
///
public MyControl ParentControlEx;
///
/// 明细数据里的主表格
///
public ModuleGridEx ModuleGridObj;
///
/// 选项卡
///
public XtraTabControl TabIntoControlObj
{
get { return this.xtc_container; }
}
///
/// 右键菜单执行后调用
///
/// The sender.
public event EventHandler OnRightCallback;
///
/// 在保存网格回调
///
/// The sender.
public event EventHandler OnDetailRightCallback;
///
/// 表格保存执行后调用
///
/// The sender.
public event EventHandler OnAllGridCallback;
///
/// 分割条
///
public SplitContainerControl splitContainer { get; set; }
///
/// 初始化完成
///
private bool _isInitFinish;
public TabIntoControl()
{
InitializeComponent();
}
///
/// 说明:绑定选项卡
/// 创建人:龚宇超
/// 创建日期:2018-01-09
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public void InitTabPages(List gridDetail)
{
this._gridDetail = gridDetail;
this.xtc_container.TabPages.Clear();
foreach (GridDetailModel model in this._gridDetail)
{
XtraTabPage page = new XtraTabPage();
page.Text = model.DetailName;
if (model.IsChart)
{
ChartControlEx chartEx = new ChartControlEx();
chartEx.Dock = DockStyle.Fill;
chartEx.SetCharts(BaseModuleImpl.GetChartParams(model.FormKey));
chartEx.SetChartRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, OnGridViewRightCallBack);
chartEx.Tag = model;
page.Tag = chartEx;
page.Controls.Add(chartEx);
}
else if (model.IsExcel)
{
ExcelControlEx excelEx = new ExcelControlEx();
excelEx.Dock = DockStyle.Fill;
excelEx.Tag = model;
page.Tag = excelEx;
page.Controls.Add(excelEx);
}
else
{
if (model.IsReadOnly)
{
PanelControl plBottom = new PanelControl();
plBottom.Visible = false;
plBottom.Dock = DockStyle.Bottom;
PanelControl plMain = new PanelControl();
plMain.Dock = DockStyle.Fill;
GridControlEx gridEx = new GridControlEx();
gridEx.Dock = DockStyle.Fill;
gridEx.Tag = model;
gridEx.Parent = plMain;
gridEx.Model = this.Model;
gridEx.SetReadOnlyColumns(model.GridColumns, model.GridCustomColumnKey);
gridEx.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, OnGridViewRightCallBack);
gridEx.SetGridRowColors(BaseModuleImpl.GetBaseGridRowColors(model.FormKey));
if (IsDragDetail && this.ParentGridEx != null && model.IsDrag)
{
// 拖拽模式,绑定拖拽对象
GridDragGrid dragGrid = new GridDragGrid(gridEx.GridView, this.ParentGridEx.GridView);
dragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
}
// 加载配置查询条件
if (model.IsSearch)
{
plBottom.Visible = true;
MyControl searchObj = new MyControl(model.DetailSql, gridEx);
plBottom.Height = searchObj.InitSearchControl(BaseModuleImpl.GetCustomQueryFields(model.SystemModel.CondKey), plBottom);
}
page.Tag = gridEx;
page.Controls.AddRange(new PanelControl[] { plBottom, plMain });
}
else
{
DynamicModel dyncModel = new DynamicModuleModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", model.UnionModule, "0" });
model.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(model.UnionModule));
if (Model != null)
model.SystemModel.ParmaryKey = BaseImpl.GetBasePrimaryKey(Model.ModuleCode);
ModuleGridEx gridEx = new ModuleGridEx();
if (model.SystemModel.RefreshDetails)
{
gridEx.DetailRightGridCallBack += OnDetailRightCallback;
}
gridEx.GridControlObj.GridView.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CellSelect;
gridEx.Name = "gridEx";
gridEx.IsDetail = true;
gridEx.Dock = DockStyle.Fill;
gridEx.OperShortMode = false; // 不显示简短模式
gridEx.VisibleSearchPanel = Model.IsDetailSearch;
gridEx.VisibleOperPanel = !model.IsReadOnly;
gridEx.InitializeControl(model.SystemModel, dyncModel);
gridEx.GridControlObj.Tag = model;
gridEx.ParentControlEx = this.ParentControlEx;
gridEx.ParentGridEx = this.ParentGridEx;
gridEx.ParentKeyField = string.IsNullOrEmpty(model.UnionParentField) ? model.SystemModel.ParmaryKey : model.UnionParentField;
gridEx.DetailKeyField = model.UnionValue;
gridEx.OnSaveGridCallBack += new EventHandler(OnGridViewAllCallBack);
if (IsDragDetail && this.ParentGridEx != null && model.IsDrag)
{
// 拖拽模式,绑定拖拽对象
GridDragGrid dragGrid = new GridDragGrid(gridEx.GridControlObj.GridView, this.ParentGridEx.GridView);
dragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
}
if (model.AutoRefresh && !_UnRefresh)
gridEx.SearchObj.SearchGrid();
this._gridIntoDetail = GetDetails(model.UnionModule);
if (_gridIntoDetail.Count > 0)
{
page.Tag = gridEx.GridControlObj;
SplitContainerControl splitLeftControl = new SplitContainerControl();
splitLeftControl.Dock = DockStyle.Fill;
splitContainer = splitLeftControl;
splitLeftControl.Tag = model.UnionModule;
splitLeftControl.SplitterPositionChanged += SplitLeftControl_SplitterMoved;
TabIntoAddControl tabAdd = new TabIntoAddControl();
//tabAdd.splitContainerControl.Horizontal = false;//上下结构
tabAdd.InitTabPages(_gridIntoDetail);
tabAdd.Dock = DockStyle.Fill;
splitLeftControl.Panel1.Controls.Add(gridEx);
splitLeftControl.Panel2.Controls.Add(tabAdd);
splitLeftControl.Panel1.Tag = gridEx;
splitLeftControl.Panel2.Tag = tabAdd;
page.Controls.AddRange(new SplitContainerControl[] { splitLeftControl });
gridEx.GridControlObj.GridView.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(GridView_RowCellClick);
}
else
{
page.Tag = gridEx.GridControlObj;
page.Controls.Add(gridEx);
}
}
}
this.xtc_container.TabPages.Add(page);
}
InitSpliterPosition();
_isInitFinish = true;
}
///
/// 说明:特殊情况绑定选项卡
/// 创建人:龚宇超
/// 创建日期:2018-04-04
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The grid detail.
/// The parent value.
public void InitTabPages(List gridDetail, string parentValue)
{
this._gridDetail = gridDetail;
this.xtc_container.TabPages.Clear();
foreach (GridDetailModel model in this._gridDetail)
{
XtraTabPage page = new XtraTabPage();
page.Text = model.DetailName;
if (model.IsChart)
{
ChartControlEx chartEx = new ChartControlEx();
chartEx.Dock = DockStyle.Fill;
chartEx.SetCharts(BaseModuleImpl.GetChartParams(model.FormKey));
chartEx.SetChartRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, OnGridViewRightCallBack);
chartEx.Tag = model;
page.Tag = chartEx;
page.Controls.Add(chartEx);
}
else if (model.IsExcel)
{
ExcelControlEx excelEx = new ExcelControlEx();
excelEx.Dock = DockStyle.Fill;
excelEx.Tag = model;
page.Tag = excelEx;
page.Controls.Add(excelEx);
}
else
{
if (model.IsReadOnly)
{
PanelControl plTop = new PanelControl();
plTop.Dock = DockStyle.Top;
PanelControl plMain = new PanelControl();
plMain.Dock = DockStyle.Fill;
GridControlEx gridEx = new GridControlEx();
gridEx.Dock = DockStyle.Fill;
gridEx.Tag = model;
gridEx.Parent = plMain;
gridEx.Model = this.Model;
gridEx.SetReadOnlyColumns(model.GridColumns, model.GridCustomColumnKey);
gridEx.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, OnGridViewRightCallBack);
gridEx.SetGridRowColors(BaseModuleImpl.GetBaseGridRowColors(model.FormKey));
// 加载配置查询条件
if (model.IsSearch)
{
MyControl searchObj = new MyControl(model.DetailSql, gridEx);
if (!string.IsNullOrEmpty(model.UnionValue) && !string.IsNullOrEmpty(parentValue))
searchObj.WhereCond = string.Format(" and {0}='{1}'", model.UnionValue, parentValue);
plTop.Height = searchObj.InitSearchControl(BaseModuleImpl.GetCustomQueryFields(model.SystemModel.CondKey), plTop);
}
page.Tag = gridEx;
page.Controls.AddRange(new PanelControl[] { plTop, plMain });
}
else
{
DynamicModel dyncModel = new DynamicModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", model.UnionModule, "0" });
model.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(model.UnionModule));
ModuleGridEx gridEx = new ModuleGridEx();
gridEx.Name = "gridEx";
gridEx.Dock = DockStyle.Fill;
gridEx.OperShortMode = false; // 不显示简短模式
gridEx.VisibleSearchPanel = model.IsSearch;
gridEx.VisibleOperPanel = true;
gridEx.ParentGridEx = this.ParentGridEx;
gridEx.ParentControlEx = this.ParentControlEx;
gridEx.ParentKeyField = string.IsNullOrEmpty(model.UnionParentField) ? model.UnionValue : model.UnionParentField;
gridEx.ParentKeyValue = parentValue;
gridEx.DetailKeyField = model.UnionValue;
gridEx.UnionKey = model.UnionValue;
gridEx.UnionValue = parentValue; //Model.ObjectId;
gridEx.InitializeControl(model.SystemModel, dyncModel);
gridEx.GridControlObj.Tag = model;
gridEx.ControlSql = ControlSql;
if (model.AutoRefresh)
gridEx.SearchObj.SearchGrid();
page.Tag = gridEx.GridControlObj;
page.Controls.Add(gridEx);
}
}
this.xtc_container.TabPages.Add(page);
}
}
///
/// 说明:加载tab标签里得明细数据
/// 创建人:王一帆
/// 创建日期:2018-09-28
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
protected void GridView_RowCellClick(object sender, RowCellClickEventArgs e)
{
try
{
WaitForm.ShowForm();
XtraTabPage tabPage = this.xtc_container.SelectedTabPage;
foreach (System.Windows.Forms.Control control in tabPage.Controls)
{
if (control is SplitContainerControl)
{
SplitContainerControl splitContainer = control as SplitContainerControl;
ModuleGridEx gcMain = splitContainer.Panel1.Tag as ModuleGridEx;
TabIntoAddControl tabadd = splitContainer.Panel2.Tag as TabIntoAddControl;
GridDetailModel model = null;
if (tabadd.splitContainerControl.Panel1.Tag is ModuleGridEx)
{
model = tabadd.gridEx.GridControlObj.Tag as GridDetailModel;
}
if (tabadd.splitContainerControl.Panel1.Tag is GridControlEx)
{
model = tabadd.gridControlEx.Tag as GridDetailModel;
}
GridDetailModel model2 = null;
if (tabadd.splitContainerControl.Panel2.Tag is ModuleGridEx)
{
model2 = tabadd.gridEx2.GridControlObj.Tag as GridDetailModel;
}
if (tabadd.splitContainerControl.Panel2.Tag is GridControlEx)
{
model2 = tabadd.gridControlEx2.Tag as GridDetailModel;
}
DataRow rowItem = gcMain.GridControlObj.GridView.GetFocusedDataRow();
this.ModuleGridObj = gcMain;
tabadd.PrimaryKey = this.ModuleGridObj.ParmaryKey;
if (rowItem != null)
{
if (model != null)
{
string searchSql = this.GetSearchSql(model, rowItem);
if (tabadd.splitContainerControl.Panel1.Tag is ModuleGridEx)
{
tabadd.gridEx.GridControlObj.LastSearchSql = searchSql;
tabadd.gridEx.SearchObj.SearchLastGrid();
}
if (tabadd.splitContainerControl.Panel1.Tag is GridControlEx)
{
tabadd.gridControlEx.LastSearchSql = searchSql;
tabadd.gridControlEx.SetGridViewDataSource(MainImpl.GetDataTableResult(searchSql));
}
}
if (model2 != null)
{
string searchSql2 = this.GetSearchSql(model2, rowItem);
if (tabadd.splitContainerControl.Panel2.Tag is ModuleGridEx)
{
tabadd.gridEx2.GridControlObj.LastSearchSql = searchSql2;
tabadd.gridEx2.SearchObj.SearchLastGrid();
}
if (tabadd.splitContainerControl.Panel2.Tag is GridControlEx)
{
tabadd.gridControlEx2.LastSearchSql = searchSql2;
tabadd.gridControlEx2.SetGridViewDataSource(MainImpl.GetDataTableResult(searchSql2));
}
}
}
else
{
if (model != null)
{
if (tabadd.splitContainerControl.Panel1.Tag is ModuleGridEx)
{
tabadd.gridEx.GridControlObj.gridControl.DataSource = null;
}
if (tabadd.splitContainerControl.Panel1.Tag is GridControlEx)
{
tabadd.gridControlEx.gridControl.DataSource = null;
}
}
if (model2 != null)
{
if (tabadd.splitContainerControl.Panel2.Tag is ModuleGridEx)
{
tabadd.gridEx2.GridControlObj.gridControl.DataSource = null;
}
if (tabadd.splitContainerControl.Panel2.Tag is GridControlEx)
{
tabadd.gridControlEx2.gridControl.DataSource = null;
}
}
}
}
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteError(ex);
//MessageUtil.Show("加载明细数据失败!" + ex);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
finally
{
WaitForm.HideForm();
}
}
///
/// 说明:获取查询条件
/// 创建人:龚宇超
/// 创建日期:2017-11-22
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The model.
/// The row item.
/// System.String.
protected string GetSearchSql(GridDetailModel model, DataRow rowItem)
{
string fieldName = !string.IsNullOrEmpty(model.UnionParentField) && rowItem.Table.Columns.Contains(model.UnionParentField) ? model.UnionParentField : ModuleGridObj.ParmaryKey;
string sqlValue = model.IsReadOnly || model.IsChart ? model.DetailSql : model.SystemModel.MenuSql;
sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, sqlValue);
//if (ReplaceHelper.IsSelect(sqlValue) && !string.IsNullOrEmpty(model.UnionValue))
//{
// sqlValue = ReplaceHelper.ReplaceWhereCond(sqlValue) + string.Format(" and {0}='{1}'", model.UnionValue, rowItem[fieldName] + "");
//}
return sqlValue;
}
///
/// 说明:判断多标签里是否有明细表
/// 创建人:王一帆
/// 创建日期:2019-12-19
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// List<GridDetailModel>.
private List GetDetails(string ModuleCode)
{
List details = new List();
DataTable table = BaseModuleImpl.GetBaseDetailPages(ModuleCode);
foreach (DataRow item in table.Rows)
{
DataTable gridColumns = ReportImpl.GetReportDetailColumns(ModuleCode, item["id"] + "");
details.Add(new GridDetailModel(item, gridColumns, GridCustomColumnStruct.BaseDetailGridView));
}
return details;
}
///
/// 说明:获取TabPage绑定的实体对象
/// 创建人:龚宇超
/// 创建日期:2018-02-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The tab page.
/// GridDetailModel.
public GridDetailModel GetGridDetailModel(XtraTabPage tabPage)
{
if (tabPage == null) return null;
if (tabPage.Tag is GridControlEx)
return (tabPage.Tag as GridControlEx).Tag as GridDetailModel;
if (tabPage.Tag is ChartControlEx)
return (tabPage.Tag as ChartControlEx).Tag as GridDetailModel;
return null;
}
///
/// 说明:获取选中TabPage绑定的实体对象
/// 创建人:龚宇超
/// 创建日期:2018-02-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// GridDetailModel.
public GridDetailModel GetFocusTabPageGridDetailModel()
{
return this.GetGridDetailModel(this.xtc_container.SelectedTabPage);
}
///
/// 说明:设置指定TabPage数据源
/// 创建人:龚宇超
/// 创建日期:2018-01-15
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The tab page.
/// The row item.
public void SetGridDataSource(XtraTabPage tabPage, DataTable table)
{
try
{
if (tabPage == null) return;
if (tabPage.Tag is GridControlEx)
{
this.SetGridViewTabPage(tabPage, table);
//GridView_RowCellClick(null,null);
}
else if (tabPage.Tag is ChartControlEx)
{
this.SetChartViewTabPage(tabPage, table);
}
}
catch (Exception ex)
{
LogUtil.WriteError("TabPage配置错误-->" + tabPage.Text, ex);
LogHelper.Instance.WriteError(ex);
//MessageUtil.Show(ex);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 说明:设置指定TabPage中表格明细的数据源
/// 创建人:龚宇超
/// 创建日期:2018-01-15
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public void SetGridDetailsDataSource()
{
GridView_RowCellClick(null, null);
}
///
/// 说明:设置选中TabPage数据源
/// 创建人:龚宇超
/// 创建日期:2018-02-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The table.
public void SetGridDataSource(DataTable table)
{
this.SetGridDataSource(this.xtc_container.SelectedTabPage, table);
}
///
/// 说明:设置表格数据
/// 创建人:龚宇超
/// 创建日期:2018-01-29
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The tab page.
/// The grid control.
protected void SetGridViewTabPage(XtraTabPage tabPage, DataTable table)
{
GridControlEx gridControl = tabPage.Tag as GridControlEx;
GridDetailModel model = gridControl.Tag as GridDetailModel;
gridControl.SetGridViewDataSource(table);
gridControl.GridView.DoubleClick -= new EventHandler(OnGridCompleted);
int dataRowCount = gridControl.GridView.DataRowCount;
if (IsDragDetail && this.ParentGridEx != null && model.IsDrag)
{
gridControl.GridView.DoubleClick += new EventHandler(OnGridCompleted);
}
tabPage.Text = model.DetailName + "(" + dataRowCount + ")";
tabPage.Appearance.Header.ForeColor = gridControl.GridView.DataRowCount > 0 ? Color.Red : Color.FromArgb(0, 0, 0);
}
///
/// 说明:设置图表数据
/// 创建人:龚宇超
/// 创建日期:2018-01-29
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The tab page.
/// The chart control.
protected void SetChartViewTabPage(XtraTabPage tabPage, DataTable table)
{
ChartControlEx chartEx = tabPage.Tag as ChartControlEx;
GridDetailModel model = chartEx.Tag as GridDetailModel;
chartEx.CreateChart(table);
}
///
/// 说明:
/// 创建人:龚宇超
/// 创建日期:2018-02-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
protected void OnGridViewRightCallBack(object sender, EventArgs e)
{
try
{
if (this.OnRightCallback != null)
this.OnRightCallback(sender, e);
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 说明:
/// 创建人:龚宇超
/// 创建日期:2018-02-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
protected void OnGridViewAllCallBack(object sender, EventArgs e)
{
try
{
if (this.OnAllGridCallback != null)
this.OnAllGridCallback(sender, e);
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 说明:表格双击完成
/// 创建人:王一帆
/// 创建日期:2019-08-29
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The e.
protected void OnGridCompleted(object sender, EventArgs e)
{
try
{
XtraTabPage tabPage = this.xtc_container.SelectedTabPage;
GridControlEx ge = tabPage.Tag as GridControlEx;
DataRow[] rowItems = new DataRow[] { ge.GridView.GetFocusedDataRow() };
GridColumnCollection gridColumns = this.ParentGridEx.GridView.Columns;
DataTable table = this.ParentGridEx.gridControl.DataSource as DataTable;
foreach (DataRow rowItem in rowItems)
{
DataRow newRow = table.NewRow();
foreach (GridColumn col in gridColumns)
{
if ("id".Equals(col.FieldName) || col.FieldName.Equals(this.DrgaParentPrimaryKey)) continue;
if (rowItem.Table.Columns.Contains(col.FieldName))
{
// 列中是否包含对应字段,包含则使用值
newRow[col.FieldName] = rowItem[col.FieldName];
}
else
{
// 未包含字段,则使用控件默认值.
GridColumnModel model = col.Tag as GridColumnModel;
string fieldValue = BaseImpl.GetDefaultValue(model.DefaultValue);
if (!string.IsNullOrEmpty(model.DefaultValue))
{
newRow[col.FieldName] = fieldValue;
}
}
}
table.Rows.Add(newRow);
}
this.ParentGridEx.GridView.ClearSelection();
this.ParentGridEx.GridView.SelectRowHandler(table.Rows.Count - 1);
this.ParentGridEx.GridView.UpdateCurrentRow();
this.ParentGridEx.GridView.ShowEditor();
}
catch (Exception ex)
{
LogUtil.WriteError("表格双击移动错误", ex);
LogHelper.Instance.WriteError(ex);
// MessageUtil.Show(ResourceKeys.OperFault);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 说明:表格拖拽完成
/// 创建人:龚宇超
/// 创建日期:2017-11-14
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The e.
protected void OnDragGridCompleted(object sender, GridDragGridArgs e)
{
if (e.GridViewSelectRows == null || e.GridViewSelectRows.Length == 0 || this.ParentGridEx == null) return;
try
{
if (MessageUtil.Show(ResourceKeys.DragSelectRow, MessageBoxButtons.YesNo) == DialogResult.Yes)
{
GridColumnCollection gridColumns = this.ParentGridEx.GridView.Columns;
DataTable table = this.ParentGridEx.gridControl.DataSource as DataTable;
foreach (DataRow rowItem in e.GridViewSelectRows)
{
DataRow newRow = table.NewRow();
foreach (GridColumn col in gridColumns)
{
if ("id".Equals(col.FieldName) || col.FieldName.Equals(this.DrgaParentPrimaryKey)) continue;
if (rowItem.Table.Columns.Contains(col.FieldName))
{
// 列中是否包含对应字段,包含则使用值
newRow[col.FieldName] = rowItem[col.FieldName];
}
else
{
// 未包含字段,则使用控件默认值.
GridColumnModel model = col.Tag as GridColumnModel;
string fieldValue = BaseImpl.GetDefaultValue(model.DefaultValue);
if (!string.IsNullOrEmpty(model.DefaultValue))
{
newRow[col.FieldName] = fieldValue;
}
}
}
table.Rows.Add(newRow);
}
this.ParentGridEx.GridView.ClearSelection();
this.ParentGridEx.GridView.SelectRowHandler(table.Rows.Count - 1);
this.ParentGridEx.GridView.UpdateCurrentRow();
this.ParentGridEx.GridView.ShowEditor();
}
}
catch (Exception ex)
{
LogUtil.WriteError("表格拖拽错误", ex);
LogHelper.Instance.WriteError(ex);
//MessageUtil.Show(ResourceKeys.OperFault);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 说明:初始化分割条位置
/// 创建人:王一帆
/// 创建日期:2020-06-19
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void InitSpliterPosition()
{
if (this.splitContainer != null)
{
string spliterPosition = IniHelper.Read(string.Format("PubModuleDetail3RightLower_SplitterPositionMain_{0}", this.splitContainer.Tag + ""));
if (!string.IsNullOrEmpty(spliterPosition)) this.splitContainer.SplitterPosition = Convert.ToInt32(spliterPosition);
}
}
///
/// 说明:分割条位置改变事件
/// 创建人:王一帆
/// 创建日期:2020-06-19
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void SplitLeftControl_SplitterMoved(object sender, EventArgs e)
{
try
{
if (_isInitFinish && this.splitContainer != null)
{
IniHelper.Write(string.Format("PubModuleDetail3RightLower_SplitterPositionMain_{0}", this.splitContainer.Tag + ""), this.splitContainer.SplitterPosition + "");
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
}
}