Using Variables in the Report Builder
When creating a report, variables that are commonly used as parameters include:
- @companyid@
- @userid@
- @objectid@
- @rolelist@
- @parentlist@
Contents
userid
- @userid@ - returns records where the value of the field contains the user id of the person running the report. Syntax: =@userid@
This variable can be used to create an individual user-specific report, such as sales for that user, or login history for that user.
companyid
- @companyid@ - returns records where the value of the fields contains the company id of the user running the report. Syntax =@companyid@
Using this variable eliminates the need to create different reports for different branches but this technique will not display records in the report related to sub-branches. This technique will not display records for sub-branches of the user's branch.
If you wish to create a report that displays both the user's branch and all sub-branches of the user's branch then you need to use the following technique:
- Add the field "Branch/Offices - Parent List" to the Report Builder window. This field returns a string containing the list of companyIDs that define the hierarchy for the current companyID. This string is delimited by commas.
- Set the criteria for this field to like '%,@companyid@,%' This criteria will compare the current company ID to the Parent list and include all company IDs where the current company is referenced as a parent. Note the use of the wildcards "%" and the commas in the criteria string. You should hide the field in the report.
objectid
- When using any of the ReportProperty Variables (recordcount, exportdata and csvdata) the object ID (opportunityid, eventid, userid, etc) will be passed to the report processor. If the specified report includes the variable: @objectid@, it will be replaced by the object ID of whichever object (Level 1, Level 2, Contact, etc) called the ReportProperty attribute.
rolelist
- Returns a list of roles belonging to the referenced object. @me.rolelist@ can be used to return a comma-delimited list of the current user's roles.
parentlist
- The full SmartSimple path to the object.
System Variables
System Variables can also be used as report criteria.
Example: If you have a series of reports that will use the same fixed date range, you can set one of the report criteria to be @system.StartDateForReports@ where StartDateForReports is the name of a System Variable you have created to store your start date.
Referencing criteria entered in the same report
- If you ever need to reference the user entered criteria within the same report, you can use the @argx@ variable where x = 1,2,3.. depending on what number the argument is. The idea is similar to using @args[1]@ if referencing the criteria within a sub-report but this is for a single report.
- This syntax can be used within Calculated Field and Criteria.
A sample use case would be if you are prompting for a date range in the report, but within another column of the report you want to use the user-entered date to further limit the records using date_add or date_sub.