SVN-Revision: r418
This commit is contained in:
tdx
2025-03-27 07:53:25 +00:00
parent 8303017811
commit 94bb881ae6
+215 -296
View File
@@ -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();
}
}
}