Du kan kombinera några av variablerna för att uppnå mer komplexa resultat. Se exemplen på hur variabler används i olika scenarier, organiserade efter komplexitet och användningsfall.
I den här artikeln:
Vanliga variabelmönster och deras användningsfall:
| Mönster | Användningsfall | Exempel |
|---|---|---|
{#variable}...{/variable} |
Loopa genom objekt | {#markups}{name}{/markups} |
{#!variable}...{/} |
Visa när variabeln är tom | {#!amount}$0.00{/} |
{#variable}...{/}{#!variable}...{/} |
Visa värde eller standard | {#previousAmount}{previousAmount}{/}{#!previousAmount}0{/} |
{variable | filter:"field":"value"} |
Filtrera data | {items | filter:"type":"SOV"} |
{variable | sumBy:"field"} |
Beräkna summor | {items | sumBy:"approved"} |
{#condition}...{/} |
Villkorlig visning | {#amount!="0.00"}{amount}{/} |
{variable | groupItemsByXCO: 'type'} |
Gruppera efter ändringsbeställningstyp | {items | groupItemsByXCO: 'COR'} |
Börja här om du inte har använt variabler i dokumentmallar tidigare. De här exemplen beskriver grundläggande begrepp som gäller för alla dokumenttyper.
Du kan använda variabler och visa data i form av en tabell med kolumner och rubriker. Här är ett exempel på syntax:

Använd variabeln för inledande sektion, från # (till exempel {#markups}) och för avslutande sektion från / (till exempel {/markups}).
Fel användning:

Korrekt användning:

Mellan inledande och avslutande variabler kan du visa alla nödvändiga data, som {name} eller {description}.

Resultatet i det skapade dokumentet:

Scenario: Du använder variabler som {previousAmount} och {materialsStored} i din dokumentmall, men när du genererar dokument är vissa kolumner tomma i stället för att visa "$0"-värden.
Om du vill visa ett standardvärde när en variabel är tom eller saknas använder du villkorsuttryck med följande mönster:
{#variableName} {variableName} {/}{#!variableName}default_value{/}Om du till exempel vill visa ”0” när {previousAmount} är tomt:
{#previousAmount} {previousAmount} {/}{#!previousAmount}0{/}Det här villkorsuttrycket fungerar på följande sätt:
{#previousAmount} – Om previousAmount har ett värde visar du det.{previousAmount} – Det faktiska variabelvärdet.{/} – Stäng det första villkoret.{#!previousAmount} – Om previousAmount INTE har ett värde (är tomt).0 – Visa ”0” som standardvärde.{/} – Stäng det andra villkoret.Du kan använda det här mönstret på alla variabler där du vill visa ett standardvärde i stället för tomma celler, till exempel:
{#materialsStored} {materialsStored} {/}{#!materialsStored}$0.00{/}{#currentAmount} {currentAmount} {/}{#!currentAmount}0{/}Scenario: Du vill visa en kvarhållningsprocent i avtalets dokument, men fältet kan vara tomt. Om det är tomt kan du använda ett reservvärde från en annan källa (som avtalets inställningar för kvarhållet belopp).
Använd ett ternärt uttryck för att kontrollera om ett fält är tomt och tillhandahåll ett reservvärde:
{contract.completedWorkRetentionPercent === null? contract.retention.completedWorkRetentionPercent : contract.completedWorkRetentionPercent}Det här uttrycket fungerar på följande sätt:
contract.completedWorkRetentionPercent === null? – Kontrollera om fältet är tomt.contract.retention.completedWorkRetentionPercent – Om det är tomt använder du det här reservvärdet.: – Annars …contract.completedWorkRetentionPercent – Använd det ursprungliga fältvärdet.Detta mönster är användbart när du har fält som kan ärva värden från överordnade inställningar, eller när du behöver kontrollera flera källor efter ett värde.
Dessa exempel är organiserade efter dokumenttyp för att hjälpa dig att hitta relevanta lösningar för ditt specifika användningsfall.
Exempel på hur du anpassar betalningsansökningsdokument och kalkylblad.
Ta bort tomma radobjekt från en betalningsansökan genom att använda det villkorsstyrda uttrycket {#amount!="0.00"} i början av en tabell och {/} i slutet av raden. Till exempel:

Om du vill ta bort delsummor från betalningsansökningar eller avtal kan du ange dina betalningsradobjekt med {#children.length===0}{xxx}{/}. Till exempel:

Scenario: Du har skapat en ändringsbeställningstyp som kallas ”ersättningsöverföring”.

Och vill se de godkända ägarändringarna för de här ersättningarna i Excel-kalkylbladet. Hur gör man det?
Lista ”Byggherre Ändring (OCO)” för kolumnen i Excel-kalkylbladet.

Tillämpa den nya typen på en OCO.

Matcha namnet med typen i Excel-kalkylbladet.

Scenario: Du vill skapa en ny flik i standardmallen för kostnadsbetalningsansökningar som endast visar schemalagda objekt utan att visa delsummor.
Om du vill lägga till en ny flik utan delsummor i kalkylbladsmallen för kostnadsbetalningsansökningar använder du följande variabelmönster:
{#children.length===0}{xxx}{/}Detta villkorsuttryck säkerställer att endast radobjekt utan delsummor visas i den genererade kalkylbladsfliken. {xxx} representerar de specifika datafält som du vill inkludera för varje radobjekt.
Användningsfall: Detta är särskilt användbart när du vill ge underleverantörer en ren vy över enskilda arbetsobjekt utan komplexiteten i delsummeberäkningar.
Scenario: Du vill skapa en ny flik i standardmallen för kalkylbladet för budgetbetalningsansökningar som grupperar objekt efter Ändringsbegäran (COR) utan att visa enskilda kostnadsobjektsuppgifter.
Använd följande variabelmönster om du vill lägga till en ny flik med namnet "Valfri information grupperad efter Ändringsbegäran (COR)" i mallen för kalkylblad för budgetbetalningsansökan:
{#payment.lineView.rootItems|groupItemsByXCO: 'COR'}{number}{/payment.lineView.rootItems|groupItemsByXCO: 'COR'}Den här variabeln grupperar betalningsradobjekt efter deras associerade Ändringsbegäran (COR) och visar endast Ändringsbegäran (COR)-numren utan information om det underliggande kostnadsobjektet.
Viktiga funktioner:
Exempel på hur du anpassar ändringsbeställningsdokument, bland annat Offerförfrågan (RFQ), Ändringsbegäranden (COR) och Byggherre Ändringar (OCO).
Scenario: du vill skapa ett dokument som innehåller de kommentarer som lagts till under en ändringsbeställnings löptid.
Exemplet visar {#rfq.comments} som starttaggen för variablerna och {/rfq.comments} som avslutande tagg. De andra relaterade variablerna måste vara mellan dessa två variabler.
Exempelvis en offertförfrågan med följande kommentarssektion:

Om du lägger till en tabell i ett Word-dokument med följande:

Resulterar det i:

Endast en rad i en tabell måste fyllas i i dokumentmallen. Programvaran skapar tabellen med den angivna informationen baserat på data i Cost Management.
För att organisera begäran om ändringsbeställning eller ändringsbeställningar från byggherre enligt huvudavtalets värdetidplan i din dokumentmall. Använd följande mönster för begäran om ändringsbeställning:

Och för Byggherre Ändring (OCO) ersätter du rco med oco.
Scenario: Du skapar ett ändringsbeställningsdokument (till exempel Byggherre Ändring (OCO)) och vill ha två separata tabeller. En för vanliga kostnadsobjekt med en delsumma och den andra för påslagskostnadsobjekt. Du vill även lägga till totalpris för ändringsbeställningen. Hur gör man det? Här är ett exempel på variabler som används i ett dokument:

Använd följande variabler för att visa associerat Ändringsbegäran (COR)- och Byggherre Ändring (OCO)-nummer:
{this.costItem.corNumber}{this.costItem.ocoNumber}
Resultatet:

Exempel på anpassning av avtalsdokument och visningar av värdetabeller.
Scenario: Du vill skapa ett avtal som endast visar delsumman för underobjekten i värdetabellen. Du vill inte att ett överordnat objekt ska vara synligt för en underleverantör. Använd följande variabler från dokumentmallen:

Du vill inte heller visa värdena Enhetskostnad och Belopp som $0. Du kan ersätta $0 med ordet ”Ingår”. Hur gör man det? Utöka redan använda variabler:

Resultatet i det skapade avtalet kommer att se ut så här:

Använd den här formeln för att referera till en budgetkod och -namn i dokumentmallen:

Till exempel när värdetabellen för kontraktet ser ut så här:

Den formel som presenteras genererar följande:

Dessa exempel visar avancerad användning av variabler för komplexa anpassningsbehov av dokument.
Avancerade filtreringstekniker för att visa eller dölja specifika data i dina dokument.
Du kan använda filterfunktioner när du skapar dokument. Om du till exempel bara vill visa objektet Riskoförutsedda utgifter använder du variabeln {#payment.columnView.rootItems | filter:"name":"Risk Contingency"}:

Resultat:

Medlemmar kan också dela upp den ursprungliga värdetabellen med alla godkända UE-Ändringar (SCO - ÄTA) i två separata kalkylblad.
Använd följande variabel för att generera ett kalkylblad som endast innehåller de ursprungliga värdetabellerna:
{#payment.lineView.rootItems | filter:"associationType":"SOV"} {/payment.lineView.rootItems | filter:"associationType":"SOV"}Använd följande variabel för att skapa ett kalkylblad som endast innehåller godkända UE-Ändringar (SCO - ÄTA):
{#payment.lineView.rootItems | filter:"number":"Change Orders"} {/payment.lineView.rootItems | filter:"number":"Change Orders"}Scenario: Du vill skapa separata kalkylblad i kalkylbladet för kostnadsbetalningsansökan för olika typer av UE-Ändring (SCO - ÄTA) (till exempel "Direktiv från byggherre" och "Ändring av underleverantör").
Användning 1: Gå igenom UE-Ändring (SCO - ÄTA)-associerade betalningsobjekt med en specifik typ av UE-Ändring (SCO - ÄTA)
Använd funktionen filter med scoType för att gå igenom ändringsbeställningsradobjekt av en viss typ. Lägg till en ny flik i kalkylbladet med följande variabelmönster:
{#payment.lineView.rootItems| filter:"number":"Change Orders"}{#children | filter:"scoType":"Owner Directive"}
... // loop in each SCO associated payment item
{/children | filter:"scoType":"Owner Directive"}{/payment.lineView.rootItems| filter:"number":"Change Orders"}Det här filtrerar ändringsbeställningens rotobjekt först och går sedan igenom varje underordnat objekt där UE-Ändring (SCO - ÄTA)-typen matchar "Direktiv från byggherre".
Användning 2: Summeringsvärden för UE-Ändring (SCO - ÄTA)-associerade betalningsobjekt med en viss typ
Använd funktionerna get och sumBy med scoType för att beräkna summor för en viss UE-Ändring (SCO - ÄTA)-typ:
{payment.lineView.rootItems| filter:"number":"Change Orders" | get:"0.children" | filter:"scoType":"Owner Directive"|sumBy: "originalAmount"}Detta returnerar summan av de ursprungliga beloppen för alla ändringsbeställningsobjekt av typen "Direktiv från byggherre".
Scenario: Du vill skapa ett ändringsbeställningsdokument som delar upp kostnadsobjekt per kostnadstyp och visar separata tabeller för material, arbete, utrustning och underleverantörer baserat på budgetkodsegment.
Använd funktionen filter med "budgetCode.original":"includes" för att filtrera kostnadsobjekt efter deras budgetkod. Om du till exempel bara vill visa objekt där budgetkoden innehåller ”SUB” (underleverantör):
{#rco.costItems | filter: "budgetCode.original":"includes":"SUB"}
{index} {name} {description} {submitted} {pcoNo}
{/rco.costItems | filter: "budgetCode.original":"includes":"SUB"}Om du vill skapa separata avsnitt för varje kostnadstyp skapar du flera tabeller med olika filtervärden:
| Kostnadstyp | Filtervärde |
|---|---|
| Material | "includes":"MAT" |
| Arbetskraft | "includes":"LAB" |
| Utrustning | "includes":"EQUIP" |
| Underentreprenör | "includes":"SUB" |
"includes" matchar alla delar av budgetkoden. Filtervärden som ”MAT” eller ”LAB” måste vara huvudkoder definierade i ditt projekts inställningar för budgetkodsegment – du kan inte filtrera med valfri text.
I situationer där administratörer inte vill göra övriga kostnader synliga i det skapade dokumentet kan de använda filter:

Resultatet:

Avancerade tekniker för att beräkna summor och utföra dataaggregering i dina dokument.
Funktionen sumBy hjälper dig att aggregera värden i datauppsättningen.
Exempel 1: Beräkna delsumman för godkända värden för varje Potentiell Ändrings (PCO) vanliga kostnadsobjekt.
{#oco.pco}{regular | sumBy:'approved'}{/oco.pco}Exempel 2: Beräkna totalsumman för godkända värden för varje Potentiell Ändrings (PCO) kostnadsobjekt.
{#oco.pco}{this | getAll: "costItems" | sumBy: "approved"}{/oco.pco}Exempel 3: Beräkna den kombinerade summan av specifika påslag (t.ex. Påslag1 + Påslag2).
Använd filter-funktionen med sumBy och add för att skapa delsummor för valda påslag:
{(oco.markups | filter: "name":"Markup1" | sumBy: "approved") | add: (oco.markups | filter: "name": "Markup2" | sumBy: "approved")}Detta filtrerar påslag efter namn, summerar deras godkända värden och lägger ihop resultaten. Använd det här mönstret för att skapa anpassade delsummarader i dina dokumentmallar, till exempel ”Delsumma för Påslag 1 och 2”.

Funktionen sumBy är särskilt användbar när du behöver visa beräknade summor som inte är direkt tillgängliga som enskilda variabler.