2979 lines
148 KiB
C#
2979 lines
148 KiB
C#
/***********************
|
|
* 说明:基础档案审批弹出窗口模块
|
|
* 创建人:龚宇超
|
|
* 创建日期:2017-12-14
|
|
* 修改人:
|
|
* 修改日期:
|
|
* 修改备注:
|
|
* 版本: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.XtraTab;
|
|
using DevExpress.XtraBars;
|
|
using DevExpress.XtraEditors;
|
|
using DevExpress.XtraGrid.Views.Grid;
|
|
using Lskj.Business;
|
|
using Lskj.Control.MultiGridLookUp;
|
|
using System.Collections;
|
|
using DevExpress.XtraGrid.Columns;
|
|
using System.Text.RegularExpressions;
|
|
using Lskj.Core;
|
|
using System.Diagnostics;
|
|
using System.Threading.Tasks;
|
|
using System.IO;
|
|
|
|
namespace Lskj.BaseAccraditation
|
|
{
|
|
public partial class FrmBaseAccraditation : BaseForm
|
|
{
|
|
#region 公用变量
|
|
/// <summary>
|
|
/// 审批模型
|
|
/// </summary>
|
|
public Dictionary<string, XtraTabPage> isModifyPage = new Dictionary<string, XtraTabPage>();
|
|
/// <summary>
|
|
/// 审批模型
|
|
/// </summary>
|
|
public AccraditationModel AccditModelObj;
|
|
/// <summary>
|
|
/// 基础审批用表模型
|
|
/// </summary>
|
|
public BaseAuditCommonModel BaseAuditModelObj = new BaseAuditCommonModel();
|
|
/// <summary>
|
|
/// 基础档案模型
|
|
/// </summary>
|
|
public BaseAuditModel ModuleModelObj;
|
|
/// <summary>
|
|
/// 系统模块配置
|
|
/// </summary>
|
|
public DynamicBaseAccraditionPopModel SysModel;
|
|
/// <summary>
|
|
/// 主表控件
|
|
/// </summary>
|
|
public MyControl ControlObj;
|
|
private bool mResourcesReleased;
|
|
|
|
#endregion
|
|
|
|
#region 私有变量
|
|
/// <summary>
|
|
/// 表格列头颜色
|
|
/// </summary>
|
|
protected string HeaderColor = "#A0A0A0";
|
|
/// <summary>
|
|
/// 推送模块
|
|
/// </summary>
|
|
private int _beforeId;
|
|
/// <summary>
|
|
/// 主面板高度记录
|
|
/// </summary>
|
|
private int _mainPanelHeight;
|
|
/// <summary>
|
|
/// 初始化完成
|
|
/// </summary>
|
|
private bool _isInitFinish;
|
|
/// <summary>
|
|
/// 返退意见
|
|
/// </summary>
|
|
private string _auditAdvic;
|
|
/// <summary>
|
|
/// 推送菜单名
|
|
/// </summary>
|
|
private string _beforeMenuName;
|
|
/// <summary>
|
|
/// 推送操作人员
|
|
/// </summary>
|
|
private string _beforeUsers;
|
|
/// <summary>
|
|
/// 当前窗体控件数据来源(配置的)
|
|
/// </summary>
|
|
private DataRow _baseRowData;
|
|
/// <summary>
|
|
/// 当前流转数据
|
|
/// </summary>
|
|
private DataRow _flowRowData;
|
|
/// <summary>
|
|
/// 基本数据
|
|
/// </summary>
|
|
private DataTable _baseTabList;
|
|
/// <summary>
|
|
/// 操作字段
|
|
/// </summary>
|
|
private DataTable _dtFileds;
|
|
/// <summary>
|
|
/// 分组控件字段
|
|
/// </summary>
|
|
private DataTable _dtAddGroup;
|
|
/// <summary>
|
|
/// 流转步骤模型
|
|
/// </summary>
|
|
private FlowTypeStepModel _flowTypeStepModel;
|
|
/// <summary>
|
|
/// 单据水印
|
|
/// </summary>
|
|
private WaterMark _waterMark;
|
|
private DataRow mRowItem;
|
|
/// <summary>
|
|
/// 获取所有控件的x轴
|
|
/// </summary>
|
|
private ArrayList LocationX = new ArrayList();
|
|
/// <summary>
|
|
/// 是否执行了加载储存过程
|
|
/// </summary>
|
|
public bool ProcessExists = false;
|
|
/// <summary>
|
|
/// 是否是已完成单据
|
|
/// </summary>
|
|
public bool IsFinishPage = false;
|
|
/// <summary>
|
|
/// 关闭当前审核界面,刷新打开界面
|
|
/// </summary>
|
|
/// <param name="sender">The sender.</param>
|
|
public event RefreshThePage refreshThePage;
|
|
public delegate void RefreshThePage(string promptInformation, string id);
|
|
/// <summary>
|
|
/// 是否有明细必填
|
|
/// </summary>
|
|
public bool DetailsRequired = false;
|
|
/// <summary>
|
|
/// 打印完成后添加数据用到的参数: 表名,列前缀,主键字段,主键值,模块编号,主打印Sql
|
|
/// </summary>
|
|
private List<string> _printSaveParams;
|
|
/// <summary>
|
|
/// 主打印Sql
|
|
/// </summary>
|
|
private string _mainPrintSql;
|
|
/// <summary>
|
|
/// 打印主sql中关联打印次数返回条件
|
|
/// </summary>
|
|
private string _printModeCond;
|
|
/// <summary>
|
|
/// 是否直接打印
|
|
/// </summary>
|
|
private bool _isExcPrint;
|
|
|
|
#endregion
|
|
|
|
#region 初始化分割条位置
|
|
/// <summary>
|
|
/// <para>说明:初始化分割条位置</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitSpliterPosition()
|
|
{
|
|
string spliterPosition = IniHelper.Read(string.Format("base_SplitterPositionLeft_{0}", this.SysModel.ModuleCode));
|
|
string splitterLeftPosition = IniHelper.Read(string.Format("base_spliterPositionMain_{0}", this.SysModel.ModuleCode));
|
|
if (!string.IsNullOrEmpty(spliterPosition)) this.splitContainer.SplitterPosition = Convert.ToInt32(spliterPosition);
|
|
if (!string.IsNullOrEmpty(splitterLeftPosition)) this.splitMain.SplitterPosition = Convert.ToInt32(splitterLeftPosition);
|
|
}
|
|
#endregion
|
|
|
|
#region 初始化控件
|
|
public FrmBaseAccraditation()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void ReleaseResourcesForDispose()
|
|
{
|
|
if (mResourcesReleased)
|
|
{
|
|
return;
|
|
}
|
|
|
|
mResourcesReleased = true;
|
|
PrintUtil.OnAfterPrint -= OnReportPrintAfter;
|
|
|
|
MyControl control = ControlObj;
|
|
ControlObj = null;
|
|
if (control != null)
|
|
{
|
|
control.OnDataSourceBindCallBack -=
|
|
OnControlObjOnDataSourceBindCallBack;
|
|
control.Dispose();
|
|
}
|
|
|
|
try
|
|
{
|
|
if (tab_basicInfo != null)
|
|
{
|
|
tab_basicInfo.ParentControlEx = null;
|
|
}
|
|
if (SysModel != null && SysModel.DataCaches != null)
|
|
{
|
|
SysModel.DataCaches.RemoveCache(this);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
// A partially disposed child must not stop form cleanup.
|
|
}
|
|
}
|
|
|
|
public override void SetFormSize()
|
|
{
|
|
this.WindowState = FormWindowState.Normal;
|
|
DataRow drSize = null;
|
|
|
|
this.mRowItem = MainImpl.GetSystemdllTab(this.SysModel.ModuleCode);
|
|
if (mRowItem == null)
|
|
{
|
|
throw new Exception("模块编号[" + this.SysModel.ModuleCode + "],配置错误!\r\n该模块信息未找到!");
|
|
}
|
|
this.ModuleModelObj = new BaseAuditModel(this.mRowItem);
|
|
|
|
drSize = BaseModuleImpl.GetControlParentSize(this.ModuleModelObj.FormKey);
|
|
if (drSize != null)
|
|
{
|
|
int height = Convert.ToInt32(drSize["height"]);
|
|
int width = Convert.ToInt32(drSize["width"]);
|
|
this.Height = height + 150;
|
|
this.splitContainer.SplitterPosition = height > 0 ? height : 0;
|
|
this.Width = (width > 0 ? width : this.Width) + 250;
|
|
}
|
|
this._mainPanelHeight = this.splitContainer.Panel1.Height;
|
|
this.Width = this.Width > Screen.PrimaryScreen.WorkingArea.Width ? Screen.PrimaryScreen.WorkingArea.Width : this.Width;
|
|
this.Height = this.Height > Screen.PrimaryScreen.WorkingArea.Height ? Screen.PrimaryScreen.WorkingArea.Height : this.Height;
|
|
this.Left = (Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2;
|
|
this.Top = (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2;
|
|
|
|
if (this.ModuleModelObj.popupIsMax)
|
|
{
|
|
this.WindowState = FormWindowState.Maximized;
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// <para>说明:窗体加载时</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-14 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
protected override void OnLoad(EventArgs e)
|
|
{
|
|
this.Opacity = 0;
|
|
WaitForm.ShowForm();
|
|
try
|
|
{
|
|
//SysModel.Privilege = SysModel.ModuleId > 0 ? BaseImpl.GetUserPurviewsByMenuId(SysModel.ModuleId + "") + "" : BaseImpl.GetUserPurviewsByMenuCode(SysModel.ModuleCode) + "";
|
|
//if (!this.SysModel.HasPrivilege())
|
|
//{
|
|
// MessageUtil.Show(ResourceKeys.UnPurview);
|
|
// this.Close();
|
|
//}
|
|
|
|
string results = BaseImpl.GetResult("IF EXISTS(SELECT *FROM SYSOBJECTS WHERE NAME ='p_Get_NewDesignPlatform_BasicFileAudit' AND TYPE = 'P') begin select 1 end else Begin select 2 end").ToString();
|
|
if (results.Equals("1") && SystemInfo.Instance.isExecload && false)//GetTabDetails()方法中获取选项卡数据有2个循环,存储过程中无法按顺序获取数据,此模块不使用存储过程
|
|
{
|
|
System.Data.DataSet dsConfig = ReportImpl.GetNewDesignPlatformBasicFileAudit(SysModel, Lskj.Data.ResourceKeys.SettingTableName); //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.InitPushOpers();
|
|
this.InitializeControl();
|
|
this.InitSpliterPosition();
|
|
this.InitPrint();
|
|
this.GetPrintOtherParam();
|
|
if (this.ModuleModelObj.DisplayScroll)
|
|
{
|
|
this.pl_main.AutoScroll = true;
|
|
this.pl_main.VerticalScroll.Visible = true;
|
|
this.pl_main.HorizontalScroll.Visible = false;//设置禁止水平滚动条
|
|
}
|
|
|
|
if (SystemInfo.Instance.ReviewCommentsRequired)
|
|
{
|
|
label_auditPerson.ForeColor = string.IsNullOrEmpty(SystemInfo.Instance.ControlRequiredColor) ? Color.Blue : ColorTranslator.FromHtml(SystemInfo.Instance.ControlRequiredColor);
|
|
this.txt_remark.Text = "";
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
LogHelper.Instance.WriteError(ex, ResourceKeys.BaseModuleAudit);
|
|
this.Close();
|
|
}
|
|
finally
|
|
{
|
|
WaitForm.HideForm();
|
|
this._isInitFinish = true;
|
|
this.splitMain.Visible = true;
|
|
this.InitButLocation();
|
|
if (!SystemInfo.Instance.PageOpen) //以页签模式显示不用计算宽度
|
|
{
|
|
int leftMaxWidth = 0;
|
|
if (this.ControlObj != null) leftMaxWidth = this.ControlObj._models.Max(n => n.Location.X + n.Size.Width);
|
|
int bestWidth = leftMaxWidth + 45 + this.splitMain.Panel2.Width;
|
|
this.Width = bestWidth > Screen.PrimaryScreen.WorkingArea.Width ? Screen.PrimaryScreen.WorkingArea.Width : bestWidth;
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取数据源缓存
|
|
/// </summary>
|
|
/// <param name="cachesDic"></param>
|
|
public void GetDataCaches(Dictionary<object, Hashtable> cachesDic)
|
|
{
|
|
//全局数据
|
|
Task<DynamicModel> dynamicModelTask = cachesDic.AddTask(this, "DynamicModel", new Task<DynamicModel>(() =>
|
|
{
|
|
return SysModel;//动态链接库对象
|
|
}));
|
|
DynamicBaseAccraditionPopModel dynamicModel = (DynamicBaseAccraditionPopModel)dynamicModelTask.Result;
|
|
Task<DataRow> accraditationModelRowTask = cachesDic.AddTask(this, "AccraditationModelRow", new Task<DataRow>(() =>
|
|
{
|
|
return MainImpl.GetSystemdllTab(dynamicModel.ModuleCode);//获取单个模块信息
|
|
}));
|
|
Task<BaseAuditModel> BaseAuditModelTask = cachesDic.AddTask(this, "BaseAuditModel", new Task<BaseAuditModel>(() =>
|
|
{
|
|
BaseAuditModel BaseAuditModel = new BaseAuditModel(accraditationModelRowTask.Result);
|
|
|
|
Task<string> PrefixKeyTask = cachesDic.AddTask(this, "PrefixKey", new Task<string>(() =>
|
|
{
|
|
return BaseImpl.GetColumnPrefix(BaseAuditModel.MenuTable);
|
|
}));
|
|
Task<string> ParmaryKeyTask = cachesDic.AddTask(this, "ParmaryKey", new Task<string>(() =>
|
|
{
|
|
return BaseImpl.GetBasePrimaryKey(dynamicModel.ModuleCode);
|
|
}));
|
|
BaseAuditModel.PrefixKey = PrefixKeyTask.Result;
|
|
BaseAuditModel.ParmaryKey = ParmaryKeyTask.Result;
|
|
return BaseAuditModel;//系统模块实体对象
|
|
}));
|
|
|
|
Task<DataRow> flowRowDataTask = cachesDic.AddTask(this, "flowRowData", new Task<DataRow>(() =>
|
|
{
|
|
return BaseAuditImpl.GetCurrentFlowRowData(BaseAuditModelTask.Result.MenuTable, BaseAuditModelTask.Result.ParmaryKey, dynamicModel.PrimaryValue);
|
|
}));
|
|
Task<AccraditationModel> AccditModelObjTask = cachesDic.AddTask(this, "AccditModelObj", new Task<AccraditationModel>(() =>
|
|
{
|
|
AccraditationModel accraditationModel = new AccraditationModel(BaseAuditImpl.GetCurrentStepFlow(dynamicModel.ModuleCode, dynamicModel.StepCode));
|
|
return accraditationModel;
|
|
}));
|
|
Task<DataRow> BaseRowDataTask = cachesDic.AddTask(this, "BaseRowData", new Task<DataRow>(() =>
|
|
{
|
|
return BaseAuditImpl.GetCurrentControlData(ReplaceHelper.ReplaceWhereCond(ReplaceHelper.ReplaceUserInfo(BaseAuditModelTask.Result.MenuSql)), BaseAuditModelTask.Result.ParmaryKey, dynamicModel.PrimaryValue); ;
|
|
}));
|
|
Task<string> BtnFileMangerTask = cachesDic.AddTask(this, "BtnFileManger", new Task<string>(() =>
|
|
{
|
|
return "(" + AttachImpl.GetFileCount(BaseAuditModelTask.Result.MenuDirId + "", dynamicModel.PrimaryValue) + ")";
|
|
}));
|
|
Task<DataRow> PushMessageTask = cachesDic.AddTask(this, "PushMessage", new Task<DataRow>(() =>
|
|
{
|
|
return BaseAuditImpl.GetPushedOpers(dynamicModel.PrimaryValue, dynamicModel.StepCode);
|
|
}));
|
|
Task<DataTable> ReadOnlyColumnsTask = cachesDic.AddTask(gridFlowRecord, "ReadOnlyColumns", new Task<DataTable>(() =>
|
|
{
|
|
return BaseAuditImpl.GetFlowRecordColumn();
|
|
}));
|
|
Task<DataTable> GridViewDataSourceTask = cachesDic.AddTask(gridFlowRecord, "GridViewDataSource", new Task<DataTable>(() =>
|
|
{
|
|
return BaseAuditImpl.GetFlowRecordData(this.BaseAuditModelObj.SystemTabFlowStep, dynamicModel.PrimaryValue, dynamicModel.ModuleCode);
|
|
}));
|
|
Task<DataRow> GetCurrentFlowStepTask = cachesDic.AddTask(this, "GetCurrentFlowStep", new Task<DataRow>(() =>
|
|
{
|
|
DataRow GetCurrentFlowStep = BaseAuditImpl.GetCurrentFlowStep(dynamicModel.ModuleCode, flowRowDataTask.Result[BaseAuditModelTask.Result.BillType] + "", dynamicModel.StepCode);
|
|
if (GetCurrentFlowStep != null)
|
|
{
|
|
Task<FlowTypeStepModel> FlowTypeStepModelTask = cachesDic.AddTask(this, "FlowTypeStepModel", new Task<FlowTypeStepModel>(() =>
|
|
{
|
|
FlowTypeStepModel flowTypeStepModel = new FlowTypeStepModel(GetCurrentFlowStep);
|
|
return flowTypeStepModel;
|
|
}));
|
|
Task<DataRow> GetDataRowResultTask = cachesDic.AddTask(this, "GetDataRowResult", new Task<DataRow>(() =>
|
|
{
|
|
DataRow getDataRowResult = BaseImpl.GetDataRowResult(AccditModelObjTask.Result.FlowOperSql);
|
|
string operUser = FlowTypeStepModelTask.Result.OperUser;
|
|
if (getDataRowResult != null)
|
|
{
|
|
Task<DataRow> GetFlowOperatorsTask = cachesDic.AddTask(this, "GetFlowOperators", new Task<DataRow>(() =>
|
|
{
|
|
DataRow GetFlowOperators = BaseAuditImpl.GetFlowOperators(dynamicModel.ModuleCode, dynamicModel.PrimaryValue, dynamicModel.StepCode);
|
|
if (GetFlowOperators != null)
|
|
{
|
|
operUser = GetFlowOperators["operators"] + "";
|
|
if (operUser.StartsWith("@"))
|
|
{
|
|
string sql = string.Format("select count(1) from p_employeetab where ({0}) and employeeid='{1}'", ReplaceHelper.ReplaceRowParam(flowRowDataTask.Result, ReplaceHelper.ReplaceUserInfo(operUser)).Replace("@", "").Replace("''", "'"), ERPInfo.Instance.UserId);
|
|
Task<string> numberTask = cachesDic.AddTask(this, "Number", new Task<string>(() =>
|
|
{
|
|
return BaseImpl.GetResult(sql) + "";
|
|
}));
|
|
}
|
|
}
|
|
|
|
return GetFlowOperators;
|
|
}));
|
|
}
|
|
//Task<string> operatorsTask = cachesDic.AddTask(this, "operUsers", new Task<string>(() =>
|
|
//{
|
|
// return operUser;
|
|
//}));
|
|
return getDataRowResult;
|
|
}));
|
|
|
|
//代理权限
|
|
Task<DataRow> agencyAuthorityTask = cachesDic.AddTask(this, "AgencyAuthority", new Task<DataRow>(() =>
|
|
{
|
|
return BaseAuditImpl.GetAgencyAuthority(dynamicModel.ModuleCode);
|
|
}));
|
|
}
|
|
return GetCurrentFlowStep;
|
|
}));
|
|
//动态创建控件
|
|
Task<DataTable> GetControlLocationTask = cachesDic.AddTask(this, "GetControlLocation", new Task<DataTable>(() =>
|
|
{
|
|
return BaseModuleImpl.GetControlLocation(BaseAuditModelTask.Result.FormKey, dynamicModel.ModuleCode);
|
|
}));
|
|
Task<DataTable> GetAddGroupDataTask = cachesDic.AddTask(this, "GetAddGroupData", new Task<DataTable>(() =>
|
|
{
|
|
return BaseModuleImpl.GetAddGroupData(BaseAuditModelTask.Result.FormKey);
|
|
}));
|
|
//加载提醒记录
|
|
Task<DataTable> GetRemindColumnTask = cachesDic.AddTask(this, "GetRemindColumn", new Task<DataTable>(() =>
|
|
{
|
|
return BaseAuditImpl.GetRemindColumn();
|
|
}));
|
|
Task<DataTable> GetRemindinRecordTask = cachesDic.AddTask(this, "GetRemindinRecord", new Task<DataTable>(() =>
|
|
{
|
|
return BaseAuditImpl.GetRemindinRecord(this.BaseAuditModelObj.FlowStepTable, this.BaseAuditModelObj.ComfrimTable, dynamicModel.PrimaryValue, dynamicModel.ModuleCode);
|
|
}));
|
|
//加载会签记录
|
|
Task<DataTable> GetSignRecordTask = cachesDic.AddTask(this, "GetSignRecord", new Task<DataTable>(() =>
|
|
{
|
|
DataTable dt = BaseAuditImpl.GetSignRecord(this.BaseAuditModelObj.ComfrimTable, dynamicModel.PrimaryValue, dynamicModel.ModuleCode);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
Task<DataTable> GetSignRecordCoulumnTask = cachesDic.AddTask(this, "GetSignRecordCoulumn", new Task<DataTable>(() =>
|
|
{
|
|
return BaseAuditImpl.GetSignRecordCoulumn();
|
|
}));
|
|
}
|
|
return dt;
|
|
}));
|
|
//获取选项卡数据
|
|
Task<List<GridDetailModel>> detailTask = cachesDic.AddTask(this, "Details", new Task<List<GridDetailModel>>(() =>
|
|
{
|
|
List<GridDetailModel> details = new List<GridDetailModel>();
|
|
|
|
DataTable table = BaseAuditImpl.GetAttachTabs(dynamicModel.ModuleCode, dynamicModel.StepCode);
|
|
DataTable Detailtable = AttachImpl.GetAttachDetilTab(dynamicModel.ModuleCode, dynamicModel.StepCode);
|
|
foreach (DataRow item in table.Rows)
|
|
{
|
|
DataTable dtGridColumns = BaseAuditImpl.GetBottomBasicInformation(item["formKey"] + "");
|
|
GridDetailModel gridDeatilModel = new GridDetailModel(item, dtGridColumns, GridCustomColumnStruct.AuditPopupDetailGridView + item["formKey"] + "");
|
|
//控制只读
|
|
//gridDeatilModel.DetailSql = "1";
|
|
//url需要替换主表中控件的值
|
|
if (gridDeatilModel.IsWebView)
|
|
{
|
|
gridDeatilModel.DetailSql = ReplaceHelper.ReplaceRowParam(_baseRowData, ReplaceHelper.ReplaceUserInfo(gridDeatilModel.DetailSql));
|
|
}
|
|
details.Add(gridDeatilModel);
|
|
}
|
|
foreach (DataRow item in Detailtable.Rows)
|
|
{
|
|
DataRow dtGridColumns = BaseAuditImpl.GetBottomDetailModel(item["detailKey"] + "");
|
|
if (dtGridColumns == null) continue;
|
|
DataTable gridColumns = ReportImpl.GetReportDetailColumns(dtGridColumns["tab"] + "", dtGridColumns["id"] + "");
|
|
GridDetailModel gridDeatilModel = new GridDetailModel(dtGridColumns, gridColumns, GridCustomColumnStruct.AuditPopupDetailGridView + item["detailKey"] + "");
|
|
//控制只读
|
|
//gridDeatilModel.DetailSql = "1";
|
|
details.Add(gridDeatilModel);
|
|
}
|
|
|
|
return details;
|
|
}));
|
|
cachesDic.AddTask(tab_basicInfo, "DynamicModel", dynamicModelTask);
|
|
cachesDic.AddTask(tab_basicInfo, "Details", detailTask);
|
|
tab_basicInfo.GetDataCaches(cachesDic);
|
|
//初始化常用工具
|
|
Task<DataTable> GetBaseGridRightMenusTask = cachesDic.AddTask(this, "GetBaseGridRightMenus", new Task<DataTable>(() =>
|
|
{
|
|
return BaseModuleImpl.GetBaseGridRightMenus(dynamicModel.ModuleCode, ModuleType.BaseAudit);
|
|
}));
|
|
}
|
|
|
|
|
|
#region 初始化记录所有按钮的位置
|
|
/// <summary>
|
|
/// <para>说明:录所有按钮的位置</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2020-11-25 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitButLocation()
|
|
{
|
|
LocationX.Clear();
|
|
int newlocationX = 0;
|
|
foreach (System.Windows.Forms.Control control in pl_bottom.Controls)
|
|
{
|
|
int x = control.Location.X;
|
|
bool isvisbel = control.Visible;
|
|
if (!control.Visible)
|
|
{
|
|
LocationX.Add(x);
|
|
}
|
|
}
|
|
foreach (System.Windows.Forms.Control control in pl_bottom.Controls)
|
|
{
|
|
int x = control.Location.X;
|
|
newlocationX = control.Location.X;
|
|
foreach (int b in LocationX)
|
|
{
|
|
if (x < b)
|
|
{
|
|
newlocationX += 87;
|
|
|
|
}
|
|
}
|
|
control.Location = new Point(newlocationX, control.Location.Y);
|
|
}
|
|
if (!btnRemindAccradit.Visible)
|
|
{
|
|
combox_Suggestion.Width = btnRemindAccradit.Location.X + btnRemindAccradit.Width - combox_Suggestion.Location.X;
|
|
}
|
|
if (!btnRemindBack.Visible)
|
|
{
|
|
labeltxt_managerAudit.Width = btnRemindBack.Location.X + btnRemindBack.Width - labeltxt_managerAudit.Location.X;
|
|
if (!btnReturnd.Visible)
|
|
{
|
|
labeltxt_managerAudit.Width = btnReturnd.Location.X + btnReturnd.Width - labeltxt_managerAudit.Location.X;
|
|
}
|
|
}
|
|
if (!btnClose.Visible)
|
|
{
|
|
labeldate_happendTime.Width = btnClose.Location.X + btnClose.Width - labeldate_happendTime.Location.X;
|
|
}
|
|
}
|
|
#endregion
|
|
#region 初始化打印
|
|
/// <summary>
|
|
/// <para>说明:创建打印</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-01-04 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitPrint()
|
|
{
|
|
string[] files = this.ModuleModelObj.PrintFile.Split('|');
|
|
for (int i = 0; i < files.Length; i++)
|
|
{
|
|
string fileName = files[i];
|
|
if (!string.IsNullOrWhiteSpace(fileName))
|
|
{
|
|
BarButtonItem itemPrint = new BarButtonItem();
|
|
itemPrint.Caption = fileName.Replace(".rmf", "").Replace(".frx", "");
|
|
itemPrint.Tag = files[i];
|
|
itemPrint.ItemClick += new ItemClickEventHandler(itemPrint_ItemClick);
|
|
pMprint.AddItem(itemPrint);
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
/// <summary>
|
|
/// <para>说明:初始化属性配置</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitializeSetting()
|
|
{
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
if (!dataCaches.GetValue(this, "AccraditationModelRow", out this.mRowItem))
|
|
{
|
|
this.mRowItem = MainImpl.GetSystemdllTab(this.SysModel.ModuleCode);//获取单个模块信息
|
|
}
|
|
if (!dataCaches.GetValue(this, "BaseAuditModel", out this.ModuleModelObj))
|
|
{
|
|
this.ModuleModelObj = new BaseAuditModel(this.mRowItem);
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(this.ModuleModelObj.FormKey))
|
|
{
|
|
//MessageUtil.Show(ResourceKeys.ModuleConfigError);
|
|
//return;
|
|
throw new Exception(ResourceKeys.ModuleConfigError);
|
|
}
|
|
|
|
if (!dataCaches.GetValue(this, "PrefixKey", out string PrefixKey))
|
|
{
|
|
PrefixKey = BaseImpl.GetColumnPrefix(this.ModuleModelObj.MenuTable);
|
|
}
|
|
this.ModuleModelObj.PrefixKey = PrefixKey;
|
|
|
|
if (!dataCaches.GetValue(this, "ParmaryKey", out string ParmaryKey))
|
|
{
|
|
ParmaryKey = BaseImpl.GetBasePrimaryKey(this.SysModel.ModuleCode);
|
|
}
|
|
this.ModuleModelObj.ParmaryKey = ParmaryKey;
|
|
|
|
if (!dataCaches.GetValue(this, "flowRowData", out this._flowRowData))
|
|
{
|
|
this._flowRowData = BaseAuditImpl.GetCurrentFlowRowData(this.ModuleModelObj.MenuTable, this.ModuleModelObj.ParmaryKey, this.SysModel.PrimaryValue);
|
|
}
|
|
this.UpdateCirculationData();
|
|
string billType = this._flowRowData != null ? _flowRowData[this.ModuleModelObj.BillType] + "" : "";
|
|
if (string.IsNullOrEmpty(billType) || billType == "0")
|
|
{
|
|
//MessageUtil.Show(ResourceKeys.NotSetFlowType);
|
|
throw new Exception(ResourceKeys.NotSetFlowType);
|
|
}
|
|
|
|
if (!dataCaches.GetValue(this, "AccditModelObj", out this.AccditModelObj))
|
|
{
|
|
this.AccditModelObj = new AccraditationModel(BaseAuditImpl.GetCurrentStepFlow(this.SysModel.ModuleCode, this.SysModel.StepCode));
|
|
}
|
|
|
|
if (!dataCaches.GetValue(this, "BaseRowData", out this._baseRowData))
|
|
{
|
|
this._baseRowData = BaseAuditImpl.GetCurrentControlData(ReplaceHelper.ReplaceWhereCond(ReplaceHelper.ReplaceUserInfo(this.ModuleModelObj.MenuSql)), this.ModuleModelObj.ParmaryKey, this.SysModel.PrimaryValue);
|
|
}
|
|
|
|
if (!dataCaches.GetValue(this, "BaseRowData", out string FileManger))
|
|
{
|
|
FileManger = "(" + AttachImpl.GetFileCount(this.ModuleModelObj.MenuDirId + "", this.SysModel.PrimaryValue) + ")";
|
|
|
|
}
|
|
this.btnFileManger.Text += FileManger;
|
|
this.btnReturnd.Text = this.AccditModelObj.StepBackText;
|
|
if (this._baseRowData == null) this._baseRowData = this._flowRowData;
|
|
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:初始化控件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitializeControl()
|
|
{
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
//设置控件文本属性
|
|
this.Text = this.SysModel.FormText;
|
|
this.btnAudit.Text = this.AccditModelObj.StepApplyText;
|
|
this.btnClose.Text = this.AccditModelObj.StepCloseText;
|
|
this.labeltxt_managerAudit.EditText = this.SysModel.UserName;
|
|
|
|
////设置流转记录的列
|
|
this.gridFlowRecord.GridView.RowStyle += new RowStyleEventHandler(gridFlowRecord_RowStyle);
|
|
|
|
if (!dataCaches.GetValue(gridFlowRecord, "ReadOnlyColumns", out DataTable dtReadOnlyColumns))
|
|
{
|
|
dtReadOnlyColumns = BaseAuditImpl.GetFlowRecordColumn();
|
|
}
|
|
if (!dataCaches.GetValue(gridFlowRecord, "GridViewDataSource", out DataTable dtridViewDataSource))
|
|
{
|
|
dtridViewDataSource = BaseAuditImpl.GetFlowRecordData(this.BaseAuditModelObj.SystemTabFlowStep, this.SysModel.PrimaryValue, this.SysModel.ModuleCode);
|
|
}
|
|
this.gridFlowRecord.SetReadOnlyColumns(dtReadOnlyColumns, GridCustomColumnStruct.AuditPopupAttachGridView + this.ModuleModelObj.FormKey);
|
|
this.gridFlowRecord.gridControl.Paint += new PaintEventHandler(gridFlow_Panint);
|
|
this.gridFlowRecord.SetGridViewDataSource(dtridViewDataSource);
|
|
|
|
//初始化流转标题
|
|
this.label_auditPerson.Text = this.labeltxt_managerAudit.LabelText = this.AccditModelObj.CurstepName;
|
|
|
|
this.combox_Suggestion.ValueField = this.combox_Suggestion.TextField = "Mix_apellation";
|
|
this.combox_Suggestion.SetDataSource(BaseImpl.GetDataTableResult(this.AccditModelObj.SuggestionSql));
|
|
this.combox_Suggestion.TextEdit.SelectedIndex = 0;
|
|
this.combox_Suggestion.TextEdit.SelectedValueChanged += new EventHandler(OnSelectValueChanged);
|
|
|
|
if (!string.IsNullOrWhiteSpace(this.AccditModelObj.StepApplyContent)) this.txt_remark.Text = this.AccditModelObj.StepApplyContent;
|
|
//单据水印
|
|
this._waterMark = new WaterMark(this.ModuleModelObj.PrefixKey, this._baseRowData);
|
|
|
|
//this.SetFormSizeNew();
|
|
this.SetButtonStatus();
|
|
this.CreateAccraditationControl();
|
|
this.LoadRemindRecord();
|
|
this.LoadSignRecord();
|
|
this.BindTab();
|
|
this.InitCommonTools();
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:审核意见下拉框事件</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-02-25</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
protected void OnSelectValueChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
this.txt_remark.Text = this.combox_Suggestion.EditText;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:初始化本次推送人员</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-05-22 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitPushOpers()
|
|
{
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
if (!dataCaches.GetValue(this, "PushMessage", out DataRow rowItem))
|
|
{
|
|
rowItem = BaseAuditImpl.GetPushedOpers(this.SysModel.PrimaryValue, this.SysModel.StepCode);
|
|
}
|
|
|
|
if (rowItem != null)
|
|
{
|
|
//记录本次操作信息
|
|
this._beforeMenuName = rowItem["menuname"] + "";
|
|
this._beforeUsers = rowItem["operators"] + "";
|
|
this._beforeId = Convert.ToInt32(rowItem["id"]);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 加载选项卡数据
|
|
/// <summary>
|
|
/// <para>说明:加载选项卡数据</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitTabData()
|
|
{
|
|
isModifyPage.Clear();
|
|
foreach (XtraTabPage tabPage in this.tab_basicInfo.TabControlObj.TabPages)
|
|
{
|
|
GridDetailModel model = this.tab_basicInfo.GetGridDetailModel(tabPage);
|
|
bool isDetailAttach = (model.IsReadOnly || model.IsChart);
|
|
|
|
|
|
if (tabPage.Tag is ModuleWebView)
|
|
{
|
|
// 加载网页
|
|
string url = ReplaceHelper.ReplaceRowParam(this._baseRowData, ReplaceHelper.ReplaceUserInfo(model.DetailSql));
|
|
url = url.StartsWith("http") ? url : SystemInfo.Instance.OAUrl + url;
|
|
ModuleWebView webView = tabPage.Tag as ModuleWebView;
|
|
webView.Dock = DockStyle.Fill;
|
|
webView.Tag = model;
|
|
webView.Navigate(url);
|
|
}
|
|
else if (tabPage.Tag is FrmWebBrowser)
|
|
{
|
|
// 加载网页
|
|
string url = ReplaceHelper.ReplaceRowParam(this._baseRowData, ReplaceHelper.ReplaceUserInfo(model.DetailSql));
|
|
url = url.StartsWith("http") ? url : SystemInfo.Instance.OAUrl + url;
|
|
FrmWebBrowser webView = tabPage.Tag as FrmWebBrowser;
|
|
webView.Dock = DockStyle.Fill;
|
|
webView.Tag = model;
|
|
webView.LoadUrl(url);
|
|
}
|
|
else if (tabPage.Tag is FrmMiniBlink)
|
|
{
|
|
// 加载网页
|
|
string url = ReplaceHelper.ReplaceRowParam(this._baseRowData, ReplaceHelper.ReplaceUserInfo(model.DetailSql));
|
|
url = url.StartsWith("http") ? url : SystemInfo.Instance.OAUrl + url;
|
|
FrmMiniBlink webView = tabPage.Tag as FrmMiniBlink;
|
|
webView.Dock = DockStyle.Fill;
|
|
webView.Tag = model;
|
|
webView.LoadUrl(url);
|
|
}
|
|
else if (tabPage.Tag is GridControlEx)
|
|
{
|
|
string sqlValue = isDetailAttach ? model.DetailSql : GetSearchSql(model);
|
|
GridControlEx grdExMain = (tabPage.Tag as GridControlEx);
|
|
if (!isDetailAttach) grdExMain.LastSearchSql = sqlValue;
|
|
this.tab_basicInfo.SetGridDataSource(tabPage, MainImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._baseRowData, sqlValue)));
|
|
if (!model.IsReadOnly) isModifyPage.Add(model.FormKey, tabPage);
|
|
}
|
|
else if (tabPage.Tag is TabMultipledetails)
|
|
{
|
|
TabMultipledetails tabMultipledetails = tabPage.Tag as TabMultipledetails;
|
|
tabMultipledetails.SetConditionValues(this._baseRowData);
|
|
GridControlEx grdExMain = (tabMultipledetails.SplitMain.Panel1.Tag as GridControlEx);
|
|
GridDetailModel MainModel = grdExMain.Tag as GridDetailModel;
|
|
string searchMainSql = ReplaceHelper.ReplaceRowParam(this._baseRowData, isDetailAttach ? MainModel.DetailSql : GetSearchSql(MainModel));
|
|
DataTable firstTable = MainImpl.GetDataTableResult(searchMainSql);
|
|
grdExMain.LastSearchSql = searchMainSql;
|
|
grdExMain.SetGridViewDataSource(firstTable);
|
|
if (tabMultipledetails.SplitMain.Panel2.Tag is GridControlEx)
|
|
{
|
|
GridControlEx grdExAdditional = (tabMultipledetails.SplitMain.Panel2.Tag as GridControlEx);
|
|
GridDetailModel AdditionalModel = grdExAdditional.Tag as GridDetailModel;
|
|
string searchAddSql = ReplaceHelper.ReplaceRowParam(this._baseRowData, isDetailAttach ? AdditionalModel.DetailSql : GetSearchSql(AdditionalModel));
|
|
if (!MainModel.IsUnioDetail)
|
|
{
|
|
grdExAdditional.LastSearchSql = searchAddSql;
|
|
grdExAdditional.SetGridViewDataSource(MainImpl.GetDataTableResult(searchAddSql));
|
|
}
|
|
//右侧是左侧的明细,左侧没有数据时。右侧赋空值(因为无法触发左侧行改变事件)
|
|
if (MainModel.IsUnioDetail && firstTable.Rows.Count == 0)
|
|
{
|
|
grdExAdditional.LastSearchSql = "";
|
|
grdExAdditional.SetGridViewDataSource(new DataTable());
|
|
}
|
|
}
|
|
else if (tabMultipledetails.SplitMain.Panel2.Tag is ChartControlEx)
|
|
{
|
|
ChartControlEx grdExAdditional = (tabMultipledetails.SplitMain.Panel2.Tag as ChartControlEx);
|
|
GridDetailModel AdditionalModel = grdExAdditional.Tag as GridDetailModel;
|
|
string searchAddSql = this.GetSearchSql(AdditionalModel);
|
|
DataTable table = MainImpl.GetDataTableResult(searchAddSql);
|
|
grdExAdditional.CreateChart(table);
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
string sqlValue = isDetailAttach ? model.DetailSql : GetSearchSql(model);
|
|
this.tab_basicInfo.SetGridDataSource(tabPage, MainImpl.GetDataTableResult(this.ControlObj.ReplaceControlValue(sqlValue)));
|
|
}
|
|
|
|
}
|
|
}
|
|
#endregion
|
|
#region 加载选项卡数据
|
|
/// <summary>
|
|
/// <para>说明:加载选项卡数据</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitEditTabControl()
|
|
{
|
|
DataTable Detailtable = AttachImpl.GetAttachDetilTab(this.SysModel.ModuleCode, this.SysModel.StepCode);
|
|
foreach (DataRow rt in Detailtable.Rows)
|
|
{
|
|
string key = rt["detailKey"].ToString().ToLower();
|
|
if (!isModifyPage.Keys.Contains(key)) continue;
|
|
XtraTabPage tabpage = isModifyPage[key];
|
|
GridDetailModel model = this.tab_basicInfo.GetGridDetailModel(tabpage);
|
|
//修改字段
|
|
GridControlEx gridControl = tabpage.Tag as GridControlEx;
|
|
string DetailModifyFields = rt["modifyFields"] + "";
|
|
string DetailRequiredFields = Detailtable.Columns.Contains("requiredFields") ? rt["requiredFields"] + "" : "";
|
|
bool isEditable = string.IsNullOrEmpty(DetailModifyFields);
|
|
if (!string.IsNullOrWhiteSpace(DetailRequiredFields)) DetailsRequired = true;
|
|
gridControl.GridView.OptionsBehavior.Editable = !isEditable;
|
|
GridColumnCollection gc = gridControl.GridView.Columns;
|
|
//设置表格可编辑列和必填列
|
|
gridControl.SetReadOnlyAllColumn();
|
|
gridControl.SetFieldStatus(DetailModifyFields, DetailRequiredFields);
|
|
|
|
//if (isEditable) continue;
|
|
//DetailModifyFields = DetailModifyFields + ",";
|
|
//foreach (GridColumn item in gc)
|
|
//{
|
|
// GridColumnModel gcmodel = item.Tag as GridColumnModel;
|
|
// item.OptionsColumn.AllowEdit = DetailModifyFields.IndexOf(item.FieldName + ",", StringComparison.OrdinalIgnoreCase) != -1;
|
|
// item.OptionsColumn.ReadOnly = !item.OptionsColumn.AllowEdit;
|
|
// if (!item.OptionsColumn.AllowEdit)
|
|
// {
|
|
// item.AppearanceHeader.Options.UseForeColor = true;
|
|
// item.AppearanceHeader.ForeColor = ColorTranslator.FromHtml(HeaderColor);
|
|
// }
|
|
// else
|
|
// {
|
|
// item.AppearanceHeader.Options.UseForeColor = true;
|
|
// item.AppearanceHeader.ForeColor = Color.Black;
|
|
// }
|
|
// if (gcmodel.FieldType == ControlType.LabMemoEdit) item.OptionsColumn.AllowEdit = true;
|
|
//}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 流转表格行样式
|
|
/// <summary>
|
|
/// <para>说明:流转表格行样式</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void gridFlowRecord_RowStyle(object sender, RowStyleEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (e.RowHandle > 0)
|
|
{
|
|
DataRow dr = this.gridFlowRecord.GridView.GetDataRow(e.RowHandle);
|
|
if (dr["sh"] + "" == "审") e.Appearance.ForeColor = Color.Blue;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 初始化常用工具
|
|
/// <summary>
|
|
/// <para>说明:初始化常用工具</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitCommonTools()
|
|
{
|
|
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
if (!dataCaches.GetValue(this, "GetBaseGridRightMenus", out DataTable tableCommon))
|
|
{
|
|
tableCommon = BaseModuleImpl.GetBaseGridRightMenus(this.SysModel.ModuleCode, ModuleType.BaseAudit);
|
|
}
|
|
|
|
foreach (DataRow item in tableCommon.Rows)
|
|
{
|
|
BarButtonItem itemCommon = new BarButtonItem();
|
|
itemCommon.Caption = item["menuname"] + "";
|
|
itemCommon.Tag = item;
|
|
itemCommon.ItemClick += new ItemClickEventHandler(itemCommon_ItemClick);
|
|
p_menu.AddItem(itemCommon);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:验证可操作条件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-03-07 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
protected void dpbTools_Click(object sender, EventArgs e)
|
|
{
|
|
foreach (BarItemLink itemLink in this.p_menu.ItemLinks)
|
|
{
|
|
DataRow rowItem = itemLink.Item.Tag as DataRow;
|
|
if (rowItem != null)
|
|
{
|
|
string menuCond = rowItem["MenuCond"] + "";
|
|
string menuCaption = itemLink.Caption;
|
|
|
|
if (!string.IsNullOrEmpty(menuCond))
|
|
{
|
|
try
|
|
{
|
|
bool result = true;
|
|
menuCond = ReplaceHelper.ReplaceParamToValue(menuCond, "{" + this.ModuleModelObj.ParmaryKey + "}");
|
|
|
|
if (menuCond.StartsWith("@") || menuCond.StartsWith("!"))
|
|
{
|
|
result = "1".Equals(BaseImpl.GetDefaultValue(menuCond));
|
|
}
|
|
else
|
|
{
|
|
menuCond = this.ControlObj.ReplaceControlValue(menuCond);
|
|
menuCond = ReplaceHelper.ReplaceParamToValue(menuCond, "0"); // 未替换的参数所有替换为0
|
|
|
|
result = ReplaceHelper.EvalCond(menuCond);
|
|
}
|
|
itemLink.Item.Enabled = result;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageUtil.Show("[" + menuCaption + "] " + ResourceKeys.SetRightMenuCondFault);
|
|
LogHelper.Instance.WriteError(ex);
|
|
LogUtil.WriteError("验证可操作条件出错!", ex);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:常用工具点击</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-21</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="ItemClickEventArgs"/> instance containing the event data.</param>
|
|
protected void itemCommon_ItemClick(object sender, ItemClickEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataRow rowItem = e.Item.Tag as DataRow;
|
|
CommonMenu menu = new CommonMenu(this.SysModel, this.ControlObj);
|
|
menu.Apply(rowItem);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 加载提醒记录
|
|
/// <summary>
|
|
/// <para>说明:加载提醒记录</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-20</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void LoadRemindRecord()
|
|
{
|
|
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
//加载提醒
|
|
if (!string.IsNullOrEmpty(this._flowTypeStepModel.RemindSelect))
|
|
{
|
|
|
|
if (!dataCaches.GetValue(this, "GetRemindColumn", out DataTable DefaultColumns))
|
|
{
|
|
DefaultColumns = BaseAuditImpl.GetRemindColumn();
|
|
}
|
|
this.gridRemind.SetReadOnlyColumns(DefaultColumns);
|
|
if (!dataCaches.GetValue(this, "GetRemindinRecord", out DataTable dt))
|
|
{
|
|
dt = BaseAuditImpl.GetRemindinRecord(this.BaseAuditModelObj.FlowStepTable, this.BaseAuditModelObj.ComfrimTable, this.SysModel.PrimaryValue, this.SysModel.ModuleCode);
|
|
}
|
|
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
this.gridRemind.SetGridViewDataSource(dt);
|
|
this.tabpage_remind.Text = this.tabpage_remind.Text + "(" + dt.Rows.Count + ")";
|
|
}
|
|
else
|
|
{
|
|
this.tabMain.TabPages.Remove(this.tabpage_remind);
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 加载会签记录
|
|
/// <summary>
|
|
/// <para>说明:加载会签记录</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-20</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void LoadSignRecord()
|
|
{
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
if (!dataCaches.GetValue(this, "GetSignRecord", out DataTable dt))
|
|
{
|
|
dt = BaseAuditImpl.GetSignRecord(this.BaseAuditModelObj.ComfrimTable, this.SysModel.PrimaryValue, this.SysModel.ModuleCode);
|
|
}
|
|
|
|
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
if (!dataCaches.GetValue(this, "GetSignRecordCoulumn", out DataTable RecordCoulumns))
|
|
{
|
|
RecordCoulumns = BaseAuditImpl.GetSignRecordCoulumn();
|
|
}
|
|
this.gridSign.SetReadOnlyColumns(RecordCoulumns);
|
|
this.gridSign.SetGridViewDataSource(dt);
|
|
this.tabpage_sign.Text = this.tabpage_sign.Text + "(" + dt.Rows.Count + ")";
|
|
}
|
|
else
|
|
{
|
|
this.tabMain.TabPages.Remove(this.tabpage_sign);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 绑定选项卡
|
|
/// <summary>
|
|
/// <para>说明:绑定选项卡</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-20</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void BindTab()
|
|
{
|
|
//this._baseTabList = BaseAuditImpl.GetAttachTabs(this.SysModel.ModuleCode, this.SysModel.StepCode);
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
this.tab_basicInfo.Model = this.SysModel;
|
|
this.tab_basicInfo.ParentControlEx = this.ControlObj;
|
|
if (!dataCaches.GetValue(tab_basicInfo, "Details", out List<GridDetailModel> details))
|
|
{
|
|
details = GetTabDetails();
|
|
}
|
|
this.tab_basicInfo.InitTabPages(details);
|
|
this.tab_basicInfo.OnRightCallback += new EventHandler(tabBasicInfo_OnRightCallback);
|
|
//设置高度
|
|
SetTabHeight();
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:单据右键菜单执行后刷新数据</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-01-15 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
|
|
protected void tabBasicInfo_OnRightCallback(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
foreach (XtraTabPage page in this.tab_basicInfo.TabControlObj.TabPages)
|
|
{
|
|
GridDetailModel model = this.tab_basicInfo.GetGridDetailModel(page);
|
|
//this.tab_basicInfo.SetGridDataSource(page, MainImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._baseRowData, model.DetailSql)));
|
|
bool isDetailAttach = (model.IsReadOnly || model.IsChart);
|
|
|
|
if (page.Tag is GridControlEx)
|
|
{
|
|
string sqlValue = isDetailAttach ? model.DetailSql : GetSearchSql(model);
|
|
GridControlEx grdExMain = (page.Tag as GridControlEx);
|
|
if (!isDetailAttach) grdExMain.LastSearchSql = sqlValue;
|
|
this.tab_basicInfo.SetGridDataSource(page, MainImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._baseRowData, sqlValue)));
|
|
}
|
|
else if (page.Tag is TabMultipledetails)
|
|
{
|
|
TabMultipledetails tabMultipledetails = page.Tag as TabMultipledetails;
|
|
tabMultipledetails.SetConditionValues(this._baseRowData);
|
|
GridControlEx grdExMain = (tabMultipledetails.SplitMain.Panel1.Tag as GridControlEx);
|
|
GridDetailModel MainModel = grdExMain.Tag as GridDetailModel;
|
|
string searchMainSql = ReplaceHelper.ReplaceRowParam(this._baseRowData, isDetailAttach ? MainModel.DetailSql : GetSearchSql(MainModel));
|
|
DataTable firstTable = MainImpl.GetDataTableResult(searchMainSql);
|
|
grdExMain.LastSearchSql = searchMainSql;
|
|
grdExMain.SetGridViewDataSource(firstTable);
|
|
if (tabMultipledetails.SplitMain.Panel2.Tag is GridControlEx)
|
|
{
|
|
GridControlEx grdExAdditional = (tabMultipledetails.SplitMain.Panel2.Tag as GridControlEx);
|
|
GridDetailModel AdditionalModel = grdExAdditional.Tag as GridDetailModel;
|
|
string searchAddSql = ReplaceHelper.ReplaceRowParam(this._baseRowData, isDetailAttach ? AdditionalModel.DetailSql : GetSearchSql(AdditionalModel));
|
|
if (!MainModel.IsUnioDetail)
|
|
{
|
|
grdExAdditional.LastSearchSql = searchAddSql;
|
|
grdExAdditional.SetGridViewDataSource(MainImpl.GetDataTableResult(searchAddSql));
|
|
}
|
|
//右侧是左侧的明细,左侧没有数据时。右侧赋空值(因为无法触发左侧行改变事件)
|
|
if (MainModel.IsUnioDetail && firstTable.Rows.Count == 0)
|
|
{
|
|
grdExAdditional.LastSearchSql = "";
|
|
grdExAdditional.SetGridViewDataSource(new DataTable());
|
|
}
|
|
}
|
|
else if (tabMultipledetails.SplitMain.Panel2.Tag is ChartControlEx)
|
|
{
|
|
ChartControlEx grdExAdditional = (tabMultipledetails.SplitMain.Panel2.Tag as ChartControlEx);
|
|
GridDetailModel AdditionalModel = grdExAdditional.Tag as GridDetailModel;
|
|
string searchAddSql = this.GetSearchSql(AdditionalModel);
|
|
DataTable table = MainImpl.GetDataTableResult(searchAddSql);
|
|
grdExAdditional.CreateChart(table);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:获取选项卡数据</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-01-15 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private List<GridDetailModel> GetTabDetails()
|
|
{
|
|
List<GridDetailModel> details = new List<GridDetailModel>();
|
|
|
|
DataTable table = BaseAuditImpl.GetAttachTabs(this.SysModel.ModuleCode, this.SysModel.StepCode);
|
|
DataTable Detailtable = AttachImpl.GetAttachDetilTab(this.SysModel.ModuleCode, this.SysModel.StepCode);
|
|
foreach (DataRow item in table.Rows)
|
|
{
|
|
DataTable dtGridColumns = BaseAuditImpl.GetBottomBasicInformation(item["formKey"] + "");
|
|
GridDetailModel gridDeatilModel = new GridDetailModel(item, dtGridColumns, GridCustomColumnStruct.AuditPopupDetailGridView + item["formKey"] + "");
|
|
//控制只读
|
|
//gridDeatilModel.DetailSql = "1";
|
|
//url需要替换主表中控件的值
|
|
if (gridDeatilModel.IsWebView)
|
|
{
|
|
gridDeatilModel.DetailSql = ReplaceHelper.ReplaceRowParam(_baseRowData, ReplaceHelper.ReplaceUserInfo(gridDeatilModel.DetailSql));
|
|
}
|
|
details.Add(gridDeatilModel);
|
|
}
|
|
foreach (DataRow item in Detailtable.Rows)
|
|
{
|
|
DataRow dtGridColumns = BaseAuditImpl.GetBottomDetailModel(item["detailKey"] + "");
|
|
if (dtGridColumns == null) continue;
|
|
DataTable gridColumns = ReportImpl.GetReportDetailColumns(dtGridColumns["tab"] + "", dtGridColumns["id"] + "");
|
|
GridDetailModel gridDeatilModel = new GridDetailModel(dtGridColumns, gridColumns, GridCustomColumnStruct.AuditPopupDetailGridView + item["detailKey"] + "");
|
|
//控制只读
|
|
//gridDeatilModel.DetailSql = "1";
|
|
details.Add(gridDeatilModel);
|
|
}
|
|
|
|
return details;
|
|
}
|
|
#endregion
|
|
|
|
#region 设置控件高度
|
|
/// <summary>
|
|
/// <para>说明:设置控件容器高度</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-20</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void SetTabHeight()
|
|
{
|
|
if (this.tab_basicInfo.TabControlObj.TabPages.Count > 0)
|
|
{
|
|
this.Height = this.Height + 200;
|
|
this.pl_main.Height = this.pl_main.Height < 350 ? 350 : this.pl_main.Height;
|
|
this.Height = splitContainer.Height = this.pl_main.Height + 300;
|
|
this.Height = this.pl_main.Height + 300 > Screen.PrimaryScreen.WorkingArea.Height ? Screen.PrimaryScreen.WorkingArea.Height : this.Height;
|
|
this.pl_main.Height = this.Height - 350;
|
|
}
|
|
else
|
|
{
|
|
this.Height = this.Height - 50;
|
|
this.Height = this._mainPanelHeight > 600 ? this._mainPanelHeight : this.Height;
|
|
this.splitContainer.PanelVisibility = SplitPanelVisibility.Panel1;
|
|
}
|
|
this.Top = (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2;
|
|
}
|
|
#endregion
|
|
|
|
#region 设置窗口大小
|
|
/// <summary>
|
|
/// <para>说明:设置弹出窗体大小</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void SetFormSizeNew()
|
|
{
|
|
this.WindowState = FormWindowState.Normal;
|
|
DataRow drSize = null;
|
|
if (ProcessExists)
|
|
{
|
|
drSize = Lskj.Data.Caches.CacheSYSConfig.Instance().AccessToContentRow();
|
|
}
|
|
else
|
|
{
|
|
drSize = BaseModuleImpl.GetControlParentSize(this.ModuleModelObj.FormKey);
|
|
}
|
|
|
|
if (drSize != null)
|
|
{
|
|
int height = Convert.ToInt32(drSize["height"]);
|
|
int width = Convert.ToInt32(drSize["width"]);
|
|
this.Height = height + 150;
|
|
this.splitContainer.SplitterPosition = height > 0 ? height : 0;
|
|
this.Width = (width > 0 ? width : this.Width) + 250;
|
|
}
|
|
this._mainPanelHeight = this.splitContainer.Panel1.Height;
|
|
this.Width = this.Width > Screen.PrimaryScreen.WorkingArea.Width ? Screen.PrimaryScreen.WorkingArea.Width : this.Width;
|
|
this.Height = this.Height > Screen.PrimaryScreen.WorkingArea.Height ? Screen.PrimaryScreen.WorkingArea.Height : this.Height;
|
|
this.Left = (Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2;
|
|
this.Top = (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2;
|
|
|
|
if (this.ModuleModelObj.popupIsMax)
|
|
{
|
|
this.WindowState = FormWindowState.Maximized;
|
|
//this.Width = Screen.PrimaryScreen.WorkingArea.Width;
|
|
//this.Height = Screen.PrimaryScreen.WorkingArea.Height;
|
|
//this.Left = (Screen.PrimaryScreen.WorkingArea.Width / 2) - (this.Width / 2);
|
|
//this.Top = (Screen.PrimaryScreen.WorkingArea.Height / 2) - (this.Height / 2);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 设置按钮状态
|
|
/// <summary>
|
|
/// <para>说明:初始化设置按钮状态</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void SetButtonStatus()
|
|
{
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
//获取当前流转步骤
|
|
if (!dataCaches.GetValue(this, "GetCurrentFlowStep", out DataRow currentFlowStep))
|
|
{
|
|
currentFlowStep = BaseAuditImpl.GetCurrentFlowStep(this.SysModel.ModuleCode, this._flowRowData[this.ModuleModelObj.BillType] + "", this.SysModel.StepCode);
|
|
}
|
|
|
|
if (currentFlowStep == null)
|
|
{
|
|
MessageUtil.Show(ResourceKeys.FlowStepConfigError);
|
|
return;
|
|
}
|
|
|
|
if (!dataCaches.GetValue(this, "FlowTypeStepModel", out this._flowTypeStepModel))
|
|
{
|
|
this._flowTypeStepModel = new FlowTypeStepModel(currentFlowStep);
|
|
}
|
|
string operUser = this._flowTypeStepModel.OperUser;
|
|
|
|
if (!dataCaches.GetValue(this, "GetDataRowResult", out DataRow getDataRowResult))
|
|
{
|
|
getDataRowResult = BaseImpl.GetDataRowResult(this.AccditModelObj.FlowOperSql);
|
|
}
|
|
|
|
if (getDataRowResult != null)
|
|
{
|
|
|
|
if (!dataCaches.GetValue(this, "GetFlowOperators", out DataRow flowOper))
|
|
{
|
|
flowOper = BaseAuditImpl.GetFlowOperators(this.SysModel.ModuleCode, this.SysModel.PrimaryValue, this.SysModel.StepCode);
|
|
}
|
|
operUser = flowOper == null ? operUser : flowOper["operators"] + "";
|
|
}
|
|
|
|
|
|
//确认权限判断
|
|
this.btnRemindAccradit.Visible = this.btnRemindBack.Visible = this._flowTypeStepModel.RemindSelect == "1";
|
|
this.btnClose.Visible = this.btnClose.Enabled = this._flowTypeStepModel.StepClosed == 1;
|
|
|
|
if (operUser.StartsWith("@"))
|
|
{
|
|
if (!dataCaches.GetValue(this, "Number", out string number))
|
|
{
|
|
string sql = string.Format("select count(1) from p_employeetab where ({0}) and employeeid='{1}' ", ReplaceHelper.ReplaceRowParam(_flowRowData, ReplaceHelper.ReplaceUserInfo(operUser)).Replace("@", "").Replace("''", "'"), ERPInfo.Instance.UserId);
|
|
number = MainImpl.GetResult(sql) + "";
|
|
}
|
|
this.btnAudit.Enabled = this.btnReturnd.Enabled = this.btnSave.Enabled = this.btnClose.Enabled = int.Parse(string.IsNullOrWhiteSpace(number + "") ? "0" : number + "") > 0;
|
|
}
|
|
else
|
|
{
|
|
this.btnAudit.Enabled = this.btnReturnd.Enabled = this.btnSave.Enabled = this.btnClose.Enabled = operUser.Contains(this.SysModel.UserName);
|
|
}
|
|
|
|
|
|
|
|
//代理权限
|
|
if (!dataCaches.GetValue(this, "AgencyAuthority", out DataRow agency))
|
|
{
|
|
agency = BaseAuditImpl.GetAgencyAuthority(this.SysModel.ModuleCode);
|
|
}
|
|
if (agency != null)
|
|
{
|
|
string sourceuser = agency["sourceuser"] + "";
|
|
foreach (string item in sourceuser.Split(','))
|
|
{
|
|
if (operUser.Contains(item))
|
|
{
|
|
this.btnAudit.Enabled = this.btnReturnd.Enabled = this.btnSave.Enabled = this.btnClose.Enabled = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
if (SysModel.HasReadPrivilege())
|
|
{
|
|
this.btnSave.Enabled = false;
|
|
}
|
|
//如果已经终审按钮为窗口默认设置,否则
|
|
if (this.SysModel.StepOver == "1")
|
|
{
|
|
this.combox_Suggestion.Enabled = false;
|
|
this.btnAudit.Enabled = false;
|
|
this.btnRemindAccradit.Enabled = false;
|
|
this.pl_bottom.Visible = true;
|
|
}
|
|
if (this.SysModel.ConfirmId == "1")
|
|
{
|
|
this.btnAudit.Enabled = true;
|
|
this.btnClose.Visible = this.btnRemindAccradit.Visible = this.btnRemindBack.Visible = this.btnSave.Visible = this.btnReturnd.Visible = false;
|
|
this.btnAudit.Text = "确认(&Y)";
|
|
this.label_auditPerson.Text = "确认意见";
|
|
this.labeltxt_managerAudit.Text = "会签人";
|
|
this.txt_remark.Text = "确认";
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 动态创建控件
|
|
/// <summary>
|
|
/// <para>说明:动态创建控件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void CreateAccraditationControl()
|
|
{
|
|
Dictionary<object, Hashtable> dataCaches = SysModel != null ? SysModel.DataCaches : null;
|
|
if (!dataCaches.GetValue(this, "GetControlLocation", out this._dtFileds))
|
|
{
|
|
this._dtFileds = BaseModuleImpl.GetControlLocation(this.ModuleModelObj.FormKey, this.SysModel.ModuleCode);
|
|
}
|
|
if (!dataCaches.GetValue(this, "GetAddGroupData", out this._dtAddGroup))
|
|
{
|
|
this._dtAddGroup = BaseModuleImpl.GetAddGroupData(this.ModuleModelObj.FormKey);
|
|
}
|
|
|
|
|
|
this.ControlObj = new MyControl();
|
|
this.ControlObj.PrimaryValue = this.SysModel.PrimaryValue;
|
|
this.ControlObj.isAuditMain = true;
|
|
this.ControlObj.InitControl(this._dtFileds, pl_main, this._dtAddGroup);
|
|
|
|
if (SystemInfo.Instance.AuditAutoScroll) this.pl_main.AutoScroll = true;
|
|
|
|
this.ControlObj.OnDataSourceBindCallBack += new EventHandler(OnControlObjOnDataSourceBindCallBack);
|
|
if (this.AccditModelObj.BillModifyFields != "-1")
|
|
this.ControlObj.SetReadOnlyAllControl(true);
|
|
|
|
|
|
DataTable AuthorityTable = PowerImpl.GetModuleAuthorityEnable(this.SysModel.ModuleCode);
|
|
|
|
//改变控件状态 必填字段 (先设置必填字段,后面设置操作字段时可以改变颜色)
|
|
string RequiredFields = this.AccditModelObj.RequiredFields.Trim(',');
|
|
if (!string.IsNullOrEmpty(RequiredFields) && RequiredFields != "-1")
|
|
{
|
|
foreach (DataRow dr in this._dtFileds.Rows)
|
|
{
|
|
string fieldName = dr["fieldName"] + "";
|
|
this.ControlObj.SetRequiredControl(fieldName, RequiredFields.Split(',').Contains(fieldName), false);
|
|
}
|
|
}
|
|
|
|
string OperationField = this.AccditModelObj.BillModifyFields.Trim(',');
|
|
//改变控件状态 操作字段
|
|
if (!string.IsNullOrEmpty(OperationField) && OperationField != "-1")
|
|
{
|
|
foreach (string item in OperationField.Split(','))
|
|
{
|
|
BaseUserControl control = this.ControlObj.FindControl(item);
|
|
if (control == null) continue;
|
|
if (string.IsNullOrWhiteSpace(control.Model.PrivilegeOper))
|
|
{
|
|
//没有人员权限,转成可编辑
|
|
this.ControlObj.SetReadOnlyControl(item, false, false);
|
|
}
|
|
else
|
|
{
|
|
List<int> targetPrivTypeIds = new List<int>();
|
|
foreach (string permission in control.Model.PrivilegeOper.Split(','))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(permission)) targetPrivTypeIds.Add(int.Parse(permission));
|
|
}
|
|
//获取权限对应的人员名称
|
|
string userString = string.Join(",", AuthorityTable.AsEnumerable()
|
|
.Where(row => targetPrivTypeIds.Contains(row.Field<int>("privTypeId")))
|
|
.Select(row => row.Field<string>("userList"))
|
|
.Where(value => value != null)
|
|
.ToList());
|
|
//有权限的字段,转成可编辑
|
|
if (userString.Split(',').Contains(ERPInfo.Instance.UserName)) this.ControlObj.SetReadOnlyControl(item, false, false);
|
|
|
|
}
|
|
}
|
|
//foreach (DataRow dr in this._dtFileds.Rows)
|
|
//{
|
|
// string fieldName = dr["fieldName"] + "";
|
|
// this.ControlObj.SetReadOnlyControl(fieldName, !OperationField.Split(',').Contains(fieldName), true);
|
|
//}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// <para>说明:数据源绑定完成后执行</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期: </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The sender.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
void OnControlObjOnDataSourceBindCallBack(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
this.ControlObj.CanExecControl = false;
|
|
this.ControlObj.SetAllControlValue(this._baseRowData);
|
|
this.ControlObj.CanExecControl = true;
|
|
this.InitTabData();
|
|
this.InitEditTabControl();
|
|
this.Opacity = 1;
|
|
this.SetColor();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 绘制水印
|
|
/// <summary>
|
|
/// <para>说明:绘制水印</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void gridFlow_Panint(object sender, PaintEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (this._waterMark != null)
|
|
{
|
|
System.Windows.Forms.Control control = sender as System.Windows.Forms.Control;
|
|
GraphicsText graphicsText = new GraphicsText();
|
|
graphicsText.Graphics = e.Graphics;
|
|
// 绘制围绕点旋转的文本
|
|
StringFormat format = new StringFormat();
|
|
format.Alignment = StringAlignment.Center;
|
|
format.LineAlignment = StringAlignment.Center;
|
|
|
|
int x = (control.Width - 90) / 2;
|
|
int y = (control.Height - 32) / 2;
|
|
// 绘制单据状态文本
|
|
if (!string.IsNullOrEmpty(this._waterMark.Text))
|
|
{
|
|
graphicsText.DrawString(this._waterMark.Text, new Font("宋体", 20, FontStyle.Bold), new SolidBrush(Color.Red), new PointF(x, y), format, -20f);
|
|
e.Graphics.TranslateTransform(x, y);
|
|
e.Graphics.RotateTransform(-20f);
|
|
|
|
if (Business.Impl.LanguageTranslation.Translatable)
|
|
{
|
|
// 1. 测量文本尺寸
|
|
SizeF textSize = e.Graphics.MeasureString(this._waterMark.Collect, new Font("宋体", 20, FontStyle.Bold), new SizeF(float.MaxValue, float.MaxValue), format);
|
|
// 2. 计算边框矩形的尺寸和位置
|
|
int rectWidth = (int)textSize.Width + 10;
|
|
e.Graphics.DrawRectangle(new Pen(Color.Red, 2f), new Rectangle(-rectWidth / 2, -19, rectWidth, 32));
|
|
}
|
|
else
|
|
{
|
|
e.Graphics.DrawRectangle(new Pen(Color.Red, 2f), new Rectangle(-45, -19, 90, 32));
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 附件
|
|
/// <summary>
|
|
/// <para>说明:附件操作</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void btnAttach_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrWhiteSpace(this.SysModel.PrimaryValue))
|
|
{
|
|
MessageUtil.Show(ResourceKeys.NotFoundMaterielNo);
|
|
}
|
|
else
|
|
{
|
|
string url = string.Format("pages/PhotoView.html?left=1&username={0}&password={1}&id={2}&isview={3}&dllcoid=", ERPInfo.Instance.UserName, ERPInfo.Instance.Password, this.SysModel.PrimaryValue, this.btnSave.Enabled ? "0" : "1");
|
|
// 固定传入参数(窗口标题、操作员ID、操作员名称、权限、模版编号)
|
|
string[] defaultArgs = string.Format(ModuleArgs.DefaultArgs, this.SysModel.FormText, this.SysModel.UserId, this.SysModel.UserName, this.SysModel.Privilege, this.SysModel.ModuleCode).Split('~');
|
|
string[] menuArgs = SystemInfo.Instance.BsAttachFlag.Equals("1") ? new string[] { "", "", url } : new string[] { string.Format(ModuleArgs.PubPhotoViewArgs, this.SysModel.PrimaryValue), "0", this.ModuleModelObj.MenuDirId + "", "" };
|
|
string[] args = defaultArgs.Concat(menuArgs).ToArray();
|
|
IForm form = FormHelper.LoadDllForm(SystemInfo.Instance.BsAttachFlag.Equals("1") ? ResourceDynamic.PubBrower : ResourceDynamic.PhotoView, args);
|
|
DialogResult result = form.SubForm.ShowDialog();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region 打印
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <para>说明:打印完成需要参数</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-07-09 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void GetPrintOtherParam()
|
|
{
|
|
//取得打印完成后的参数
|
|
if (this.ModuleModelObj.PrintSql.Contains("<<"))
|
|
{
|
|
string[] strs = this.ModuleModelObj.PrintSql.Split(new[] { ">>" }, 2, StringSplitOptions.None);
|
|
_mainPrintSql = strs[1];
|
|
_printModeCond = strs[0].Replace("<<", "");
|
|
}
|
|
if (!string.IsNullOrEmpty(_printModeCond) && _printModeCond.IndexOf(';') > 0)
|
|
{
|
|
string[] str = _printModeCond.Split(';');
|
|
DataRow item = AttachImpl.GetSystemModule(str[0]);
|
|
string tableName = item["TableName"] + "";
|
|
string modetype = item["modType"] + "";
|
|
string comprefix = BaseImpl.GetColumnPrefix(tableName);
|
|
string primaryKey = modetype == "1" ? BaseImpl.GetBasePrimaryKey(str[0]) : comprefix + "billdocument_id";
|
|
//表名,列前缀,主键字段,主键值,模块编号,主打印Sql
|
|
_printSaveParams = new List<string>() { tableName, comprefix, primaryKey, str[1], str[0], _mainPrintSql };
|
|
|
|
//判断是否直接打印 modetype 区别单据和基础档案模块
|
|
switch (modetype)
|
|
{
|
|
case "1":
|
|
ModuleModel mode = new ModuleModel(MainImpl.GetSystemdllTab(str[0]));
|
|
if (mode != null) _isExcPrint = mode.PrintType == 3;
|
|
break;
|
|
case "2":
|
|
BaseAccraditationModel model = new BaseAccraditationModel(BillAuditImpl.GetPubAuditProperty(str[0]));
|
|
if (model != null) _isExcPrint = model.BillPrintType == 3;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <para>说明:打印事件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-01-05 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
protected void itemPrint_ItemClick(object sender, ItemClickEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string printFile = e.Item.Tag + "";
|
|
this._flowRowData = BaseAuditImpl.GetCurrentFlowRowData(this.ModuleModelObj.MenuTable, this.ModuleModelObj.ParmaryKey, this.SysModel.PrimaryValue);
|
|
this.UpdateCirculationData();
|
|
string printPath = PubUtil.PrintFileAbsolutelyPath;
|
|
if (!File.Exists(printPath))
|
|
{
|
|
MessageUtil.Show(ResourceKeys.NotFoundPrintFile);
|
|
return;
|
|
}
|
|
if (_flowRowData == null)
|
|
{
|
|
MessageUtil.Show(ResourceKeys.DataNotFount);
|
|
return;
|
|
}
|
|
if (!ReplaceHelper.ReplaceRowParamCond(_flowRowData, this.ModuleModelObj.PrintCond))
|
|
{
|
|
MessageUtil.Show(ResourceKeys.DisSatisfyPrintCond);
|
|
return;
|
|
}
|
|
|
|
string tmpSql = ReplaceHelper.ReplaceRowParam(_flowRowData, this.ModuleModelObj.PrintSql);
|
|
string tmpSql1 = ReplaceHelper.ReplaceRowParam(_flowRowData, this.ModuleModelObj.PrintSql1);
|
|
string tmpSql2 = ReplaceHelper.ReplaceRowParam(_flowRowData, this.ModuleModelObj.PrintSql2);
|
|
|
|
|
|
|
|
|
|
//主Sql
|
|
string mainSql = string.Empty;
|
|
List<string> tmpSqls = new List<string>();
|
|
if (_printSaveParams != null && _printSaveParams.Count > 0)
|
|
{
|
|
_printSaveParams[5] = mainSql = ReplaceHelper.ReplaceRowParam(_flowRowData, _mainPrintSql);
|
|
_printSaveParams[3] = _flowRowData[_printSaveParams[2]] + "";
|
|
tmpSqls.Add(mainSql);
|
|
tmpSqls.Add(tmpSql1);
|
|
tmpSqls.AddRange(tmpSql2.Split(';').ToList());
|
|
}
|
|
if (printFile.Contains(PrintUtil.TemplateFlag))
|
|
{
|
|
PrintUtil.OnAfterPrint -= new EventHandler(OnReportPrintAfter);
|
|
PrintUtil.OnAfterPrint += new EventHandler(OnReportPrintAfter);
|
|
PrintUtil.FastReportPrint(tmpSqls, printFile, _isExcPrint);
|
|
}
|
|
else
|
|
{
|
|
DelphiHelper.LoadDelphiDll(printPath, printPath, printFile, tmpSql, tmpSql1, this.ModuleModelObj.PrintType, tmpSql2);
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <para>说明:打印完成后回调</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-07-05 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The sender.</param>
|
|
/// <param name="e">The e.</param>
|
|
protected void OnReportPrintAfter(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (_printSaveParams != null && _printSaveParams.Count > 0)
|
|
{
|
|
//打印完成后添加数据库
|
|
int result = BaseModuleImpl.SavePrintRecord(_printSaveParams[0], _printSaveParams[1], _printSaveParams[2], _printSaveParams[3], _printSaveParams[4]);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 更改保存
|
|
/// <summary>
|
|
/// <para>说明:更新保存操作</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
bool isSuccess = false;//是否保存成功
|
|
if (this.ControlObj.VerifyNull())
|
|
{
|
|
if (this.ControlObj.VerifyUpdated())
|
|
{
|
|
if (this.ControlObj.SaveBaseModuleData(this.SysModel.ModuleCode, this.ModuleModelObj.MenuTable, this.ModuleModelObj.ParmaryKey, ref this.SysModel.PrimaryValue, false, "", true, ModuleModelObj.NewVer))
|
|
{
|
|
AuditChangeLog.SaveHeaderChangeLog(this._baseRowData, this.ControlObj, this.SysModel.PrimaryValue, this.SysModel.StepCode, ERPInfo.Instance.UserId);
|
|
|
|
isSuccess = true;
|
|
foreach (XtraTabPage item in this.tab_basicInfo.TabControlObj.TabPages)
|
|
{
|
|
XtraTabPage tabPage = item as XtraTabPage;
|
|
GridDetailModel detailModel = this.tab_basicInfo.GetGridDetailModel(tabPage);
|
|
//this.tab_basicInfo.SetGridDataSource(tabPage, MainImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._baseRowData, detailModel.DetailSql)));
|
|
|
|
|
|
bool isDetailAttach = (detailModel.IsReadOnly || detailModel.IsChart);
|
|
|
|
if (tabPage.Tag is GridControlEx)
|
|
{
|
|
string sqlValue = isDetailAttach ? detailModel.DetailSql : GetSearchSql(detailModel);
|
|
GridControlEx grdExMain = (tabPage.Tag as GridControlEx);
|
|
if (!isDetailAttach) grdExMain.LastSearchSql = sqlValue;
|
|
this.tab_basicInfo.SetGridDataSource(tabPage, MainImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._baseRowData, sqlValue)));
|
|
}
|
|
else if (tabPage.Tag is TabMultipledetails)
|
|
{
|
|
TabMultipledetails tabMultipledetails = tabPage.Tag as TabMultipledetails;
|
|
tabMultipledetails.SetConditionValues(this._baseRowData);
|
|
GridControlEx grdExMain = (tabMultipledetails.SplitMain.Panel1.Tag as GridControlEx);
|
|
GridDetailModel MainModel = grdExMain.Tag as GridDetailModel;
|
|
string searchMainSql = ReplaceHelper.ReplaceRowParam(this._baseRowData, isDetailAttach ? MainModel.DetailSql : GetSearchSql(MainModel));
|
|
DataTable firstTable = MainImpl.GetDataTableResult(searchMainSql);
|
|
grdExMain.LastSearchSql = searchMainSql;
|
|
grdExMain.SetGridViewDataSource(firstTable);
|
|
if (tabMultipledetails.SplitMain.Panel2.Tag is GridControlEx)
|
|
{
|
|
GridControlEx grdExAdditional = (tabMultipledetails.SplitMain.Panel2.Tag as GridControlEx);
|
|
GridDetailModel AdditionalModel = grdExAdditional.Tag as GridDetailModel;
|
|
string searchAddSql = ReplaceHelper.ReplaceRowParam(this._baseRowData, isDetailAttach ? AdditionalModel.DetailSql : GetSearchSql(AdditionalModel));
|
|
if (!MainModel.IsUnioDetail)
|
|
{
|
|
grdExAdditional.LastSearchSql = searchAddSql;
|
|
grdExAdditional.SetGridViewDataSource(MainImpl.GetDataTableResult(searchAddSql));
|
|
}
|
|
//右侧是左侧的明细,左侧没有数据时。右侧赋空值(因为无法触发左侧行改变事件)
|
|
if (MainModel.IsUnioDetail && firstTable.Rows.Count == 0)
|
|
{
|
|
grdExAdditional.LastSearchSql = "";
|
|
grdExAdditional.SetGridViewDataSource(new DataTable());
|
|
}
|
|
}
|
|
else if (tabMultipledetails.SplitMain.Panel2.Tag is ChartControlEx)
|
|
{
|
|
ChartControlEx grdExAdditional = (tabMultipledetails.SplitMain.Panel2.Tag as ChartControlEx);
|
|
GridDetailModel AdditionalModel = grdExAdditional.Tag as GridDetailModel;
|
|
string searchAddSql = this.GetSearchSql(AdditionalModel);
|
|
DataTable table = MainImpl.GetDataTableResult(searchAddSql);
|
|
grdExAdditional.CreateChart(table);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageUtil.Show(ResourceKeys.UnUpdateData);
|
|
}
|
|
}
|
|
|
|
if (this.ModuleModelObj.SaveSuccessfullyRefresh && !isSuccess) return;//保存成功才刷新
|
|
// 刷新主表
|
|
this._flowRowData = BaseAuditImpl.GetCurrentFlowRowData(this.ModuleModelObj.MenuTable, this.ModuleModelObj.ParmaryKey, this.SysModel.PrimaryValue);
|
|
this.UpdateCirculationData();
|
|
this._baseRowData = BaseAuditImpl.GetCurrentControlData(ReplaceHelper.ReplaceWhereCond(ReplaceHelper.ReplaceUserInfo(this.ModuleModelObj.MenuSql)), this.ModuleModelObj.ParmaryKey, this.SysModel.PrimaryValue);
|
|
if (this._baseRowData == null) this._baseRowData = this._flowRowData;
|
|
this.ControlObj.CanExecControl = false;
|
|
this.ControlObj.SetAllControlValue(this._baseRowData);//刷新表头数据
|
|
this.ControlObj.CanExecControl = true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 退出表单
|
|
/// <summary>
|
|
/// <para>说明:退出表单</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
this.DialogResult = DialogResult.No;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 审核
|
|
/// <summary>
|
|
/// <para>说明:提醒审核审核</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2020-08-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnRemindAudit_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (VerificationRequired()) return;
|
|
|
|
if (this.SysModel.ConfirmId == "1")
|
|
{
|
|
if (BaseAuditImpl.SetBaseFlowComfirm(this.SysModel.UserId, this.SysModel.ModuleCode, this.SysModel.PrimaryValue, this.txt_remark.Text) > 0)
|
|
{
|
|
MessageUtil.Show(ResourceKeys.ConfirmSuccess);
|
|
this.Close();
|
|
}
|
|
else
|
|
{
|
|
MessageUtil.Show(ResourceKeys.ConfirmFail);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bool isAudit = true;
|
|
string confirmOpers = string.Empty, remindOpers = string.Empty;
|
|
string nextSelectStepCode = string.Empty;
|
|
string nextSelectStepOper = string.Empty;
|
|
FrmRemindSelectForm formRemind = new FrmRemindSelectForm();
|
|
formRemind.KeyValue = this.SysModel.PrimaryValue;
|
|
formRemind.MenuCode = this.SysModel.ModuleCode;
|
|
isAudit = formRemind.ShowDialog() == DialogResult.Yes;
|
|
confirmOpers = formRemind.ConfirmOpers;
|
|
remindOpers = formRemind.RemindOpers;
|
|
if (isAudit)
|
|
{
|
|
|
|
if (this.ControlObj.VerifyNull())
|
|
{
|
|
if (!this.ControlObj.isRequiredFields(this.AccditModelObj.RequiredFields)) return;
|
|
string parmaryValue = this.SysModel.PrimaryValue;
|
|
if (this.ControlObj.SaveBaseModuleData(this.SysModel.ModuleCode, this.ModuleModelObj.MenuTable, this.ModuleModelObj.ParmaryKey, ref parmaryValue, false, "", false, this.ModuleModelObj.NewVer))
|
|
{
|
|
AuditChangeLog.SaveHeaderChangeLog(this._baseRowData, this.ControlObj, parmaryValue, this.SysModel.StepCode, ERPInfo.Instance.UserId);
|
|
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, this.txt_remark.Text, remindOpers, confirmOpers);
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText,this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, this.txt_remark.Text, remindOpers, confirmOpers);
|
|
string result = this.AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, this.txt_remark.Text, remindOpers, confirmOpers);
|
|
if ("1".Equals(result))
|
|
{
|
|
//推送消息
|
|
PushHelper push = new PushHelper(this.SysModel.PrimaryValue, this.SysModel.StepCode, this.SysModel.ModuleCode, this._beforeUsers, this._beforeMenuName, this._beforeId);
|
|
push.Push_Base_Oper_Message();
|
|
this.DialogResult = DialogResult.OK;
|
|
|
|
if (refreshThePage != null)
|
|
{
|
|
refreshThePage("审核成功", ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "");
|
|
}
|
|
else
|
|
{
|
|
//上一次点开page 当前打开page删除后要选中的page
|
|
if (ERPInfo.Instance.PageControl != null)
|
|
{
|
|
|
|
string id = ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "";
|
|
XtraTabPage beforePage = ERPInfo.Instance.ModuleForms[id].BeforePage;
|
|
if (beforePage != null)
|
|
{
|
|
//MessageUtil.Show("审核成功");
|
|
//要删除的page
|
|
XtraTabPage removePage = new XtraTabPage();
|
|
ERPInfo.Instance.ModuleForms.Remove(id);
|
|
foreach (XtraTabPage tablepage in ERPInfo.Instance.PageControl.TabPages)
|
|
{
|
|
if (tablepage.Tag == null) continue;
|
|
if (tablepage.Tag.ToString().Equals(id)) removePage = tablepage;
|
|
if (tablepage == beforePage) ERPInfo.Instance.PageControl.SelectedTabPage = beforePage;
|
|
}
|
|
ERPInfo.Instance.PageControl.TabPages.Remove(removePage);
|
|
removePage.Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!"9".Equals(result)) MessageUtil.Show(ResourceKeys.AuditFail + "\r\n" + msgText);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:审核</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnAudit_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
//下方页签保存
|
|
if (this.ModuleModelObj.ReviewSaveAdditional)
|
|
{
|
|
this.SaveAdditionalModules();
|
|
}
|
|
if (this.DetailsRequired)
|
|
{
|
|
|
|
foreach (XtraTabPage page in this.tab_basicInfo.TabControlObj.TabPages)
|
|
{
|
|
GridDetailModel model = this.tab_basicInfo.GetGridDetailModel(page);
|
|
bool isDetailAttach = (model.IsReadOnly || model.IsChart);
|
|
|
|
if (page.Tag is GridControlEx)
|
|
{
|
|
string sqlValue = isDetailAttach ? model.DetailSql : GetSearchSql(model);
|
|
GridControlEx grdExMain = (page.Tag as GridControlEx);
|
|
if (!isDetailAttach) grdExMain.LastSearchSql = sqlValue;
|
|
this.tab_basicInfo.SetGridDataSource(page, MainImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(this._baseRowData, sqlValue)));
|
|
if(!string.IsNullOrWhiteSpace(grdExMain.RequiredFields) &&!grdExMain.GridControl.isRequiredFields(grdExMain.RequiredFields, grdExMain.GridView)) return;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (VerificationRequired()) return;
|
|
WaitForm.ShowForm(ResourceKeys.Handing);
|
|
string nextSelectStepCode = string.Empty;
|
|
string nextSelectStepOper = string.Empty;
|
|
if (this.SysModel.ConfirmId == "1")
|
|
{
|
|
if (BaseAuditImpl.SetBaseFlowComfirm(this.SysModel.UserId, this.SysModel.ModuleCode, this.SysModel.PrimaryValue, this.txt_remark.Text) > 0)
|
|
{
|
|
MessageUtil.Show(ResourceKeys.ConfirmSuccess);
|
|
this.Close();
|
|
}
|
|
else
|
|
{
|
|
MessageUtil.Show(ResourceKeys.ConfirmFail);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string confirmOpers = string.Empty, remindOpers = string.Empty;
|
|
if (SystemInfo.Instance.auditComfirmOpers.Split(',').Contains(ERPInfo.Instance.UserName) || "1".Equals(SystemInfo.Instance.auditComfirmOpers))
|
|
{
|
|
if (MessageUtil.Show(string.Format(ResourceKeys.ConfirmIsAudit), MessageBoxButtons.YesNo) == DialogResult.No)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
if (this.ControlObj.VerifyNull())
|
|
{
|
|
if (!this.ControlObj.isRequiredFields(this.AccditModelObj.RequiredFields)) return;
|
|
string parmaryValue = this.SysModel.PrimaryValue;
|
|
if (this.ControlObj.SaveBaseModuleData(this.SysModel.ModuleCode, this.ModuleModelObj.MenuTable, this.ModuleModelObj.ParmaryKey, ref parmaryValue, false, "", false, this.ModuleModelObj.NewVer))
|
|
{
|
|
AuditChangeLog.SaveHeaderChangeLog(this._baseRowData, this.ControlObj, parmaryValue, this.SysModel.StepCode, ERPInfo.Instance.UserId);
|
|
|
|
|
|
string opinion = this.txt_remark.Text;//审核意见
|
|
if (this.combox_Suggestion.EditText.Equals("不同意"))
|
|
{
|
|
opinion = this.combox_Suggestion.EditText + "^" + opinion;
|
|
}
|
|
//审核前调用Api
|
|
if (ApiHelper.IsExecEventApi(Interface.Api.OperateEvent.BeforeModuleAuditStateChange, this.SysModel.ModuleCode, 0))
|
|
{
|
|
ApiHelper apiHelper = new ApiHelper(this.SysModel.ModuleCode, parmaryValue, this.ModuleModelObj.ParmaryKey, this.ModuleModelObj.MenuTable, 0);
|
|
apiHelper.OnEvent(Interface.Api.OperateEvent.BeforeModuleAuditStateChange, Interface.Api.ActionType.Audit);//审核
|
|
if (!string.IsNullOrEmpty(apiHelper.apiResutMsg))
|
|
{
|
|
DialogResult dialogResult = MessageUtil.Show(ResourceKeys.AuditFail + "\r\n" + apiHelper.apiResutMsg, MessageBoxButtons.YesNo);
|
|
return;
|
|
}
|
|
}
|
|
#region 审核前如果存在签章右键则执行上传
|
|
if (BaseImpl.HasExistsTable("p_fm_signFileTab") && tab_basicInfo.TabControlObj.TabPages.Count > 0)
|
|
{
|
|
XtraTabPage xtraTabPage = tab_basicInfo.TabControlObj.TabPages[0];
|
|
System.Windows.Forms.Control control = xtraTabPage.Controls.Find("GridControlEx", true).FirstOrDefault();
|
|
if (control != null && control is GridControlEx)
|
|
{
|
|
GridControlEx gridControlEx = control as GridControlEx;
|
|
if (gridControlEx.GridControl.ContextMenuStrip != null)
|
|
{
|
|
ToolStripMenuItem singMenu = gridControlEx.GridControl.ContextMenuStrip.Items.Cast<ToolStripMenuItem>().Where(n => n.Tag != null && n.Tag is GridRightMenuModel && (n.Tag as GridRightMenuModel).DllName.Equals("Lskj.PubPdfSign.dll", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
|
if (singMenu != null)
|
|
{
|
|
GridRightMenuModel menuModel = singMenu.Tag as GridRightMenuModel;
|
|
DataTable dataTable = gridControlEx.GridControl.DataSourceTable();
|
|
if (dataTable.Rows.Count > 0)
|
|
{
|
|
DataRow dataRow = dataTable.Rows[0];
|
|
string[] args = { menuModel.MenuName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "3", ModuleModelObj.ModeCode, menuModel.DllParam1, AccditModelObj.StepCode, ReplaceHelper.ReplaceRowParam(dataRow, menuModel.DllParam3), ReplaceHelper.ReplaceRowParam(dataRow, menuModel.DllParam4), "2", IsFinishPage ? "1" : "0" };
|
|
IForm form = FormHelper.LoadDllForm("Lskj.PubPdfSign.dll", args);
|
|
if (form != null && form.SubForm != null)
|
|
{
|
|
form.SubForm.ShowDialog();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, opinion, remindOpers, confirmOpers);
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, opinion, remindOpers, confirmOpers);
|
|
string result = this.AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, opinion, remindOpers, confirmOpers);
|
|
WaitForm.HideForm();
|
|
if ("1".Equals(result))
|
|
{
|
|
//推送消息
|
|
PushHelper push = new PushHelper(this.SysModel.PrimaryValue, this.SysModel.StepCode, this.SysModel.ModuleCode, this._beforeUsers, this._beforeMenuName, this._beforeId);
|
|
push.Push_Base_Oper_Message();
|
|
#region 审核成功后调用API
|
|
if (ApiHelper.IsExecEventApi(Interface.Api.OperateEvent.AfterModuleAuditStateChange, this.SysModel.ModuleCode, 0))
|
|
{
|
|
ApiHelper apiHelper = new ApiHelper(this.SysModel.ModuleCode, parmaryValue, this.ModuleModelObj.ParmaryKey, this.ModuleModelObj.MenuTable, 0);
|
|
apiHelper.OnEvent(Interface.Api.OperateEvent.AfterModuleAuditStateChange, Interface.Api.ActionType.Audit);//审核
|
|
if (!string.IsNullOrEmpty(apiHelper.apiResutMsg))
|
|
MessageUtil.Show(apiHelper.apiResutMsg);
|
|
}
|
|
#endregion
|
|
this.DialogResult = DialogResult.OK;
|
|
if (refreshThePage != null)
|
|
{
|
|
refreshThePage("审核成功", ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "");
|
|
}
|
|
else
|
|
{
|
|
//上一次点开page 当前打开page删除后要选中的page
|
|
if (ERPInfo.Instance.PageControl != null)
|
|
{
|
|
|
|
string id = ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "";
|
|
XtraTabPage beforePage = ERPInfo.Instance.ModuleForms[id].BeforePage;
|
|
if (beforePage != null)
|
|
{
|
|
//MessageUtil.Show("审核成功");
|
|
//要删除的page
|
|
XtraTabPage removePage = new XtraTabPage();
|
|
ERPInfo.Instance.ModuleForms.Remove(id);
|
|
foreach (XtraTabPage tablepage in ERPInfo.Instance.PageControl.TabPages)
|
|
{
|
|
if (tablepage.Tag == null) continue;
|
|
if (tablepage.Tag.ToString().Equals(id)) removePage = tablepage;
|
|
if (tablepage == beforePage) ERPInfo.Instance.PageControl.SelectedTabPage = beforePage;
|
|
}
|
|
ERPInfo.Instance.PageControl.TabPages.Remove(removePage);
|
|
removePage.Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if ("-10".Equals(result))
|
|
{
|
|
DataRow NextStepFlag = BaseAuditImpl.SetUpNextStep(this.SysModel.ModuleCode, this.ModuleModelObj.BillType, this.SysModel.StepCode);
|
|
if (NextStepFlag != null)
|
|
{
|
|
FrmLookupData lookup = new FrmLookupData();
|
|
lookup.ModuleCode = this.SysModel.ModuleCode;
|
|
lookup.BillType = this.ModuleModelObj.BillType;
|
|
lookup.StepCode = this.SysModel.StepCode;
|
|
lookup.nextSelectStepCode = nextSelectStepCode;
|
|
lookup.nextSelectStepCode = nextSelectStepCode;
|
|
bool isAginAudit = lookup.ShowDialog() == DialogResult.Yes;
|
|
nextSelectStepCode = lookup.nextSelectStepCode;
|
|
nextSelectStepCode = lookup.nextSelectStepCode;
|
|
if (isAginAudit)
|
|
{
|
|
//string Aginresult = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, this.txt_remark.Text, remindOpers, confirmOpers, false, 0, 1);
|
|
string Aginresult = this.AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, this.txt_remark.Text, remindOpers, confirmOpers, false, 0, 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageUtil.Show("配置新版审批失败!" + "\r\n" + msgText);
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
if (!"9".Equals(result)) MessageUtil.Show(ResourceKeys.AuditFail + "\r\n" + msgText);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
WaitForm.HideForm();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 返退操作
|
|
/// <summary>
|
|
/// <para>说明:提醒返退</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2020-08-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnRemindReturn_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (VerificationRequired()) return;
|
|
|
|
string nextSelectStepCode = string.Empty;
|
|
string nextSelectStepOper = string.Empty;
|
|
int returnd = ExecuteBackSelect(this._baseRowData);
|
|
if (returnd == -9) return;
|
|
_auditAdvic = string.IsNullOrWhiteSpace(_auditAdvic) ? txt_remark.Text : string.Empty;
|
|
if (this.SysModel.StepOver == "1")
|
|
{
|
|
//确认审核不通过并反退该单据?
|
|
if (MessageUtil.Show(string.Format(ResourceKeys.ConfimAuditFailAndReturnBill), MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
{
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, this.txt_remark.Text, "", "", false, returnd, 0, true);
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, this.txt_remark.Text, "", "", false, returnd, 0, true);
|
|
string result = this.AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "F", this._flowTypeStepModel.RemindSelect, this.txt_remark.Text, "", "", false, returnd, 0, true);
|
|
if ("1".Equals(result))
|
|
{
|
|
MessageUtil.Show(ResourceKeys.ForcedSuccess);
|
|
//暂未推送消息
|
|
PushHelper push = new PushHelper(this.SysModel.PrimaryValue, this.SysModel.StepCode, this.SysModel.ModuleCode, this._beforeUsers, this._beforeMenuName, this._beforeId);
|
|
push.Push_Base_Oper_Message();
|
|
this.DialogResult = DialogResult.OK;
|
|
|
|
if (refreshThePage != null)
|
|
{
|
|
refreshThePage("", ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "");
|
|
}
|
|
else
|
|
{
|
|
//上一次点开page 当前打开page删除后要选中的page
|
|
if (ERPInfo.Instance.PageControl != null)
|
|
{
|
|
|
|
string id = ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "";
|
|
XtraTabPage beforePage = ERPInfo.Instance.ModuleForms[id].BeforePage;
|
|
if (beforePage != null)
|
|
{
|
|
//MessageUtil.Show("审核成功");
|
|
//要删除的page
|
|
XtraTabPage removePage = new XtraTabPage();
|
|
ERPInfo.Instance.ModuleForms.Remove(id);
|
|
foreach (XtraTabPage tablepage in ERPInfo.Instance.PageControl.TabPages)
|
|
{
|
|
if (tablepage.Tag == null) continue;
|
|
if (tablepage.Tag.ToString().Equals(id)) removePage = tablepage;
|
|
if (tablepage == beforePage) ERPInfo.Instance.PageControl.SelectedTabPage = beforePage;
|
|
}
|
|
ERPInfo.Instance.PageControl.TabPages.Remove(removePage);
|
|
removePage.Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!"9".Equals(result)) MessageUtil.Show(ResourceKeys.ForcedFail + "\r\n" + msgText);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bool isAudit = true;
|
|
string confirmOpers = string.Empty, remindOpers = string.Empty;
|
|
FrmRemindSelectForm formRemind = new FrmRemindSelectForm();
|
|
formRemind.KeyValue = this.SysModel.PrimaryValue;
|
|
formRemind.MenuCode = this.SysModel.ModuleCode;
|
|
isAudit = formRemind.ShowDialog() == DialogResult.Yes;
|
|
confirmOpers = formRemind.ConfirmOpers;
|
|
remindOpers = formRemind.RemindOpers;
|
|
if (isAudit)
|
|
{
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, remindOpers, confirmOpers, true, returnd);
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText,this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, remindOpers, confirmOpers, true, returnd);
|
|
string result = this.AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, remindOpers, confirmOpers, true, returnd);
|
|
|
|
if (result == "1")
|
|
{
|
|
MessageUtil.Show(ResourceKeys.ForcedSuccess);
|
|
//推送消息
|
|
PushHelper push = new PushHelper(this.SysModel.PrimaryValue, this.SysModel.StepCode, this.SysModel.ModuleCode, this._beforeUsers, this._beforeMenuName, this._beforeId);
|
|
push.Push_Base_Oper_Message();
|
|
this.DialogResult = DialogResult.OK;
|
|
|
|
if (refreshThePage != null)
|
|
{
|
|
refreshThePage("", ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "");
|
|
}
|
|
else
|
|
{
|
|
//上一次点开page 当前打开page删除后要选中的page
|
|
if (ERPInfo.Instance.PageControl != null)
|
|
{
|
|
|
|
string id = ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "";
|
|
XtraTabPage beforePage = ERPInfo.Instance.ModuleForms[id].BeforePage;
|
|
if (beforePage != null)
|
|
{
|
|
//MessageUtil.Show("审核成功");
|
|
//要删除的page
|
|
XtraTabPage removePage = new XtraTabPage();
|
|
ERPInfo.Instance.ModuleForms.Remove(id);
|
|
foreach (XtraTabPage tablepage in ERPInfo.Instance.PageControl.TabPages)
|
|
{
|
|
if (tablepage.Tag == null) continue;
|
|
if (tablepage.Tag.ToString().Equals(id)) removePage = tablepage;
|
|
if (tablepage == beforePage) ERPInfo.Instance.PageControl.SelectedTabPage = beforePage;
|
|
}
|
|
ERPInfo.Instance.PageControl.TabPages.Remove(removePage);
|
|
removePage.Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!"9".Equals(result)) MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, msgText));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:返退</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-22 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnReturnd_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
|
|
if (!string.IsNullOrWhiteSpace(SystemInfo.Instance.AntiAuditUrl) && this.ModuleModelObj.NewVer == 1)
|
|
{
|
|
//string url = string.Format("/pages/app/app.html?stepcode=200&id=YQPS250610001&xtype=plugins.BaseAccraditation.AuditBackBox&username={0}&password={1}&dllcoid=", ERPInfo.Instance.UserName, "2383C0ADDCD699FB2CB45079ABB39E3CEF242D98");
|
|
string url = ReplaceHelper.ReplaceUserInfo(SystemInfo.Instance.AntiAuditUrl);
|
|
url = url.Replace("{stepcode}", this.SysModel.StepCode).Replace("{primaryvalue}", this.SysModel.PrimaryValue).Replace("{remark}", txt_remark.Text);
|
|
string[] defaultArgs = string.Format(ModuleArgs.DefaultArgs, this.SysModel.FormText, this.SysModel.UserId, this.SysModel.UserName, this.SysModel.Privilege, this.SysModel.ModuleCode).Split('~');
|
|
string[] menuArgs = new string[] { "", "", url };
|
|
string[] args = defaultArgs.Concat(menuArgs).ToArray();
|
|
IForm form = FormHelper.LoadDllForm(ResourceDynamic.PubBrower, args);
|
|
form.SubForm.WindowState = FormWindowState.Normal;
|
|
DialogResult result = form.SubForm.ShowDialog();
|
|
if (result == DialogResult.OK)
|
|
{
|
|
this.DialogResult = DialogResult.OK;
|
|
|
|
if (refreshThePage != null)
|
|
{
|
|
refreshThePage("", ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "");
|
|
}
|
|
else
|
|
{
|
|
//上一次点开page 当前打开page删除后要选中的page
|
|
if (ERPInfo.Instance.PageControl != null)
|
|
{
|
|
|
|
string id = ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "";
|
|
XtraTabPage beforePage = ERPInfo.Instance.ModuleForms[id].BeforePage;
|
|
if (beforePage != null)
|
|
{
|
|
//MessageUtil.Show("审核成功");
|
|
//要删除的page
|
|
XtraTabPage removePage = new XtraTabPage();
|
|
ERPInfo.Instance.ModuleForms.Remove(id);
|
|
foreach (XtraTabPage tablepage in ERPInfo.Instance.PageControl.TabPages)
|
|
{
|
|
if (tablepage.Tag == null) continue;
|
|
if (tablepage.Tag.ToString().Equals(id)) removePage = tablepage;
|
|
if (tablepage == beforePage) ERPInfo.Instance.PageControl.SelectedTabPage = beforePage;
|
|
}
|
|
ERPInfo.Instance.PageControl.TabPages.Remove(removePage);
|
|
removePage.Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
if (VerificationRequired()) return;
|
|
|
|
int returnd = ExecuteBackSelect(this._baseRowData);
|
|
if (returnd == -9) return;
|
|
string nextSelectStepCode = string.Empty;
|
|
string nextSelectStepOper = string.Empty;
|
|
_auditAdvic = string.IsNullOrWhiteSpace(_auditAdvic) ? txt_remark.Text : _auditAdvic;
|
|
if (this.SysModel.StepOver == "1")
|
|
{
|
|
//确认审核不通过并反退该单据?
|
|
if (MessageUtil.Show(string.Format(ResourceKeys.ConfimAuditFailAndReturnBill), MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
{
|
|
string parmaryValue = this.SysModel.PrimaryValue;
|
|
if (this.ControlObj.SaveBaseModuleData(this.SysModel.ModuleCode, this.ModuleModelObj.MenuTable, this.ModuleModelObj.ParmaryKey, ref parmaryValue, false, "", false, this.ModuleModelObj.NewVer))
|
|
{
|
|
AuditChangeLog.SaveHeaderChangeLog(this._baseRowData, this.ControlObj, parmaryValue, this.SysModel.StepCode, ERPInfo.Instance.UserId);
|
|
|
|
//反审前调用Api
|
|
if (ApiHelper.IsExecEventApi(Interface.Api.OperateEvent.BeforeModuleAuditStateChange, this.SysModel.ModuleCode, 0))
|
|
{
|
|
ApiHelper apiHelper = new ApiHelper(this.SysModel.ModuleCode, parmaryValue, this.ModuleModelObj.ParmaryKey, this.ModuleModelObj.MenuTable, 0);
|
|
apiHelper.OnEvent(Interface.Api.OperateEvent.BeforeModuleAuditStateChange, Interface.Api.ActionType.AuditBack);
|
|
if (!string.IsNullOrEmpty(apiHelper.apiResutMsg))
|
|
{
|
|
DialogResult dialogResult = MessageUtil.Show(ResourceKeys.ForcedFail + "\r\n" + apiHelper.apiResutMsg, MessageBoxButtons.YesNo);
|
|
return;
|
|
}
|
|
}
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, "", "", true, returnd, 0, true);
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText,this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, "", "", true, returnd, 0, true);
|
|
string result = this.AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, "", "", true, returnd, 0, true);
|
|
if ("1".Equals(result))
|
|
{
|
|
MessageUtil.Show(ResourceKeys.ForcedSuccess);
|
|
//暂未推送消息
|
|
PushHelper push = new PushHelper(this.SysModel.PrimaryValue, this.SysModel.StepCode, this.SysModel.ModuleCode, this._beforeUsers, this._beforeMenuName, this._beforeId);
|
|
push.Push_Base_Oper_Message();
|
|
//反审后调用Api
|
|
if (ApiHelper.IsExecEventApi(Interface.Api.OperateEvent.AfterModuleAuditStateChange, this.SysModel.ModuleCode, 0))
|
|
{
|
|
ApiHelper apiHelper = new ApiHelper(this.SysModel.ModuleCode, parmaryValue, this.ModuleModelObj.ParmaryKey, this.ModuleModelObj.MenuTable, 0);
|
|
apiHelper.OnEvent(Interface.Api.OperateEvent.AfterModuleAuditStateChange, Interface.Api.ActionType.AuditBack);
|
|
if (!string.IsNullOrEmpty(apiHelper.apiResutMsg))
|
|
{
|
|
MessageUtil.Show(apiHelper.apiResutMsg);
|
|
}
|
|
}
|
|
this.DialogResult = DialogResult.OK;
|
|
if (refreshThePage != null)
|
|
{
|
|
refreshThePage("", ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "");
|
|
}
|
|
else
|
|
{
|
|
//上一次点开page 当前打开page删除后要选中的page
|
|
if (ERPInfo.Instance.PageControl != null)
|
|
{
|
|
|
|
string id = ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "";
|
|
XtraTabPage beforePage = ERPInfo.Instance.ModuleForms[id].BeforePage;
|
|
if (beforePage != null)
|
|
{
|
|
//MessageUtil.Show("审核成功");
|
|
//要删除的page
|
|
XtraTabPage removePage = new XtraTabPage();
|
|
ERPInfo.Instance.ModuleForms.Remove(id);
|
|
foreach (XtraTabPage tablepage in ERPInfo.Instance.PageControl.TabPages)
|
|
{
|
|
if (tablepage.Tag == null) continue;
|
|
if (tablepage.Tag.ToString().Equals(id)) removePage = tablepage;
|
|
if (tablepage == beforePage) ERPInfo.Instance.PageControl.SelectedTabPage = beforePage;
|
|
}
|
|
ERPInfo.Instance.PageControl.TabPages.Remove(removePage);
|
|
removePage.Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!"9".Equals(result)) MessageUtil.Show(ResourceKeys.ForcedFail + "\r\n" + msgText);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (SystemInfo.Instance.backAuditComfirmOpers.Split(',').Contains(ERPInfo.Instance.UserName) || "1".Equals(SystemInfo.Instance.backAuditComfirmOpers))
|
|
{
|
|
|
|
if (MessageUtil.Show(string.Format(ResourceKeys.ConfimAuditFailAndReturnBill), MessageBoxButtons.YesNo) == DialogResult.No)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
string confirmOpers = string.Empty, remindOpers = string.Empty;
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, remindOpers, confirmOpers, true, returnd);
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, remindOpers, confirmOpers, true, returnd);
|
|
string result = this.AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "R", "", _auditAdvic, remindOpers, confirmOpers, true, returnd);
|
|
|
|
if (result == "1")
|
|
{
|
|
MessageUtil.Show(ResourceKeys.ForcedSuccess);
|
|
//推送消息
|
|
PushHelper push = new PushHelper(this.SysModel.PrimaryValue, this.SysModel.StepCode, this.SysModel.ModuleCode, this._beforeUsers, this._beforeMenuName, this._beforeId);
|
|
push.Push_Base_Oper_Message();
|
|
this.DialogResult = DialogResult.OK;
|
|
if (refreshThePage != null)
|
|
{
|
|
refreshThePage("", ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "");
|
|
}
|
|
else
|
|
{
|
|
//上一次点开page 当前打开page删除后要选中的page
|
|
if (ERPInfo.Instance.PageControl != null)
|
|
{
|
|
|
|
string id = ERPInfo.Instance.PageControl.SelectedTabPage.Tag + "";
|
|
XtraTabPage beforePage = ERPInfo.Instance.ModuleForms[id].BeforePage;
|
|
if (beforePage != null)
|
|
{
|
|
//MessageUtil.Show("审核成功");
|
|
//要删除的page
|
|
XtraTabPage removePage = new XtraTabPage();
|
|
ERPInfo.Instance.ModuleForms.Remove(id);
|
|
foreach (XtraTabPage tablepage in ERPInfo.Instance.PageControl.TabPages)
|
|
{
|
|
if (tablepage.Tag == null) continue;
|
|
if (tablepage.Tag.ToString().Equals(id)) removePage = tablepage;
|
|
if (tablepage == beforePage) ERPInfo.Instance.PageControl.SelectedTabPage = beforePage;
|
|
}
|
|
ERPInfo.Instance.PageControl.TabPages.Remove(removePage);
|
|
removePage.Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!"9".Equals(result)) MessageUtil.Show(string.Format(ResourceKeys.ForcedFail, msgText));
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:执行返退选择</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-22 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="row">The row.</param>
|
|
/// <returns>System.Int32.</returns>
|
|
private int ExecuteBackSelect(DataRow row)
|
|
{
|
|
if (row == null)
|
|
{
|
|
MessageUtil.Show(ResourceKeys.NoFindAntiauditBill);
|
|
return -9;
|
|
}
|
|
if (this.ModuleModelObj.BackSelected == "0") return -1;
|
|
if (this.SysModel.StepCode == "100")
|
|
{
|
|
FrmBackSelect frmBackSelNew = new FrmBackSelect();
|
|
//frmBackSelNew.FrmBackSelectEx.StepSelection.Hide();
|
|
frmBackSelNew.Sysmodel = this.SysModel;
|
|
frmBackSelNew.ModuleModelObj = this.ModuleModelObj;
|
|
frmBackSelNew.FrmBackSelectEx.LabelAdvice.EditText = this.combox_Suggestion.EditText;
|
|
frmBackSelNew.InitControlSpecial();
|
|
if (frmBackSelNew.ShowDialog() != DialogResult.OK) return -9;
|
|
this._auditAdvic = frmBackSelNew.ComfirmMsg;
|
|
return 0;
|
|
}
|
|
|
|
|
|
FrmBackSelect frmBackSel = new FrmBackSelect();
|
|
frmBackSel.Sysmodel = this.SysModel;
|
|
frmBackSel.ModuleModelObj = this.ModuleModelObj;
|
|
frmBackSel.FrmBackSelectEx.LabelAdvice.EditText = this.combox_Suggestion.EditText;
|
|
frmBackSel.InitControl();
|
|
if (frmBackSel.ShowDialog() != DialogResult.OK) return -9;
|
|
this._auditAdvic = frmBackSel.ComfirmMsg;
|
|
return frmBackSel.SelectStepCode;
|
|
}
|
|
#endregion
|
|
|
|
#region 关闭操作
|
|
/// <summary>
|
|
/// <para>说明:关闭操作</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnClose_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (!string.IsNullOrEmpty(this.AccditModelObj.StepCloseTip) ? MessageUtil.Show(string.Format(this.AccditModelObj.StepCloseTip), MessageBoxButtons.YesNo) == DialogResult.Yes : true)
|
|
{
|
|
string nextSelectStepCode = string.Empty;
|
|
string nextSelectStepOper = string.Empty;
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "Q", "");
|
|
//string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "Q", "");
|
|
string result = this.AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out string msgText, this.SysModel, this.SysModel.StepCode, this.SysModel.PrimaryValue, "", this.BaseAuditModelObj.ProcedureName, "Q", "");
|
|
if ("1".Equals(result))
|
|
{
|
|
MessageUtil.Show(ResourceKeys.CloseSuccess);
|
|
this.DialogResult = DialogResult.OK;
|
|
}
|
|
else
|
|
{
|
|
if (!"9".Equals(result)) MessageUtil.Show(ResourceKeys.CloseFail + "\r\n" + msgText);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 分割条位置改变
|
|
/// <summary>
|
|
/// <para>说明:分割条位置改变事件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-21 </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("base_SplitterPositionLeft_{0}", this.SysModel.ModuleCode), this.splitContainer.SplitterPosition + "");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
private void splitMain_SplitterPositionChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (this._isInitFinish)
|
|
{
|
|
IniHelper.Write(string.Format("base_spliterPositionMain_{0}", this.SysModel.ModuleCode), this.splitMain.SplitterPosition + "");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region 分割条位置改变
|
|
/// <summary>
|
|
/// <para>说明:获取查询条件</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-01-22 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="model">The model.</param>
|
|
/// <param name="rowItem">The row item.</param>
|
|
/// <returns>System.String.</returns>
|
|
protected string GetSearchSql(GridDetailModel model)
|
|
{
|
|
string unionPatentValue = !string.IsNullOrEmpty(model.UnionParentField) && _baseRowData != null && _baseRowData.Table.Columns.Contains(model.UnionParentField) ? _baseRowData[model.UnionParentField] + "" : this.ModuleModelObj.ParmaryKey;
|
|
string sqlValue = model.IsReadOnly || model.IsChart ? model.DetailSql : model.SystemModel.MenuSql;
|
|
if (ReplaceHelper.IsSelect(sqlValue) && !string.IsNullOrEmpty(model.UnionValue))
|
|
{
|
|
sqlValue = ReplaceHelper.ReplaceWhereCond(sqlValue) + string.Format(" and {0}='{1}'", model.UnionValue, unionPatentValue);
|
|
}
|
|
if (!string.IsNullOrEmpty(model.UnionCond))
|
|
{
|
|
string UnionCond = ReplaceHelper.ReplaceRowParam(this._baseRowData, model.UnionCond);
|
|
sqlValue +=UnionCond;
|
|
}
|
|
return sqlValue;
|
|
}
|
|
#endregion
|
|
private void simpleButton1_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
WebBrowserUtil.StartWebBrowser(this.SysModel.ModuleCode, mRowItem["ToolsName"] + "");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
private bool VerificationRequired()
|
|
{
|
|
bool results = false;
|
|
if (SystemInfo.Instance.ReviewCommentsRequired && string.IsNullOrWhiteSpace(this.txt_remark.Text))
|
|
{
|
|
MessageUtil.Show("请输入审核意见");
|
|
results = true;
|
|
}
|
|
return results;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 审核或反审
|
|
/// </summary>
|
|
public string AuditMethod(out string nextSelectStepCode,
|
|
out string nextSelectStepOper,
|
|
out string msgText,
|
|
DynamicModel sysModel,
|
|
string stepCode,
|
|
string billDocumentId,
|
|
string message,
|
|
string storedName,
|
|
string accractFlag,
|
|
string remindSelect,
|
|
string remarkText = "",
|
|
string remindOpers = "",
|
|
string confirmOpers = "",
|
|
bool ret = false,
|
|
int returnd = 0,
|
|
int selectConfirmFlag = 0,
|
|
bool IsStepOver = false,
|
|
int comfirm = 0
|
|
)
|
|
{
|
|
string result = BaseAuditImpl.Audit(out nextSelectStepCode, out nextSelectStepOper, out msgText, sysModel, stepCode, billDocumentId, message, storedName, accractFlag, remindSelect, remarkText, remindOpers, confirmOpers, ret, returnd, selectConfirmFlag, IsStepOver, comfirm);
|
|
|
|
if ("9".Equals(result))
|
|
{
|
|
// 继续执行保存
|
|
//if (string.IsNullOrWhiteSpace(msgText)) msgText = "失败";
|
|
if (MessageUtil.Show(msgText, MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
result = AuditMethod(out nextSelectStepCode, out nextSelectStepOper, out msgText, sysModel, stepCode, billDocumentId, message, storedName, accractFlag, remindSelect, remarkText, remindOpers, confirmOpers, ret, returnd, selectConfirmFlag, IsStepOver, 1);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 保存所有附加模块
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public void SaveAdditionalModules()
|
|
{
|
|
try
|
|
{
|
|
foreach (XtraTabPage tabPage in this.tab_basicInfo.TabControlObj.TabPages)
|
|
{
|
|
GridDetailModel model = this.tab_basicInfo.GetGridDetailModel(tabPage);
|
|
|
|
Object moduleObject = tabPage.Controls.Cast<Object>().FirstOrDefault();
|
|
if (moduleObject is ModuleGridEx)
|
|
{
|
|
ModuleGridEx moduleGridEx = moduleObject as ModuleGridEx;
|
|
if (moduleGridEx.GridControlObj.IsDataNotSaved() && moduleGridEx.BtnSave.Visible && moduleGridEx.BtnSave.Enabled)
|
|
{
|
|
moduleGridEx.BtnSave.PerformClick();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置修改过的控件颜色
|
|
/// </summary>
|
|
public void SetColor()
|
|
{
|
|
List<string> FieldList = AuditChangeLog.GetChangeLogFields(this.SysModel.PrimaryValue);
|
|
foreach (string item in FieldList)
|
|
{
|
|
this.ControlObj.SetBackgroundColor(item);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新当前流转数据
|
|
/// </summary>
|
|
public void UpdateCirculationData()
|
|
{
|
|
if (SystemInfo.Instance.IsSpecialAuditSave)
|
|
{
|
|
DataTable snapshotTable = this._flowRowData.Table.Clone();
|
|
DataRow snapshotRow = snapshotTable.NewRow();
|
|
snapshotRow.ItemArray = (object[])this._flowRowData.ItemArray.Clone();
|
|
snapshotTable.Rows.Add(snapshotRow);
|
|
snapshotTable.AcceptChanges();
|
|
this.ControlObj.beforeData = snapshotRow;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|