计算字段公式的示例

算术运算

计算字段可用于根据用户提供的各种成本来计算某项更改的总成本:COST_5 = COST_1 + COST_2 + COST_3 + COST_4

算术运算 1 算术运算 2

使用 coalesce 函数将空值替换为零:coalesce(COST_1,0) + coalesce(COST_2,0) + coalesce(COST_3,0) + coalesce(COST_4,0)

串联

维度字段可用于显示专用字段中的串联值:LENGTH||' mm x '||WIDTH||' mm x '||HEIGHT||' mm'

串联

条件和嵌入式 HTML

使用颜色呈现计算字段,并指示业务流程的相关状态。此示例要求在工作流转换后更新字段 STATUS_NAME:item.STATUS_NAME = item.descriptor.workflowState

使用 HTML 的状态更新样式

'<div style="border-radius:4px; height:20px; line-height:20px; text-align:center; font-size:0.9em;font-weight:600;width:140px;color:white;background-color:'||
CASE
    WHEN (STATUS_NAME = 'Preparation') THEN '#87bc40'
    WHEN (STATUS_NAME = 'Technical Validation') THEN '#ffa600'
    WHEN (STATUS_NAME = 'CCB Review') THEN '#ee4444'
    WHEN (STATUS_NAME = 'Fast Track') THEN '#ee4444'
    ELSE '#bbbbbb'
END
||';">'||STATUS_NAME||'</div>'

戳记图形

戳记图形可用于表示批准或拒绝带有戳记样式的更改。此示例需要一个字段来提供有关审批的信息。此字段可以手动进行设置,也可通过脚本设置。此给定示例使用字段 CCB_DECISION。

戳记图形

CASE
    WHEN (CCB_DECISION is null) THEN '<span style="white-space:nowrap;color:#bbb;font-style:italic;">CCB Review pending</span>’
    WHEN (CCB_DECISION = 'Approved') THEN '<div style="border-radius:4px;height:19px;line-height:15px;text-align:center;font-size:0.8em;font-weight:600;width:120px;color:#87bc40;border:3px double #87bc40">APPROVED</div>'
    WHEN (CCB_DECISION = 'Rejected') THEN '<div style="border-radius:4px;height:19px;line-height:15px;text-align:center;font-size:0.8em;font-weight:600;width:120px;color:#ee4444;border:3px double #ee4444">REJECTED</div>'
    ELSE ' '
END

优先级

此示例可用于更好地识别通过颜色和图形指示的请求优先级。

优先级可视化

CASE
    WHEN (PRIORITY = 2) THEN '<span sort="4" style="font-size:1.2em;color:#eb4d4d;">■ ■ ■</span>'
    WHEN (PRIORITY = 1) THEN '<span sort="3" style="font-size:1.2em; color:#FAA21B;">■ ■</span><span style="font-size:1.2em;color:#e4e4e4;">■</span>'
    WHEN (PRIORITY = 3) THEN '<span sort="2" style="font-size:1.2em; color:#8fc844;">■</span><span style="font-size:1.2em;color:#e4e4e4;">■ ■</span>'
    ELSE '<span sort="1" style="font-size:1.2em; color:#e4e4e4;">■ ■ ■</span>'
END

汇总评估特性

此计算字段示例可用于汇总诸如优先级、风险和工作量等评估特性。

汇总评估特性

'<div style="float:left;margin-right:2px;
height:20px;width:20px;font-size:0.8em;line-height:20px;border-radius:50%;text-align:center;color:#fff;background:'||
CASE
    WHEN(PRIORITY = 1) THEN '#ffa600">2</div>'
    WHEN(PRIORITY = 2) THEN '#ee4444">1</div>'
    WHEN(PRIORITY = 3) THEN '#8fc844">3</div>'
    ELSE '#eee"></div>'
END
||'<div style="float:left;margin-right:2px;height:20px;width:20px;font-size:0.8em;line-height:20px;border-radius:50%;text-align:center;color:#fff;background:'||
CASE
    WHEN(RISK = 1) THEN '#ffa600">2</div>'
    WHEN(RISK = 2) THEN '#ee4444">1</div>'
    WHEN(RISK = 3) THEN '#8fc844">3</div>'
    ELSE '#eee"></div>'
END||'<div style="float:left;height:20px;width:20px;font-size:0.8em;line-height:20px;border-radius:50%;text-align:center;color:#fff;background:'||
CASE
    WHEN(EFFORT = 1) THEN '#ffa600">2</div>'
    WHEN(EFFORT = 2) THEN '#ee4444">1</div>'
    WHEN(EFFORT = 3) THEN '#8fc844">3</div>'
    ELSE '#eee"></div>'
END

进度条

