//菜单项对应操作事件。 private void menuItemClick(object sender, System.EventArgs e) { try { //检验业务对象是否已经实现了 System.Reflection.MemberInfo[] mths = _ClientRule.GetType().GetMember(INVOKE_METHOD_NAME); if (mths == null || mths.Length == 0) { throw new MB.Util.APPException(string.Format("在单据业务状态操作改变中对应的业务类 {0} 必须实现方法{1}", _ClientRule.GetType().FullName, INVOKE_METHOD_NAME), MB.Util.APPMessageType.SysErrInfo); } if (!_OperateTypes.ContainsKey((ToolStripMenuItem)sender)) { throw new MB.Util.APPException("该菜单还没有进行相应的处理", MB.Util.APPMessageType.DisplayToUser); } MB.Util.Model.DocOperateType operateType = _OperateTypes[(ToolStripMenuItem)sender]; //operateType = MB.Util.Model.DocOperateType.Approved; MB.WinClientDefault.Common.frmEditDocStateTrace editDocState = new MB.WinClientDefault.Common.frmEditDocStateTrace(operateType); editDocState.AfterEditSure += new EventHandler <MB.WinClientDefault.Common.EditDocStateTraceEventArgs>(editDocState_AfterEditSure); editDocState.ShowDialog(); } catch (Exception ex) { MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex); } }
/// <summary> /// /// </summary> public frmEditDocStateTrace(MB.Util.Model.DocOperateType docOperateType) { InitializeComponent(); _DocOperateType = docOperateType; this.Load += new EventHandler(frmEditDocStateTrace_Load); }
/// <summary> /// 提交该单据对象相应的业务操作 /// </summary> /// <param name="entity"></param> /// <param name="operateState"></param> /// <param name="remark"></param> /// <returns></returns> public virtual int BusinessFlowSubmit(object entity, MB.Util.Model.DocOperateType operateState, string remark) { object[] pars = new object[] { entity, operateState, remark }; object val = null; using (TChannel serverRuleProxy = CreateServerRuleProxy()) { System.ServiceModel.IClientChannel channel = MB.Util.MyReflection.Instance.InvokePropertyForGet(serverRuleProxy, "InnerChannel") as System.ServiceModel.IClientChannel; using (System.ServiceModel.OperationContextScope scope = new System.ServiceModel.OperationContextScope(channel)) { //增加消息表头信息 MB.WinBase.WcfClient.MessageHeaderHelper.AppendUserLoginInfo(); val = MB.WcfServiceLocator.WcfClientHelper.Instance.InvokeServerMethod(serverRuleProxy, "BusinessFlowSubmit", pars); } if (val == null || (int)val < 0) { return(-1); } } return(1); }
/// <summary> /// 单据状态编辑对应事件参数。 /// </summary> /// <param name="remark">操作输入的备注信息</param> public EditDocStateTraceEventArgs(string remark, MB.Util.Model.DocOperateType docOperateType) { _Remark = remark; _DocOperateType = docOperateType; }