Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Replaces %1, %2, %3... and #1, #2, #3... fields in a string with the values you provide as optional parameters.
Syntax
NewString := STRSUBSTNO(String [,Value1, …])
Parameters
String
Type: Text constant or Code
A string containing '#' and/or '%' fields.
The % fields are replaced by the values with their full lengths, and # fields are replaced by the values that are truncated to the length of the # field.
If this parameter is an expression that evaluates to Text or Code that is 512 or more characters, then a run-time error occurs.
Value1, …
Type: Any
One or more values (expressions) that you want to insert into String. You can specify up to 10 values.
Property Value/Return Value
Type: Text constant or Code
The resulting string, after the corresponding values have been substituted into the '#' and '%' fields.
Remarks
This function replaces the numbered specifiers in a string with a string representation of the equivalent numbered value.
The specifiers in the string can be either %n or #######n, where n represents a 1-based number. When you use the # specifier, the number can be anywhere in the specifier. For example, ###2#### is allowed.
The %n specifier is replaced with the string representation of the value with their full lengths.
The ##n specifier is replaced with the same number of characters as the length of the specifier (including the number). The values are truncated to the length of the # field.
If the string representation is shorter than the length of the specifier, then it is left aligned.
For example, StrSubstNo('Test %1 >#2##< >#3<', 1,2,3) returns "Test 1 >2 < >3 <".
In this example, the following substitutions are made:
%1 is replaced by '1' because a % field is replaced by the specified value in its full length.
'#2##' is replaced by '2 space space space' because the value is shorter than the field and therefore, the 2 is left aligned and the field is four characters long.
#3 is replaced by '3 space' because the 3 is left aligned and the field is two characters long
If the string is longer, then asterisks are inserted to indicate overflow.
For example,
StrSubstNo('Test %1 >###2< >#3<', 'Thomas','Thomas',0)returns "Test Thomas >****< >0 <".In this example the following substitutions are made:
%1 is replaced by 'Thomas' because a %1 field is replaced by the specified value in its full length.
'###2' is replaced by '****' because the string 'Thomas' is longer than the ###2 field. Each character in the field is replaced by an asterisk.
#3 is replaced by '0 space' because the 0 is left aligned and the field is two characters long.
You can have several references to the same value.
For example,
StrSubstNo('Test %1 %3 %1', 555, 666, 777)returns "Test 555 777 555".If one of the values is null, then it is treated as an empty string.
For more information about the STRSUBSTNO function in a multilanguage-enabled application, see Developing Multilanguage-Enabled Applications.
Example
The following example shows how to use the STRSUBSTNO function.
This example requires that you create the following variables and text constants in the C/AL Globals window.
| Variable name | Data type | Length |
|---|---|---|
| Str | Text | 1024 |
| AccountNo | Integer | Not applicable |
| Balance | Decimal | Not applicable |
| Text constant | ENU value |
|---|---|
| Text000 | The balance of account %1 is $ %2 |
| Text001 | The string before STRSUBSTNO has been called:\%1 |
| Text002 | The string after STRSUBSTNO has been called:\%1 |
Str := Text000;
AccountNo := 3452;
Balance := 2345 + 5462;
MESSAGE(Text001, Str);
Str := STRSUBSTNO(Str, AccountNo, Balance);
MESSAGE(Text002, Str);
The first message window displays the following text:
The string before STRSUBSTNO has been called:
The balance of account %1 is $ %2
The second message window displays the following text:
The string after STRSUBSTNO has been called:
The balance of account 3452 is $ 7,807
Note
This example is run on a computer that has the regional format set to English (United States).