MultiValue Compatibility
This topic describes English features that are provided only for compatibility with other MultiValue systems.
B Conversion Code - Call Subroutine
The B conversion code provides similar functionality to the CALL conversion code. It is provided for compatibility with mvBase and mvEnterprise systems and allows dictionary subroutines written for these systems to be called from File and Data Definition items on Reality.
Syntax
B;subroutine
Syntax Elements
subroutine The name of a DataBasic subroutine, cataloged in the current account.
Note
-
The subroutine's catalog entry must be in the current account. You cannot specify a different account.
-
Unlike the CALL conversion code, B does not accept a following parameter string.
Features of a B Conversion Code Subroutine
A B conversion code subroutine must have no parameters and must INCLUDE the item #ACCESS.COMMON from the file /SYSFILES/SYS.BASLIB. For example:
SUBROUTINE MAX1
INCLUDE /SYSFILES/SYS.BASLIB #ACCESS.COMMON
You should add the INCLUDE statement to dictionary subroutines imported from mvBase and mvEnterprise systems. The following symbols and common variables will then be available:
mvEnterprise |
mvBase |
Reality Equivalent |
Description |
---|---|---|---|
C.PRMFILE |
FILE$ |
ACCESS(1) |
A reference to the calling file. |
C.DICTPRIMFILE |
DICT$ |
ACCESS(2) |
If the calling file is a data section, a reference to the dictionary of the calling file. If the calling file is a dictionary, a reference to the calling file. |
C.ITEM |
ITEM$ |
ACCESS(3) |
The item body. Null if a delete operation. |
Not used |
NI$ |
ACCESS(4) |
Item count. |
C.AMC |
NA$ |
ACCESS(5) |
Attribute count. |
C.VMC |
NV$ |
ACCESS(6) |
Value Count. |
C.SVMC |
NS$ |
ACCESS(7) |
Subvalue Count. |
C.FLAGS |
ND$ |
ACCESS(8) |
Detail Count. |
Not used |
NB$ |
ACCESS(9) |
Break count. |
C.ITEMID |
ID$ |
ACCESS(10) |
The id of the item. |
C.PRIMFILENAME |
FILENAME$ |
ACCESS(11) |
The file name in the form {DICT} {/account/}filename{,data-section-name}. |
C.DATA |
CURRENT$ |
The value passed to the subroutine. |
|
Not used |
MAX$ |
The current column width as defined in the Data Definition item. |
|
C.USER(15) |
Not used |
User data. |
Example
This returns the highest numeric value in the values and subvalues of the first attribute of the item. It would be called using the B conversion code in attribute 7 of a File Definition item or in attribute 7 or 8 of a Data Definition item.
SUBROUTINE BMAX
*
* B type (mvEnterprise version)
*
INCLUDE /SYSFILES/SYS.BASLIB #ACCESS.COMMON
*
* C.ITEM = file item
*
C.DATA = MAXIMUM(C.ITEM<1>)
RETURN
Division using A and F Conversion Codes
The division (/) operations provided by the A and F conversion codes normally return the dividend if division by zero is attempted. If required, this can be be changed to return zero by setting the ENGDIVIDE option in your operating environment.
Date Format
The DD, DM and DAM conversion codes normally return the day or month (as appropriate) without any leading zero. If required, this can be changed to include a leading zero, if appropriate, by setting the 2DIGIT.DATE option in your operating environment.
Changing Case
The MCT conversion code normally treats the first alphanumeric character following a space, double quotation mark, left parenthesis or hyphen as the start of a word. If you set the MCT.SQUOTE option in your operating environment, however, a word starts with the first alphanumeric character following any non-alphanumeric character other than a single quote.
Predefined Data Definition Items
For compatibility with UNIVERSE systems, in addition to the predefined data definition items described in Data Definition Item, Reality recognises attribute name in the form Fn (where n is the number of any attribute). These function in the same way as the An attribute names.