Overview
This guide explains how to correctly write and apply formulas in Smart Forms and Registers within Cora PPM. It covers syntax rules, available system groups, field references, and practical examples.
Where Formulas Are Used
Formulas can be applied in multiple areas of Cora, including:
Smart Form fields (calculated values)
Register fields
Project Variables
System Constraints
User Attributes
Dropdown lists & Checkboxes (formatted with suffixes)
Formula Syntax Reference
Dates
Date calculations are supported by using suffixes:
N
→ returns decimal equivalent of a dateD
→ returns date equivalent of a decimal value
System variables:
TODAY
→ today’s dateTODAYN
→ today’s date in decimal format
Examples
Numbers
Numeric fields can be formatted in text functions.
Use suffix S
to format with thousand separators and decimals.
Example
Other Suffixes
The suffix S
also works with:
Dates
Dropdown lists
Checkboxes
Baseline Values & System Groups
Project Variables (PV)
FV
→ First ValueLV
→ Last ValueSV
→ Selected ValueTV
→ Total ValueYV
→ Yes ValueZV
→ Zero Value
Examples
Register Variables
ID
fields (form fields)KA
(Key Attributes)PV
(Project Variables)
Operators
Boolean: AND
, OR
, NOT
Comparison: <
, >
, <=
, >=
, =
, <>
, IN
, LIKE
Arithmetic: +
, -
, *
, /
, %
Example
String Operators
Use +
to concatenate strings.
Example
Wildcard Characters
Use *
or %
in LIKE comparisons.
They must be at the start or end of a string.
If *
or %
appear in a clause, enclose in brackets []
.
Examples
Invalid
System Constraints
System Constraints are rules applied at system level to control values, enforce conditions, or validate inputs across SmartForms and Registers. They help standardize behavior and ensure consistency.
How to use System Constraints in formulas
Reference constraints by their ID (like fields and attributes).
Apply logical operators (
AND
,OR
,NOT
) or conditional functions (IIF
) to enforce rules.Use constraints to validate dates, restrict ranges, or enforce required values.
Examples
Restrict a numeric field to positive values
Ensure a due date is not earlier than today
Mark a field mandatory if another field is set
Validate against project variables
Referencing Fields in Other Groups
Fields from other groups are referenced by their ID codes.
Key Attributes and Project Variables can be combined in formulas.
Baseline suffixes (FV, LV, SV, TV, etc.) help retrieve specific values.
Examples
Practical Examples
Days until deadline
Completion percentage
Formatted budget total
Conditional check (wildcard)
Concatenate project name & code
Best Practices
Always check field ID codes in the form/register setup.
Use suffixes consistently (N, D, S, FV, TV, etc.).
Test formulas with sample data before applying widely.
When working with text, use wildcards carefully (start/end only).
String & Conversion Functions
LEN
Gets the length of a string.
ISNULL
Returns the expression or a replacement value if null.
IIF
Inline conditional function.
TRIM
Removes leading and trailing spaces.
SUBSTRING
Gets part of a string starting at a position.
CONVERT
Converts a value to a specific .NET type (case-sensitive).
User Attributes
For fields of type User List, you can access attributes of the selected user.
Examples
Available Attributes
UserID
UserName
FirstName
Surname
Title
Nickname
EmailAddress
PhoneNumber
Mobile
Inactive
Administrator
FullUser
ResourceOnly
ImageExists
ImageFile
ExternalLink1–5
Dropdown Lists
For fields of type Dropdown List, you can access attributes of the selected item.
Example
Available Attributes
Description → text of selected item
Value → numeric value (same as field reference)
Image → image path for selected item
Color → HTML color value (e.g., #FF2020)
Cascading Dropdowns
If the list is cascading, use P
followed by levels to reference a parent.
Example
Practical Examples
Milestone Details
For fields of type Milestone Details, you can access attributes for the configured entry.
Example
Available Attributes
ID → The milestone ID
Description → The description of the milestone
Total → The number of milestones for the configured type
Late → The number of late milestones for the configured type
Completed → The number of completed milestones for the configured type
NotStarted → The number of milestones not yet started
OnTrack → The number of milestones started but not late
LatePercentage → Percentage of milestones that are late
CompletedPercentage → Percentage of milestones completed
NotStartedPercentage → Percentage of milestones not started
OnTrackPercentage → Percentage of milestones on track
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article