SVN r1172

SVN-Revision: r1172
This commit is contained in:
cyf
2026-05-11 02:23:54 +00:00
parent 42b1a339d6
commit 4f461812a8
6 changed files with 124 additions and 163 deletions
@@ -9,6 +9,7 @@ using Lskj.Util;
using Lskj.Model; using Lskj.Model;
using Lskj.Business.Impl; using Lskj.Business.Impl;
using Lskj.Business; using Lskj.Business;
using System.Collections;
namespace Lskj.PubModuleDetail3 namespace Lskj.PubModuleDetail3
{ {
@@ -29,25 +30,4 @@ namespace Lskj.PubModuleDetail3
FrmMain main = new FrmMain(); FrmMain main = new FrmMain();
this.SubForm = main; this.SubForm = main;
DynamicModuleDetailModel moduleModel = new DynamicModuleDetailModel(obj); DynamicModuleDetailModel moduleM
int formType = ReportImpl.GetBaseType(moduleModel.ModuleCode);
GridEnum gridEnum = GridEnum.GridView;
if (formType == 1) gridEnum = GridEnum.BandedGridView;
if (formType == 2) gridEnum = GridEnum.GridView; // 基础档案暂时注释GridEnum.TreeListGridView此类型,TrcReport和手机端显示卡片冲突.
main.Model = moduleModel;
main.Model.GridEnumObj = gridEnum;
}
catch (Exception ex)
{
LogUtil.WriteError("Lskj.PubModuleDetail2.dll--参数错误-->" + obj.ToString(), ex);
}
}
/// <summary>
/// 窗口
/// </summary>
public Form SubForm { get; set; }
}
}
+3 -15
View File
@@ -19,6 +19,8 @@ using DevExpress.Utils;
using DevExpress.XtraEditors; using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Base; using DevExpress.XtraGrid.Views.Base;
using System.Collections;
using System.Threading.Tasks;
namespace Lskj.PubModuleDetail3 namespace Lskj.PubModuleDetail3
{ {
@@ -60,18 +62,4 @@ namespace Lskj.PubModuleDetail3
} }
} }
catch (Exception ex) catch (E
{
LogHelper.Instance.WriteError(ex);
//MessageUtil.Show(ex);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message,ex.Message);
}
finally
{
Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this);
WaitForm.HideForm();
}
}
}
}
+17 -33
View File
@@ -30,6 +30,7 @@
{ {
this.splitContainerControl1 = new DevExpress.XtraEditors.SplitContainerControl(); this.splitContainerControl1 = new DevExpress.XtraEditors.SplitContainerControl();
this.splitLeftControl = new DevExpress.XtraEditors.SplitContainerControl(); this.splitLeftControl = new DevExpress.XtraEditors.SplitContainerControl();
this.gridleftTop = new Lskj.Control.GridControlEx();
this.panelControl1 = new DevExpress.XtraEditors.PanelControl(); this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
this.simpleButton1 = new DevExpress.XtraEditors.SimpleButton(); this.simpleButton1 = new DevExpress.XtraEditors.SimpleButton();
this.labelControl1 = new DevExpress.XtraEditors.LabelControl(); this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
@@ -44,7 +45,6 @@
this.xtraTabPage2 = new DevExpress.XtraTab.XtraTabPage(); this.xtraTabPage2 = new DevExpress.XtraTab.XtraTabPage();
this.tcButtom = new Lskj.PubModuleDetail3.TabIntoControl(); this.tcButtom = new Lskj.PubModuleDetail3.TabIntoControl();
this.pl_bottom = new DevExpress.XtraEditors.PanelControl(); this.pl_bottom = new DevExpress.XtraEditors.PanelControl();
this.gridleftTop = new Lskj.Control.GridControlEx();
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit();
this.splitContainerControl1.SuspendLayout(); this.splitContainerControl1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitLeftControl)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitLeftControl)).BeginInit();
@@ -95,6 +95,17 @@
this.splitLeftControl.Text = "splitContainerControl3"; this.splitLeftControl.Text = "splitContainerControl3";
this.splitLeftControl.SplitterPositionChanged += new System.EventHandler(this.splitContainerTop_SplitterPositionChanged); this.splitLeftControl.SplitterPositionChanged += new System.EventHandler(this.splitContainerTop_SplitterPositionChanged);
// //
// gridleftTop
//
this.gridleftTop.AdapterObj = null;
this.gridleftTop.Dock = System.Windows.Forms.DockStyle.Fill;
this.gridleftTop.Location = new System.Drawing.Point(0, 30);
this.gridleftTop.Margin = new System.Windows.Forms.Padding(5);
this.gridleftTop.Name = "gridleftTop";
this.gridleftTop.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum;
this.gridleftTop.Size = new System.Drawing.Size(438, 374);
this.gridleftTop.TabIndex = 11;
//
// panelControl1 // panelControl1
// //
this.panelControl1.Controls.Add(this.simpleButton1); this.panelControl1.Controls.Add(this.simpleButton1);
@@ -169,8 +180,9 @@
this.mg_control.Location = new System.Drawing.Point(0, 0); this.mg_control.Location = new System.Drawing.Point(0, 0);
this.mg_control.Name = "mg_control"; this.mg_control.Name = "mg_control";
this.mg_control.OperShortMode = true; this.mg_control.OperShortMode = true;
this.mg_control.Size = new System.Drawing.Size(800, 375); this.mg_control.Size = new System.Drawing.Size(533, 250);
this.mg_control.TabIndex = 1; this.mg_control.TabIndex = 1;
this.mg_control.VisibleMrpSearchPanel = false;
this.mg_control.VisibleOperPanel = true; this.mg_control.VisibleOperPanel = true;
this.mg_control.VisibleSearchPanel = true; this.mg_control.VisibleSearchPanel = true;
// //
@@ -225,7 +237,8 @@
this.tcButtom.Location = new System.Drawing.Point(0, 0); this.tcButtom.Location = new System.Drawing.Point(0, 0);
this.tcButtom.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.tcButtom.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
this.tcButtom.Name = "tcButtom"; this.tcButtom.Name = "tcButtom";
this.tcButtom.Size = new System.Drawing.Size(801, 205); this.tcButtom.Size = new System.Drawing.Size(534, 137);
this.tcButtom.splitContainer = null;
this.tcButtom.TabIndex = 4; this.tcButtom.TabIndex = 4;
// //
// pl_bottom // pl_bottom
@@ -239,17 +252,6 @@
this.pl_bottom.TabIndex = 2; this.pl_bottom.TabIndex = 2;
this.pl_bottom.Visible = false; this.pl_bottom.Visible = false;
// //
// gridleftTop
//
this.gridleftTop.AdapterObj = null;
this.gridleftTop.Dock = System.Windows.Forms.DockStyle.Fill;
this.gridleftTop.Location = new System.Drawing.Point(0, 30);
this.gridleftTop.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
this.gridleftTop.Name = "gridleftTop";
this.gridleftTop.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum;
this.gridleftTop.Size = new System.Drawing.Size(438, 374);
this.gridleftTop.TabIndex = 11;
//
// ProductionMain // ProductionMain
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -279,22 +281,4 @@
#endregion #endregion
private DevExpress.XtraEditors.SplitContainerControl splitContainerControl1; private DevExpress.XtraEditors.SplitContainerControl splitCon
private DevExpress.XtraEditors.SplitContainerControl splitBottomControl;
private Control.GridControlEx gridLeftButtom;
private DevExpress.XtraEditors.PanelControl pl_bottom;
private DevExpress.XtraEditors.SplitContainerControl splitLeftControl;
private DevExpress.XtraEditors.PanelControl panelControl1;
private DevExpress.XtraEditors.SimpleButton simpleButton1;
private DevExpress.XtraEditors.LabelControl labelControl1;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.TextBox textBox1;
private DevExpress.XtraTab.XtraTabControl Tab_additional;
private DevExpress.XtraTab.XtraTabPage xtraTabPage1;
private Control.ModuleGridEx mg_control;
private DevExpress.XtraTab.XtraTabControl Tab_Bottom;
private DevExpress.XtraTab.XtraTabPage xtraTabPage2;
private TabIntoControl tcButtom;
private Control.GridControlEx gridleftTop;
}
}
@@ -19,6 +19,8 @@ using DevExpress.XtraEditors;
using Lskj.Core; using Lskj.Core;
using DevExpress.XtraGrid.Views.Base; using DevExpress.XtraGrid.Views.Base;
using Lskj.Business; using Lskj.Business;
using System.Collections;
using System.Threading.Tasks;
namespace Lskj.PubModuleDetail3 namespace Lskj.PubModuleDetail3
{ {
@@ -50,7 +52,7 @@ namespace Lskj.PubModuleDetail3
/// 系统模块实体对象 /// 系统模块实体对象
/// </summary> /// </summary>
/// <value>The system model.</value> /// <value>The system model.</value>
public ModuleModel SysModel { get; private set; } public ModuleModel SysModel;
/// <summary> /// <summary>
///左上方查询条件控件 ///左上方查询条件控件
/// </summary> /// </summary>
@@ -116,13 +118,23 @@ namespace Lskj.PubModuleDetail3
{ {
this._isInitFinish = false; this._isInitFinish = false;
this.Model = Model; this.Model = Model;
DataRow modelRow = MainImpl.GetSystemdllTab(this.Model.ModuleCode); Dictionary<object, Hashtable> dataCaches = Model != null ? Model.DataCaches : null;
if (!dataCaches.GetValue(this, "MainInfo", out DataRow modelRow))
{
modelRow = MainImpl.GetSystemdllTab(this.Model.ModuleCode);
}
if (modelRow == null) if (modelRow == null)
{ {
MessageUtil.Show("模块编号[" + this.Model.ModuleCode + "],配置错误!\r\n该模块信息未找到!"); MessageUtil.Show("模块编号[" + this.Model.ModuleCode + "],配置错误!\r\n该模块信息未找到!");
return; return;
} }
this.SysModel = new ModuleModel(modelRow);
if (!dataCaches.GetValue(this, "ProductionMainModel", out this.SysModel))
{
this.SysModel = new ModuleModel(modelRow);
}
if (this.SysModel.ModuleDetailClickMode) if (this.SysModel.ModuleDetailClickMode)
{ {
this.gridleftTop.GridView.RowClick += GridViewLeft_DoubleClick; this.gridleftTop.GridView.RowClick += GridViewLeft_DoubleClick;
@@ -147,14 +159,26 @@ namespace Lskj.PubModuleDetail3
this.gridleftTop.GridView.BestFitColumns(); this.gridleftTop.GridView.BestFitColumns();
this.gridLeftButtom.GridView.BestFitColumns(); this.gridLeftButtom.GridView.BestFitColumns();
this.GridDetailModelObjs = GetDetails(Model.ModuleCode); if (!dataCaches.GetValue(this, "Details", out this.GridDetailModelObjs))
{
this.GridDetailModelObjs = GetDetails(Model.ModuleCode);
}
if (!dataCaches.GetValue(this, "GetMenuConfigTab", out DataRow menuCondRow))
{
menuCondRow = BaseImpl.GetMenuConfigTab(this.Model.ModuleId);
}
if(this.SysModel.AssociateLeft) this.ModuleGridObj.SpecialLeftTable = this.gridleftTop;
DataRow menuCondRow = BaseImpl.GetMenuConfigTab(this.Model.ModuleId);
if (menuCondRow["DllFileName"].Equals("Lskj.PubModuleDetailSearch3.dll")) Model.IsDetailSearch = true; if (menuCondRow["DllFileName"].Equals("Lskj.PubModuleDetailSearch3.dll")) Model.IsDetailSearch = true;
this.mg_control.InitializeControl(SysModel, Model); this.mg_control.InitializeControl(SysModel, Model);
this.mg_control.SearchObj.SearchGrid(); this.mg_control.SearchObj.SearchGrid();
//初始化左下角数据 //初始化左下角数据
this.InitializeLeft(); this.InitializeLeft();
if (this.SearchLeftObj != null) if (this.SearchLeftObj != null)
{ {
this.SearchLeftObj.OnDataSourceBindCallBack += new EventHandler(OnControlObjOnDataSourceBindCallBack); this.SearchLeftObj.OnDataSourceBindCallBack += new EventHandler(OnControlObjOnDataSourceBindCallBack);
@@ -222,6 +246,55 @@ namespace Lskj.PubModuleDetail3
WaitForm.HideForm(); WaitForm.HideForm();
} }
/// <summary>
/// 获取数据源缓存
/// </summary>
/// <param name="cachesDic"></param>
public void GetDataCaches(Dictionary<object, Hashtable> cachesDic)
{
Task<DynamicModel> dynamicModelTask = cachesDic.GetTask<DynamicModel>(this, "DynamicModel");
DynamicModuleDetailModel dynamicModel = (DynamicModuleDetailModel)dynamicModelTask.Result;
Task<DataRow> MainInfoTask = cachesDic.AddTask(this, "MainInfo", new Task<DataRow>(() =>
{
return MainImpl.GetSystemdllTab(dynamicModel.ModuleCode);//获取单个模块信息
}));
Task<ModuleModel> ProductionMainModelTask = cachesDic.AddTask(this, "ProductionMainModel", new Task<ModuleModel>(() =>
{
return new ModuleModel(MainInfoTask.Result); ;
}));
Task<List<GridDetailModel>> detailTask = cachesDic.AddTask(this, "Details", new Task<List<GridDetailModel>>(() =>
{
DataTable detailPages = BaseModuleImpl.GetBaseDetailPages(dynamicModel.ModuleCode);//根据传入的模块编号获得基础档案底部标签的数据
List<GridDetailModel> details = new List<GridDetailModel>();//表格明细对象的集合
foreach (DataRow item in detailPages.Rows)
{
GridDetailModel gridDetailModel = new GridDetailModel(item, null, GridCustomColumnStruct.BaseDetailGridView);
details.Add(gridDetailModel);
Task<DataTable> addGridColumnsTask = cachesDic.AddTask(gridDetailModel, "GridColumns", new Task<DataTable>(() =>
{
DataTable gridColumns = ReportImpl.GetReportDetailColumns(dynamicModel.ModuleCode, item["id"] + "");//获取报表明细列
gridDetailModel.GridColumns = gridColumns;
return gridColumns;
}));
}
return details;
}));
Task<DataRow> GetMenuConfigTabTask = cachesDic.AddTask(this, "GetMenuConfigTab", new Task<DataRow>(() =>
{
return BaseImpl.GetMenuConfigTab(dynamicModel.ModuleId);
}));
//右上方主表
cachesDic.AddTask(mg_control, "DynamicModel", dynamicModelTask);
cachesDic.AddTask(mg_control, "SysModel", ProductionMainModelTask);
mg_control.GetDataCaches(cachesDic);
}
#region #region
/// <summary> /// <summary>
@@ -1041,6 +1114,9 @@ namespace Lskj.PubModuleDetail3
XtraTabPage page = new XtraTabPage(); XtraTabPage page = new XtraTabPage();
page.Text = item["AttachName"] + ""; page.Text = item["AttachName"] + "";
ModuleGridEx modegridEx = new ModuleGridEx(); ModuleGridEx modegridEx = new ModuleGridEx();
if (addModel.AssociateLeft) modegridEx.SpecialLeftTable = this.gridleftTop;
modegridEx.Name = "modegridEx"; modegridEx.Name = "modegridEx";
modegridEx.Dock = DockStyle.Fill; modegridEx.Dock = DockStyle.Fill;
DynamicModel dyncModel = new DynamicModuleModel(new string[] { "0", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", item["unionModule"] + "", "0" }); DynamicModel dyncModel = new DynamicModuleModel(new string[] { "0", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", item["unionModule"] + "", "0" });
@@ -1446,27 +1522,4 @@ namespace Lskj.PubModuleDetail3
string parentValue = this.SearchLeftObj.GetControlValue(model.UnionValue); string parentValue = this.SearchLeftObj.GetControlValue(model.UnionValue);
if (!string.IsNullOrEmpty(model.UnionValue) && !string.IsNullOrEmpty(parentValue)) if (!string.IsNullOrEmpty(model.UnionValue) && !string.IsNullOrEmpty(parentValue))
this.ModuleGridObj.SearchObj.WhereCond = string.Format(" and {0}='{1}'", model.UnionValue, parentValue); this.ModuleGridObj.SearchObj.WhereCond = string.Format(" and {0}='{1}'", model.UnionValue, parentValue);
if (dataRow != null)
{
this._keyValue = dataRow[this._primaryLeftKey] + "";
//左侧上下结构刷新
gridleftTop.LastSearchSql = this.SearchLeftObj.SetSearchSqlValue(this.MoudleLeftObj.MenuSql);
gridleftTop.SetGridViewDataSource(MainImpl.GetDataTableResult(gridleftTop.LastSearchSql));
OnGridViewLeftFocusedRowChanged(this.gridleftTop.GridView, null);//手动行改变事件
//gridleftBottom.LastSearchSql = this.SearchLeftObj.SetSearchSqlValue(this.MoudleLeftObj.MenuSql);
//gridleftBottom.SetGridViewDataSource(MainImpl.GetDataTableResult(gridleftBottom.LastSearchSql));
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
#endregion
}
}
@@ -432,34 +432,4 @@ namespace Lskj.PubModuleDetail3
private void InitSpliterPosition() private void InitSpliterPosition()
{ {
string spliterPosition = IniHelper.Read(string.Format("PubModuleDetail3RightLowerRight_SplitterPositionMain_{0}", ModuleNumber)); string spliterPosition = IniHelper.Read(string.Format("PubModuleDetail3RightLowerRight_SplitterPositionMain_{0}", ModuleNumber));
if (!string.IsNullOrEmpty(spliterPosition)) this.splitMainControl.SplitterPosition = Convert.ToInt32(spliterPosition); if (!string.IsNullOrEmpty(spliterPosition)) this.splitMainControl.SplitterPosition = Conv
}
/// <summary>
/// <para>说明:分割条位置改变事件</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-06-19 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
private void splitContainer_SplitterPositionChanged(object sender, EventArgs e)
{
try
{
if (_isInitFinish)
{
IniHelper.Write(string.Format("PubModuleDetail3RightLowerRight_SplitterPositionMain_{0}", ModuleNumber), this.splitMainControl.SplitterPosition + "");
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
}
}
@@ -163,6 +163,9 @@ namespace Lskj.PubModuleDetail3
gridEx.SetReadOnlyColumns(model.GridColumns, model.GridCustomColumnKey); gridEx.SetReadOnlyColumns(model.GridColumns, model.GridCustomColumnKey);
gridEx.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, OnGridViewRightCallBack); gridEx.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(model.FormKey), this.Model, OnGridViewRightCallBack);
gridEx.SetGridRowColors(BaseModuleImpl.GetBaseGridRowColors(model.FormKey)); gridEx.SetGridRowColors(BaseModuleImpl.GetBaseGridRowColors(model.FormKey));
if (model.IsCheck == 1) GridDragGrid.GridAddCheckBox(gridEx.GridView);
if (IsDragDetail && this.ParentGridEx != null && model.IsDrag) if (IsDragDetail && this.ParentGridEx != null && model.IsDrag)
{ {
// 拖拽模式,绑定拖拽对象 // 拖拽模式,绑定拖拽对象
@@ -207,6 +210,19 @@ namespace Lskj.PubModuleDetail3
gridEx.ParentKeyField = string.IsNullOrEmpty(model.UnionParentField) ? model.SystemModel.ParmaryKey : model.UnionParentField; gridEx.ParentKeyField = string.IsNullOrEmpty(model.UnionParentField) ? model.SystemModel.ParmaryKey : model.UnionParentField;
gridEx.DetailKeyField = model.UnionValue; gridEx.DetailKeyField = model.UnionValue;
gridEx.OnSaveGridCallBack += new EventHandler(OnGridViewAllCallBack); gridEx.OnSaveGridCallBack += new EventHandler(OnGridViewAllCallBack);
if (model.IsCheck == 1)
{
GridDragGrid.GridAddCheckBox(gridEx.GridControlObj.GridView);
//if (model.RecordDetailsCheckbox &&
// ParentGridEx?.GridView.OptionsSelection.MultiSelect == true)
//{
// gridEx.TagName = model.DetailName;
// gridEx.GridControlObj.GridView.SelectionChanged += GridView_SelectionChanged;
//}
}
if (IsDragDetail && this.ParentGridEx != null && model.IsDrag) if (IsDragDetail && this.ParentGridEx != null && model.IsDrag)
{ {
// 拖拽模式,绑定拖拽对象 // 拖拽模式,绑定拖拽对象
@@ -228,6 +244,7 @@ namespace Lskj.PubModuleDetail3
splitLeftControl.SplitterPositionChanged += SplitLeftControl_SplitterMoved; splitLeftControl.SplitterPositionChanged += SplitLeftControl_SplitterMoved;
TabIntoAddControl tabAdd = new TabIntoAddControl(); TabIntoAddControl tabAdd = new TabIntoAddControl();
tabAdd.Model = dyncModel;
//tabAdd.splitContainerControl.Horizontal = false;//上下结构 //tabAdd.splitContainerControl.Horizontal = false;//上下结构
tabAdd.InitTabPages(_gridIntoDetail); tabAdd.InitTabPages(_gridIntoDetail);
tabAdd.Dock = DockStyle.Fill; tabAdd.Dock = DockStyle.Fill;
@@ -881,35 +898,4 @@ namespace Lskj.PubModuleDetail3
} }
/// <summary> ///
/// <para>说明:分割条位置改变事件</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-06-19 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
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);
}
}
}
}