Transform Toolbar - Tables

images\tbar_transtable.gif

 

Target box Operation box Source / Argument box

 

The Transform toolbar makes changes to an entire column (field) throughout the table. If a selection is present it will operate only on those records in the selection. If no selection is present it will apply to all records in the table.

 

The Transform toolbar consists of three boxes, from left to right: a target box, the operation box, and a source / argument box.

 

Target box

Also known as the scope box. The column that will be affected, altered or which will control the operation. The target box will be pre-loaded with the names of all fields in the table. The illustration above shows the Discount field has been chosen.

Operation box

The function to be applied. The operation box is context sensitive and will show only those operations that make sense for the field type of the target column. For example, arithmetic operations such as Add will only be enabled for numeric fields.

Source / Argument box

The value to be used. Depending on the operator, this may be another column or a value entered by the user. A few operators (such as Clear) do not require a source or argument. The source / argument box will not be enabled for such operators. The illustration above shows we have entered .05 as a value in the source / argument box.

 

We use dark blue, black, and violet bold face fonts in this topic to distinguish the three boxes to make examples and explanation more clear. In real life Manifold uses the same black font color in all three Transform toolbar boxes.

 

Using the Transform toolbar

 

1. Open the table that contains the target records.

2. Make a selection if the operation is to be applied just to the selection.

3. Choose the target column in the target box.

4. Choose the desired operator in the operation box.

5. Choose or specify a value in the source / argument box, if this operation requires it.

6. Press Apply.

 

Target box

 

images\tbar_transtable_field.gif

 

The left-most box specifies the target field. This is the column that will be affected, altered or which will control the operation. Choosing the name of a column will apply the Transform function to only that field. The example above shows we will apply the Transform function to the Discount column in the table. If a selection is present then whatever operation we apply with the Transform toolbar will act only on those records that are part of the current selection. If no selection is present the transform operation will apply to all records in the table.

 

Note that the function of the leftmost box is slightly different when the Transform toolbar is used with tables as compared to images or drawings. The target box with tables is used to specify the name of a column to which the function should be applied. The scope (that is, all records or only the selection) is automatic based on whether there is a selection present or not.

 

With images and drawings the leftmost box is known as a target box and is just an information box. It is automatically loaded with the scope (all objects/pixels, or the selection, if one is present) based on whether there is a selection present or not.

 

Operation box

 

images\tbar_transtable_opr.gif

 

Choose a function from the long list of operators available in the operation box. The example shows Add, which is enabled for numeric fields and which adds the value in the source / argument box to all values in the target column. The Transform Operators - Tables topic lists operators available for use with tables.

 

Source / argument box

 

images\tbar_transtable_par.gif

 

Some operators do not require any parameters. For these functions the source / argument box will be disabled. Other functions will require specification of an additional parameter. This may be another column (such as the choices in the target box), or it could be a parameter that is entered by the user as illustrated above. To enter a parameter, click into the source / argument box, enter the value using the keyboard and then press Enter.

 

 

Examples

 

[Discount] Add .05 - Add .05 to the value in the Discount field. (Sounds like we're giving everyone an additional 5% off!)

 

[Elevation] Multiply by .3048 - Multiply all values in the Elevation field by .3048 (Clearly, we are converting a database of elevations given in feet into meters).

 

[Elevation] Multiply by [Offset] - For each record, take the value of the Elevation field in that record and multiply it by the value of the Offset field in that record and put the result into the Elevation field.

 

Type Conversions and Compatibility

 

There are four field type families in Manifold tables for transform toolbar purposes:

 

Date

Date and time field type.

Numeric

Currency, integer, floating-point, latitude and longitude field types.

Percentage

Percentage field type.

Text

Text and URL field types.

 

Manifold will automatically convert types on the fly when copying from one data type to a compatible data type using transform operators. Within the same field type family most operations will be performed automatically with few issues other than the most obvious: floating point numbers will be rounded when converted into integers.

 

When using transform operators between fields of different types not all conversions are possible, since not all data can exist in compatible forms for all data types. For example a text field can contain text values like "123" and "1984" that can be converted into numbers; however, spelled out numbers like "one two three" and mixed values like "43-B5" cannot be converted into numbers. If we copy values like "43-B5" from a text column into an integer column the result will be zero. Manifold will do the best job possible given standard type conversion conventions as applied within Windows Visual C++ and Visual Basic programming.

 

A few operators don't make sense unless the field types in the target box and the source / argument box are in the same field type family. These are the homogeneous statistic functions (impress your friends with that nomenclature!): Fill with Maximum, Fill with Minimum, Fill with Median, Make at Least and Make at Most. For these transform operators the target box and the source / argument box fields must be of the same field type. For example, one cannot take a text field and use Make at Least to make it at least like the contents of an Integer field. As a theoretical matter, Manifold could have been internally arranged to make conversions on the fly in a way that would have allowed these functions to have been applied in one step between incompatible field type families. As a practical matter doing so would have involved numerous operational subtleties that are very difficult for most people to understand on the fly.

 

Instead, such functions are applied between different field type families using a two step process: The correct way to apply a homogeneous statistic function between fields from different field type families is to first make a conversion using a copy and then to apply the statistic function. For example, to apply Make at Least to a text field based on an integer field, first apply Make at Least between the integer field into another integer field and then copy the value of that integer field into the target text field.