SVN r418
SVN-Revision: r418
This commit is contained in:
+215
-296
@@ -137,7 +137,7 @@ namespace Lskj.Control
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 页签控件集合
|
/// 页签控件集合
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Dictionary<GridDetailModel, Task<object>> PageControlsDic = new Dictionary<GridDetailModel, Task<object>>();
|
public Dictionary<GridDetailModel, object> PageControlsDic = new Dictionary<GridDetailModel, object>();
|
||||||
public TabControlEx()
|
public TabControlEx()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@@ -161,14 +161,12 @@ namespace Lskj.Control
|
|||||||
}
|
}
|
||||||
string DetaiName = string.Empty;
|
string DetaiName = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
Dictionary<object, Hashtable> dataCaches = Model != null ? Model.DataCaches : null;
|
Dictionary<object, Hashtable> dataCaches = Model != null ? Model.DataCaches : null;
|
||||||
dataCaches.GetValue(this, "DataCaches", out bool _);//等待缓存数据加载完成
|
|
||||||
|
|
||||||
foreach (GridDetailModel model in this._gridDetail)
|
foreach (GridDetailModel model in this._gridDetail)
|
||||||
{
|
{
|
||||||
Task<object> controlTask = PageControlsDic.ContainsKey(model) ? PageControlsDic[model] : null;
|
object control = PageControlsDic.ContainsKey(model) ? PageControlsDic[model] : null;
|
||||||
bool hasControl = controlTask != null && controlTask.Result != null;
|
bool hasControl = control != null;
|
||||||
if (DetaiName.Equals(model.DetailName) && isGridmerge) continue;
|
if (DetaiName.Equals(model.DetailName) && isGridmerge) continue;
|
||||||
GridDetailModel[] isMeage = gridDetail.Cast<GridDetailModel>().Where(x => x.DetailName.Equals(model.DetailName)).ToArray();
|
GridDetailModel[] isMeage = gridDetail.Cast<GridDetailModel>().Where(x => x.DetailName.Equals(model.DetailName)).ToArray();
|
||||||
XtraTabPage page = new XtraTabPage();
|
XtraTabPage page = new XtraTabPage();
|
||||||
@@ -184,7 +182,7 @@ namespace Lskj.Control
|
|||||||
|
|
||||||
if (model.IsChart)
|
if (model.IsChart)
|
||||||
{
|
{
|
||||||
ChartControlEx chartEx = new ChartControlEx();
|
ChartControlEx chartEx = hasControl && control is ChartControlEx ? (ChartControlEx)control : new ChartControlEx();
|
||||||
chartEx.Dock = DockStyle.Fill;
|
chartEx.Dock = DockStyle.Fill;
|
||||||
chartEx.transverseHistogram = model.transverseHistogram;
|
chartEx.transverseHistogram = model.transverseHistogram;
|
||||||
//chartEx.SetCharts(BaseModuleImpl.GetChartParams(model.FormKey));
|
//chartEx.SetCharts(BaseModuleImpl.GetChartParams(model.FormKey));
|
||||||
@@ -205,7 +203,7 @@ namespace Lskj.Control
|
|||||||
}
|
}
|
||||||
else if (model.IsExcel)
|
else if (model.IsExcel)
|
||||||
{
|
{
|
||||||
ExcelControlEx excelEx = new ExcelControlEx();
|
ExcelControlEx excelEx = hasControl && control is ExcelControlEx ? (ExcelControlEx)control : new ExcelControlEx();
|
||||||
excelEx.Dock = DockStyle.Fill;
|
excelEx.Dock = DockStyle.Fill;
|
||||||
excelEx.Tag = model;
|
excelEx.Tag = model;
|
||||||
page.Tag = excelEx;
|
page.Tag = excelEx;
|
||||||
@@ -218,7 +216,7 @@ namespace Lskj.Control
|
|||||||
//url= System.Web.HttpUtility.UrlEncode(url);
|
//url= System.Web.HttpUtility.UrlEncode(url);
|
||||||
if (SystemInfo.Instance.PrimitiveBrowser)
|
if (SystemInfo.Instance.PrimitiveBrowser)
|
||||||
{
|
{
|
||||||
FrmMiniBlink webView = new FrmMiniBlink();
|
FrmMiniBlink webView = hasControl && control is FrmMiniBlink ? (FrmMiniBlink)control : new FrmMiniBlink();
|
||||||
webView.IsDownVerify = true;
|
webView.IsDownVerify = true;
|
||||||
webView.Dock = DockStyle.Fill;
|
webView.Dock = DockStyle.Fill;
|
||||||
webView.Tag = model;
|
webView.Tag = model;
|
||||||
@@ -228,7 +226,7 @@ namespace Lskj.Control
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FrmWebBrowser webView = new FrmWebBrowser();
|
FrmWebBrowser webView = hasControl && control is FrmWebBrowser ? (FrmWebBrowser)control : new FrmWebBrowser();
|
||||||
webView.Dock = DockStyle.Fill;
|
webView.Dock = DockStyle.Fill;
|
||||||
webView.Tag = model;
|
webView.Tag = model;
|
||||||
page.Tag = webView;
|
page.Tag = webView;
|
||||||
@@ -243,7 +241,7 @@ namespace Lskj.Control
|
|||||||
//url= System.Web.HttpUtility.UrlEncode(url);
|
//url= System.Web.HttpUtility.UrlEncode(url);
|
||||||
if (SystemInfo.Instance.PrimitiveBrowser)
|
if (SystemInfo.Instance.PrimitiveBrowser)
|
||||||
{
|
{
|
||||||
FrmMiniBlink webView = new FrmMiniBlink();
|
FrmMiniBlink webView = hasControl && control is FrmMiniBlink ? (FrmMiniBlink)control : new FrmMiniBlink();
|
||||||
webView.Dock = DockStyle.Fill;
|
webView.Dock = DockStyle.Fill;
|
||||||
webView.Tag = model;
|
webView.Tag = model;
|
||||||
page.Tag = webView;
|
page.Tag = webView;
|
||||||
@@ -252,7 +250,7 @@ namespace Lskj.Control
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FrmWebBrowser2 webView = new FrmWebBrowser2();
|
FrmWebBrowser2 webView = hasControl && control is FrmWebBrowser2 ? (FrmWebBrowser2)control : new FrmWebBrowser2();
|
||||||
webView.Dock = DockStyle.Fill;
|
webView.Dock = DockStyle.Fill;
|
||||||
webView.Tag = model;
|
webView.Tag = model;
|
||||||
page.Tag = webView;
|
page.Tag = webView;
|
||||||
@@ -267,7 +265,7 @@ namespace Lskj.Control
|
|||||||
//url= System.Web.HttpUtility.UrlEncode(url);
|
//url= System.Web.HttpUtility.UrlEncode(url);
|
||||||
if (SystemInfo.Instance.PrimitiveBrowser)
|
if (SystemInfo.Instance.PrimitiveBrowser)
|
||||||
{
|
{
|
||||||
FrmMiniBlink webView = new FrmMiniBlink();
|
FrmMiniBlink webView = hasControl && control is FrmMiniBlink ? (FrmMiniBlink)control : new FrmMiniBlink();
|
||||||
webView.AllowDownload = false;
|
webView.AllowDownload = false;
|
||||||
webView.Dock = DockStyle.Fill;
|
webView.Dock = DockStyle.Fill;
|
||||||
webView.Tag = model;
|
webView.Tag = model;
|
||||||
@@ -277,7 +275,7 @@ namespace Lskj.Control
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FrmWebBrowser2 webView = new FrmWebBrowser2();
|
FrmWebBrowser2 webView = hasControl && control is FrmWebBrowser2 ? (FrmWebBrowser2)control : new FrmWebBrowser2();
|
||||||
webView.Dock = DockStyle.Fill;
|
webView.Dock = DockStyle.Fill;
|
||||||
webView.Tag = model;
|
webView.Tag = model;
|
||||||
webView.AllowDownload = false;
|
webView.AllowDownload = false;
|
||||||
@@ -289,7 +287,7 @@ namespace Lskj.Control
|
|||||||
else if (model.IsAddPanel && isGridmerge)
|
else if (model.IsAddPanel && isGridmerge)
|
||||||
{
|
{
|
||||||
// 加载添加界面
|
// 加载添加界面
|
||||||
ModulePanelEx modulePanel = new ModulePanelEx();
|
ModulePanelEx modulePanel = hasControl && control is ModulePanelEx ? (ModulePanelEx)control : new ModulePanelEx();
|
||||||
modulePanel.Dock = DockStyle.Fill;
|
modulePanel.Dock = DockStyle.Fill;
|
||||||
|
|
||||||
if (!dataCaches.GetValue(modulePanel, "BasePrimaryKey", out string primaryKey))
|
if (!dataCaches.GetValue(modulePanel, "BasePrimaryKey", out string primaryKey))
|
||||||
@@ -312,7 +310,7 @@ namespace Lskj.Control
|
|||||||
}
|
}
|
||||||
else if (model.IsDetailView)
|
else if (model.IsDetailView)
|
||||||
{
|
{
|
||||||
ModuleGridDetailEx DetailEx = new ModuleGridDetailEx();
|
ModuleGridDetailEx DetailEx = hasControl && control is ModuleGridDetailEx ? (ModuleGridDetailEx)control : new ModuleGridDetailEx();
|
||||||
DetailEx.Dock = DockStyle.Fill;
|
DetailEx.Dock = DockStyle.Fill;
|
||||||
if (!dataCaches.GetValue(DetailEx, "DynamicModel", out DynamicModel dyncModel))
|
if (!dataCaches.GetValue(DetailEx, "DynamicModel", out DynamicModel dyncModel))
|
||||||
{
|
{
|
||||||
@@ -322,7 +320,6 @@ namespace Lskj.Control
|
|||||||
{
|
{
|
||||||
moduleInformation = MainImpl.GetSystemdllTab(model.UnionModule);
|
moduleInformation = MainImpl.GetSystemdllTab(model.UnionModule);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (moduleInformation == null)
|
if (moduleInformation == null)
|
||||||
{
|
{
|
||||||
MessageUtil.Show("没有找到编号为" + model.UnionModule + "的模块信息");
|
MessageUtil.Show("没有找到编号为" + model.UnionModule + "的模块信息");
|
||||||
@@ -385,7 +382,15 @@ namespace Lskj.Control
|
|||||||
plBottom.Visible = false;
|
plBottom.Visible = false;
|
||||||
PanelControl plMain = new PanelControl();
|
PanelControl plMain = new PanelControl();
|
||||||
plMain.Dock = DockStyle.Fill;
|
plMain.Dock = DockStyle.Fill;
|
||||||
GridControlEx gridEx = model.AutoMultiHeader == 1 ? new BandedGridControlEx() : new GridControlEx();
|
GridControlEx gridEx = null;
|
||||||
|
if (model.AutoMultiHeader == 1)
|
||||||
|
{
|
||||||
|
gridEx = hasControl && control is BandedGridControlEx ? (BandedGridControlEx)control : new BandedGridControlEx();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gridEx = hasControl && control is GridControlEx ? (GridControlEx)control : new GridControlEx();
|
||||||
|
}
|
||||||
gridEx.Dock = DockStyle.Fill;
|
gridEx.Dock = DockStyle.Fill;
|
||||||
gridEx.Tag = model;
|
gridEx.Tag = model;
|
||||||
gridEx.Parent = plMain;
|
gridEx.Parent = plMain;
|
||||||
@@ -449,7 +454,7 @@ namespace Lskj.Control
|
|||||||
else if (isMeage.Count() > 1 && isGridmerge)
|
else if (isMeage.Count() > 1 && isGridmerge)
|
||||||
{
|
{
|
||||||
DetaiName = model.DetailName;
|
DetaiName = model.DetailName;
|
||||||
TabMultipledetails tabMultipledetails = new TabMultipledetails();
|
TabMultipledetails tabMultipledetails = hasControl && control is TabMultipledetails ? (TabMultipledetails)control : new TabMultipledetails();
|
||||||
tabMultipledetails.Model = this.Model;
|
tabMultipledetails.Model = this.Model;
|
||||||
tabMultipledetails.ParentGridEx = this.ParentGridEx;
|
tabMultipledetails.ParentGridEx = this.ParentGridEx;
|
||||||
tabMultipledetails.ParentControlEx = this.ParentControlEx;
|
tabMultipledetails.ParentControlEx = this.ParentControlEx;
|
||||||
@@ -464,7 +469,7 @@ namespace Lskj.Control
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ModuleGridEx gridEx = hasControl && controlTask.Result is ModuleGridEx ? (ModuleGridEx)controlTask.Result : new ModuleGridEx();
|
ModuleGridEx gridEx = hasControl && control is ModuleGridEx ? (ModuleGridEx)control : new ModuleGridEx();
|
||||||
if (!dataCaches.GetValue(gridEx, "DynamicModel", out DynamicModel dyncModel))
|
if (!dataCaches.GetValue(gridEx, "DynamicModel", out DynamicModel dyncModel))
|
||||||
{
|
{
|
||||||
dyncModel = new DynamicModuleModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, this.Model.Privilege, model.UnionModule, "0" });
|
dyncModel = new DynamicModuleModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, this.Model.Privilege, model.UnionModule, "0" });
|
||||||
@@ -591,264 +596,207 @@ namespace Lskj.Control
|
|||||||
//获取通用数据
|
//获取通用数据
|
||||||
Task<DynamicModel> dynamicModelTask = cachesDic.GetTask<DynamicModel>(this, "DynamicModel");
|
Task<DynamicModel> dynamicModelTask = cachesDic.GetTask<DynamicModel>(this, "DynamicModel");
|
||||||
Task<List<GridDetailModel>> detailsTask = cachesDic.GetTask<List<GridDetailModel>>(this, "Details");
|
Task<List<GridDetailModel>> detailsTask = cachesDic.GetTask<List<GridDetailModel>>(this, "Details");
|
||||||
Task<bool> getDataCachesTask = cachesDic.AddTask(this, "DataCaches", new Task<bool>(() =>
|
DynamicModel dynamicModel = dynamicModelTask.Result;
|
||||||
|
List<GridDetailModel> details = detailsTask.Result;
|
||||||
|
string DetaiName = string.Empty;
|
||||||
|
PageControlsDic.Clear();
|
||||||
|
foreach (GridDetailModel model in details)
|
||||||
{
|
{
|
||||||
DynamicModel dynamicModel = dynamicModelTask.Result;
|
if (DetaiName.Equals(model.DetailName) && isGridmerge)
|
||||||
List<GridDetailModel> details = detailsTask.Result;
|
|
||||||
string DetaiName = string.Empty;
|
|
||||||
PageControlsDic.Clear();
|
|
||||||
foreach (GridDetailModel model in details)
|
|
||||||
{
|
{
|
||||||
if (DetaiName.Equals(model.DetailName) && isGridmerge)
|
continue;
|
||||||
|
}
|
||||||
|
List<GridDetailModel> isMeage = details.Cast<GridDetailModel>().Where(x => x.DetailName.Equals(model.DetailName)).ToList();
|
||||||
|
if (model.IsChart)
|
||||||
|
{
|
||||||
|
ChartControlEx chartEx = new ChartControlEx();
|
||||||
|
Task<DataTable> chartParamsTask = cachesDic.AddTask(chartEx, "ChartParams", new Task<DataTable>(() =>
|
||||||
{
|
{
|
||||||
continue;
|
return BaseModuleImpl.GetChartParams(model.FormKey);
|
||||||
}
|
}));
|
||||||
List<GridDetailModel> isMeage = details.Cast<GridDetailModel>().Where(x => x.DetailName.Equals(model.DetailName)).ToList();
|
Task<DataTable> chartRightMenusTask = cachesDic.AddTask(chartEx, "ChartRightMenus", new Task<DataTable>(() =>
|
||||||
if (model.IsChart)
|
|
||||||
{
|
{
|
||||||
Task<object> chartControlExTask = cachesDic.AddTask(model, "ChartControlEx", new Task<object>(() =>
|
return BaseModuleImpl.GetBaseGridRightMenus(model.FormKey);
|
||||||
{
|
}));
|
||||||
ChartControlEx chartEx = new ChartControlEx();
|
PageControlsDic.Add(model, chartEx);
|
||||||
Task<DataTable> chartParamsTask = cachesDic.AddTask(chartEx, "ChartParams", new Task<DataTable>(() =>
|
}
|
||||||
{
|
else if (model.IsExcel)
|
||||||
return BaseModuleImpl.GetChartParams(model.FormKey);
|
{
|
||||||
}));
|
ExcelControlEx excelEx = new ExcelControlEx();
|
||||||
Task<DataTable> chartRightMenusTask = cachesDic.AddTask(chartEx, "ChartRightMenus", new Task<DataTable>(() =>
|
PageControlsDic.Add(model, excelEx);
|
||||||
{
|
}
|
||||||
return BaseModuleImpl.GetBaseGridRightMenus(model.FormKey);
|
else if (model.IsWebView)
|
||||||
}));
|
{
|
||||||
return chartEx;
|
if (SystemInfo.Instance.PrimitiveBrowser)
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, chartControlExTask);
|
|
||||||
}
|
|
||||||
else if (model.IsExcel)
|
|
||||||
{
|
{
|
||||||
Task<object> excelControlExTask = cachesDic.AddTask(model, "ExcelControlEx", new Task<object>(() =>
|
FrmMiniBlink webView = new FrmMiniBlink();
|
||||||
{
|
PageControlsDic.Add(model, webView);
|
||||||
ExcelControlEx excelEx = new ExcelControlEx();
|
|
||||||
return excelEx;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, excelControlExTask);
|
|
||||||
}
|
|
||||||
else if (model.IsWebView)
|
|
||||||
{
|
|
||||||
if (SystemInfo.Instance.PrimitiveBrowser)
|
|
||||||
{
|
|
||||||
Task<object> frmMiniBlinkTask = cachesDic.AddTask(model, "FrmMiniBlink", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
FrmMiniBlink webView = new FrmMiniBlink();
|
|
||||||
return webView;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, frmMiniBlinkTask);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Task<object> frmWebBrowserTask = cachesDic.AddTask(model, "FrmWebBrowser", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
FrmWebBrowser webView = new FrmWebBrowser();
|
|
||||||
return webView;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, frmWebBrowserTask);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (model.IsWebView2)
|
|
||||||
{
|
|
||||||
if (SystemInfo.Instance.PrimitiveBrowser)
|
|
||||||
{
|
|
||||||
Task<object> frmMiniBlinkTask = cachesDic.AddTask(model, "FrmMiniBlink", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
FrmMiniBlink webView = new FrmMiniBlink();
|
|
||||||
return webView;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, frmMiniBlinkTask);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Task<object> frmWebBrowser2Task = cachesDic.AddTask(model, "FrmWebBrowser2", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
FrmWebBrowser2 webView = new FrmWebBrowser2();
|
|
||||||
return webView;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, frmWebBrowser2Task);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (model.IsWebView3)
|
|
||||||
{
|
|
||||||
if (SystemInfo.Instance.PrimitiveBrowser)
|
|
||||||
{
|
|
||||||
Task<object> frmMiniBlinkTask = cachesDic.AddTask(model, "FrmMiniBlink", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
FrmMiniBlink webView = new FrmMiniBlink();
|
|
||||||
return webView;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, frmMiniBlinkTask);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Task<object> frmWebBrowser2Task = cachesDic.AddTask(model, "FrmWebBrowser2", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
FrmWebBrowser2 webView = new FrmWebBrowser2();
|
|
||||||
return webView;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, frmWebBrowser2Task);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (model.IsAddPanel && isGridmerge)
|
|
||||||
{
|
|
||||||
Task<object> modulePanelExTask = cachesDic.AddTask(model, "ModulePanelEx", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
ModulePanelEx modulePanel = new ModulePanelEx();
|
|
||||||
Task<string> basePrimaryKeyTask = cachesDic.AddTask(modulePanel, "BasePrimaryKey", new Task<string>(() =>
|
|
||||||
{
|
|
||||||
return BaseImpl.GetBasePrimaryKey(dynamicModel.ModuleCode);
|
|
||||||
}));
|
|
||||||
Task<DataRow> systemdllTabTask = cachesDic.AddTask(modulePanel, "SystemDllRow", new Task<DataRow>(() =>
|
|
||||||
{
|
|
||||||
return MainImpl.GetSystemdllTab(dynamicModel.ModuleCode);
|
|
||||||
}));
|
|
||||||
modulePanel.GetDataCaches(cachesDic, new ModuleModel(systemdllTabTask.Result), dynamicModel);
|
|
||||||
return modulePanel;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, modulePanelExTask);
|
|
||||||
}
|
|
||||||
else if (model.IsDetailView)
|
|
||||||
{
|
|
||||||
Task<object> moduleGridDetailExTask = cachesDic.AddTask(model, "ModuleGridDetailEx", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
ModuleGridDetailEx DetailEx = new ModuleGridDetailEx();
|
|
||||||
Task<DynamicModel> detailViewDynamicModelTask = cachesDic.AddTask(DetailEx, "DynamicModel", new Task<DynamicModel>(() =>
|
|
||||||
{
|
|
||||||
DynamicModuleModel dyncModel = new DynamicModuleModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, dynamicModel.Privilege, model.UnionModule, "0" });
|
|
||||||
dyncModel.DataCaches = cachesDic;
|
|
||||||
return dyncModel;
|
|
||||||
}));
|
|
||||||
Task<string> basePrimaryKeyTask = cachesDic.AddTask(DetailEx, "BasePrimaryKey", new Task<string>(() =>
|
|
||||||
{
|
|
||||||
return BaseImpl.GetBasePrimaryKey(dynamicModel.ModuleCode);
|
|
||||||
}));
|
|
||||||
Task<DataRow> detailViewSystemDllRowTask = cachesDic.AddTask(DetailEx, "SystemDllRow", new Task<DataRow>(() =>
|
|
||||||
{
|
|
||||||
return MainImpl.GetSystemdllTab(model.UnionModule);
|
|
||||||
}));
|
|
||||||
if (detailViewSystemDllRowTask.Result == null)
|
|
||||||
{
|
|
||||||
return DetailEx;
|
|
||||||
}
|
|
||||||
Task<ModuleModel> detailViewSystemModelTask = cachesDic.AddTask(DetailEx, "SysModel", new Task<ModuleModel>(() =>
|
|
||||||
{
|
|
||||||
return new ModuleModel(detailViewSystemDllRowTask.Result);
|
|
||||||
}));
|
|
||||||
Task<List<GridDetailModel>> detailViewDetailsTask = cachesDic.AddTask(DetailEx, "Details", new Task<List<GridDetailModel>>(() =>
|
|
||||||
{
|
|
||||||
return GetDetails(detailViewSystemModelTask.Result.ModeCode);//底部多标签表格数据
|
|
||||||
}));
|
|
||||||
Task<DataTable> baseGridRightMenusTask = cachesDic.AddTask(DetailEx, "BaseGridRightMenus", new Task<DataTable>(() =>
|
|
||||||
{
|
|
||||||
return BaseModuleImpl.GetBaseGridRightMenus(model.UnionModule, ModuleType.MrpClickBtn);
|
|
||||||
}));
|
|
||||||
DetailEx.GetDataCaches(cachesDic);
|
|
||||||
return DetailEx;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, moduleGridDetailExTask);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (model.IsReadOnly && isMeage.Count() == 1)
|
FrmWebBrowser webView = new FrmWebBrowser();
|
||||||
{
|
PageControlsDic.Add(model, webView);
|
||||||
Task<object> gridControlExTask = cachesDic.AddTask(model, "GridControlEx", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
GridControlEx gridEx = model.AutoMultiHeader == 1 ? new BandedGridControlEx() : new GridControlEx();
|
|
||||||
Task<bool> hasExistsSettingTableTask = cachesDic.AddTask(gridEx, "HasExistsSettingTable", new Task<bool>(() =>
|
|
||||||
{
|
|
||||||
return BaseImpl.HasExistsTable(ResourceKeys.SettingTableName);
|
|
||||||
}));
|
|
||||||
Task<DataTable> setGridRightMenusTask = cachesDic.AddTask(gridEx, "RightMenuBtn", new Task<DataTable>(() =>
|
|
||||||
{
|
|
||||||
return BaseModuleImpl.GetBaseGridRightMenus(dynamicModel.ModuleCode);
|
|
||||||
}));
|
|
||||||
Task<DataTable> sourceColumnByDatabaseTask = cachesDic.AddTask(gridEx, "CustomColumnByDatabase", new Task<DataTable>(() =>
|
|
||||||
{
|
|
||||||
string customColumKey = model.GridCustomColumnKey;
|
|
||||||
return gridEx.GridView.GetCustomColumnByDatabase(customColumKey);
|
|
||||||
}));
|
|
||||||
Task<DataTable> baseGridRightMenusTask = cachesDic.AddTask(gridEx, "BaseGridRightMenus", new Task<DataTable>(() =>
|
|
||||||
{
|
|
||||||
return BaseModuleImpl.GetBaseGridRightMenus(model.FormKey);
|
|
||||||
}));
|
|
||||||
Task<DataTable> baseGridRowColorsTask = cachesDic.AddTask(gridEx, "BaseGridRowColors", new Task<DataTable>(() =>
|
|
||||||
{
|
|
||||||
return BaseModuleImpl.GetBaseGridRowColors(model.FormKey);
|
|
||||||
}));
|
|
||||||
// 加载配置查询条件
|
|
||||||
if (dynamicModel != null && dynamicModel.IsDetailSearch)
|
|
||||||
{
|
|
||||||
Task<DataTable> customQueryFieldsTask = cachesDic.AddTask(gridEx, "CustomQueryFields", new Task<DataTable>(() =>
|
|
||||||
{
|
|
||||||
return BaseModuleImpl.GetCustomQueryFields(model.FormKey);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
return gridEx;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, gridControlExTask);
|
|
||||||
}
|
|
||||||
else if (isMeage.Count() > 1 && isGridmerge)
|
|
||||||
{
|
|
||||||
DetaiName = model.DetailName;
|
|
||||||
Task<object> tabMultipledetailsTask = cachesDic.AddTask(model, "TabMultipledetails", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
TabMultipledetails tabMultipledetails = new TabMultipledetails();
|
|
||||||
return tabMultipledetails;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, tabMultipledetailsTask);
|
|
||||||
//tabMultipledetails.InitTabPages(isMeage);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Task<object> moduleGridExTask = cachesDic.AddTask(model, "ModuleGridEx", new Task<object>(() =>
|
|
||||||
{
|
|
||||||
ModuleGridEx gridEx = new ModuleGridEx();
|
|
||||||
Task<DynamicModel> gridExDynamicModelTask = cachesDic.AddTask(gridEx, "DynamicModel", new Task<DynamicModel>(() =>
|
|
||||||
{
|
|
||||||
DynamicModuleModel dyncModel = new DynamicModuleModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, dynamicModel.Privilege, model.UnionModule, "0" });
|
|
||||||
dyncModel.DataCaches = cachesDic;
|
|
||||||
return dyncModel;
|
|
||||||
}));
|
|
||||||
Task<DataRow> gridExSystemDllRowTask = cachesDic.AddTask(gridEx, "SystemDllRow", new Task<DataRow>(() =>
|
|
||||||
{
|
|
||||||
return MainImpl.GetSystemdllTab(model.UnionModule);
|
|
||||||
}));
|
|
||||||
Task<ModuleModel> gridExSystemModelTask = cachesDic.AddTask(gridEx, "SysModel", new Task<ModuleModel>(() =>
|
|
||||||
{
|
|
||||||
return new ModuleModel(gridExSystemDllRowTask.Result);
|
|
||||||
}));
|
|
||||||
if (dynamicModel != null)
|
|
||||||
{
|
|
||||||
Task<string> basePrimaryKeyTask = cachesDic.AddTask(gridEx, "ParentPrimaryKey", new Task<string>(() =>
|
|
||||||
{
|
|
||||||
string basePrimaryKey = BaseImpl.GetBasePrimaryKey(dynamicModel.ModuleCode);
|
|
||||||
return basePrimaryKey;
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
Task<DataTable> baseGridRightMenusTask = cachesDic.AddTask(gridEx, "UnionBaseGridRightMenus", new Task<DataTable>(() =>
|
|
||||||
{
|
|
||||||
return BaseModuleImpl.GetBaseGridRightMenus(model.UnionModule, ModuleType.MrpClickBtn);
|
|
||||||
}));
|
|
||||||
gridEx.GetDataCaches(cachesDic);
|
|
||||||
if (model.AutoRefresh && !_UnRefresh && isGridmerge)
|
|
||||||
{
|
|
||||||
//gridEx.SearchObj.SearchGrid();
|
|
||||||
}
|
|
||||||
return gridEx;
|
|
||||||
}));
|
|
||||||
PageControlsDic.Add(model, moduleGridExTask);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
else if (model.IsWebView2)
|
||||||
}));
|
{
|
||||||
|
if (SystemInfo.Instance.PrimitiveBrowser)
|
||||||
|
{
|
||||||
|
FrmMiniBlink webView = new FrmMiniBlink();
|
||||||
|
PageControlsDic.Add(model, webView);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FrmWebBrowser2 webView = new FrmWebBrowser2();
|
||||||
|
PageControlsDic.Add(model, webView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (model.IsWebView3)
|
||||||
|
{
|
||||||
|
if (SystemInfo.Instance.PrimitiveBrowser)
|
||||||
|
{
|
||||||
|
FrmMiniBlink webView = new FrmMiniBlink();
|
||||||
|
PageControlsDic.Add(model, webView);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FrmWebBrowser2 webView = new FrmWebBrowser2();
|
||||||
|
PageControlsDic.Add(model, webView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (model.IsAddPanel && isGridmerge)
|
||||||
|
{
|
||||||
|
ModulePanelEx modulePanel = new ModulePanelEx();
|
||||||
|
Task<string> basePrimaryKeyTask = cachesDic.AddTask(modulePanel, "BasePrimaryKey", new Task<string>(() =>
|
||||||
|
{
|
||||||
|
return BaseImpl.GetBasePrimaryKey(dynamicModel.ModuleCode);
|
||||||
|
}));
|
||||||
|
Task<DataRow> systemdllTabTask = cachesDic.AddTask(modulePanel, "SystemDllRow", new Task<DataRow>(() =>
|
||||||
|
{
|
||||||
|
return MainImpl.GetSystemdllTab(dynamicModel.ModuleCode);
|
||||||
|
}));
|
||||||
|
modulePanel.GetDataCaches(cachesDic, new ModuleModel(systemdllTabTask.Result), dynamicModel);
|
||||||
|
PageControlsDic.Add(model, modulePanel);
|
||||||
|
}
|
||||||
|
else if (model.IsDetailView)
|
||||||
|
{
|
||||||
|
ModuleGridDetailEx DetailEx = new ModuleGridDetailEx();
|
||||||
|
Task<DynamicModel> detailViewDynamicModelTask = cachesDic.AddTask(DetailEx, "DynamicModel", new Task<DynamicModel>(() =>
|
||||||
|
{
|
||||||
|
DynamicModuleModel dyncModel = new DynamicModuleModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, dynamicModel.Privilege, model.UnionModule, "0" });
|
||||||
|
dyncModel.DataCaches = cachesDic;
|
||||||
|
return dyncModel;
|
||||||
|
}));
|
||||||
|
Task<string> basePrimaryKeyTask = cachesDic.AddTask(DetailEx, "BasePrimaryKey", new Task<string>(() =>
|
||||||
|
{
|
||||||
|
return BaseImpl.GetBasePrimaryKey(dynamicModel.ModuleCode);
|
||||||
|
}));
|
||||||
|
Task<DataRow> detailViewSystemDllRowTask = cachesDic.AddTask(DetailEx, "SystemDllRow", new Task<DataRow>(() =>
|
||||||
|
{
|
||||||
|
return MainImpl.GetSystemdllTab(model.UnionModule);
|
||||||
|
}));
|
||||||
|
if (detailViewSystemDllRowTask.Result == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Task<ModuleModel> detailViewSystemModelTask = cachesDic.AddTask(DetailEx, "SysModel", new Task<ModuleModel>(() =>
|
||||||
|
{
|
||||||
|
return new ModuleModel(detailViewSystemDllRowTask.Result);
|
||||||
|
}));
|
||||||
|
Task<List<GridDetailModel>> detailViewDetailsTask = cachesDic.AddTask(DetailEx, "Details", new Task<List<GridDetailModel>>(() =>
|
||||||
|
{
|
||||||
|
return GetDetails(detailViewSystemModelTask.Result.ModeCode);//底部多标签表格数据
|
||||||
|
}));
|
||||||
|
Task<DataTable> baseGridRightMenusTask = cachesDic.AddTask(DetailEx, "BaseGridRightMenus", new Task<DataTable>(() =>
|
||||||
|
{
|
||||||
|
return BaseModuleImpl.GetBaseGridRightMenus(model.UnionModule, ModuleType.MrpClickBtn);
|
||||||
|
}));
|
||||||
|
DetailEx.GetDataCaches(cachesDic);
|
||||||
|
PageControlsDic.Add(model, DetailEx);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (model.IsReadOnly && isMeage.Count() == 1)
|
||||||
|
{
|
||||||
|
GridControlEx gridEx = model.AutoMultiHeader == 1 ? new BandedGridControlEx() : new GridControlEx();
|
||||||
|
Task<bool> hasExistsSettingTableTask = cachesDic.AddTask(gridEx, "HasExistsSettingTable", new Task<bool>(() =>
|
||||||
|
{
|
||||||
|
return BaseImpl.HasExistsTable(ResourceKeys.SettingTableName);
|
||||||
|
}));
|
||||||
|
Task<DataTable> setGridRightMenusTask = cachesDic.AddTask(gridEx, "RightMenuBtn", new Task<DataTable>(() =>
|
||||||
|
{
|
||||||
|
return BaseModuleImpl.GetBaseGridRightMenus(dynamicModel.ModuleCode);
|
||||||
|
}));
|
||||||
|
Task<DataTable> sourceColumnByDatabaseTask = cachesDic.AddTask(gridEx, "CustomColumnByDatabase", new Task<DataTable>(() =>
|
||||||
|
{
|
||||||
|
string customColumKey = model.GridCustomColumnKey;
|
||||||
|
return gridEx.GridView.GetCustomColumnByDatabase(customColumKey);
|
||||||
|
}));
|
||||||
|
Task<DataTable> baseGridRightMenusTask = cachesDic.AddTask(gridEx, "BaseGridRightMenus", new Task<DataTable>(() =>
|
||||||
|
{
|
||||||
|
return BaseModuleImpl.GetBaseGridRightMenus(model.FormKey);
|
||||||
|
}));
|
||||||
|
Task<DataTable> baseGridRowColorsTask = cachesDic.AddTask(gridEx, "BaseGridRowColors", new Task<DataTable>(() =>
|
||||||
|
{
|
||||||
|
return BaseModuleImpl.GetBaseGridRowColors(model.FormKey);
|
||||||
|
}));
|
||||||
|
// 加载配置查询条件
|
||||||
|
if (dynamicModel != null && dynamicModel.IsDetailSearch)
|
||||||
|
{
|
||||||
|
Task<DataTable> customQueryFieldsTask = cachesDic.AddTask(gridEx, "CustomQueryFields", new Task<DataTable>(() =>
|
||||||
|
{
|
||||||
|
return BaseModuleImpl.GetCustomQueryFields(model.FormKey);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
PageControlsDic.Add(model, gridEx);
|
||||||
|
}
|
||||||
|
else if (isMeage.Count() > 1 && isGridmerge)
|
||||||
|
{
|
||||||
|
DetaiName = model.DetailName;
|
||||||
|
TabMultipledetails tabMultipledetails = new TabMultipledetails();
|
||||||
|
PageControlsDic.Add(model, tabMultipledetails);
|
||||||
|
//tabMultipledetails.InitTabPages(isMeage);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ModuleGridEx gridEx = new ModuleGridEx();
|
||||||
|
Task<DynamicModel> gridExDynamicModelTask = cachesDic.AddTask(gridEx, "DynamicModel", new Task<DynamicModel>(() =>
|
||||||
|
{
|
||||||
|
DynamicModuleModel dyncModel = new DynamicModuleModel(new string[] { model.DetailName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, dynamicModel.Privilege, model.UnionModule, "0" });
|
||||||
|
dyncModel.DataCaches = cachesDic;
|
||||||
|
return dyncModel;
|
||||||
|
}));
|
||||||
|
Task<DataRow> gridExSystemDllRowTask = cachesDic.AddTask(gridEx, "SystemDllRow", new Task<DataRow>(() =>
|
||||||
|
{
|
||||||
|
return MainImpl.GetSystemdllTab(model.UnionModule);
|
||||||
|
}));
|
||||||
|
Task<ModuleModel> gridExSystemModelTask = cachesDic.AddTask(gridEx, "SysModel", new Task<ModuleModel>(() =>
|
||||||
|
{
|
||||||
|
return new ModuleModel(gridExSystemDllRowTask.Result);
|
||||||
|
}));
|
||||||
|
if (dynamicModel != null)
|
||||||
|
{
|
||||||
|
Task<string> basePrimaryKeyTask = cachesDic.AddTask(gridEx, "ParentPrimaryKey", new Task<string>(() =>
|
||||||
|
{
|
||||||
|
string basePrimaryKey = BaseImpl.GetBasePrimaryKey(dynamicModel.ModuleCode);
|
||||||
|
return basePrimaryKey;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
Task<DataTable> baseGridRightMenusTask = cachesDic.AddTask(gridEx, "UnionBaseGridRightMenus", new Task<DataTable>(() =>
|
||||||
|
{
|
||||||
|
return BaseModuleImpl.GetBaseGridRightMenus(model.UnionModule, ModuleType.MrpClickBtn);
|
||||||
|
}));
|
||||||
|
gridEx.GetDataCaches(cachesDic);
|
||||||
|
if (model.AutoRefresh && !_UnRefresh && isGridmerge)
|
||||||
|
{
|
||||||
|
//gridEx.SearchObj.SearchGrid();
|
||||||
|
}
|
||||||
|
PageControlsDic.Add(model, gridEx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 页签大小改变时
|
/// 页签大小改变时
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1278,7 +1226,7 @@ namespace Lskj.Control
|
|||||||
{
|
{
|
||||||
gridControl.GridView.DoubleClick += new EventHandler(OnGridCompleted);
|
gridControl.GridView.DoubleClick += new EventHandler(OnGridCompleted);
|
||||||
}
|
}
|
||||||
tabPage.Text = model.DetailName + "(" + dataRowCount + ")";
|
tabPage.Text = gridControl.CustomGroupBandEx != null ? model.DetailName + "(" + gridControl.CustomGroupBandEx.DataRowCount() + "条)" : model.DetailName + "(" + dataRowCount + ")";
|
||||||
tabPage.Appearance.Header.ForeColor = dataRowCount > 0 ? Color.Red : Color.FromArgb(0, 0, 0);
|
tabPage.Appearance.Header.ForeColor = dataRowCount > 0 ? Color.Red : Color.FromArgb(0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1644,33 +1592,4 @@ namespace Lskj.Control
|
|||||||
{
|
{
|
||||||
Object moduleObject = tabPage.Controls.Cast<Object>().FirstOrDefault();
|
Object moduleObject = tabPage.Controls.Cast<Object>().FirstOrDefault();
|
||||||
if (moduleObject is ModuleGridEx)
|
if (moduleObject is ModuleGridEx)
|
||||||
{
|
|
||||||
ModuleGridEx moduleGridEx = moduleObject as ModuleGridEx;
|
|
||||||
bool SaveResults = moduleGridEx.SaveWhenSwitching();
|
|
||||||
if (!SaveResults) return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
||||||
MessageUtil.Show(Message, ex.Message);
|
|
||||||
LogHelper.Instance.WriteError(ex);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 控件注销时
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void OnTabControlExDisposed(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
PageControlsDic?.Clear();
|
|
||||||
DetailTabPagesDic?.Clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user