using DevExpress.XtraEditors; using Lskj.Business.Impl; using Lskj.Control; using Lskj.Control.Model; using Lskj.Core; using Lskj.Model; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Lskj.ProductBarCode { public partial class FrmMainModule : UserControl { /// /// 表格对象 /// /// The grid view object. public GridControlEx GridControlObj { get { return this.moduleGridEx.GridControlObj; } } /// /// 基础模型 /// public ModuleModel MoudleObj; /// /// 底部基础模型 /// public ModuleModel MoudleBottomObj; /// /// 表格明细集合 /// public List GridDetailModelObjs; /// /// 单据信息 /// private DataRow _drBillInfo; /// /// 单据模型 /// public BillModel BillModelObj; public DynamicBarCodeModel SysModel; public DynamicModuleModel dmoudelModel; /// /// 单表模型 /// public DynamicModuleModel moudelModel; /// /// 控件对象 /// public MyControl ControlObj { get; private set; } /// /// 控件高度 /// /// The height of the control. public int ControlHeight { get; private set; } /// /// 控件数据源 /// private DataTable _controlTable; /// /// 设置红蓝单据 /// public string BillStatus; /// /// 设置是否有操作权限 /// public bool Ispower = true; /// /// 左侧表格查询条件 /// private MyControl _leftGridSearchObj; /// /// 左侧表格 /// private GridControlEx gridLeft; public FrmMainModule() { InitializeComponent(); } /// /// 说明:判断是否终审,加载界面是否可以编辑 /// 创建人:龚宇超 /// 创建日期:2017-10-25 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// protected void SetInterfaceState() { try { DataRow rowItem = SqlHelper.ExecuteDataTable(string.Format("SELECT * FROM {2} WHERE {0}='{1}'", this.BillModelObj.PrimaryKey, this.SysModel.BillDocumentId, this.BillModelObj.MasterTable)).Rows[0]; if (("1".Equals(rowItem[this.BillModelObj.MasterPreFix + "stepover"] + "") || "true".Equals((rowItem[this.BillModelObj.MasterPreFix + "stepover"] + "").ToLower()))) { this.but_CreatBarCode.Enabled = false; this.Ispower = false; } } catch (Exception) { throw; } } /// /// 说明:初始化属性设置 /// 创建人:龚宇超 /// 创建日期:2018-02-27 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void InitializeSetting() { this.GridControlObj.Tag = "IsOldPost"; this.moudelModel = new DynamicModuleModel(new string[] { "0", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", this.SysModel.MoudelId + "", "0" }); this.MoudleObj = new ModuleModel(MainImpl.GetSystemdllTab(this.moudelModel.ModuleCode)); //初始表头 this.ControlObj = new MyControl(); this.ControlObj = new MyControl(this.MoudleObj.MenuSql, null); this.ControlObj.OnDataSourceBindCallBack += OnDataSourceBindCallBack; this.GridDetailModelObjs = GetDetailGrids(); string UnionModule = this.GridDetailModelObjs.Count > 0 ? this.GridDetailModelObjs[0].UnionModule : string.Empty; if (!string.IsNullOrEmpty(UnionModule)) { DynamicModuleModel dmoudelModel = new DynamicModuleModel(new string[] { "0", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", UnionModule + "", "0" }); this.MoudleBottomObj = new ModuleModel(MainImpl.GetSystemdllTab(dmoudelModel.ModuleCode)); DataTable _gridColumns = BaseModuleImpl.GetBaseGridColumns(UnionModule); this.gcBottom.Model = dmoudelModel; this.gcBottom.SetReadOnlyColumns(_gridColumns, GridCustomColumnStruct.BaseMainGridView + this.MoudleObj.FormKey); if (Ispower) { this.gcBottom.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(dmoudelModel.ModuleCode), dmoudelModel, OnGridViewRightCallBack, this.ControlObj, null); } } //this._dtFields = BaseModuleImpl.GetControlLocation(this.MoudleObj.FormKey, this.moudelModel.ModuleCode); } /// /// 创建条码控件 /// private void InitControls() { this._drBillInfo = BaseAuditImpl.GetCurrentFlowRowData(this.BillModelObj.MasterTable, this.BillModelObj.PrimaryKey, this.SysModel.BillDocumentId); BillStatus = _drBillInfo[this.BillModelObj.RtagidKey] + ""; this._controlTable = BaseModuleImpl.GetControlLocation(this.MoudleObj.FormKey, this.moudelModel.ModuleCode); this.ControlObj.InitControl(this._controlTable, this.pl_top_main, BaseModuleImpl.GetAddGroupData(this.MoudleObj.FormKey)); this.ControlObj.SetReadOnlyAllControl(false); this.moduleGridEx.VisibleSearchPanel = false; //每次切换时都要设置 //this.gcLeft.Model = this.SysModel; // this.gcLeft.ParentControl = this.ControlObj; this.moduleGridEx.InitializeControl(this.MoudleObj, moudelModel); //_detailColumns = BillImpl.GetDetailColumns(this.SysModel.ModuleCode); this.moduleGridEx.LeftGridEx = this.gridLeft; this.moduleGridEx.ParentGridEx = this.gridLeft; // 方便右侧添加数据自动带出相同字段值 this.moduleGridEx.AfterDeleteGridCallBack += ModuleGridExAfterDeleteGridCallBack;//点击删除后刷新上下表数据源 DataTable _gridColumns = BaseModuleImpl.GetBaseGridColumns(this.moudelModel.ModuleCode); this.GridControlObj.SetEditColumns(_gridColumns, GridCustomColumnStruct.BaseMainGridView + this.MoudleObj.FormKey); this.GridControlObj.Model = this.moudelModel; if (Ispower) { this.GridControlObj.SetGridRightMenus(BaseModuleImpl.GetBaseGridRightMenus(this.moudelModel.ModuleCode), this.moudelModel, OnGridViewRightCallBack, this.ControlObj, null); } if (!(this.SysModel.isRedFlag.Equals("1"))) { if ("0".Equals(BillStatus)) { this.splitRightControl.PanelVisibility = SplitPanelVisibility.Panel1; } else { this.pl_top_main.Visible = false; this.but_CreatBarCode.Visible = false; } } else { if ("1".Equals(BillStatus)) { this.splitRightControl.PanelVisibility = SplitPanelVisibility.Panel1; } //else //{ // this.pl_top_main.Visible = false; // this.but_CreatBarCode.Visible = false; //} } if (this.SysModel.isVisibelFlag.Equals("1")) { this.pl_top.Visible = false; this.but_CreatBarCode.Visible = false; } this.moduleGridEx.GridControlObj.OnParseGridDataCallBack += new GridControlEx.ParseGridDataEventHandler(OnGridViewParseGridDataCallBack); } /// /// 说明:粘贴表格后更新树结构关联字段 /// 创建人:龚宇超 /// 创建日期: /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The row item. protected void OnGridViewParseGridDataCallBack(DataRow rowItem) { if (rowItem != null && rowItem.Table.Columns.Contains(this.moduleGridEx.ParentKeyField)) { if (this.gridLeft != null) { rowItem[this.moduleGridEx.ParentKeyField] = this.gridLeft.GetViewFocusedDataRow()[this.moduleGridEx.ParentKeyField] + ""; } } else { if (this.gridLeft != null) { DataTable table = moduleGridEx.GridControlObj.GridView.GridControl.DataSourceTable(); moduleGridEx.GridControlObj.GridView.SetRowCellValue(this.moduleGridEx.GridControlObj.GridView.GetFocusedDataSourceRowIndex(), this.moduleGridEx.ParentUnionField, this.gridLeft.GetViewFocusedDataRow()[this.moduleGridEx.ParentKeyField] + ""); } } } /// /// moduleGridEx点击删除后刷新上下表 /// /// /// private void ModuleGridExAfterDeleteGridCallBack(object sender, EventArgs e) { if (this.splitRightControl.PanelVisibility == SplitPanelVisibility.Both) { this.GridControlObj.SetGridViewDataSource(MainImpl.GetAdapterResult(this.GridControlObj.LastSearchSql)); this.gcBottom.SetGridViewDataSource(MainImpl.GetAdapterResult(this.gcBottom.LastSearchSql)); } else { this.GridControlObj.SetGridViewDataSource(MainImpl.GetAdapterResult(this.GridControlObj.LastSearchSql)); } } /// /// 数据绑定完成后触发事件 /// /// /// private void OnDataSourceBindCallBack(object sender, EventArgs e) { DataRow rowArray = this.gridLeft.GetViewFocusedDataRow(); SetCodeHeader(rowArray); } #region 获取明细 /// /// 说明:获取报表明细 /// 创建人:龚宇超 /// 创建日期:2018-02-27 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private List GetDetailGrids() { List details = new List(); DataTable moduleDetailBottomTable = BaseModuleImpl.GetBaseDetailPages(this.moudelModel.ModuleCode); if (moduleDetailBottomTable.Rows.Count == 0) { moduleDetailBottomTable = BaseModuleImpl.GetBaseAddTabDetail(this.moudelModel.ModuleCode); } foreach (DataRow item in moduleDetailBottomTable.Rows) { DataTable dtGridColumns = ReportImpl.GetReportDetailColumns(this.moudelModel.ModuleCode, item["id"] + ""); details.Add(new GridDetailModel(item, dtGridColumns, GridCustomColumnStruct.BaseDetailGridView)); } return details; } #endregion #region 修改表头 /// /// 说明:获取配置条件头属性设置 /// 创建人:王一帆 /// 创建日期:2021-09-07 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// System.String. private void SetCodeHeader(DataRow newRow) { StringBuilder updateBuilder = new StringBuilder(); foreach (ControlModel model in this.ControlObj.ControlModels) { if (!string.IsNullOrEmpty(model.DefaultValue)) { bool isStart = model.DefaultValue.StartsWith("{"); string fieldName = model.DefaultValue.Replace("{", "").Replace("}", ""); if (newRow != null && newRow.Table.Columns.Contains(fieldName)) { this.ControlObj.SetControlValue(model.FieldName, newRow[fieldName] + ""); } else { this.ControlObj.SetControlValue(model.FieldName, isStart ? string.Empty : model.DefaultValue); } } } } #endregion /// /// 说明:右键菜单执行后刷新数据,刷新规则按照上一次查询条件刷新 /// 创建人:王一帆 /// 创建日期:2020-01-30 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. /// The instance containing the event data. protected void OnGridViewRightCallBack(object sender, EventArgs e) { try { if (this.GridControlObj.LastSearchSql != null) { this.GridControlObj.SetGridViewDataSource(MainImpl.GetAdapterResult(this.GridControlObj.LastSearchSql)); this.gcBottom.SetGridViewDataSource(MainImpl.GetAdapterResult(this.gcBottom.LastSearchSql)); if (!this.SysModel.CancelPrompt) MessageUtil.Show("成功!"); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } } }