【已解决】想请教大神关于单据菜单按钮的相关事件的先...
金蝶云社区-yangyong_yy
yangyong_yy
0人赞赏了该文章 1,031次浏览 未经作者许可,禁止转载编辑于2015年12月10日 16:00:08

当点击单据上的菜单后会触发以下事件,我调试了一下过程大概是这样的
1、BarItemClick();
2、BeforeDoOperation();
3、操作的服务端插件
4、AfterDoOperation();
5、AfterBarItemClick();
如果我想在点击菜单按钮的时候做一个校验,如果当前操作人员是单据的创建人,则允许执行该菜单按钮对应的服务端插件,反之则不允许;
那我是不是可以在1或者2两个位置做校验如果条件不成立则执行e.Cancel = true;来达到目的?(在不使用操作插件校验器的情况下)

另外有个问题:如下操作插件服务端代码为啥能够触发DataChanged()事件呢?直接更新的数据库也能触发DataChanged()事件吗?
[code]public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e)
{
base.EndOperationTransaction(e);
foreach (DynamicObject obj in e.DataEntitys)
{
string FBillNo = obj["BillNo"].ToString();
StringBuilder sbSql = new StringBuilder();
sbSql.Append("update ");
sbSql.Append("TPT_FZC_SupReview ");
sbSql.Append("set FREVIEWSTATUS = 3 ");
sbSql.Append("where FBillNo=@FBillNo");
IList paras = new List();
paras.Add(new SqlParam("@FBillNo", KDDbType.String, FBillNo));
DBUtils.Execute(this.Context, sbSql.ToString(), paras);
}
}[/code]