Wheelhouse®
QuickBooks Online Integration
Custom Fields and Forms
System Administration
Troubleshooting Checklist
Document Auto Number Format
Sale Shipment Records and Tracking Information Emails
Peripherals and Equipment Requirements
Navigation and Definitions
Understanding Order Flow in Wheelhouse
Understanding People and Organizations in Wheelhouse
Admin List Views and Single Record Views
Document Categories
Logging In and Getting Started
Left Menu Navigation
Advanced Search Techniques
User Administration
User Management: Adding, Editing, and Revoking Access
User Profiles and Roles
Choosing a User Profile
Defining or Adjusting Teams
Understanding Wheelhouse Login Types
Reports, Import, Exports, and Document Templates
Running Reports
Creating Reports on Quotes, Sales, and Outside Reps
Exporting to Excel
Preparing Excel and Word Templates for Data Merge
Quality Mangement
Adding QCIR Templates
QC Non Conformance Reports (NCRs)
Adding Quality Control Inspection Records (QCIR) in Shop Work
Order Management
Creating customers, quotes and sales
Order Management Guide
Adding Dealer and Outside Rep Logins
Using Order Flags and the Flag First Configs Option
Closing a Sale
External Agent Access Levels
Printing and Emailing Quotes and Sales
Production Routing and Tracking
Shop Work and QR Scanning
Shop Work: Priority Flags and Fixed Position
Merge Line Items at a Certain Step (Stash & Merge Functionality)
Stopping Work Center or All Running Operations at the End of the Shift
Bin Locations
Shop Work
Viewing/Adding/Resolving Work Order Issues
Production Scheduling
Labor Routings
Production Definitions
External Connections - API
Items and Configurators
Product Configuration in Wheelhouse
Item Overrides: Name, Pricing, and Discounts
Public Item Selector AKA Public Display Categories
Deploying A Configurator to Another Environment
Item and BOM Import Action
Wheelhouse Change Log
Table of Contents
Dino Script® Language Reference
Appendix A: Trestle®/Dino Script® Integration
A: Table of Contents
A: Commands
A: Dynamic and DynamicProxy
A: Advanced Command Arguments
A: Introduction
A: Files
A: Direct Links - URLs and Downloads
A: Running SQL Queries
A: NPOI and Excel, DocX and Word
A: Embedded Apps with MS Access Files
A: Returning JSON Data
A: Host and Target
A: Command Arguments
A: Creating/Running a Command
Adding New Functionality with Dino Script XCommand™
Introduction
Dino Script™ Table of Contents
Operators
Concepts
Syntax
Expression Types
Keywords
Variables
Blocks and Scopes
Built-In Functions
Custom Functions (defs)
Anonymous Functions
Conditional Statements
The Context Object
FAQ
Dino Cookbook
Sandbox In-Depth
Functions as Delegates
Style Guidelines
Native Types
Aliasing
Other Dino Scripts
- All Categories
- Dino Script® Language Reference
- Expression Types
Expression Types
Updated by Scott Waldron
As explained, an expression is something that returns a value. That value can be itself, or it can be a combination of other expressions, or a symbol (variable) lookup.
Literal Values
Literals are the simplest type of expression. They simply return themselves. Dino defines several types of literals – number (floating point and integer), string, char, Boolean (true and false), and null.
'this is a string literal'; // apostrophe marks.
"this is also a string literal"; // quotation marks.
$$this is also a string literal$$; // double-dollar marks.
`a`; // character (char) literal. Note the backticks, not apostrophes.
"a"[0]; // another way of getting a char - first index of a string literal.
3; // integer
0.7 // floating point
true; // or True, TRUE
false; // or False, FALSE
null; // or Null, NULL
These "naked statements" in the examples above are perfectly valid Dino code. Not very useful, except in one specific case - as the return value of an entire script. The final statement in a Dino script can also be a naked expression; that is, an expression without a terminating semicolon. This is useful for quick evaluations that are just a single expression.
// C# test rig code.
[TestMethod]
public void NakedExpressionShouldBeOk()
{
var result = DinoBuilder.Evaluate("3 + 4"); // note no semicolon terminator
Assert.AreEqual(result, 7);
}
[TestMethod]
public void PrintReturnsLastArg()
{
var result = DinoBuilder.Evaluate("print('this', 'is', 'a', 'test')");
Assert.AreEqual(result, "test");
}
Special String ($$)
Dino defines a special string that is delimited with $$ on both ends. So, you can just "$pecial $tring". This string is special because it is evaluated both at compile time (as a statement), and at evaluation time (as an expression). When evaluated at compile time, the compiler will look within these $$ delimiters for a "mini-language", raising the PossibleMiniLanguage event.
The $$ string is also handy for building templates for HTML or XML because you don't need to worry about embedded single or double quotes.
var greeting = $$
<div>
<h1 style="color:red;">Hello, {0}</h1>
</div>
$$;
Variables
Variables return whatever value they contain. A variable must be assigned, after which point it can be used as an expression in other statements and expressions.
var a = 3;
var b = 4;
var c = a + b; // three expressions: a, b, and a + b
c; // naked statement with whatever is in symbol c as the value
var x, y, z = 10; // set multiple symbols to the same value
You can read much more about variables in the main Variables section.
Other Types of Expressions
Most other types of expressions are created by combining simple expressions such as literals and variables. There are infinite ways to combine expressions, most of which involve using operators, which are defined in the next section.