Table of Contents

Customizable Table

The Customizable Table allows users to configure the fields required for the protocol, for example, to describe a DUT or a customer. Also, it is often necessary to add new fields to the software without recompiling.



The Customizable Table supports various types of data: numbers, dates, strings, list boxes, boolean values, etc. You can edit the table using the built-in text editor.


Syntax of the Customizable Table Configuration File

The table configuration is specified in the corresponding text file. Each new line in the file represents a new entry in the table. Each line should contain the following four columns:


An individual field must be enclosed in quotes (“). Each field is delimited by a semicolon ”;“.
If you need to use the semicolon in the field, put a backslash before it “\;”
”#“ - is used for making comments.

Config File Example

#       Name                      Alias            Type         Format 
#                             for test report
#
"Test Report Number"       ; "TR_Number"       ; "string"   ; "maxsize=100"
"Date of issue"            ; "TR_Date"         ; "date"     ; "dd/MM/yyyy"
"DUT Model"                ; "DUT_Model"       ; "string"   ; "maxsize=100"
"Serial Number"            ; "DUT_SN"          ; "string"   ; "maxsize=50"
"DUT Type"                 ; "DUT_Type"        ; "string"   ; "maxsize=100"
"DUT Description"          ; "DUT_Desc"        ; "string"   ; "maxsize=1000" 
"Manufacture"              ; "Mnf"             ; "string"   ; "maxsize=100"
"Manufacture Address"      ; "Mnf_Address"     ; "string"   ; "maxsize=100"
"Applicant"                ; "Applicant"       ; "string"   ; "maxsize=100"
"Applicant Address"        ; "App_Address"     ; "string"   ; "maxsize=100" 
"Test start date"          ; "Start_Date"      ; "date"     ; "dd/MM/yyyy HH':'mm':'ss"
"Test completion date"     ; "End_Date"        ; "date"     ; "dd/MM/yyyy HH':'mm':'ss"
"Visiual inspection"       ; "Vis_inspect"     ; "checkbox" ; "["True"\; "False"]"
"Declared Max Power"       ; "DUT_power"       ; "number"   ; "0.0## dBm"
"Central Frequency"        ; "DUT_freq"        ; "number"   ; "#,##0.00 GHz"
"Test Report Prepared By"  ; "TR_Prepared_By"  ; "listbox"  ; "["Leah J. Austin"\; "Shannon C. James"\; "Allie R. Charles"]"
"Test Report Reviewed By"  ; "TR_Reviewed_By"  ; "listbox"  ; "["Libaan Bijvank"\; "Lieven Roeters"]"
"Test Report Approved By"  ; "TR_Approved_By"  ; "listbox"  ; "["Barthelomeus Stuu"\; "Necla te Braak"]"

Number Formatting

Number formats can be divided into two categories:

Even with formatting, numbers do not need to be entered in that particular format - they will be automatically converted to the appropriate format.

Standard Formats

These are taken from the formatting strings for .NET platform. They always follow the format of one letter (specifying the format), followed by 0-2 decimal digits specifying the width. If no width is specified, the default one is used.

Specifier Character Name Description
“E” or “e” Exponential Result: Exponential notation
Width specifier: Number of decimal digits
Default width: 6
“F” or “f”Fixed pointResult: Integral and decimal digits with optional negative sign.
Width specifier: Number of decimal digits.
Default width specifier: Locale-specific
“N” or “n”NumericResult: Integral and decimal digits, group separators, and a decimal separator with optional negative sign
Width specifier: Desired number of decimal places
Default width specifier: Locale-specific


The Exponential ("E") Format Specifier

The exponential (“E”) format specifier formats the number as ”-d.ddd…E+ddd“ or ”-d.ddd…e+ddd“, where each “d” indicates a digit (0-9). The string starts with a minus sign if the number is negative. Exactly one digit always precedes the decimal point. The width specifier indicates the desired number of digits after the decimal point. If the width specifier is omitted, a default of six digits after the decimal point is used. The number will either be padded with zeros, or rounded to that many decimal places if needed. The case of the format specifier indicates whether to prefix the exponent with an “E” or an “e”. The exponent always consists of a plus or minus sign and a minimum of three digits. The exponent is padded with zeros to meet this minimum, if required.

The following properties depend on the culture / locale of the machine:


Examples of formatting the value using the “en-US” locale:


The Fixed Point ("F") Format Specifier

