电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

先执行表单再执行操作

来源:金蝶云社区作者:金蝶2024-09-163

先执行表单再执行操作

最近有遇到一个需求:客户在单据表单/列表打开一个动态表单,做用户二次登录效验,效验完成后去执行某些操作,由于操作服务插件不能打开动态表单,所以分为表单插件和操作服务插件分开进行,由于打开动态表单是异步得,所以会出现在你打开动态表单得时候,你的操作服务插件已经在执行或者已经执行完了,就与客户需求冲突,从而给出以下

解决方法:在表单插件调的之前你要先设置e.Cancel=true以取消本次操作,然后再验证二次密码OK后,再次触发同样操作,注意第二次触发操作时要加标记,以便表单插件的BeforeDoOpe...事件放过

示例:

/// <summary>
/// 主菜单单击事件
/// </summary>
 public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            if (e.BarItemKey.Equals("按钮标识"))
            {
                e.Cancel = true;//先取消当前操作,执行表单/列表逻辑
                int Get = Submit(this.Model.GetValue("FBILLNO").ToString());
                int Voucher = FindVoucherForPayBill(this.Model.GetValue("FBILLNO").ToString());//查询单据是否生成凭证
                if (GetSubmitCBS > 0)
                {
                    if (Voucher > 0)
                    {
                        DynamicFormShowParameter formpa = new DynamicFormShowParameter();
                        formpa.FormId = "动态表单标识";
                        this.View.ShowForm(formpa, delegate (FormResult result)
                        {
                            //定义接收值,转换成(DynamicObjectCollection)类型
                            string returnData = result.ReturnData.ToString();

                            //如果不为空,执行
                            if (returnData != null)
                            {
                                string[] sgin = returnData.Split(';');
                                string zh = sgin[0];
                                string mm = ConfidentialDataSecurityUtil.CipherText(sgin[1]);//调用系统密码加密

                                LoginInfo info = new LoginInfo();
                                info.Username = zh;
                                info.Password = mm;
                                LoginResult results = LoginServiceHelper.CheckLoginInfo(this.Context, info);//二次效验
                                if (string.IsNullOrEmpty(results.Message))
                                {
                                    this.View.ShowMessage("是否确操作", MessageBoxOptions.YesNo, ret =>
                                    {
                                        if (ret == MessageBoxResult.No)
                                        {
                          

先执行表单再执行操作

最近有遇到一个需求:客户在单据表单/列表打开一个动态表单,做用户二次登录效验,效验完成后去执行某些操作,由于操作服务插件不能打开动...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信