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.Model;
using Lskj.Model;
using Lskj.Business.Impl;
using Lskj.Data;
using DevExpress.XtraGrid.Columns;
using Lskj.Business;
using Lskj.Util;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraEditors;
namespace Lskj.Control
{
public partial class TabMultipledetails : UserControl
{
public TabMultipledetails()
{
InitializeComponent();
}
#region 公共变量
///
/// 是否加载明细刷新
///
/// true if [_ un refresh]; otherwise, false.
private bool _UnRefresh
{
get
{
return Model is DynamicModuleDetailModel || Model is DynamicModuleModel || Model is DynamicProductionModel;
}
}
///
/// 分割线
///
public DevExpress.XtraEditors.SplitContainerControl SplitMain { get { return this.splitMainControl; } }
///
/// 表一
///
public ModuleGridEx gridEx1 = new ModuleGridEx();
///
/// 表二
///
public ModuleGridEx gridEx2 = new ModuleGridEx();
///
/// tab标签
///
private GridDetailModel[] _gridDetail;
///
/// The system model
///
public DynamicModel Model;
///
/// 父表格
///
public GridControlEx ParentGridEx;
///
/// 父容器
///
public MyControl ParentControlEx;
///
/// 拖拽模式
///
public bool IsDragDetail;
///
/// 拖拽执行sql
///
public string existDragSql;
///
/// 拖拽目标主键字段
///
public string DrgaParentPrimaryKey;
///
/// 左侧表刷新右侧表
///
public bool UnioDetail = false;
///
/// Occurs when [on Save Grid call back].
///
public event EventHandler OnSaveGridCallBack;
///
/// 下面明细表右键执行后回调
///
public event EventHandler DetailRightGridCallBack;
#endregion
#region
///
/// 初始化完成
///
private bool _isInitFinish;
#endregion
///
/// 说明:绑定选项卡
/// 创建人:龚宇超
/// 创建日期:2018-01-09
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
public void InitTabPages(GridDetailModel[] gridDetail)
{
try
{
this._isInitFinish = false;
this._gridDetail = gridDetail;
int i = 0;
int MainTable = 0;//主表序号,1和2对应主表为第一个还是第二个
bool ProcessExists = (Lskj.Data.Caches.CacheSYSConfig.Instance().JudgeProcessExists() && SystemInfo.Instance.isExecload);
foreach (GridDetailModel model in this._gridDetail)
{
if (!model.IsAddPanel && !model.IsDetailView && !model.IsWebView && !model.IsWebView2 && !model.IsWebView3)
{
if (model.IsChart)
{
ChartControlEx chartEx = new ChartControlEx();
chartEx.Dock = DockStyle.Fill;
chartEx.transverseHistogram = model.transverseHistogram;
//chartEx.SetCharts(BaseModuleImpl.GetChartParams(model.FormKey));
//chartEx.SetChartRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, OnGridViewRightCallBack);
if (ProcessExists)
{
chartEx.SetCharts(Lskj.Data.Caches.CacheSYSConfig.Instance().GetCustomQueryFields());
chartEx.SetChartRightMenus(Lskj.Data.Caches.CacheSYSConfig.Instance().GetBaseGridRightMenus(), this.Model, null);
}
else
{
chartEx.SetCharts(BaseModuleImpl.GetChartParams(model.FormKey));
chartEx.SetChartRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, null);
}
chartEx.Tag = model;
if (i == 0)
{
splitMainControl.Panel1.Controls.Add(chartEx);
splitMainControl.Panel1.Tag = chartEx;
}
else
{
splitMainControl.Panel2.Controls.Add(chartEx);
splitMainControl.Panel2.Tag = chartEx;
}
}
else if (model.IsReadOnly)
{
GridControlEx gridEx = model.AutoMultiHeader == 1 ? new BandedGridControlEx() : new GridControlEx();
gridEx.Dock = DockStyle.Fill;
gridEx.Tag = model;
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 (ProcessExists)
{
gridEx.SetGridRightMenus(Lskj.Data.Caches.CacheSYSConfig.Instance().GetBaseGridRightMenus(), this.Model, null);
gridEx.SetGridRowColors(Lskj.Data.Caches.CacheSYSConfig.Instance().GetCustomColumnByDatabase());
}
else
{
gridEx.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, null);
gridEx.SetGridRowColors(BaseModuleImpl.GetBaseGridRowColors(model.FormKey));
}
if (model.IsCheck == 1)//加载复选框
{
GridDragGrid.GridAddCheckBox(gridEx.GridView);
}
if (IsDragDetail && this.ParentGridEx != null && model.IsDrag)
{
// 拖拽模式,绑定拖拽对象
GridDragGrid dragGrid = new GridDragGrid(gridEx.GridView, this.ParentGridEx.GridView);
dragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
}
//左侧表设置后,添加事件。行改变时刷新右侧表
if (model.IsUnioDetail)
{
gridEx.GridView.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(OnGridViewFocusedRowObjectChanged);
gridEx.GridView.RowCellClick += new RowCellClickEventHandler(OnRowCellClick);
UnioDetail = true;
}
if (i == 0)
{
gridEx1.GridControlObj = gridEx;
// 加载配置查询条件
if (Model != null && Model.IsDetailSearch)
{
gridEx1.SearchObj.InitSearchControl(BaseModuleImpl.GetCustomQueryFields(model.FormKey), gridEx1.SearchPanel);
}
splitMainControl.Panel1.Controls.Add(gridEx);
splitMainControl.Panel1.Tag = gridEx;
if (!string.IsNullOrWhiteSpace(model.DragExecuteSql))
{
existDragSql = model.DragExecuteSql;
MainTable = 1;
}
}
else
{
gridEx2.GridControlObj = gridEx;// 加载配置查询条件
if (Model != null && Model.IsDetailSearch)
{
gridEx2.SearchObj.InitSearchControl(BaseModuleImpl.GetCustomQueryFields(model.FormKey), gridEx2.SearchPanel);
}
splitMainControl.Panel2.Controls.Add(gridEx);
splitMainControl.Panel2.Tag = gridEx;
if (!string.IsNullOrWhiteSpace(model.DragExecuteSql))
{
existDragSql = model.DragExecuteSql;
MainTable = 2;
}
}
}
else
{
DynamicModel dyncModel = new DynamicModuleModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", model.UnionModule, "0" });
if (ProcessExists)
{
model.SystemModel = new ModuleModel(Lskj.Data.Caches.CacheSYSConfig.Instance().GetSystemdllTab());
if (Model != null)
model.SystemModel.ParmaryKey = Lskj.Data.Caches.CacheSYSConfig.Instance().GetBasePrimaryKey();
}
else
{
model.SystemModel = new ModuleModel(MainImpl.GetSystemdllTab(model.UnionModule));
if (Model != null)
model.SystemModel.ParmaryKey = BaseImpl.GetBasePrimaryKey(Model.ModuleCode);
}
ModuleGridEx gridEx = new ModuleGridEx();
gridEx.RightGridCallBack += OnGridAfterRightCallBack;
if (model.BottomRefreshMain) gridEx.OnSaveGridCallBack += OnRefreshMainTable;
gridEx.Name = "gridEx";
gridEx.IsDetail = true;
gridEx.Dock = DockStyle.Fill;
gridEx.OperShortMode = Model.IsDetailSearch; // 不显示简短模式
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.GridControlObj.ParentControl = gridEx.SearchObj;
gridEx.OnSaveGridCallBack += OnSaveGridCallBack;
gridEx.DetailRightGridCallBack += DetailRightGridCallBack;
//左侧表设置后,添加事件。行改变时刷新右侧表
if (model.IsUnioDetail)
{
gridEx.GridControlObj.GridView.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(OnGridViewFocusedRowObjectChanged);
gridEx.GridControlObj.GridView.RowCellClick += new RowCellClickEventHandler(OnRowCellClick);
UnioDetail = true;
}
if (model.IsCheck == 1)
{
GridDragGrid.GridAddCheckBox(gridEx.GridControlObj.GridView);
}
if (model.QueryAgain)
{
gridEx.SearchObj.OnSearchAfterCallBack += SearchObj_OnSearchAfterCallBack;
}
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();
if (i == 0)
{
gridEx1 = gridEx;
splitMainControl.Panel1.Controls.Add(gridEx);
splitMainControl.Panel1.Tag = gridEx.GridControlObj;
if (!string.IsNullOrWhiteSpace(model.DragExecuteSql))
{
existDragSql = model.DragExecuteSql;
MainTable = 1;
}
}
else
{
if (UnioDetail)
{
gridEx.ParentControlEx = this.gridEx1.SearchObj;
gridEx.ParentGridEx = this.gridEx1.GridControlObj;
}
gridEx2 = gridEx;
splitMainControl.Panel2.Controls.Add(gridEx);
splitMainControl.Panel2.Tag = gridEx.GridControlObj;
if (!string.IsNullOrWhiteSpace(model.DragExecuteSql))
{
existDragSql = model.DragExecuteSql;
MainTable = 2;
}
}
}
}
i++;
}
//判断是否有推拽sql
if (MainTable != 0)
{
if ((splitMainControl.Panel1.Tag is GridControlEx) && (splitMainControl.Panel2.Tag is GridControlEx))
{
GridControlEx grdExMain = (splitMainControl.Panel1.Tag as GridControlEx);
GridControlEx grdExAdditional = (splitMainControl.Panel2.Tag as GridControlEx);
if (MainTable == 1)
{
// 拖拽模式,绑定拖拽对象
GridDragGrid dragGrid = new GridDragGrid(grdExMain.GridView, grdExAdditional.GridView);
dragGrid.OnDragComplete += DragGrid_OnDragComplete;
}
else if (MainTable == 2)
{
// 拖拽模式,绑定拖拽对象
GridDragGrid dragGrid = new GridDragGrid(grdExAdditional.GridView, grdExMain.GridView);
dragGrid.OnDragComplete += DragGrid_OnDragComplete;
}
}
}
}
catch (Exception)
{
throw;
}
finally
{
_isInitFinish = true;
InitializeSplitterPosition();
}
}
//两个表间推拽时执行存储过程
private void DragGrid_OnDragComplete(object sender, GridDragGridArgs e)
{
try
{
foreach (DataRow item in e.GridViewSelectRows)
{
string sql = ReplaceHelper.ReplaceRowParam(item, existDragSql);
BaseImpl.ExecSqlValue(sql);
}
}
catch (Exception ex)
{
}
finally
{
if (this.ParentControlEx != null) this.ParentControlEx.SearchGrid();
//gridEx1.SearchObj.SearchLastGrid();
//gridEx2.SearchObj.SearchLastGrid();
DataRow rowItem = this.ParentGridEx.GetViewFocusedDataRow();
int i = 0;
foreach (GridDetailModel model in this._gridDetail)
{
if (model.QueryAgain)
{
if (i == 0)
{
string sqlValue = model.IsReadOnly || model.IsChart ? model.DetailSql : model.SystemModel.MenuSql;
sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, sqlValue);
gridEx1.SearchObj.SearchGrid(sqlValue, true, false);
}
else if (1 == 1)
{
string sqlValue = model.IsReadOnly || model.IsChart ? model.DetailSql : model.SystemModel.MenuSql;
sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, sqlValue);
gridEx2.SearchObj.SearchGrid(sqlValue, true, false);
}
}
else
{
if (i == 0)
{
gridEx1.SearchObj.SearchGrid();
}
else if (1 == 1)
{
gridEx2.SearchObj.SearchGrid();
}
}
i++;
}
}
}
#region 行点击改变事件
///
/// 说明:数据行发生改变加载明细
/// 创建人:龚宇超
/// 创建日期:
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
protected void OnGridViewFocusedRowObjectChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventArgs e)
{
try
{
WaitForm.ShowForm();
GridControlEx mainGridObj = splitMainControl.Panel1.Tag as GridControlEx;
DataRow rowItem = mainGridObj.GetViewFocusedDataRow();
if (rowItem != null)
{
if (splitMainControl.Panel2.Tag is GridControlEx)
{
GridControlEx DetailGridObj = splitMainControl.Panel2.Tag as GridControlEx;
GridDetailModel gridMainModel = mainGridObj.Tag as GridDetailModel;
GridDetailModel gridDetailModel = DetailGridObj.Tag as GridDetailModel;
string primaryKey = BaseImpl.GetBasePrimaryKey(gridMainModel.UnionModule);
string searchSql = this.GetSearchSql(gridDetailModel, rowItem, primaryKey);
DetailGridObj.LastSearchSql = searchSql;
DetailGridObj.SetGridViewDataSource(MainImpl.GetDataTableResult(searchSql));
}
else if (splitMainControl.Panel2.Tag is ChartControlEx)
{
ChartControlEx DetailGridObj = splitMainControl.Panel2.Tag as ChartControlEx;
GridDetailModel gridMainModel = mainGridObj.Tag as GridDetailModel;
GridDetailModel gridDetailModel = DetailGridObj.Tag as GridDetailModel;
string primaryKey = BaseImpl.GetBasePrimaryKey(gridMainModel.UnionModule);
string searchSql = this.GetSearchSql(gridDetailModel, rowItem, primaryKey);
DetailGridObj.CreateChart(MainImpl.GetDataTableResult(searchSql));
}
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteError(ex);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show("加载明细数据失败!" + Message);
}
finally
{
WaitForm.HideForm();
}
}
///
/// 说明:获取查询条件
/// 创建人:龚宇超
/// 创建日期:2017-11-22
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The model.
/// The row item.
/// System.String.
protected string GetSearchSql(GridDetailModel model, DataRow rowItem, string ParmaryKey = "")
{
string fieldName = !string.IsNullOrEmpty(model.UnionParentField) && rowItem.Table.Columns.Contains(model.UnionParentField) ? model.UnionParentField : 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] + "");
}
if (!string.IsNullOrEmpty(model.UnionCond))
{
string UnionCond = ReplaceHelper.ReplaceRowParam(rowItem, model.UnionCond);
sqlValue += UnionCond;
}
return sqlValue;
}
///
/// 说明:多明细框下左边刷新右边的明细
/// 创建人:王一帆
/// 创建日期:2022-12-02
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
protected void OnRowCellClick(object sender, RowCellClickEventArgs e)
{
try
{
WaitForm.ShowForm();
GridControlEx mainGridObj = splitMainControl.Panel1.Tag as GridControlEx;
DataRow rowItem = mainGridObj.GetViewFocusedDataRow();
if (rowItem != null)
{
if (splitMainControl.Panel2.Tag is GridControlEx)
{
GridControlEx DetailGridObj = splitMainControl.Panel2.Tag as GridControlEx;
GridDetailModel gridMainModel = mainGridObj.Tag as GridDetailModel;
GridDetailModel gridDetailModel = DetailGridObj.Tag as GridDetailModel;
string primaryKey = BaseImpl.GetBasePrimaryKey(gridMainModel.UnionModule);
string searchSql = this.GetSearchSql(gridDetailModel, rowItem, primaryKey);
DetailGridObj.LastSearchSql = searchSql;
DetailGridObj.SetGridViewDataSource(MainImpl.GetDataTableResult(searchSql));
}
else if (splitMainControl.Panel2.Tag is ChartControlEx)
{
ChartControlEx DetailGridObj = splitMainControl.Panel2.Tag as ChartControlEx;
GridDetailModel gridMainModel = mainGridObj.Tag as GridDetailModel;
GridDetailModel gridDetailModel = DetailGridObj.Tag as GridDetailModel;
string primaryKey = BaseImpl.GetBasePrimaryKey(gridMainModel.UnionModule);
string searchSql = this.GetSearchSql(gridDetailModel, rowItem, primaryKey);
DetailGridObj.CreateChart(MainImpl.GetDataTableResult(searchSql));
}
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteError(ex);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show("加载明细数据失败!" + Message);
}
finally
{
WaitForm.HideForm();
}
}
#endregion
///
/// 说明:表格拖拽完成
/// 创建人:龚宇超
/// 创建日期: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)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
LogHelper.Instance.WriteError(ex);
//MessageUtil.Show(ResourceKeys.OperFault);
}
}
///
/// 说明:初始化分割条位置
/// 创建人:龚宇超
/// 创建日期:2017-01-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void InitializeSplitterPosition()
{
try
{
string splitterPosition = IniHelper.Read(string.Format("base_TabMultipledetailsMain_{0}", this.Model.ModuleCode));
if (!string.IsNullOrEmpty(splitterPosition))
{
this.splitMainControl.SplitterPosition = Convert.ToInt32(splitterPosition);
}
else
{
this.splitMainControl.SplitterPosition = Screen.PrimaryScreen.WorkingArea.Width / 2;
}
}
catch (Exception e)
{
LogHelper.Instance.WriteError(e);
}
}
///
/// 说明:并行分割条位置变化事件
/// 创建人:王一帆
/// 创建日期:2020-08-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
void OnSplitterPositionChanged(object sender, EventArgs e)
{
try
{
if (_isInitFinish)
{
IniHelper.Write(string.Format("base_TabMultipledetailsMain_{0}", this.Model.ModuleCode), this.splitMainControl.SplitterPosition + "");
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 下方表格执行右键后刷新
///
///
///
private void OnGridAfterRightCallBack(object sender, EventArgs e)
{
if (splitMainControl.Panel1.Tag != null && splitMainControl.Panel1.Tag is GridControlEx)
{
GridControlEx grdExMain = (splitMainControl.Panel1.Tag as GridControlEx);
GridDetailModel MainModel = grdExMain.Tag as GridDetailModel;
if (MainModel.BottomRefreshMain)
{
//刷新主表,主表刷新后会默认刷新下方左右表
int oldRowHandle = gridEx1.GridControlObj.GridView.FocusedRowHandle;//上一次选中行
this.ParentControlEx.SearchLastGrid();
if (gridEx1.SearchObj.RememberRow)
{
gridEx1.GridControlObj.GridView.SelectRowHandler(oldRowHandle);
}
}
else if (MainModel.BottomDetailsRefresh)
{
gridEx1.SearchObj.SearchLastGrid();
}
}
if (splitMainControl.Panel2.Tag != null && splitMainControl.Panel2.Tag is GridControlEx)
{
GridControlEx grdExAdditional = (splitMainControl.Panel2.Tag as GridControlEx);
GridDetailModel AdditionalModel = grdExAdditional.Tag as GridDetailModel;
if (AdditionalModel.BottomRefreshMain)
{
//刷新主表,主表刷新后会默认刷新下方左右表
int oldRowHandle = gridEx2.GridControlObj.GridView.FocusedRowHandle;//上一次选中行
this.ParentControlEx.SearchLastGrid();
if (gridEx2.SearchObj.RememberRow)
{
gridEx2.GridControlObj.GridView.SelectRowHandler(oldRowHandle);
}
}
else if (AdditionalModel.BottomDetailsRefresh)
{
gridEx2.SearchObj.SearchLastGrid();
}
}
}
///
/// 下方表格保存或者执行右键后刷新
///
///
///
private void OnRefreshMainTable(object sender, EventArgs e)
{
try
{
//刷新主表,主表刷新后会默认刷新下方左右表
int oldRowHandle = gridEx1.GridControlObj.GridView.FocusedRowHandle;//上一次选中行
int oldRowHandle2 = gridEx2.GridControlObj.GridView.FocusedRowHandle;//上一次选中行
this.ParentControlEx.SearchLastGrid();
if (gridEx1.SearchObj.RememberRow)
{
gridEx1.GridControlObj.GridView.SelectRowHandler(oldRowHandle);
}
if (gridEx2.SearchObj.RememberRow)
{
gridEx2.GridControlObj.GridView.SelectRowHandler(oldRowHandle2);
}
}
catch (Exception ex)
{
}
}
//设置条件值
public void SetConditionValues(DataRow dr)
{
try
{
if (this.gridEx1.SearchObj != null)
{
foreach (ControlModel item in this.gridEx1.SearchObj.ControlModels)
{
if (dr.Table.Columns.Contains(item.FieldName))
{
this.gridEx1.SearchObj.SetControlValue(item, dr[item.FieldName] + "");
}
}
}
if (this.gridEx2.SearchObj != null)
{
foreach (ControlModel item in this.gridEx2.SearchObj.ControlModels)
{
if (dr.Table.Columns.Contains(item.FieldName))
{
this.gridEx2.SearchObj.SetControlValue(item, dr[item.FieldName] + "");
}
}
}
}
catch (Exception ex)
{
}
}
//重新根据主表数据查询
private void SearchObj_OnSearchAfterCallBack(object sender, EventArgs e)
{
DataRow rowItem = th