如何从门户My Documents(SP402000)页面GRID移除图标并隐藏客户不可见笔记?
嘿,我来帮你搞定Acumatica里这两个需求,分两部分给你详细说明:
一、移除My Documents(SP402000) Grid中的文件及Notes图标
要隐藏Grid行里的Notes和Attachments图标,有两种常用方式,你可以根据自定义偏好选择:
1. 通过ASPX页面自定义(可视化操作)
如果你习惯用Acumatica的页面设计器:
- 打开自定义项目,找到SP402000页面并进入设计模式
- 定位到目标Grid控件(通常ID类似
documentList,具体看页面结构) - 针对Notes图标:找到Grid的
NotesColumn,将其Visible属性设为False - 针对Attachments图标:在Grid的属性面板里找到
AllowAttachments,设置为False - 保存并发布自定义项目,刷新页面后图标就会消失
2. 通过代码后台控制(更灵活支持动态规则)
如果需要根据角色或特定条件动态隐藏,就用代码扩展:
- 创建页面扩展类,继承
PXGraphExtension<SPDocumentList> - 在
Initialize方法里设置隐藏规则:
public override void Initialize() { base.Initialize(); // 隐藏Notes列/图标 PXUIFieldAttribute.SetVisible<SPDocumentList.noteID>(Base.documentList.Cache, null, false); // 禁用Attachments功能 Base.documentList.AllowAttachments = false; }
- 要是需要基于角色权限控制,还可以加判断逻辑:
if (!PXAccess.HasPermission(PXAccessLevel.Admin)) { PXUIFieldAttribute.SetVisible<SPDocumentList.noteID>(Base.documentList.Cache, null, false); Base.documentList.AllowAttachments = false; }
二、保存客户无法查看的笔记数据
要保留笔记数据但不让客户角色看到,核心思路是控制笔记的可见权限,这里有两种靠谱的实现方法:
1. 使用原生私有笔记(Private Notes)
Acumatica自带私有笔记功能,简单直接:
- 在添加笔记时,勾选弹窗里的Private复选框
- 私有笔记仅对创建者和拥有管理员权限的用户可见,客户角色默认无法查看,数据会安全保存在系统中
2. 自定义笔记权限控制(精细化场景)
如果需要更精准的权限划分(比如仅特定角色可见),可以通过代码控制:
- 扩展Note的Graph,在
RowInserting或RowUpdating事件里设置笔记的可见范围:
public class NoteExtension : PXGraphExtension<Note> { protected void _(Events.RowInserting<Note> e) { Note note = e.Row; if (note != null && /* 这里添加判断条件,比如当前是给客户相关文档加笔记 */) { // 设置仅管理员角色可见 note.VisibleTo = "Admin"; // 支持多个角色,用逗号分隔 // note.VisibleTo = "Admin,Manager"; } } }
这样客户角色因为不在VisibleTo列表内,就看不到这些笔记,但数据会一直留存于系统中。
另外提醒下:如果是已存在的历史笔记,你可以批量更新它们的VisibleTo字段来适配规则;设置完成后记得测试对应角色的权限,确保效果符合预期。
内容的提问来源于stack exchange,提问作者JvD
相关产品推荐
相关产品推荐

