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; using Lskj.Control; using Lskj.Model; using Lskj.Control.Model; using Lskj.Business.Impl; using DevExpress.XtraEditors; using DevExpress.XtraTab; using Lskj.Util; using Lskj.Data; using DevExpress.XtraGrid.Views.Grid; using Lskj.PubAccraditation; using Lskj.Business; namespace Lskj.PubAccraditation2 { public partial class FrmMain : BaseForm { /// /// 审批配置对象 /// public BaseAccraditationModel BaseAccraditModelObj; /// /// 审批公共model /// public BillAuditCommonModel BillComModelObj; /// /// 系统模块配置 /// public DynamicPubAccraditionModel SysModel; /// /// 是否在存储过程获得数据 /// private bool ProcessExists; public FrmMain() { InitializeComponent(); SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.Selectable | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor, true); } #region 方法相关 /// /// 说明:初始化属性 /// 创建人:龚宇超 /// 创建日期:2018-02-05 /// 修改人:龚宇超 /// 修改日期:2018-04-19 /// 修改备注:1. menuCondRow有为空的情况,需要判断. /// 版本:1.1 /// private void InitializeSetting() { ProcessExists = (Lskj.Data.Caches.CacheSYSConfig.Instance().JudgeProcessExists()&&SystemInfo.Instance.isExecload); DataRow menuCondRow = null; //审批模型 if (ProcessExists) { this.BaseAccraditModelObj = new BaseAccraditationModel(Lskj.Data.Caches.CacheSYSConfig.Instance().GetSystemdllTab()); menuCondRow = Lskj.Data.Caches.CacheSYSConfig.Instance().GetMenuConfigTab(); } else { DataRow modelRow = BillAuditImpl.GetPubAuditProperty(this.SysModel.ModuleCode);//获取单个模块信息 if (modelRow == null) { throw new Exception("模块编号[" + this.SysModel.ModuleCode + "],配置错误!\r\n该模块信息未找到!"); } this.BaseAccraditModelObj = new BaseAccraditationModel(modelRow); menuCondRow = BaseImpl.GetMenuConfigTab(this.SysModel.ModuleId); } this.BaseAccraditModelObj.MenuCond = menuCondRow != null && menuCondRow.Table.Columns.Contains("StepCodeCond") ? menuCondRow["StepCodeCond"] + "" : ""; this.BaseAccraditModelObj.ColumnPrefix = ProcessExists ? Lskj.Data.Caches.CacheSYSConfig.Instance().GetColumnPrefix():BaseImpl.GetColumnPrefix(this.BaseAccraditModelObj.BillTable); this.BillComModelObj = new BillAuditCommonModel(); this.auditPanelEx.SectionAccradit = ProcessExists? Lskj.Data.Caches.CacheSYSConfig.Instance().AccessToContentRow(): BaseAuditImpl.GetFlowStepCode(this.SysModel.ModuleCode); this.auditPanelEx.KeyValue = this.BaseAccraditModelObj.GetParmaryKey(ModuleType.BillAudit); this.auditPanelEx.InitializeSetting(this.BillComModelObj, SysModel, BaseAccraditModelObj); //this.auditPanelEx.OnGridViewDoubleCallBack += new EventHandler(OnGridViewDoubleEvent); //this.auditPanelEx.OnGridFinshViewDoubleCallBack += new EventHandler(OnGridFinshViewDoubleEvent); this.auditPanelEx.OnBtnSearchCallBack += new BtnSearchGridFinishEventHandler(OnGridFinshSerachEvent); } #endregion #region 事件相关 /// /// 说明:初始化 /// 创建人:龚宇超 /// 创建日期:2020-01-26 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The instance containing the event data. protected override void OnLoad(EventArgs e) { WaitForm.ShowForm(); this.auditPanelEx.Visible = false; try { this.InitializeSetting(); } catch (Exception ex) { LogHelper.Instance.WriteError(ex, ResourceKeys.BaseModuleAudit); //MessageUtil.Show(ex); string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } finally { Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this); WaitForm.HideForm(); this.auditPanelEx.Visible = true; } } /// /// 搜索数据 /// /// The sender. /// The e. void OnGridFinshSerachEvent(object sender, BtnSearchGridFinishArgs e) { try { this.auditPanelEx.FinishGridObj.SetGridViewDataSource(BillAuditImpl.GetGridFinishData(this.BaseAccraditModelObj, e.CancelFlag, e.Cond)); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:已完成表格双击弹出模块 /// 创建人:龚宇超 /// 创建日期:2017-11-30 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. void OnGridFinshViewDoubleEvent(object sender, EventArgs e) { try { GridView gc = sender as GridView; DataRow dr = gc.GetFocusedDataRow(); if (dr == null) return; //单据审批弹出模块加载 string[] defaultArgs = string.Format(ModuleArgs.DefaultArgs, this.SysModel.FormText, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, this.SysModel.Privilege, this.SysModel.ModuleCode).Split('~'); string[] menuArgs = { this.SysModel.ModuleId + "", "", dr[this.auditPanelEx.TmpPrefix + this.BaseAccraditModelObj.DefaultStepField] + "", dr[this.auditPanelEx.TmpPrefix + this.BaseAccraditModelObj.DefaultParmaryField] + "", "", "1" }; string[] args = defaultArgs.Concat(menuArgs).ToArray(); FrmAccraditation frm = new FrmAccraditation(); frm.SysModel = new DynamicPubAccraditionPopModel(args); frm.Text = this.Text; DialogResult drr = frm.ShowDialog(); this.auditPanelEx.RefreshTabPage(); frm.Dispose(); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 优化加载速度 /// protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } } #endregion } }