This topic describes the syntax of the CaptionClass functionality.
Syntax
If the CaptionClass property of a field or a control is
defined, the function trigger CaptionClassTranslate
with ID 15 in Codeunit 1 (ApplicationManagement) is called every
time that the field or control is shown. This function replaces the
caption, as defined in the design of the field or control, with
another string. The following code example shows the syntax for
this procedure.
CaptionClassTranslate
(<LANGUAGE>;<CAPTIONEXPR>)
LANGUAGE
<DataType> := [Integer]
<DataValue> := ……
CAPTIONEXPR
<DataType> := [String]
<Length> <= 80
<DataValue> :=
<CAPTIONAREA>,<CAPTIONREF>
Two parameters LANGUAGE
and
CAPTIONEXPR
are passed to this function.
LANGUAGE
The LANGUAGE
parameter is automatically mentioned
as is the Windows Language ID of the active language in Microsoft
Dynamics NAV.
For example, if the active language in Microsoft Dynamics NAV is
English (United States), LANGUAGE
will hold the value
1033
.
CAPTIONEXPR
The CAPTIONEXPR
parameter contains the value of the
CaptionClass property of the field or control. An example is
in table 13 Salesperson/Purchaser, the Global Dimension 1
Code field (Field No. 5050) has the string '1,1,1'
as its CaptionClass. You can use the debugger to view the
value of the CAPTIONEXPR
parameter. Set a breakpoint
on the CaptionClassTranslate
function in codeunit 1,
activate the debugger, and then run page 14,
Salespeople/Purchasers. The debugger breaks in the
CaptionClassTranslate function. In the debugger, choose
Variables. In the Debugger Variable List, you can see
that the CAPTIONEXPR
parameter holds the string
'1,1,1'
. For more information about the debugger, see
Debugging.
Note |
---|
In the About This Page window, you will not find the
Global Dimension 1 Code field. Instead you find the Department Code
field, which represents the CaptionClass property and the
CaptionClassTranslate function trigger. |
Function Code
The function trigger CaptionClassTranslate
with ID
15 resembles a system trigger. A programmer can intervene here
every time that the CaptionClass property (if it is defined)
is evaluated.
The following example shows the trigger in the CRONUS International Ltd. database.
CaptionClassTranslate(Language : Integer;CaptionExpr :
Text[80] : Text[1024])
CommaPosition := STRPOS(CaptionExpr,',');
IF (CommaPosition > 0) AND (CommaPosition < 80) THEN
BEGIN
CaptionArea := COPYSTR(CaptionExpr,1,CommaPosition -
1);
CaptionRef := COPYSTR(CaptionExpr,CommaPosition +
1);
CASE CaptionArea OF
'1' : EXIT(DimCaptionClassTranslate(Language,
CaptionRef));
'2' : EXIT(VATCaptionClassTranslate(Language,
CaptionRef));
'3' : EXIT(CaptionRef);
END;
END;
EXIT(CaptionExpr);
This standard code analyzes and unravels the
CAPTIONEXPR
parameter. This parameter has the
following syntax.
CAPTIONEXPR :=
<CAPTIONAREA>,<CAPTIONREF>
Depending on the value of the CAPTIONAREA
,
different procedures are called.
CAPTIONAREA
The first part of the CAPTIONEXPR
parameter, to the
first comma, is the CAPTIONAREA
, and has the following
syntax.
CAPTIONAREA
<DataType> := [SubString]
<Length> <= 10
<DataValue> := 1..9999999999
// 1 for Dimension Area
// 2 for VAT
// 3 to return only the CaptionExpr string
CAPTIONREF
The second part of the CAPTIONEXPR
parameter, after
the first comma, is the CAPTIONREF
, and has the
following syntax.
CAPTIONREF
<DataType> := [SubString]
<Length> <= 10
<DataValue> :=
IF (<CAPTIONAREA> = 1)
<DIMCAPTIONTYPE>,<DIMCAPTIONREF>
IF (<CAPTIONAREA> = 2)
<VATCAPTIONTYPE>,<VATCAPTIONREF>
Depending on the value of the CAPTIONAREA
,
CAPTIONREF
can consist of one
(VATCAPTIONTYPE
) or two references
(VATCAPTIONTYPE,VATCAPTIONREF
or
DIMCAPTIONTYPE,DIMCAPTIONREF
.
Note |
---|
This is how the standard functionality in Microsoft Dynamics
NAV deals with the CaptionClass property. Every field or
control with a defined CaptionClass has a string in this
property that uses the syntax described earlier. For new
functionality, a programmer could define other syntax and add code
to the function trigger CaptionClassTranslate with ID
15 to handle this syntax. |
Syntax for CAPTIONREF
As described earlier, the CAPTIONREF
part of the
CAPTIONEXPR
parameter can have the following syntax.
If CAPTIONAREA
equals 1:
CAPTIONREF := < DIMCAPTIONTYPE >,< DIMCAPTIONREF
>
Or if CAPTIONAREA
equals 2:
CAPTIONREF := < VATCAPTIONTYPE >,< VATCAPTIONREF
>
Dimension Area
If the CAPTIONAREA
equals 1, the caption of the
field or control should be retrieved from the dimensions
information.
DIMCAPTIONTYPE
This reference determines where the main part of the new caption should be retrieved from, as shown in the following syntax.
DIMCAPTIONTYPE
<DataType> := [SubString]
<Length> <= 10
<DataValue> := 1..6
// 1 to retrieve Code Caption of Global Dimension
// 2 to retrieve Code Caption of Shortcut Dimension
// 3 to retrieve Filter Caption of Global Dimension
// 4 to retrieve Filter Caption of Shortcut
Dimension
// 5 to retrieve Code Caption of any kind of
Dimensions
// 6 to retrieve Filter Caption of any kind of
Dimensions
DIMCAPTIONREF
DIMCAPTIONREF
consists of several sub
references:
DIMCAPTIONREF:= < number >,<
DIMOPTIONALPARAM1>,
< DIMOPTIONALPARAM2 >
The following syntax describes what < number
>
can be and what <DIMOPTIONALPARAM1>
and <DIMOPTIONALPARAM2>
are:
DIMCAPTIONREF
<DataType> := [SubString]
<Length> <= 10
<DataValue> :=
IF (<DIMCAPTIONTYPE> = 1)
1..2,<DIMOPTIONALPARAM1>,<DIMOPTIONALPARAM2>
IF (<DIMCAPTIONTYPE> = 2)
1..8,<DIMOPTIONALPARAM1>,<DIMOPTIONALPARAM2>
IF (<DIMCAPTIONTYPE> = 3)
1..2,<DIMOPTIONALPARAM1>,<DIMOPTIONALPARAM2>
IF (<DIMCAPTIONTYPE> = 4)
1..8,<DIMOPTIONALPARAM1>,<DIMOPTIONALPARAM2>
IF (<DIMCAPTIONTYPE> = 5)
[Table]Dimension.[Field]Code,
<DIMOPTIONALPARAM1>,
<DIMOPTIONALPARAM2>
IF (<DIMCAPTIONTYPE> = 6)
[Table]Dimension.[Field]Code,
<DIMOPTIONALPARAM1>,
<DIMOPTIONALPARAM2>
DIMOPTIONALPARAM1
DIMOPTIONALPARAM1
<DataType> := [SubString]
<Length> <= 30
<DataValue> := [String]
// A string added before the dimension name.
DIMOPTIONALPARAM2
DIMOPTIONALPARAM2
<DataType> := [SubString]
<Length> <= 30
<DataValue> := [String]
// A string added after the dimension name.
VAT
If the CAPTIONAREA
equals 2, the caption of the
field or control should be replaced by its original caption plus an
extra string. This string should state either 'Excl. VAT' or 'Incl.
VAT'. The syntax is described in the following section.
VATCAPTIONTYPE
VATCAPTIONTYPE
<DataType> := [SubString]
<Length> := 1
<DataValue> := '0' -> <field caption + 'Excl.
VAT'>
'1' -> <field caption + 'Incl. VAT'>
VATCAPTIONREF
VATCAPTIONREF contains the caption of the field or control.
VATCAPTIONREF
<DataType> := [SubString]
<Length> <= 30
<DataValue> := field caption