In this section: |
ACTUAL describes the type and length of data as it is actually stored in the data source. While some data types, such as alphanumeric, are universal, others differ between different types of data sources. Some data sources support unique data types. For this reason, the values you can assign to the ACTUAL attribute differ for each type of data source.
How to: |
Reference: |
This attribute describes the type and length of your data as it actually exists in the data source. The source of this information is your existing description of the data source (such as a COBOL FD statement). The ACTUAL attribute is one of the distinguishing characteristics of a Master File for non-FOCUS data sources. Since this attribute exists only to describe the format of a non-FOCUS data structure, it is not used in the Master File of a FOCUS data structure.
If your data source has a date stored as an alphanumeric field and you need to convert it to a WebFOCUS date for sorting or aggregation in a report, you can use the DATEPATTERN attribute in the Master File. WebFOCUS then uses the pattern specified to convert the alphanumeric date to a WebFOCUS date.
ACTUAL = format
where:
Consists of values taken from the following table, which shows the codes for the types of data that can be read.
ACTUAL Type |
Meaning |
---|---|
DATE |
Four-byte integer internal format, representing the difference between the date to be entered and the date format base date. |
An |
Where n = 1-4095 for fixed-format sequential and VSAM data sources, and 1-256 for other non-FOCUS data sources. Alphanumeric characters A-Z, 0-9, and the special characters in the EBCDIC display mode. An accepts all the date-time string formats, as well as the Hn display formats. ACTUAL=An also accepts a date-time field as it occurs in an alphanumeric HOLD file or SAVE file. Alphanumeric format can also be used with the hexadecimal USAGE format (U). The length of the ACTUAL has to be twice the length of the USAGE. |
D8 |
Double-precision, floating-point numbers, stored internally in eight bytes. |
F4 |
Single-precision, floating-point numbers, stored internally in four bytes. |
Hn |
H8, H10, or H12 accepts a date-time field as it occurs in a binary HOLD file or SAVB file. |
In |
Binary integers: I1 = single-byte binary integer. I2 = half-word binary integer (2 bytes). I4 = full-word binary integer (4 bytes). I8 = double-word binary integer (8 bytes). Note: The USAGE must be P or D. Decimals are honored, with proper conversion to the decimals of the P or D USAGE. |
M8 |
Decimal precision floating-point numbers (MATH), stored internally in eight bytes. |
Pn |
Where n = 1-16. Packed decimal internal format. n is the number of bytes, each of which contains two digits, except for the last byte which contains a digit and the sign (+ or -). For example, P6 means 11 digits plus a sign. |
STRING |
For Relational data sources that have a STRING data type. There is no length specification. |
X16 |
Extended decimal precision floating-point numbers (XMATH), stored internally in 16 bytes. |
Zn |
Where n = 1-31. Zoned decimal internal format. n is the number of digits, each of which takes a byte of storage. The last digit contains a digit and the sign. If the field contains an assumed decimal point, represent the field with an ACTUAL format of Zn and a USAGE format of Pm.d, where m is the total number of digits in the display plus the assumed decimal point, d is the number of decimal places, and m must be at least 1 greater than the value of n. For example, a field with ACTUAL=Z5 and one decimal place needs USAGE=P6.1 (or P7.1, or greater). |
Note:
The following conversions from ACTUAL format to USAGE (display) format are automatically handled and do not require invoking a function:
ACTUAL |
USAGE |
---|---|
A |
A, D, F, I, P, date format, date-time format |
D |
D |
DATE |
date format |
F |
F |
H |
H |
I |
I, date format |
M |
M |
P |
P, date format |
X |
X |
Z |
D, F, I, P |
The following table shows the USAGE and ACTUAL formats for COBOL, FORTRAN, PL1, and Assembler field descriptions.
COBOL USAGE FORMAT |
BYTES OF COBOL PICTURE |
INTERNAL STORAGE |
ACTUAL FORMAT |
USAGE FORMAT |
---|---|---|---|---|
DISPLAY DISPLAY DISPLAY DISPLAY |
X(4) S99 9(5)V9 99 |
4 2 6 2 |
A4 Z2 Z6.1 A2 |
A4 P3 P8.1 A2 |
COMP COMP COMP* COMP COMP-1** |
S9 S9(4) S9(5) S9(9) — |
4 4 4 4 4 |
I2 I2 I4 I4 F4 |
I1 I4 I5 I9 F6 |
COMP-2*** |
— |
8 |
D8 |
D15 |
COMP-3 COMP-3 COMP-3 |
9 S9V99 9(4)V9(3) |
8 8 8 |
P1 P2 P4 |
P1 P5.2 P8.3 |
FIXED BINARY(7) (COMP-4) |
B or XL1 |
8 |
I4 |
I7 |
* Equivalent to INTEGER in FORTRAN, FIXED BINARY(31) in PL/1, and F in Assembler.
** Equivalent to REAL in FORTRAN, FLOAT(6) in PL/1, and E in Assembler.
*** Equivalent to DOUBLE PRECISION or REAL*8 in FORTRAN, FLOAT(16) in PL/1, and D in Assembler.
For information about using ACTUAL with sequential, VSAM, and ISAM data sources, see Describing a Sequential, VSAM, or ISAM Data Source. For other types of data sources, see your adapter documentation. Note that FOCUS data sources do not use the ACTUAL attribute, and instead rely upon the USAGE attribute to specify both how a field is stored and formatted.