10 More Reasons to Like Arbutus (51-60)
- Additional Procedure Editor debugging aids
- Expression builder “Matching Quotes”
- Hide fields in the user interface
- Create dates and times from data values
- Adjust delimited tables “after the fact” to reflect data changes
- Stratify “Auto-Profile”
- Stratify “Range Rounding”
- Drill-down automatically opens the correct table
- Filedate() function
- Return command
Note: The following 10 More Reasons to Like Arbutus are aimed at technical or advanced users. Questions or comments? Please contact us.
In addition to colorization and the other debugging aids such as breakpoints and step mode, the Procedure Editor offers other debugging aids including:
- Automatic line wrapping, to ensure the entire command is always visible
- Automatic line numbering, to ensure you can correctly reference your code
- In conjunction with line numbering, whenever there is a procedure error, Arbutus automatically reports each procedure name and line number in use at the time of the error
The Expression Builder includes a button to automatically add a pair of matching quotes into the expression, and to then place the cursor between them. This is helpful when entering text data into expressions.
Like objects, fields may be hidden in the user interface. The fields still exist, but will not be displayed in most areas of the product. This is most useful when dealing with ‘intermediate’ fields that are used as part of a calculation, but would not normally be accessed separately.
This feature is also useful when importing tables from another source. You can choose to bring in all of the fields, but then hide the fields that are not presently of interest. As additional fields become useful, you can just un-hide them.
Calculations often require that date or time values be calculated, rather than specified. Arbutus offers two functions specifically designed for this: NTOD() and NTOT()
NTOD() takes three numeric parameters (a year, month, and day) and creates the date that they represent:
- e.g., NTOD(2012, 7, 4) = July 4, 2012
NTOT() takes three numeric parameters (an hour, minute, and second) and creates the time that they represent:
- e.g., NTOT(9, 15, 0) = 09:15:00 AM
You can also add these two functions together, to create any Date-Time required:
- e.g., NTOD(2012, 7, 4) + NTOT(9, 15, 0) = July 4, 2012 at 09:15:00 AM
Not only does Arbutus directly read delimited data files (without conversion or flattening), but it also allows you to change the table definitions later, meaning:
- You can change the widths of delimited fields at any time, in case you want to adjust for new data that is wider or narrower. Data is never lost, regardless of the width you choose.
- You can use the Verify command to ensure that your definitions are correct
- You can define new physical or computed fields, to augment the physical delimited data
- You can hide physical delimited fields that are not of interest
Stratifying data is a powerful way to get a quick overview of the character of your data fields. Unfortunately, you need to know some basic information about a field (particularly the min/max) to create a proper stratification.
Stratify “Auto-Profile” addresses this issue. If you Stratify a field for which the min/max information is not available, then Arbutus will automatically calculate these values before running the command.
When stratifying a field, there is nothing worse than having unusable ranges that have odd values. Typical systems just divide the range into even strata, even though this creates less useful results. Even worse, typically one stratum bridges zero, mixing negative and positive values together.
Stratify “Range Rounding” addresses this issue. When creating even strata, the Stratify command automatically adjusts the strata so the boundaries fall on more even breakpoints. Also, it ensures that the strata break on zero, to ensure that negative and positive values are not mixed.
The Filedate() function returns the date and time that the file was last changed. This is particularly useful when programmatically determining if data needs to be refreshed. This would involve comparing the date of change of the source data to the date of change of the Arbutus table data. If the source data is newer than the table data, then the table data is out of date.
- Immediately returns from the current procedure
- Optionally returns a value that can be used by the calling procedure
- Optionally can end all procedures (RETURN ALL) in the situation where a problem has been detected, or all processing is finished