The fixed-point (“F”) format specifier converts a number to a string of the form ”-ddd.ddd…“ where each “d” indicates a digit (0-9). The string starts with a minus sign if the number is negative. The width specifier indicates the desired number of decimal places. If the width specifier is omitted, the number of decimal places is locale specific, by default 2. The number will either be padded with zeros, or rounded to that many decimal places if needed. If the width is 0, the number is effectively rounded to an integer.

The following properties depend on the culture / locale of the machine:


Examples of formatting the value, using the “en-US” locale:


The Numeric ("N") Format Specifier

The numeric (“N”) format specifier converts a number to a string of the form ”-d,ddd,ddd.ddd…“, where ”-“ indicates a negative number symbol if required, “d” indicates a digit (0-9), ”,“ indicates a group separator, and ”.“ indicates a decimal point symbol. The width specifier indicates the desired number of digits after the decimal point. If the width specifier is omitted, the number of decimal places is defined by the current locale.

The following properties depend on the culture / locale of the machine:


Examples of formatting the value, by default using the en-US locale:


Custom formats

Custom formats can be used if additional customization is necessary. A custom format consists of the numeric part, which specifies how the number itself is formatted, and the optional prefix and suffix, which specify the text to precede or follow the number. The numeric part consists of:

Note: this character must not be the last character before the decimal point (e.g. ##,.0) or at the end of the numeric part if there is no decimal point (e.g. ###0,). Other than that, the position of the character has no influence on the formatting, only it’s presence in the format.;

Format Explanation Examples
0 Just the integral part of the number,
at least one digit.
15.0127 → 15
00000 Just the integral part of the number,
with at least 5 digits, padded with zeros if needed.
15.0127 → 00015
123456 → 123456
0.### Number with 0-3 decimal digits.
Note: if there are no decimal places, the decimal point is not printed
15.0127 → 15.013
15.1 → 15.1
15 → 15
0.0## Number with 1-3 decimal digits.
Since there is always at least one digit after the decimal point,
it is always printed.
15.0127 → 15.013
15.1 → 15.1
15 → 15.0
#,##0.00 Number with 2 decimal places,
and with group separators inserted.
15 → 15.00
15000 → 15,000.00
12345.678 → 12,345.68
0.###E-0 Exponential notation with one integral digit,
and up to 3 decimal digits, with no exponent padding.
15 → 1.5E1
15.1 → 1.51E1
15.0127 → 1.501E1
0.###E+0 Exponential notation with one integral digit,
and up to 3 decimal digits, with no exponent padding.
The + sign will be printed if the exponent is positive.
15 → 1.5E+1
15.1 → 1.51E+1
15.0127 → 1.501E+1
0.###E+000 Exponential notation with one integral digit,
and up to 3 decimal digits, with exponent padded to at least 3 digits.
The + sign will be printed if the exponent is positive
15 → 1.5E+001
15.1 → 1.51E+001
15.0127 → 1.501E+001
12345 → 1.235E+004



Prefixes and suffixes are inserted within the text before and after the numeric part. All characters should be quoted using either single-quote ' or double-quotes ” characters. The \ character is used to escape other characters (including quotes and backslashes) if they need to be placed inside quoted prefixes or suffixes. While the quotes are not necessary, they are needed if special characters are used in the suffix, and it is recommended to place them anyway.

Examples:

Due to technical limitations, the prefixes and suffixes must not be misinterpreted as a number - the prefix must not contain digits or “+/-” signs; and the suffix should not start with digits or the “e” or “E” characters if they can be misinterpreted as a continuation of the number.

Prefixes and suffixes can be used to append measurement units to the data: For example, the format of 0.0##“ GHz” will append a GHz unit to the input value: 1.85 → 1.85 GHz. Note: there is no automatic unit conversion performed: thus, entering a value like “1500 MHz” will format it as “1500 GHz,” ignoring the supplied units. The entered value must be in the correct units.

Date formatting

Dates are formatted by arranging the individual DateTime elements, and the separators in between. For example, the format “dd-MM-yyyy” formats the 16th of August 2018 as 16-08-2018.

DateTime elements are the following:

Other alphabetic characters should not be used. All other characters will be copied to the output verbatim and used as separators. Note: to use ”:“ and ”/“ without localization, quote them using single or double quotes.

Examples:


Endnotes

Some parts are based on modified .NET Documentation by Microsoft, available at https://docs.microsoft.com/en-us/dotnet, released under the CC BY 4.0 license.