首页 > 其他分享 >金蝶云星空业务对象自定义按钮进行权限控制

金蝶云星空业务对象自定义按钮进行权限控制

时间:2023-10-17 12:33:59浏览次数:41  
标签:自定义 endregion 金蝶 region BOS 按钮 using 权限


 金蝶云星空业务对象自定义按钮进行权限控制

一、背景说明
金蝶标准:权限绑定操作,操作绑定按钮。
实际需求:按钮不绑定操作,直接验权


二、 创建按钮

2.1菜单集合

 

 2.2列表菜单

 


三、创建权限项

 

 


四、 添加权限项到权限对象

 

五 创建公共权限服务

using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.Permission;
using Kingdee.BOS.ServiceHelper;


namespace MM.K3.Business.Common
{
    /// <summary>
    /// 功能描述    :权限公共服务  
    /// 创 建 者    :Administrator
    /// 创建日期    :2023/10/11 10:56:46 
    /// 最后修改者  :Krystal
    /// 最后修改日期:2023/10/11 10:56:46 
    /// </summary>
    public class PermissionFunc
    {
        #region <常量>
        #endregion <常量>

        #region <变量>
        #endregion <变量>

        #region <属性>
        #endregion <属性>

        #region <构造方法和析构方法>
        #endregion <构造方法和析构方法>

        #region <方法>

        /// <summary>
        /// 校验是否有权限
        /// </summary>
        /// <param name="ctx">上下文</param>
        /// <param name="view">表单视图</param>
        /// <param name="sPermissionItemId">权限项的id:表 T_SEC_PERMISSIONITEM的FITEMID</param>
        /// <param name="isShowMsg">是否提示无权,默认是</param>
        /// <returns></returns>
        public static bool AuthorizePermissionForEdit(Context ctx
            , IDynamicFormView view, string sPermissionItemId, bool isShowMsg = true)
        {
            string id = view.BillBusinessInfo.GetForm().Id;//业务对象标识
            string strPerItemId = sPermissionItemId;
            BusinessObject bizObject = new BusinessObject
            {
                Id=id,
                SubSystemId=view.OpenParameter.SubSystemId,
                PermissionControl=1
            };
            if (PermissionServiceHelper.FuncPermissionAuth(ctx,bizObject,strPerItemId).Passed)
            {
                return true;
            }
            if (isShowMsg)
            {
                view.ShowMessage("您没有权限执行此操作。");
            }
            return false;
        }
        #endregion <方法>

        #region <事件>
        #endregion <事件>
    }
}
View Code

 


六、 表单插件编码实现

 

七、列表插件编码实现

 


八 测试
8.1不授权

 


8.2 授权

 

 完美

标签:自定义,endregion,金蝶,region,BOS,按钮,using,权限
From: https://www.cnblogs.com/lanrenka/p/17758016.html

相关文章

  • 翻译语言选择自定义封装(elementUI)
    基于elementUI下拉菜单项el-dropdown自定义封装<template><div><el-dropdowntrigger="click"@command="handleCommand"><el-inputv-model="form.key1"suffix-icon="el-icon-arrow-down"pl......
  • 自定义文档 Selection、Range 属性
    一document.execCommand现阶段项目中使用方法document.execCommand可直接操控选中文本,添加属性(操控文档)。但是由于fdocument.execCommand方法兼容性不好,浏览器之间的实现不一致,没有一个统一的标准。且自定义程度不高。官方已经将该方法移除。推荐使用Selection和Range......
  • ABB机器人示教器中设置可编程按钮
    ABB机器人是一种在工业自动化中广泛使用的机器人,具有高效率、高精度、高可靠性等优点,已经成为现代制造业的重要装备之一。为了方便操作,ABB机器人示教器中设置了可编程按钮,通过设置这些按钮,可以将复杂的操作简化成一键操作的效果,从而提高生产效率。下面,我们来详细介绍如何在ABB......
  • vue自定义样式
    在项目中常常遇到一些页面由后台定制样式呈现,这就需要在页面中动态绑定style,如若定制样式里包含了伪类、媒体查询、hover效果能样式,寻常的v-bind:style内联样式可能就无法满足需求,这里就记录了一个解决办法。那么该如何操作呢,简单举个栗子:首先,我们在需要定制的样式元素上定义一......
  • Mybatis自定义TypeHandler完成字段加解密And枚举数据处理
    Mybatis自定义TypeHandler完成字段加解密And枚举数据处理新增And查询对枚举数据处理定义枚举@GetterpublicenumUserEnum{HOLD_A_POST("在职",10),RESIGN("离职",20);privateStringname;privateIntegervalue;UserEnum(Stringname,......
  • 金蝶云星空调用《其他入库单》的新增界面给序列号子单据体数据赋值
     金蝶云星空调用《其他入库单》的新增界面给序列号子单据体数据赋值 金蝶云星空平台,业务对象的实体层级关系,表头,表头下可以有多个单据体,各单据体之间无关联,单据体下可以有子单单据体。另外各个实体都可以设置拆分表。比如,《其他入库单》表头有客户、日期、单据编号等,有拆分表......
  • 金蝶EAS myUploadFile任意文件上传漏洞
    漏洞简介金蝶EAS及EASCloud是金蝶软件公司推出的一套企业级应用软件套件,旨在帮助企业实现全面的管理和业务流程优化。金蝶EAS及EAScloud存在任意文件上传漏洞影响版本金蝶EAS8.0,8.1,8.2,8.5金蝶EASCloud8.6私有云,8.6公有云,8.6.1,8.8漏洞复现fofa语法:app="Kingdee-EA......
  • 金蝶云星空单据界面内增加动态数据展示的单据体
    业务场景有时候,当前订单需要动态显示一些字段或者整个实体用来进行数据对比或者用来动态选择等特殊业务场景,这些数据并不需要保存到数据库。 金蝶BOS实现1、单据体设置 2、字段设置 这样子单据界面绑定的数据都不会写入到数据库。完美。......
  • 学习C语言心得-自定义函数-每调用一次函数 num的值+1
    每调用一次函数num的值+1#include<stdio.h>NUM(int*num){ (*num)++;}intmain(){ intnum=0; NUM(&num); printf("%d\n",num); NUM(&num); printf("%d\n",num); NUM(&num); printf("%d\n",num); NUM(&num)......
  • 学习C语言心得-自定义函数-对整形有序数组进行二分查找-二分法
    对整形有序数组进行二分查找#include<stdio.h>intfind(intarr[],intsz,intk){ intleft=0;intright=sz-1; while(left<=right) { intmid=left+right/2; if(k>arr[mid]) { left=mid+1; } if(k<arr[mid]) { right=mid......