使用进度条跟踪业务流程的进度。在下面的示例中,需要定义字段进度条,并且需要在工作流转换期间更新字段。

通过第一次转换后,该字段将更新为 (item.progressbar = 10),以指示业务流程已完成 10%。

进度条

'<div style="padding:3px 5px 2px;
    font-size:0.8em;
    text-align:center;
    width:120px;
    background:linear-gradient (to right, #bfc2c3 0%, #bfc2c3 '||PROGRESS||'%, #dedede '||PROGRESS||'%);border:1px solid #8a8a8a;border-radius:2px;">'||PROGRESS||'%
</div>'

进度条还可用于指示计划资源消耗与实际资源消耗比较情况。

预算消耗

'<div style="min-width:90px;
    max-width:calc(100% - 20px);
    height:20px; line-height:18px;
    border-radius:3px; text-align:center;
    font-size:0.9em;
    background:linear-gradient(to right,#c2cdd3 0%, #c2cdd3 '||ROUND(((BUDGET_ACTUAL/BUDGET)*100)::numeric, 2)||'%, #f5f7fa '||ROUND(((BUDGET_ACTUAL/BUDGET)*100)::numeric, 2)||'%);border:1px solid #c2cdd3">'|| ROUND(((BUDGET_ACTUAL/BUDGET)*100)::numeric, 2) ||'%
</div>'

持续时间和偏差计算

计算字段可用于根据用户定义的开始日期和结束日期,以及实际开始日期和结束日期来计算持续时间以及与计划的偏差:DATEDIFF('DAY', TARGET_START_DATE, TARGET_COMPLETION_DATE)

持续时间计算

偏差可以采用颜色编码。

用颜色编码的持续时间计算

'<div style="border-radius:2px; height:20px;line-height:20px;text-align:center;font-size:0.9em;width:90px;color:white;background-color:'||
 CASE
    WHEN (TARGET_START_DATE is null) THEN '#bbb">?</div>
    WHEN (ACTUAL_START_DATE is null) THEN
        CASE
            WHEN (DATE_PART('day', NOW() - TARGET_START_DATE) > 0) THEN '#ee4444;">'||DATE_PART('day', NOW() - TARGET_START_DATE)||' days</div>'
            WHEN (DATE_PART('day', NOW() - TARGET_START_DATE) < 0) THEN '#87bc40;">'||DATE_PART('day', NOW() - TARGET_START_DATE)||' days</div>
            ELSE '#ffa600;">0</div>'
        END
    ELSE
        CASE
            WHEN (DATE_PART('day', ACTUAL_START_DATE - TARGET_START_DATE) > 0) THEN '#ee4444;">'||DATE_PART('day', ACTUAL_START_DATE - TARGET_START_DATE)||' days</div>'
            WHEN (DATE_PART('day', ACTUAL_START_DATE - TARGET_START_DATE) < 0) THEN '#87bc40;">'||DATE_PART('day', ACTUAL_START_DATE - TARGET_START_DATE)||' days</div>'
            ELSE '#ffa600;">0</div>'
        END
END

亮显最近所做的更改

计算字段可用于帮助用户识别哪些记录最近发生了更改。

亮显最近所做的更改

'<span style="font-style:italic;color:'||
CASE
    WHEN (DATE_PART('day’, CURRENT_DATE - LAST_MODIFICATION_DATE) > 10) THEN '#bbbbbb;">'||DATE_PART('day’, CURRENT_DATE - LAST_MODIFICATION_DATE)||' days ago</span>'
    WHEN (DATE_PART('day', CURRENT_DATE - LAST_MODIFICATION_DATE) <  1) THEN '#eb4d4d;">today</span>'
    WHEN (DATE_PART('day', CURRENT_DATE - LAST_MODIFICATION_DATE) <  2) THEN '#eb4d4d;">yesterday</span>
    ELSE '#ffa600;">'||DATE_PART('day', CURRENT_DATE - LAST_MODIFICATION_DATE)||' days ago</span>'
END

剩余天数

计算字段可用于计算剩余天数。此外,颜色可用于指示延迟和已完成的流程。

指示剩余天数

'<div style="border-radius:2px;height:20px;line-height:20px;text-align:center;font-size:0.9em;width:90px;color:white;background-color:'||
CASE
    WHEN (TARGET_COMPLETION_DATE is null) THEN '#bbb">?</div>'
    WHEN (PROGRESS < 100) THEN
        CASE
            WHEN (DATE_PART('day', TARGET_COMPLETION_DATE - NOW()) <  0) THEN '#ee4444;">'||DATE_PART('day', TARGET_COMPLETION_DATE - NOW())||' days</div>'
            WHEN (DATE_PART('day', TARGET_COMPLETION_DATE - NOW()) < 10) THEN '#ffa600;">'||DATE_PART('day', TARGET_COMPLETION_DATE - NOW())||' days</div>'
            ELSE '#87bc40;">'||DATE_PART('day', TARGET_COMPLETION_DATE - NOW())||' days</div>'
        END
    ELSE '#bbb">DONE</div>
END

二维码

计算字段可用于呈现二维码,二维码可用于打印输出,以便轻松访问移动设备上的记录。启用此选项需要在通过脚本创建条目时设置 DMS_ID。必须修改 URL 中的站点名称和工作空间 ID,以与您的站点相匹配。

呈现二维码

'<img src="https://chart.googleapis.com/chart?cht=qr&chs=180x180&chl=https://<tenantname>.autodeskplm360.net/plm/workspaces/2/items/itemDetails?view=full%26tab=details%26mode=view%26itemId=urn%60adsk,plm%60tenant,workspace,item%60adskdickmans,2,'||DMS_ID||'">'

关卡审批流程

可以通过直观和图形化的形式来显示项目通过各个阶段和关卡的进度。

关卡审批流程工作流 关卡审批流程列表视图

CASE
    WHEN (STEP = 99) THEN '<span style="color:#c2cdd3;font-style:italic;">Project cancelled</span>'
    ELSE
        '<div style="padding-left:3px;border-radius: 4px 0px 0px 4px;border-right:1px solid white;font-size:0.9em;line-height:20px;width:36px;height:20px;text-align:center;color:#fff;float:left;background:'||
        CASE
            WHEN (STEP = 0) THEN '#c2cdd3'
            WHEN (STEP = 1) THEN '#ffa600'
            WHEN (STEP = 2) THEN '#ee4444'
            ELSE '#8fc844'
        END
        ||'">G1</div><div style="border-right:1px solid white;font-size:0.9em;line-height:20px;width:36px;height:20px;text-align:center;color:#fff;float:left;background:'||
        CASE
            WHEN (STEP < 3) THEN '#c2cdd3'
            WHEN (STEP = 3) THEN '#ffa600'
            WHEN (STEP = 4) THEN '#ee4444'
            ELSE '#8fc844'
        END     
        ||'">G2</div><div style="border-right:1px solid white;font-size:0.9em;line-height:20px;width:36px;height:20px;text-align:center;color:#fff;float:left;background:'||
        CASE
            WHEN (STEP < 5) THEN '#c2cdd3'
            WHEN (STEP = 5) THEN '#ffa600'
            WHEN (STEP = 6) THEN '#ee4444'
            ELSE '#8fc844'
        END
        ||'">G3</div><div style="border-right:1px solid white;font-size:0.9em;line-height:20px;width:36px;height:20px;text-align:center;color:#fff;float:left;background:'||
        CASE
            WHEN (STEP < 7) THEN '#c2cdd3'
            WHEN (STEP = 7) THEN '#ffa600'
            WHEN (STEP = 8) THEN '#ee4444'
            ELSE '#8fc844'
        END
        ||'">G4</div><div style="font-size:0.9em;line-height:20px;width:36px;height:20px;text-align:center;color:#fff;float:left;border-radius: 0px 4px 4px 0px;padding-right:3px;background:'||        
        CASE
            WHEN (STEP < 9) THEN '#c2cdd3'
            WHEN (STEP = 9) THEN '#ffa600'
            WHEN (STEP = 10) THEN '#ee4444'
            ELSE '#8fc844'
        END
        ||'">G5</div>'
END

星级

计算字段可用于显示星级。这为用户提供了便捷的视觉提示,并帮助他们了解优先级决策。

星级选择 星级显示

CASE
    WHEN (RATING_1 = 1) THEN '<span style="color:#ffa600">★</span>'
    WHEN (RATING_1 = 2) THEN '<span style="color:#ffa600">★★</span>'
    WHEN (RATING_1 = 3) THEN '<span style="color:#ffa600">★★★</span>'
    WHEN (RATING_1 = 4) THEN '<span style="color:#ffa600">★★★★</span>'
    WHEN (RATING_1 = 5) THEN '<span style="color:#ffa600">★★★★★</span>'
END

将链接设置为按钮样式

计算字段可以将长 URL 转换为按钮,从而简化长 URL 的显示。

链接显示为按钮

'<a style="border: 1px solid #bec8d2;border-radius:3px;padding:6px 20px;color: #0a131c;font-weight:600;line-height:32px;text-align:center;text-decoration:none !important;white-space:nowrap;" target="_blank" href ="https://<tenantname>.autodeskplm360.net/plm/workspaces/54/addItem">Create Problem Report</a>'