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.Model;
using Lskj.Control.Model;
using Lskj.Util;
using Lskj.Data;
using Lskj.Business.Impl;
using Lskj.Control;
using Lskj.Business;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using DevExpress.XtraEditors;
using DevExpress.XtraTab;
namespace Lskj.PubModelAdd3
{
public partial class BaseModelAdd : UserControl
{
public BaseModelAdd()
{
InitializeComponent();
}
#region 私有变量
///
/// 模块初始化完成
///
private bool _isInitFinish;
///
/// 表格列
///
private DataTable _gridColumns = new DataTable();
///
/// 主键名
///
private string _primaryLeftKey;
///
/// 左侧表格查询条件
///
private MyControl _leftGridSearchObj;
#endregion
#region 公共变量
///
/// 左侧树数据
///
public DataRow LeftRowObj;
///
/// 基础添加模块的入口参数
///
public DynamicPubModelAdd Model;
///
/// 基础添加模块的入口参数
///
public DynamicPubModelAdd BandModel;
///
/// 左侧基础模型
///
public ModuleGridEx MoudleBottomObj { get; set; }
public GridDetailModel BottomDetailModel;
///
///左上方查询条件控件
///
public MyControl SearchLeftObj;
///
/// 顶部表格控件
///
public ModuleGridEx ModuleGridObj;
///
/// 系统模块实体对象
///
/// The system model.
public ModuleModel SysModel { get; private set; }
///
/// 底部多标签表格数据
///
public List GridDetailList;
///
/// 系统模块下部分实体对象
///
/// The system model.
public ModuleModel BottomModel { get; set; }
///
/// 左侧条件
///
public string LeftCond;
#endregion
///
/// 说明:窗口加载
/// 创建人:龚宇超
/// 创建日期:2019-06-28
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
public void OnLoad(DynamicPubModelAdd Model)
{
WaitForm.ShowForm();
try
{
this._isInitFinish = false;
if (Model.isBandGrid)
{
this.mg_control.Visible = false;
this.mg_bandcontrol.Visible = true;
this.ModuleGridObj = this.mg_bandcontrol;
}
else
{
this.mg_control.Visible = true;
this.mg_bandcontrol.Visible = false;
this.ModuleGridObj = this.mg_control;
}
this.Model = Model;
this.BandModel = Model;
DataRow modelRow = MainImpl.GetSystemdllTab(this.Model.ModuleCode);
if (modelRow == null)
{
MessageUtil.Show("模块编号[" + this.Model.ModuleCode + "],配置错误!\r\n该模块信息未找到!");
return;
}
this.SysModel = new ModuleModel(modelRow);
this.SetLeftGridView();
InitializeGrid();
//初始化单表GridView
this.mg_control._leftGridSearchObj = _leftGridSearchObj;
this.mg_control.InitializeControl(SysModel, Model);
this.mg_control.LeftGridEx = gridLeft;
this.mg_control.AfterDeleteGridCallBack += mg_control_AfterDeleteGridCallBack;
this.mg_control.RightGridCallBack += OnGridAfterRightCallBack;
this.BandModel.GridEnumObj = GridEnum.BandedGridView;
//初始化多表头GridView
this.mg_bandcontrol._leftGridSearchObj = _leftGridSearchObj;
this.mg_bandcontrol.LeftGridEx = gridLeft;
this.mg_bandcontrol.InitializeControl(SysModel, BandModel);
this.ModuleGridObj.SearchObj.OnDataSourceBindCallBack += new EventHandler(OnDataSourceBindCallBack);
this.ModuleGridObj.VisibleSearchPanel = false;
InitSpliterPosition();
this.sccMain_container.SplitterPositionChanged += new EventHandler(OnSccMain_container_LocationChanged);
this.sccRight_container.SplitterPositionChanged += new EventHandler(OnSccRight_container_LocationChanged);
//this.pl_left_main.Parent = pl_right;
//this.sccRight_container.Parent = pl_left;
if (this.SysModel.MenuType == 5)
{
this.pl_left_main.Parent = pl_right;
this.sccRight_container.Parent = pl_left;
}
switch (this.SysModel.MenuType)
{
case 5: // 左侧为表格
this.pl_left_main.Parent = pl_right;
this.sccRight_container.Parent = pl_left;
break;
case 2: // 左侧为表格
this.pl_left_main.Parent = pl_left;
this.sccRight_container.Parent = pl_right;
break;
case 3: // 左侧为空
default:
this.sccMain_container.PanelVisibility = SplitPanelVisibility.Panel2;
break;
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteError(ex, ResourceKeys.BaseModule);
//MessageUtil.Show(ex.Message + "\r\n" + ex.StackTrace);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
finally
{
this._isInitFinish = true;
}
WaitForm.HideForm();
}
#region 方法
#region 数据源绑定完成后执行
///
/// 说明:数据源绑定完成后执行
/// 创建人:王一帆
/// 创建日期:
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The source of the event.
/// The instance containing the event data.
void OnDataSourceBindCallBack(object sender, EventArgs e)
{
//string sqlValue = ReplaceHelper.ReplaceWhereCond(this.SysModel.MenuSql);
//this.ModuleGridObj.GridControlObj.LastSearchSql = this.ModuleGridObj.SearchObj.SetSearchSqlValue(sqlValue, true, false);
//this.ModuleGridObj.SearchObj.SearchLastGrid();
}
#endregion
#region 初始化配置表格表
///
/// 说明:判断多标签里是否有明细表
/// 创建人:王一帆
/// 创建日期: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)
{
if (int.Parse(item["orderId"] + "") <= -1 && int.Parse(item["orderId"] + "") >= -9)
{
DataTable gridColumns = ReportImpl.GetReportDetailColumns(ModuleCode, item["id"] + "");
details.Add(new GridDetailModel(item, gridColumns, GridCustomColumnStruct.BaseDetailGridView));
}
}
return details;
}
///
/// 说明:加载下部分表格
/// 创建人:王一帆
/// 创建日期:2020-09-08
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
private void InitializeGrid()
{
this.GridDetailList = GetDetails(this.Model.ModuleCode);// 底部多标签表格数据
//DataTable moduleDetailTable = BaseModuleImpl.GetBaseDetailPages(this.Model.ModuleCode);//通过明细获取动态表格
//DataRow LeftItem = moduleDetailTable.Rows.Cast().FirstOrDefault(x => int.Parse(x["orderId"] + "") <= -1 && int.Parse(x["orderId"] + "") >= -9);
if (GridDetailList.Count > 0)
{
this.mg_Bottom.Visible = false;
Model.IsDetailSearch = true;
this.TabControl.Model = this.Model;
this.TabControl.InitTabPages(this.GridDetailList);
int i = 0;
this.TabControl.TabControlObj.SelectedPageChanged += new DevExpress.XtraTab.TabPageChangedEventHandler(this.OnSelectedPageChanged);
foreach (XtraTabPage page in this.TabControl.TabControlObj.TabPages)
{
Object moduleObject = page.Controls.Cast