单据体双击行弹出窗体(调用系统权限)原创
金蝶云社区-HN_楊華
HN_楊華
8人赞赏了该文章 1,039次浏览 未经作者许可,禁止转载编辑于2020年08月01日 22:53:21

 

public override void EntityRowDoubleClick(EntityRowClickEventArgs e)

        {

            base.EntityRowDoubleClick(e);

 

            if (e.Key.ToUpper() == "F_DOCBASE_GLXXENTRY")//设备档案.关联信息

            {

                //EntryEntity entry = this.View.BillBusinessInfo.GetEntryEntity("F_DocBase_GLXXEntry");

                //int i = this.View.Model.GetEntryCurrentRowIndex(entry.Key);

                //DynamicObjectCollection sad = this.View.Model.GetEntityDataObject(entry);

 

                string formID = this.Model.GetValue("F_FormID", e.Row) != null ? this.Model.GetValue("F_FormID", e.Row).ToString() : string.Empty;//单据标识 FormID

                string formBillFId = this.Model.GetValue("F_BillID", e.Row) != null ? this.Model.GetValue("F_BillID", e.Row).ToString() : string.Empty;//单据内码 FID

 

                bool isAuth = IsAuthority(this.Context, formID);

 

                // 判断验权结果,只有验权通过,才继续

                if (!isAuth)

                {

                    // 验权失败,提示验权结果

                    this.View.ShowMessage("没有查看权限,请联系管理员。");

                }

                else

                {

                    // 验权通过(双击行跳转页面)

                    string FID = formBillFId; //单据内码 FID

                    BillShowParameter showParam = new BillShowParameter();

                    showParam.FormId = formID;//"CRM_Contract";

                    showParam.Status = OperationStatus.VIEW;

                    showParam.PKey = FID;//listSelectedRow.PrimaryKeyValue

                    this.View.ShowForm(showParam);

                }

            }

        }      

 

 #region 调用系统权限配置

        public bool IsAuthority(Context ctx, string formId)

        {

            bool result = false;//返回结果,true=有权限

            try

            {

                // 创建验权参数对象

                BusinessObject businessObject = new BusinessObject();

                // 单据FormId:必须的参数

                businessObject.Id = formId;//this.View.BillBusinessInfo.GetForm().Id;

                // 单据内码:只有在权限项绑定了数据规则时,才需要传入具体的单据内码

                businessObject.pkId = "";

                // 是否支持权限控制: 0 = 不控制权限;1 = 控制权限;默认为1

                businessObject.PermissionControl = 1;

                // 子系统: 非必须项,可以忽略

                //businessObject.SubSystemId = this.View.OpenParameter.SubSystemId;

                // 验证用户在指定组织下的功能权限:key = 主业务组织字段key; value = 组织内码

                // 本单据无主业务组织字段时,忽略此参数

                //businessObject.OrgFieldAndName.Add("FOrgId", this.Context.CurrentOrganizationInfo.ID.ToString());

                // 传入本单的单据编号,以便验权输出的提示信息,更加人性化。可以忽略此参数

                // businessObject.BillNoFieldAndValue.Add("FBillNo", this.Model.GetValue("FBillNo").ToString());

 

                // 开始验权,并接收验权结果

                // 参数 strPerItemId :

                // 系统预置的单据,基本采用预置权限项,采用PermissionConst中定义的常量值即可;

                // 但是部分权限项,是自定义的,没有定义常量,需到权限对象表中搜索本单的权限项及其内码;

                // 附:本单权限对象内码为:this.View.BillBusinessInfo.GetForm().PermissionObjectId

                var authResult = PermissionServiceHelper.FuncPermissionAuth(ctx, businessObject, PermissionConst.Import);

 

                // 判断验权结果,只有验权通过,才继续

                result = authResult.Passed;

                return result;

            }

            catch (Exception ex)

            {

                return false;

            }

        }

 

        #endregion

图标赞 8
8人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0