表样文本区文字随主体变化解决方案

栏目:yonbip/nccloud知识作者:用友来源:用友发布:2024-08-23浏览:1

表样文本区文字随主体变化解决方案

 

1.应用场景及问题描述

有三个公司都有6401010103科目,但是各自的科目名称都不一样,用途也不一样。所以表样只能分三行分别显示每个公司的科目名称。

那么设计表样时,是否可以在同一个表样里,不同公司显示不同的表头名称呢?

 

2.解决方案

2.1 总结 

1. vlookup函数目前不能跨表单,所以在同一个表单右侧设置主体和表头文字的对照表。对照表设置后可以隐藏列。

2. 设置表头任务函数,取主体名称。如果是部门主体,为了避免部门名称重复,可以用以下函数取公司名称+部门名称:

CONCATENATE(GetProperty("任务函数","Task","主体:ENTITY","部门所属业务单元:dept_org_name"),GetProperty("任务函数","Task","主体:ENTITY","主体单元名称:name"))

3, 文本区域设置公式,判断是否是对照表里的特殊主体,如果不是则取默认名称,否则按照对照表取文本信息。参考的函数设置是:

IF(VLOOKUP(H71,L73:M77,2,FALSE)=0,"默认科目名称",VLOOKUP(H71,L73:M77,2,FALSE))

 最终实现效果如下,不同的主体在表单编制时,表头文字名称不一样。 如果主体是部门时,按照其所属组织的对应表头名称显示。

2.2 详细步骤

 我首先验证了vlookup函数在产品里的使用方法,使表单在通常情况下可以按对照表取得表头文字。在Vlookup测试成功后,增加了主体是部门时的考虑因素。增加了判断方式后得到了解决方案。最后又考虑实际业务当中,可能要设置个性化主体名称的仅仅是少量公司,如果将所有组织都设置上对照表,工作量未免太大了,所以再次修改了单元格的取数公式得到了一个较周全的解决方案。具体解决方案如下:

2.2.1 建立明细表

已测试确认vlookup函数无法跨表,所以对照表需要设置在表样的同一个表单上。 如下图,可以设置在表样的右侧。 公式设置后后,这个区域可以隐藏掉。

下图左侧1001科目对应的科目名称需要根据主体显示不同的科目名称。

以下设置考虑了两种情况:

1. 编制主体有可能是部门,也可能是业务单元。部门对应的科目名称应该和其业务单元对应的科目名称相同。

2. 大部分主体的名称都是默认名称,只有少量业务的科目名称要进行个性化设置。

2.2.2 设置表头任务函数

 首先设置表头任务函数。因为主体有可能是部门,所以在维度属性里,新增了部门所属业务单元的新维度属性。注意来源属性字段写的是pk_org.name,目的是显示部门所属业务单元的名称。

CONCATENATE(GetProperty("任务函数","Task","主体:ENTITY","部门所属业务单元:dept_org_name"),GetProperty("任务函数","Task","主体:ENTITY","主体单元名称:name"))

这个函数的设置考虑了部门名称在不同公司重复的情况,取出的文字信息是:公司名称+部门名称。如果主体是公司时,只会取公司名称。

2.2.3 设置文本区的取数公式

 下图#N/A 单元格设置了以下公式:

IF(VLOOKUP(H71,L73:M77,2,FALSE)=0,"默认科目名称",VLOOKUP(H71,L73:M77,2,FALSE))

其中VLOOKUP(H71,L73:M77,2,FALSE)的意思是按照表头任务函数,查询对照表里取对应主体的科目名称。(Vlookup函数的设置方法可以参考网络搜索信息,这方面的解答有很多。)

整体函数的效果是当VLOOKUP(H71,L73:M77,2,FALSE)取不到数的时候,科目名称显示为“默认科目名称”,否则就按照VLOOKUP函数的取数为准。

以下是该设置验证结果,不同公司时取到的科目名称不一样。 

 

3.注意事项

注意对照表中的文本信息要和任务函数的文本信息完全一致,区分大小写。否则无法对应取出对照表里的表头文字信息。

 

 

 

表样文本区文字随主体变化解决方案

 1.应用场景及问题描述有三个公司都有6401010103科目,但是各自的科目名称都不一样,用途也不一样。所以表样只能分三行分别显示每个公司的...
点击下载文档
分享:
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息