How to Customize the Style of Negative Numbers
By default, all cells in a DESTINI Cloud report line-item row use the same style. You can change the style for negative numbers, so they are easy to distinguish from positive numbers. For more information about styles in DESTINI Cloud reports, see Change Fonts and Colors in Your Report with the Styles Editor.
Use the following procedure to configure a different color for negative numbers in a line-item row.
- Open an estimate in DESTINI Cloud Estimator.
- Navigate to Home > New Report. Report Designer opens.
- Click File > Open.
- Navigate to the folder with the report template file (.repx) you want to modify.
- Click the .repx file to open it.
- In Report Explorer on the right side of your screen, right-click the Styles node and select Edit Styles.

- In the Styles Editor window, select CostItemDetails.
- Click the Clone a style button in the top left corner of the window.

- With the new style selected, enter the following information and then click Close:
- (Name): CostItemDetails_Negative
- Foreground Color: Red

Designer Changes
- In Report Explorer, search for and select tableCellTotalCost.

- In Designer in the middle of your screen, locate the cell you selected in the previous step and click the Function button.

- In Expression Editor, click Style Name.
- Paste the following expression and click OK:
Iif([][[WBSProperty1] = [^.WBSProperty1] AND[WBSProperty2] = [^.WBSProperty2] AND[WBSProperty3] = [^.WBSProperty3] AND[WBSProperty4] = [^.WBSProperty4] And[LineItemIdentification] = [^.LineItemIdentification] AND[Description] = [^.Description] AND[UnitOfMeasure] = [^.UnitOfMeasure] AND[UnitCost_RoundedForGrouping] = [^.UnitCost_RoundedForGrouping] AND[Notes_ForGrouping] = [^.Notes_ForGrouping]
Note: The above expression is for the Owners Report. If you are modifying the LMSEO Report, see the LMSEO Report Expressions table in this article for the correct expression.].Sum([TotalCost]) < 0, 'CostItemDetails_Negative', 'CostItemDetails')
- (Optional) Use the Owners Report Expressions table in this article and repeat this procedure to update each numerical value in your line-item row.
- Save and run your report.
Owners Report Expressions
The following table shows the expressions used to modify negative number style properties for the specified cell names in the Owners Report.
|
Line Item Info |
TableCell Name |
Style Name Expression |
|
Quantity |
tableCellQuantity |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [UnitCost_RoundedForGrouping] = [^.UnitCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([Quantity]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Unit of Measure |
tableCellUnitOfMeasure |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [UnitCost_RoundedForGrouping] = [^.UnitCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([Quantity]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Unit Cost |
tableCellUnitPrice |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [UnitCost_RoundedForGrouping] = [^.UnitCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Avg([UnitCost_RoundedForGrouping]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Total Cost |
tableCellTotalCost |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [UnitCost_RoundedForGrouping] = [^.UnitCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([TotalCost]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
LMSEO Report Expressions
The following table shows the expressions used to modify negative number style properties for the specified cell names in the LMSEO Report.
|
Line Item Info |
TableCell Name |
Style Name Expression |
|
Quantity |
tableCellQuantity |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([Quantity]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Unit of Measure |
tableCellUnitOfMeasure |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([Quantity]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Labor Unit Cost |
tableCellLaborUnit |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Avg([LaborCost_RoundedForGrouping]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Labor Total Cost |
tableCellLaborTotal |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([TotalLaborCost]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Material Unit Cost |
tableCellMaterialUnit |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Avg([MaterialCost_RoundedForGrouping]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Material Total Cost |
tableCellMaterialTotal |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([TotalMaterialCost]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Equipment Unit Cost |
tableCellEquipmentUnit |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Avg([EquipmentCost_RoundedForGrouping]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Equipment Total Cost |
tableCellEquipmentTotal |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([TotalEquipmentCost]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Sub Unit Cost |
tableCellSubUnit |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Avg([SubCost_RoundedForGrouping]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Sub Total Cost |
tableCellSubTotal |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([TotalSubCost]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Other Unit Cost |
tableCellOtherUnit |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Avg([OtherCost_RoundedForGrouping]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Other Total Cost |
tableCellOtherTotal |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([TotalOtherCost]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Unit Cost |
tableCellUnitPrice |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [UnitCost_RoundedForGrouping] = [^.UnitCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Avg([UnitCost_RoundedForGrouping]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |
|
Total Cost |
tableCellTotalCost |
Iif([] [[WBSProperty1] = [^.WBSProperty1] AND [WBSProperty2] = [^.WBSProperty2] AND [WBSProperty3] = [^.WBSProperty3] AND [WBSProperty4] = [^.WBSProperty4] And [LineItemIdentification] = [^.LineItemIdentification] AND [Description] = [^.Description] AND [UnitOfMeasure] = [^.UnitOfMeasure] AND [LaborCost_RoundedForGrouping] = [^.LaborCost_RoundedForGrouping] AND [MaterialCost_RoundedForGrouping] = [^.MaterialCost_RoundedForGrouping] AND [EquipmentCost_RoundedForGrouping] = [^.EquipmentCost_RoundedForGrouping] AND [SubCost_RoundedForGrouping] = [^.SubCost_RoundedForGrouping] AND [OtherCost_RoundedForGrouping] = [^.OtherCost_RoundedForGrouping] AND [Notes_ForGrouping] = [^.Notes_ForGrouping] ].Sum([TotalCost]) < 0, 'CostItemDetails_Negative', 'CostItemDetails') |