/***********************
* 说明:单据审批弹出模块
* 创建人:龚宇超
* 创建日期:2018-01-02
* 修改人:
* 修改日期:
* 修改备注:
* 版本:1.0.0.0
***********************/
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.Control.Model;
using Lskj.Util;
using Lskj.Data;
using Lskj.Model;
using Lskj.Business.Impl;
using DevExpress.XtraEditors;
using DevExpress.XtraTab;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Grid;
using Lskj.Business;
using DevExpress.XtraBars;
using System.Collections;
using Lskj.Core;
using System.Threading.Tasks;
using DevExpress.Utils;
using DevExpress.Data;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.IO;
namespace Lskj.PubAccraditation
{
///
/// 单据审批弹出模块
///
public partial class FrmAccraditation : BaseForm
{
private readonly AltButtonShortcutManager mAltButtonShortcuts =
new AltButtonShortcutManager();
public FrmAccraditation()
{
InitializeComponent();
InitializeAltButtonShortcuts();
}
private void InitializeAltButtonShortcuts()
{
mAltButtonShortcuts.Register(btnSave, Keys.S);
mAltButtonShortcuts.Register(btnSpare, Keys.P);
mAltButtonShortcuts.Register(btnClose, Keys.Q);
mAltButtonShortcuts.Register(btnBack, Keys.N);
mAltButtonShortcuts.Register(btnAccradit, Keys.Y);
}
protected override bool ProcessCmdKey(
ref System.Windows.Forms.Message msg, Keys keyData)
{
return mAltButtonShortcuts.ProcessKey(keyData) ||
base.ProcessCmdKey(ref msg, keyData);
}
private void ReleaseResourcesForDispose()
{
if (mResourcesReleased)
{
return;
}
mResourcesReleased = true;
PrintUtil.OnAfterPrint -= OnReportPrintAfter;
MyControl control = ControlObj;
ControlObj = null;
if (control != null)
{
control.OnDataSourceBindCallBack -=
OnControlObjOnDataSourceBindCallBack;
control.OnDataFileRefrshCallBack -= OnDataFileRefrshFile;
control.Dispose();
}
try
{
if (gridBillInfo != null)
{
TreeGridControlEx treeGrid =
gridBillInfo as TreeGridControlEx;
if (treeGrid != null)
{
treeGrid.OnDataSourceBindCallBack -=
OnGridBillInfoOnDataSourceBindCallBack;
}
else
{
gridBillInfo.OnDataSourceBindCallBack -=
OnGridBillInfoOnDataSourceBindCallBack;
}
gridBillInfo.ParentControl = null;
}
if (SysModel != null && SysModel.DataCaches != null)
{
SysModel.DataCaches.RemoveCache(this);
}
}
catch
{
// A partially disposed child must not stop form cleanup.
}
}
#region 公有变量
///
/// 单据结构明细
///
public AccraditationModel AuditModelObj;
///
/// 单据模型
///
public BillAuditModel BillModelObj;
///
/// 单据审批表模型
///
public BillAuditCommonModel BillAuditComObj;
///
/// 单据入口参数模型
///
public DynamicPubAccraditionPopModel SysModel;
///
/// 主表控件
///
public MyControl ControlObj;
private bool mResourcesReleased;
///
/// 是否是Brp模块加载审核明细
///
public bool isBrpAccrad = false;
#endregion
///
/// 调用动态链接库默认传递参数
///
public DynamicModel syModel { get; private set; }
///
/// 关闭当前审核界面,刷新打开界面
///
/// The sender.
public event RefreshThePage refreshThePage;
public delegate void RefreshThePage(string promptInformation, string id);
///
/// 主表动态生成的日期列
///
public List DateColumnList = new List();
///
/// 主表动态生成的合计列
///
public GridColumn SumGridColumn = new GridColumn();
#region 私有变量
///
/// 数量名称
///
public string NumberMc;
///
/// 主键字段
///
private string mRecordPrimaryField;
private string guidField = "xxxxx_guid";
///
/// id(推送记录)
///
private int _beforeId;
///
/// 是否初始化完成
///
private bool _isInitFinish;
///
/// 意见
///
private string _auditAdvice;
///
/// 菜单模块名(推送记录)
///
private string _beforeMenuName;
///
/// 用户(推送记录)
///
private string _beforeUsers;
///
/// 单据类别值
///
private string _mainBillTypeValue;
///
/// 单据信息
///
private DataRow _drBillInfoMsg;
///
/// 明细数据
///
private DataTable _dtSourceData;
///
/// 单据类别
///
private DataTable _dtBillType;
///
/// 单据明细列表
///
private DataTable _dtBillAttachList;
///
/// 单据billInfo
///
private DataTable _dtBillInfoFiled;
///
/// 分单数据
///
private DataTable _dtSpareSourceData;
///
/// 审批流转模型
///
private FlowTypeStepModel _flowTypeStepModel;
///
/// 单据水印
///
private WaterMark _waterMark;
///
/// 获取隐藏的x轴距
///
private ArrayList LocationX = new ArrayList();
///
/// 是否执行了加载储存过程
///
public bool ProcessExists = false;
//
/// 模块对应的权限表信息
///
public DataTable AuthorityTable;
///
/// 打印完成后添加数据用到的参数: 表名,列前缀,主键字段,主键值,模块编号,主打印Sql
///
private List _printSaveParams;
///
/// 主打印Sql
///
private string _mainPrintSql;
///
/// 打印主sql中关联打印次数返回条件
///
private string _printModeCond;
///
/// 是否直接打印
///
private bool _isExcPrint;
#endregion
///
/// 说明:窗体加载时
/// 创建人:龚宇超
/// 创建日期:2018-01-02
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The instance containing the event data.
protected override void OnLoad(EventArgs e)
{
WaitForm.ShowForm();
try
{
string results = @"IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME ='p_Get_NewDesignPlatform_DocumentsReview' AND TYPE = 'P') begin select 1 end else Begin select 2 end";
if (SqlHelper.ConnectionType == ConnectionType.DmServer)
{
results = @"SELECT CASE WHEN EXISTS (
SELECT 1 FROM ALL_OBJECTS WHERE OBJECT_NAME = 'p_Get_NewDesignPlatform_DocumentsReview' AND OBJECT_TYPE = 'PROCEDURE')
THEN 1
ELSE 2
END AS result
FROM DUAL;";
}
results = BaseImpl.GetResult(results) + "";
if (results.Equals("1") && SystemInfo.Instance.isExecload)
{
System.Data.DataSet dsConfig = BillImpl.GetNewDesignPlatformDocumentsReview(SysModel, Lskj.Data.ResourceKeys.SettingTableName);
Lskj.Data.Caches.CacheSYSConfig.Instance().SetData(dsConfig);
ProcessExists = true;
}
this._isInitFinish = false;
this.splitMain.Visible = false;
this.InitializeSetting();
this.InitializeControl();
this.InitializeSplitterPosition();
if (SystemInfo.Instance.ReviewCommentsRequired)
{
label_auditPerson.ForeColor = string.IsNullOrEmpty(SystemInfo.Instance.ControlRequiredColor) ? Color.Blue : ColorTranslator.FromHtml(SystemInfo.Instance.ControlRequiredColor);
this.txtRemark.Text = "";
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteError(ex, ResourceKeys.BaseModule);
LogUtil.WriteError("单据审批初始化出错!", ex);
//MessageUtil.Show(ex);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
finally
{
Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this);
//2023-10-13 丁哥规定在明细的附加信息中配置双击参数(DBClickEvent),上方的AuditLoadDetailFlag失效
if (this.BillModelObj.DetailTreeTable)
{
(this.gridBillInfo as TreeGridControlEx).TreeListObj.FocusedNodeChanged += TreeListObj_FocusedNodeChanged;
(this.gridBillInfo as TreeGridControlEx).TreeListObj.DoubleClick += new EventHandler(gridView_DoubleClick);
}
else
{
this.gridBillInfo.GridView.FocusedRowObjectChanged += GridView_FocusedRowObjectChanged;//SelectionChanged事件会执行2次,故改成焦点行改变事件
this.gridBillInfo.GridView.DoubleClick += new EventHandler(gridView_DoubleClick);
}
WaitForm.HideForm();
this._isInitFinish = true;
this.splitMain.Visible = true;
InitButLocation();
}
}
#region 获取数据源缓存
///
/// 获取数据源缓存
///
///
public void GetDataCaches(Dictionary