Formatted Strings
Text strings can be formatted to include additional elements by
using the @ symbol at the beginning of the string to be
formatted.
At the point where the formatting is to be inserted use the @
symbol again and enclose the formatting within brackets ().
Examples
Formatted String | Meaning |
---|
@"Thank you for submitting your
order, number @(
DWVariableOrderNumber)" | Returns: "Thank you for submitting your order, number
12345" The value 12345 is calculated from the variable OrderNumber. |
@"The overall height will be @(HeightReturn +
2*DWVariableClearance)mm and the overall width will be
@(DWVariableUnitAWidth + DWVariableUnitBWidth)mm" | Returns: "The overall height will be 2187mm and the overall
width will be 1675mm" The value 2187 is calculated from the value of the Height
control added to 2 * the variable Clearance. The value 1675 is calculated from the sum of the variables
UnitAWidth and UnitBWidth |
VariableSumMultiplyVariableSumMultiply
Adds the product of the variables that match the
given name within the given category.
Syntax
VariableSumMultiply( [Category Path], [Variable
Filter 1], [Variable Filter 2] )
Category Path is the path to the category whose variables will
be processed, nested categories can be separated with
the backslash.
Variable Filter 1 is a string which will be used to match
variables.
Variable Filter 2 is a string which will be used to match
variables.
Examples
Rule | Meaning |
---|
VariableSumMultiply("Quote\LineItem","*UnitPrice","*Qty") | Will multiply all variables, in the Quote\LineItem category,
ending in
UnitPrice with those ending in
Qty |
VariableSumVariableSum
Adds all variables within a category that match the given
name.
Syntax
VariableSum( [Category Path], [Variable Filter]
)
Category Path is the path to the category whose variables will
be processed, nested categories can be separated with the
backslash.
Variable Filter is a string which will be used to match
variables.
Examples
Rule | Meaning |
---|
VariableSum("Quote\LineItem","*
TotalPrice") | Will add all variables, in the Quote\LineItem category, ending
in
TotalPrice |
VariableGetUniqueNumberVariableGetUniqueNumber
Gets a unique number for a variable which belongs to a sequence
of variables.
Syntax
VariableGetUniqueNumber( [Variable Prefix],
[Variable Suffix], [Variable Index] )
Variable Prefix is the name of the variable that appears before
its number.
Variable Suffix is the name of the variable that appears after
its number.
Variable Index is the number of the variable for which to
calculate the unique number.
The sequence of numbers used in the variable names must run
consecutively, without any numbers being skipped.
Variable Prefix and Suffix values are not case sensitive.
Variables that result in text strings are also not case
sensitive.
This function will search in all categories and
sub-categories for variables that match the specified prefix and
suffix values.
Examples - Using Variable Prefix
Refer to Variable Names table below
Rule | Result | Why? |
---|
VariableGetUniqueNumber("Var","",
1) | 1 | Because "Hello" is the
first unique value in the sequence of variables running from Var1
to Var
1 |
VariableGetUniqueNumber("Var","",
2) | 2 | Because "World" is the
second unique value in the sequence of variables running from Var1
to Var
2 |
VariableGetUniqueNumber("Var","",
3) | 1 | Because "Hello" was
already assigned the number 1 in the sequence of variables running
from Var1 to Var
3 |
VariableGetUniqueNumber("Var","",
4) | 3 | Because "John" is the
third unique value in the sequence of variables running from Var1
to Var
4 |
Example Variables
Variable Name | Value |
---|
Var1 | "Hello" |
Var2 | "World" |
Var3 | "Hello" |
Var4 | "John" |
Examples - Using Variable Prefix and Suffix
Refer to Variable Names table below
Rule | Result | Why? |
---|
VariableGetUniqueNumber("Item","Qty",
1) | 1 | Because 8 is the
first unique value in the sequence of variables running from Var1
to Var
1 |
VariableGetUniqueNumber("Item","Qty",
3) | 3 | Because 18 is the third
unique value in the sequence of variables running from Var1 to Var
3 |
VariableGetUniqueNumber("Item","Qty",
4) | 2 | Because 12 was
already assigned the number 2 in the sequence of variables
running from Var1 to Var
4 |
VariableGetUniqueNumber("Item","Qty",
5) | 4 | Because 27 is the fourth
unique value in the sequence of variables running from Var1 to Var
5 |
Example Variables
Variable Name | Value |
---|
Item1Qty | 8 |
Item2Qty | 12 |
Item3Qty | 18 |
Item4Qty | 12 |
Item5Qty | 27 |
IndirectIndirect
Evaluates the result of a rule provided as a string.
Syntax
Indirect(Rule Text)
Where
This is the rule in the form of a string which will be evaluated and its result returned.
Examples
Rule | Meaning |
---|
INDIRECT("DWVariableQuoteItem" & ItemReturn) | When ItemReturn results in 2 the result will be the value of the Variable DWVariableQuoteItem 2 |
INDIRECT("IF(DWVariableQuoteItem" & ItemReturn &"<2,""A"",""B"")") | Will evaluate the result of the Variable DWVariableQuoteItem 3 (When ItemReturn results in 3) and return A if it is less than 2 otherwise will return B. |
TableAverageTableAverage
Gets the average of the values in a column of the given
table.
Syntax
TableAverage( [Table], [
Column Index])
Table is the table that is to be filtered.
Column Index is the column number the Condition is to be applied
to.
Examples
Rule | Meaning |
---|
TableAverage(DwLookup
Items,
4) | Gets the average of the values in column
4 of the
Items table (below), result will be 482.08 |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
TableFilterTableFilter
Eliminates non-matching values from the table that meet the given condition.
Syntax
TableFilter( Table, Column Index, Condition )
Table is the table that is to be filtered.
Column Index is the column number the Condition is to be applied to.
Condition is the search condition that when matched will filter the table.
Examples
Rule | Meaning |
---|
TableFilter(DwLookupItems,2,">900")
| Filters the table to show only the values where column
2 (Width), of the
Items table (below), is
greater than 900. Will result in: {"Item","Width","Position","Cost";"Double Cupboard with
Drawer","1200","Left Wall","600";"Cupboard Left Drawer
Right","1200","Left Wall","610";"Cupboard Right Drawer
Left","1200","Left Wall","610";"Double Cupboard with
Drawer","1200","Right Wall","600";"Cupboard Left Drawer
Right","1200","Right Wall","610";"Cupboard Right Drawer
Left","1200","Right Wall","610"} |
Header rows will be included in the result
Array Result Displayed as a Table
Item | Width | Position | Cost |
---|
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
TableDistinctTableDistinct
Eliminates non-distinct values in the table.
Syntax
TableDistinct( [Table], [
Column Index
], )
Table is the table that is to be filtered.
Column Index is the column number the Condition is to be applied
to.
Examples
Rule | Meaning |
---|
TableDistinct(DwLookup
Items,
2) | Filters the table to show only the distinct values from column
2 (Width), of the
Items table (below). Will result in: {"Item","Width","Position","Cost";"Single Drawer
Unit","600","Rear Wall","330";"Double Drawer Unit","900","Rear
Wall","495";"Double Cupboard with Drawer","1200","Left
Wall","600"} |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
TableMaxTableMax
Gets the row containing the maximum of the values in a column of
the given table.
Syntax
TableMax( [Table], [
Column Index
], )
Table is the table that is to be filtered.
Column Index is the column number the Condition is to be applied
to.
Examples
Rule | Meaning |
---|
TableMax(DwLookup
Items,4) | Gets the first row to be found with the largest value
in column 4 (Cost), of the
Items table (below). Will result in: {"Cupboard Left Drawer Right","1200","Left Wall","610"} |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
TableMaxValueTableMaxValue
Gets the maximum value from a column in a table.
Syntax
TableMaxValue( [Table], [
Column Index
], )
Table is the table that is to be filtered.
Column Index is the column number the Condition is to be applied
to.
Examples
Rule | Meaning |
---|
TableMaxValue(DwLookup
Items,4) | Gets the maximum value in column 4 (Cost), of the
Items table (below). Will result in: 610 |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
TableMinTableMin
Gets the row containing the minimum of the values in a column of
the given table.
Syntax
TableMin( [Table], [
Column Index
], )
Table is the table that is to be filtered.
Column Index is the column number the Condition is to be applied
to.
Examples
Rule | Meaning |
---|
TableMin(DwLookup
Items,4) | Gets the first row to be found with the smallest value in column
4 (Cost), of the
Items table (below). Will result in: {"Single Cupboard Full","600","Rear Wall","280"} |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
TableMinValueTableMinValue
Gets the minimum value from a column in a table.
Syntax
TableMinValue( [Table], [
Column Index
], )
Table is the table that is to be filtered.
Column Index is the column number the Condition is to be applied
to.
Examples
Rule | Meaning |
---|
TableMinValue(DwLookup
Items,4) | Gets the minimum value in column 4 (Cost), of the
Items table (below). Will result in: 280 |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
TableSumTableSum
Gets the sum of the values in a column of the given table.
Syntax
TableSum( [Table], [
Column Index])
Table is the table that is to be filtered.
Column Index is the column number the Condition is to be applied
to.
Examples
Rule | Meaning |
---|
TableSum(DwLookup
Items,
4) | Gets the sum of the values in column
4 of the
Items table (below), result will be 5785 |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
TableTransposeTableTranspose
Transposes (interchanges the columns and rows of) the given
table.
Syntax
TableTranspose( [Table]
)
Table is the table that is to be filtered.
Examples
Rule | Meaning |
---|
TableTranspose(DwLookup
Items) | Inverts the example
Items table (shown below) so the data in column 1
becomes the data in row 1, and the data in row 1 become data
in column 1, resulting in: {"Item","Single Drawer Unit","Double Drawer Unit","Single
Cupboard Full","Double Cupboard Full","Single Cupboard with
Drawer","Double Cupboard with Drawer","Cupboard Left Drawer
Right","Cupboard Right Drawer Left","Single Cupboard with
Drawer","Double Cupboard with Drawer","Cupboard Left Drawer
Right","Cupboard Right Drawer
Left";"Width","600","900","600","900","600","1200","1200","1200","600","1200","1200","1200";"Position","Rear
Wall","Rear Wall","Rear Wall","Rear Wall","Left Wall","Left
Wall","Left Wall","Left Wall","Right Wall","Right Wall","Right
Wall","Right
Wall";"Cost","330","495","280","440","300","600","610","610","300","600","610","610"} |
Sample Data Table
Items Table
Item | Width | Position | Cost |
---|
Single Drawer Unit | 600 | Rear Wall | 330 |
Double Drawer Unit | 900 | Rear Wall | 495 |
Single Cupboard Full | 600 | Rear Wall | 280 |
Double Cupboard Full | 900 | Rear Wall | 440 |
Single Cupboard with Drawer | 600 | Left Wall | 300 |
Double Cupboard with Drawer | 1200 | Left Wall | 600 |
Cupboard Left Drawer Right | 1200 | Left Wall | 610 |
Cupboard Right Drawer Left | 1200 | Left Wall | 610 |
Single Cupboard with Drawer | 600 | Right Wall | 300 |
Double Cupboard with Drawer | 1200 | Right Wall | 600 |
Cupboard Left Drawer Right | 1200 | Right Wall | 610 |
Cupboard Right Drawer Left | 1200 | Right Wall | 610 |
DWHLookupDWHLookup
Returns a value from a table corresponding to a match found in
the specified row.
Syntax
DWHLookup( [Value], [
Table Name], [
Lookup Row], [
Result Row Index], [
MatchType] )
Value is the value to be found.
Table Name is the table within which the value is to be
found.
Lookup Row is the number of the row containing the data to be
searched for.
Result Row Index is the number of the row containing the data to
be returned.
MatchType defines whether the match has to be exact (False) or
the nearest found (True).
Examples
Rule | Meaning |
---|
DWHLookup(CarColourComboBoxReturn, Vehicles, 3, 2,
FALSE) | The function looks in the Vehicles table for a match, in the
third row of the table, to the value returned from the
CarColourComboBox. If a match is found, the function then looks up
to the second row and returns the value in the same column as the
match found. The user has also specified that the match needs to be
exact (denoted by the FALSE term). In this case, the Car Colour
selected in the combo box is "Blue", so the function returns
"Golf". |
Example Outcomes
Lookup | In | Lookup Row | Result Row Index | MatchType | Outcome |
---|
"Blue" | Vehicles | 3 | 2 | False (Exact) | "Golf" |
"White" | Vehicles | 3 | 1 | False (Exact) | "Renault" |
26 | People | 3 | 2 | True (Nearest) | "Dave Sharp" |
42 | People | 3 | 4 | False (Exact) | "Female" |
Example Data
Vehicles Table
Make | Volkswagen | Ford | Renault | Mazda |
---|
Model | Golf | Escort | Kangoo | 2 |
---|
Colour | Blue | Red | White | Black |
---|
People Table
Member ID | 42 | 44 | 96 | 107 | 251 |
---|
Name | Dave Sharp | Joe Bloggs | Sandra Shield | Thomas Knight | Isabelle Jones |
---|
Age | 25 | 37 | 42 | 21 | 56 |
---|
Gender | Male | Male | Female | Male | Female |
---|
HLookupHLookup
Returns a value from a table corresponding to a match found in
the first row.
Syntax
HLOOKUP( [
Value], [
TableName], [
RowIndex], [
MatchType] )
Value is the value to be found.
TableName is the table within which the Lookup value is to be
found.
RowIndex is the number of the row containing the data to be
returned.
MatchType defines whether the match has to be exact (False) or
the nearest found (True).
Examples
Rule | Meaning |
---|
HLOOKUP(CarMakeComboBoxReturn, Vehicles, 2,
FALSE) | The function looks in the Vehicles table for a match, in the
first row of the table, to the value returned from the
CarMakeComboBox. If a match is found, the function then looks down
to the second column and returns the value in the same row as the
match found. The user has also specified that the match needs to be
exact (denoted by the FALSE term). In this case, the Car Make
selected in the combo box is "Volkswagen", so the function returns
"Golf". |
Example Outcomes
Value | TableName | RowIndex | MatchType | Outcome |
---|
"Volkswagen" | Vehicles | 2 | False (Exact) | "Golf" |
"Mazda" | Vehicles | 3 | False (Exact) | "Black" |
43 | People | 2 | True (Nearest) | "Dave Sharp" |
251 | People | 3 | False (Exact) | 56 |
Example Data
Vehicles Table
Make | Volkswagen | Ford | Renault | Mazda |
---|
Model | Golf | Escort | Kangoo | 2 |
---|
Colour | Blue | Red | White | Black |
---|
People Table
Member ID | 42 | 44 | 96 | 107 | 251 |
---|
Name | Dave Sharp | Joe Bloggs | Sandra Shield | Thomas Knight | Isabelle Jones |
---|
Age | 25 | 37 | 42 | 21 | 56 |
---|
Gender | Male | Male | Female | Male | Female |
---|
FsDirectoryExistsFsDirectoryExists
Returns TRUE if the specified directory location exists. FALSE is returned if it does not.
An error string is returned if there are any problems checking for existence.
Syntax
FsDirectoryExists( [Directory Location] )
Where:
Directory Location is the directory location to check. If a full path is not specified the function will check for the location relative to where the project is stored.
Examples
Rule | Meaning |
---|
FsDirectoryExists("E:\DriveWorks")
| Will check to see if the location E:\DriveWorks exists and return True if so. |
FsDirectoryExists("\\DRIVEWORKS-DATA\Specifications\" & OrderNumberReturn)
| Will check to see if the location \\DRIVEWORKS-DATA\Specifications, combined with the result of the control OrderNumberReturn, exists and return True if so. |
FsFileExistsFsFileExists
Returns TRUE if the specified file location exists. FALSE is returned if it does not. An error string is returned if there are any problems checking for existence.
Syntax
FsFileExists([File Location],[Wait Time])
Where:
File Location is the file location to check. If a full path is not specified the function will check for the location relative to where the Project is stored.
Wait Time is the minimum amount of time to wait for the check to complete in seconds. After the specified time if the file was not found the function will return the message "#IO! Timed out" (This property is optional).
This function could affect performance (when the file being checked is located on an unreachable network for instance). Therefore the Rules Builder or Analyze Rule function in Test Mode will not display the result of the function, a blank will be displayed instead.
Examples
Rule | Result | Meaning |
---|
FsFileExists("C:\DriveWorks\DataSheets\Product.pdf") | TRUE | Will check to see if the file exists in the given location. |
FsFileExists("C:\DriveWorks\Specifications\"&OrderNumberReturn&"\Quote.doc") | TRUE | Will check to see if the file exists. This example shows how you would find a file for a specific Specification. |
MyNameMyName
Gets the name assigned to the owner of the rule.
Syntax
MyName()
Examples
Rule | Meaning |
---|
Data and Form Controls - see How To: reference Control Properties. |
---|
MyName() | When applied to a variable named TotalCost will result in DWVariableTotalCost |
MyName() | When applied to a dynamic form control property the result will be the name of the control followed by the property name, for example: - ControlNameEnabled
- ControlNameVisible
- ControlNameError
- ControlNameMin
- ControlNameMax
- ControlNameListData
- ControlName.Width
|
Model Rules - see Model Rules General. |
---|
MyName() | When applied to a default parameter the result will be:
- ParentName\ChildName\Name (for File Name)
- ParentName\ChildName\Path (for Relative Path)
- ParentName\ChildName\Configuration (for Configuration)
For example: My Assembly\My Part\Path |
MyName() | When applied to a captured dimension the result will be:
ParentName\ChildName\CapturedDimensionName For example: My Assembly\My Part\Length |
MyName() | When applied to a captured feature the result will be:
ParentName\ChildName\CapturedFeatureName\SuppressionState For example: My Assembly\My Part\Boss\SuppressionState |
MyName() | When applied to a captured custom property the result will be:
ParentName\ChildName\CustomPropertyname For example: My Assembly\My Part\Date |
MyName() | When applied to a captured instance the result will be:
ParentName\ChildName\PartName-InstanceNumber For example: My Assembly\My Part\MyPart-2 |
Drawing Rules - see Drawing Rules General. |
---|
MyName() | When applied to a default parameter the result will be:
- ParentName\ChildName\DrawingName\Name (for File Name)
- ParentName\ChildName\DrawingName\Path (for Relative Path)
For example: My Assembly\My Part\My Drawing\Path |
DriveWorks 3D Document - see DriveWorks 3D File. |
---|
MyName() | When applied to a DriveWorks 3D Document parameter the result will be:
File Name\Parent Component Name\Child Component Name\ParameterName For example: My Drive3D File\ParentComponent\ChildComponent\Appearance My Drive3D File\ParentComponent\ChildComponent\ReplacementFilePath My Drive3D File\ParentComponent\ChildComponent\XPosition My Drive3D File\ParentComponent\ChildComponent\ZRotation |
GetNumericSuffixGetNumericSuffix
Gets the numeric suffix from a piece of text.
Syntax
GetNumericSuffix( [Text] )
Where:
Text is the text from which to get the numeric suffix.
Examples
Rule | Meaning |
---|
GetNumericSuffix(MyName()) | When applied to a variable named LineItem1 will return the number 1 as being the numeric suffix |
IsErrorStringIsErrorString
Returns TRUE if the specified value is an error string.
Otherwise FALSE will be returned.
Syntax
ISERRORSTRING( [Value] )
Value is the value to check
Examples
Rule | Meaning |
---|
IsErrorString(DWVariableCustomerNames) | Will check the variable CustomerNames for an error string and
report True if the value is reporting an error. |
IsErrorString("#DBCONNECT! (""Could not connect to
server"")") | Returns True as #DBCONNECT! ("Could not connect to server") is
a valid error string. |
DbExecuteDBExecute
Executes a query against a database and returns the number of
affected rows.
If running inside a project, it is guaranteed that no changes
will be made to the database.
If an ODBC connection is being used the command will not be run
and the result -1 will be returned.
If using a direct SQL connection, the command will be run but
the changes will never be saved.
In a specification the command will be executed as normal.
Syntax
DBEXECUTE( ["
Connection String"] , ["SQL Command"] ,
["
Username"], ["
Password"] )
Connection String
DBExecute supports both DSN and direct SQL connection
strings.
If using ODBC, a valid data source name is required, for
example:
If using SQL Server, a valid SQL connection string is
required, for example:
"Server= ServerName;Database= DatabaseName"
SQL Command
Is a valid SQL Query command to execute, for example:
"DELETE FROM Currency WHERE CurrencyForCalcs IS NULL"
"INSERT INTO Countries VALUES ('USA','MA','Boston','Dollar')"
"UPDATE Currency SET CurrencySymbol='$' WHERE CurrencyForCalcs = 'Dollar'"
Username
The username to gain access to the database (optional)
Password
The password to gain access to the database (optional)
Examples
Rule | Meaning |
---|
DbExecute("Server= DataServer;Database= Countries","DELETE FROM Currency WHERE CurrencyForCalcs IS NULL","","") | Connects to the SQL server DataServer and the Countries database. Will return the number of rows affected by the SQL command DELETE FROM in the Currency table WHERE a column named CurrencyForCalcs is NULL - e.g. 7. The connection utilizes Windows Authentication so the UserName and Password fields are blank ("") |
DbExecute("Server= DataServer;Database= Countries","INSERT INTO Countries VALUES ('USA','MA','Boston','Dollar')","","") | Connects to the SQL server DataServer and the Countries database. Will return the number of rows affected by the SQL command INSERT INTO in the Countries table for the VALUES USA, MA, Boston and Dollar in their respective columns - e.g. 1. The connection utilizes Windows Authentication so the UserName and Password fields are blank ("") |
DbExecute("Server= DataServer;Database= Countries","UPDATE Currency SET CurrencySymbol='$' WHERE CurrencyForCalcs = 'Dollar' ","","") | Connects to the SQL server DataServer and the Countries database. Will return the number of rows affected by the SQL command UPDATE, which would SET the column CurrencySymbol to $ WHERE a column named CurrencyForCalcs equals Dollar, in the Currency table - e.g. 175. The connection utilizes Windows Authentication so the UserName and Password fields are blank ("") |
HashMD5HashMD5
Computes the MD5 hash of the specified value and returns it in hexadecimal.
Syntax
HashMD5( [Value] )
Where:
Value is the value to compute the MD5 hash from.
Examples
Rule | Meaning |
---|
HashMD5("My text to hash")
| Returns a hexadecimal value from the MD5 hash of the text My text to hash. |
HashMD5(123456) | Returns a hexadecimal value from the MD5 hash of the number 123456 after first converting it to text. |
HashMD5(DWCurrentUserPassword) | Returns a hexadecimal value from the MD5 hash of the special variable DWCurrentUserPassword. |
HashSHA1HashSHA1
Computes the SHA1 hash of the specified value and returns it in
hexadecimal.
Syntax
HashSHA1( [Value] )
Where:
Value is the value to compute the SHA1 hash from.
Examples
Rule | Meaning |
---|
HashSHA1("My text to hash") | Returns a hexadecimal value from the SHA1 hash of the text My text to hash. |
HashSHA1(123456) | Returns a hexadecimal value from the SHA1 hash of the number 123456 after first converting it to text. |
HashSHA1(DWCurrentUserPassword) | Returns a hexadecimal value from the SHA1 hash of the special variable DWCurrentUserPassword. |