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
}
}