找回密码
 立即注册

QQ登录

只需一步,快速开始

Shiyu_CC

中级会员

92

主题

264

帖子

790

积分

中级会员

积分
790
Shiyu_CC
中级会员   /  发表于:2024-7-26 09:53  /   查看:911  /  回复:11
1金币
本帖最后由 Shiyu_CC 于 2024-7-26 11:49 编辑

如果
          状态=已申请
并且  (登录用户的角色 包含    角色A
或者   登录用户的角色 包含    角色B
或者   (登录用户的角色 包含    角色C
并且   登录用户的角色 不包含 角色D))

时,显示某种颜色,怎么写?


最佳答案

查看完整内容

您好,条件格式的自定义公式是当公式计算的结果为真时,设置的格式生效。 然后可以在页面上放置一个单元格,用关键字 CurrentUser.Role 来获取到当前登录用户的全部角色。} 最后基于这个单元格和 Excel 公式去组织判断逻辑,Excel 中判断字符串包含可以用 FIND 函数,比如:

11 个回复

倒序浏览
最佳答案
最佳答案
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-7-26 09:53:22
来自 6#
您好,条件格式的自定义公式是当公式计算的结果为真时,设置的格式生效。
然后可以在页面上放置一个单元格,用关键字 CurrentUser.Role 来获取到当前登录用户的全部角色。}
最后基于这个单元格和 Excel 公式去组织判断逻辑,Excel 中判断字符串包含可以用 FIND 函数,比如:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-7-26 11:50:01
2#
您好!SpreadJS支持为单元格或单元格区域设置的条件格式规则包括值规则、行列状态规则、公式规则等多种规则。理解在您的需求中可以使用公式规则实现,即使用逻辑关系运算符组织条件规则,之后通过ConditionalFormatting:addFormulaRule()将其添加至指定单元格区域即可生效。可参考如下代码:
  1. var cfs = sheet.conditionalFormats;
  2. var style = GC.Spread.Sheets.Style();
  3. style.backColor = 'red';
  4. var range = new GC.Spread.Sheets.Range(2, 0, 1, 1);
  5. cfs.addFormulaRule('=AND(A1=20, B1=30)', style, [range]);
复制代码

参考API文档了解详情:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.ConditionalFormatting.ConditionalFormats#addformularule

回复 使用道具 举报
Shiyu_CC
中级会员   /  发表于:2024-7-26 11:57:34
3#
Wilson.Zhang 发表于 2024-7-26 11:50
您好!SpreadJS支持为单元格或单元格区域设置的条件格式规则包括值规则、行列状态规则、公式规则等多种规则 ...

不能直接写公式吗
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-7-26 14:06:57
4#
Shiyu_CC 发表于 2024-7-26 11:57
不能直接写公式吗

您好!条件格式由条件规则和样式格式两部分组成,条件规则生效后将样式格式装饰至相关单元格区域。当前方案使用的ConditionalFormatting:addFormulaRule()接口的第一个参数正是公式,请问您所言“直接写公式”具体指代什么期望?
回复 使用道具 举报
Shiyu_CC
中级会员   /  发表于:2024-7-26 14:14:01
5#
Wilson.Zhang 发表于 2024-7-26 14:06
您好!条件格式由条件规则和样式格式两部分组成,条件规则生效后将样式格式装饰至相关单元格区域。当前方 ...


需求把判断条件用公式写出来

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Shiyu_CC
中级会员   /  发表于:2024-7-26 17:53:58
7#
Simon.Sun 发表于 2024-7-26 17:36
您好,条件格式的自定义公式是当公式计算的结果为真时,设置的格式生效。
然后可以在页面上放置一个单元格 ...

状态为已申请,并且 登录用户的角色包含角色A:
=AND(状态="已申请",FIND("角色A",CurrentUser.Role)>0)

状态为已申请,并且 登录用户的角色不包含角色A:
=AND(状态="已申请",FIND("角色A",CurrentUser.Role)<0)

感谢版主,那这样写是对的吗?
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-7-26 18:02:17
8#
嗯,差不多,注意 CurrentUser.Role 需要放到页面上的单元格上。
FIND("角色A",CurrentUser.Role) 不包含的话,不是小于 0,而是会报错,可以用 IFERROR 处理下。
回复 使用道具 举报
Shiyu_CC
中级会员   /  发表于:2024-7-26 18:16:52
9#
Simon.Sun 发表于 2024-7-26 18:02
嗯,差不多,注意 CurrentUser.Role 需要放到页面上的单元格上。
FIND("角色A",CurrentUser.Role) 不包含 ...

状态为已申请,并且 登录用户的角色不包含角色A:

在页面单元格放一个变量:登录用户的角色=CurrentUser.Role;
=AND(状态="已申请",IFERROR(FIND("角色A",登录用户的角色)>0,0)=0)

这样对吗?
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-7-29 08:58:48
10#
对的,大佬可以尝试下,有问题继续跟帖交流
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部