Software Documentation

Software Documentation

ScriptingDocumentation

Integration Intermediate Last updated: June 6, 2022

12 Filter / search expressions

The filter bar at the top of the effects window, script, and other table windows supports full text search for whatever you type into the field, but it also supports search expressions, which enables you to filter the table according to precise criteria.  For example, if you want to search for red cakes that have a duration between 20 and 30 seconds, you can type into the filter bar,

red cake duration > 20 duration < 30

If you press enter, Finale 3D will reformat what you typed  as,

red + cake + duration > 20.0 + duration < 30.0

The reformatted version helps explain the syntax for search expressions.  “Red” and “Cake” don’t correspond to any of the column headers, so they are interpreted as full text search terms.  The table is filtered to items matching all of the full text search terms within the combined text across all columns.  So in this case, the table is filtered to items containing “Red” and “Cake” no matter what columns those terms appear in.

The plus sign (+) separates terms in the search expression.  Logically, the plus sign means “AND”.  Thus in this example, a row in the table must satisfy all four conditions to pass the filter.  Table  1 shows the full list of terms you can use in search expressions.

 

Table 1 – Search expression syntax

Function Example Meaning
Substring inclusion
red
Search for the substring “red” in any field
Substring exclusion
-red
Exclude any item with the substring “red”
Multiple search terms
red crackling
Search for items containing both “red” and “crackling”; shorthand for “red + crackling”
Numerical comparisons
duration > 2.3
Duration value is greater than 2.3
Other numerical comparisons
<, >, <=, >=, =, !=
Standard meanings; != means “not equal”
Conjunction
red + duration > 2.3
Require both conditions (the + symbol  means AND)
Disjunction
red || duration > 2.3
Require either condition (the || symbol means OR)
Substring inclusion in a specific field
partnumber += YF
Part number field contains substring “YF”
Substring exclusion in a specific field
partnumber -= YF
Part number field does not contain substring “YF”

Column names

The variable fields in search expressions are column names.  To avoid issues with localization in different languages, Finale 3D converts column names in search expressions to the internal column name, which is in English and doesn’t contain spaces.  Thus if you type “Part Number” as part of a search expression, it will be converted to “partnumber”.  The list of internal column names can be found in, Column names in Finale Inventory vs. Finale 3D.


Limitations of column names

Column names may only appear on the left side of boolean expressions; not on the right side.  Thus the following expression is valid:

duration < 30

But the mathematically identical expression with the column name on the right side is not valid:

30.0 > duration

On account of this limitation, it is not possible to write expressions that compare two column names.   For example, the following expression is unfortunately not valid:

safetydistance > positionsafetydistance

 

Left side and right side of binary expressions

Numerical comparisons must have a column name on the left side of the comparison symbol, and a number on the right side.  The number may be followed by quotation marks to indicate its unit is inches; or mm, m, or ft to indicate its unit is millimeters, meters, or feet; or nothing if it is just a number.  The following are all valid comparisons,

size > 2"
size > 50mm
size > 50

Numbers without explicit units representing sizes or distances are interpreted as inches if < 12 and millimeters otherwise, giving rise to a correct interpretation of most unit-less numbers for effect sizes.

Substring inclusion and exclusion phrases also must have a column name on the left side of the comparison symbol.  The right side is a full text search term.  Examples,

partnumber += YF
partnumber += "YF 4"

Precedence

Conjunctions in the search expressions have higher precedence than disjunctions.  Thus,

red size > 2" || blue

is interpreted as ( red + size > 2″) || blue, and includes rows that a) contain red and have size > 2″, or b) contain blue.  Parentheses are not allowed in search expressions, which are thus restricted in syntax to disjunctive normal form.

The lack of parentheses in search expressions causes the two disjunctive quantity filters “Used > 0 or Quota > 0” and “Used > 0 or Available > 0” to combine poorly with other filters.  Combining the “Used > 0 or Quota > 0” filter with “Size = 6″” for example results in the search phrase “size = 6″ + quota > 0 || used > 0”, which means “( size = 6″ AND quota > 0 ) OR used > 0”. As a workaround, if you want “( size = 6″ ) AND ( quota > 0 OR used > 0)” you can write the equivalent expression that does not require parentheses in the filter box: “size = 6″  + quota > 0 || size = 6″ + used > 0”.

 

Quoted phrases

If you want to search for items containing a phrase like “Red Crackling” that contains spaces or for phrases that include other special characters like parentheses, you can surround the phrase with quotation marks to make a quoted phrase.  Searching for “Red Crackling” (quotations included) will exclude a row that merely has the description “Red & Blue Crackling” because it doesn’t contain the quoted phrase exactly.

Since shell sizes in inches are common search terms in pyrotechnics, Finale 3D handles quotation marks with special rules that allow you to use them directly in search terms like 2″ and also quoted phrases.  Loosely speaking, pairs of quotation marks define a quoted phrase.  Individual quotation marks are merely part of a full text search term.  Thus,

"red crackling"

represents a quoted phrase, but,

red 2"

represents a full text search for red and 2″.  Generally, Finale 3D will understand when quotation marks are part of the full text search term, and not part of a quoted phrase.  If you want to search for a quoted phrase that contains a quotation mark character inside the phrase, you can precede the interior quotation mark with a backslash, as in,

"red 2\" crackling"

Though the circumstances are contrived, it is possible to construct search phrases with quotation marks that have ambiguous looking interpretations.  An example is: size=3 “description=4” chrys (with a space between the 3 and the quotation mark).  The interpretation is guaranteed to have the natural meaning if, a) quotation marks surrounding quoted phrases are flanked on the outside by space or nothing; b) quotation marks that are part of search terms outside of quoted phrases are not preceded on the left side by =, <, > or space; and c) quotation marks that are part of search terms inside of quoted phrases are preceded on the left by a backslash.


Boolean values

Boolean fields like the script fields “Straight Up” and “Is Chain” and “Pair” may be displayed as checkmarks in the table. Use the formal values “true” and “false” in search expressions, such as:

straight up = true

True and false in the search expression are not case sensitive.