ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzakc_5.4.0.1/rzakcmstdfcheck.htm

736 lines
35 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="CHECK (Check) keyword for display files" />
<meta name="abstract" content="Use this keyword to perform a number of functions, depending on the parameter values specified." />
<meta name="description" content="Use this keyword to perform a number of functions, depending on the parameter values specified." />
<meta name="DC.subject" content="CHECK (Check) keyword" />
<meta name="keywords" content="CHECK (Check) keyword" />
<meta name="DC.Relation" scheme="URI" content="rzakcmstkeyent.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakcmstdfauto.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakcmstdflower.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2001, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2001, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzakcmstdfcheck" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>CHECK (Check) keyword for display files</title>
</head>
<body id="rzakcmstdfcheck"><a name="rzakcmstdfcheck"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">CHECK (Check) keyword for display files</h1>
<div><p>Use this keyword to perform a number of functions, depending on
the parameter values specified.</p>
<div class="section"><dl><dt><strong>Function</strong></dt>
<dd><strong>Valid parameter values</strong></dd>
<dt class="dlterm">Validity checking</dt>
<dd>AB, ME, MF, M10, M10F, M11, M11F, VN, VNE</dd>
<dt class="dlterm">Keyboard control</dt>
<dd>ER, FE, LC, RB, RZ</dd>
<dt class="dlterm">Cursor control</dt>
<dd>RL, RLTB</dd>
</dl>
<div class="p">The formats of the keyword are: <pre>CHECK(validity-checking-code [. . .])
CHECK(keyboard-control-code [. . .])
CHECK(cursor-control-code)</pre>
</div>
<p>The following CHECK keywords
are the preferred form of other DDS keywords:</p>
<ul><li>CHECK(ER) is equivalent to AUTO(RA)</li>
<li>CHECK(LC) is equivalent to LOWER</li>
<li>CHECK(RB) is equivalent to AUTO(RAB)</li>
<li>CHECK(RZ) is equivalent to AUTO(RAZ)</li>
</ul>
<p>The following CHECK keyword functions can also be specified using
the Change Input Default (CHGINPDFT) keyword at the file, record, or field
level:</p>
<dl><dt><strong>CHECK keyword</strong></dt>
<dd><strong>CHGINPDFT equivalent</strong></dd>
<dt class="dlterm">CHECK(FE)</dt>
<dd>CHGINPDFT(FE)</dd>
<dt class="dlterm">CHECK(LC)</dt>
<dd>CHGINPDFT(LC)</dd>
<dt class="dlterm">CHECK(ME)</dt>
<dd>CHGINPDFT(ME)</dd>
<dt class="dlterm">CHECK(MF)</dt>
<dd>CHGINPDFT(MF)</dd>
</dl>
<p>Option indicators are valid only for CHECK(ER) and CHECK(ME).</p>
</div>
<div class="section"><h4 class="sectiontitle">Validity checking</h4><p>Use
CHECK at the field level to specify that the <span class="keyword">i5/OS™</span> operating
system or the device is to check the validity of the data typed into an input-capable
(input-only or input/output) field.</p>
<div class="p">CHECK validates the data by applying
one or more edit/check algorithms against the data. An error message is displayed
if a specified edit/check algorithm is not satisfied. <div class="note"><span class="notetitle">Note:</span> See the <a href="rzakcmstdfchkme.htm">CHKMSGID (Check Message Identifier) keyword for display files</a> topic for information about defining user-specified
messages.</div>
</div>
<p>The valid edit/check codes are:</p>
<dl><dt><strong>Edit/Check code</strong></dt>
<dd><strong>Meaning</strong></dd>
<dt class="dlterm">AB</dt>
<dd>Allow blanks <p>Use this code at the file, record, or field level to allow
all-blank input to satisfy validity checking for an input-capable field should
any associated validity check fail. This enables the passing of data to the
program when the workstation user has positioned the cursor to the field but
left it blank (for instance, by pressing the Erase Input key, the Field Exit
key, or the spacebar). For example, FLD1 is an input-capable field with CHECK(M10
ME) in effect. If the workstation user accidentally types into the field,
the M10 algorithm must be satisfied. Specifying (CHECK(M10 ME AB)) allows
the display station user to blank the field to satisfy validity checking.</p>
<p>When
specified at the file level, this keyword applies for all input-capable fields
in the file for which a validity checking keyword is coded. Likewise, when
specified at the record level, this keyword applies for all input-capable
fields in the record for which a validity checking keyword is coded. At the
field level, always specify this keyword with another validity checking keyword
(CHECK(M10, M10F, M11, M11F, VN, VNE), CHKMSGID, COMP, RANGE, or VALUES).</p>
<p>CHECK(AB)
should not be specified if SFLROLVAL or SFLRCDNBR is also specified for the
field.</p>
<p>CHECK(AB) can be used in database files for reference purposes.</p>
<p>When
you consider using CHECK(AB) with other validity checking functions, note
that processing occurs in the following order:</p>
<ol><li>Any of the following order: <ol type="a"><li>The keyboard shift attribute specified in position 35 (such as alphanumeric
shift or numeric only) can restrict input typing to certain characters.</li>
<li>If the keyboard shift attribute is numeric shift, the data type (character
or numeric) is set by the entry in positions 36 through 37 (decimal positions)
and restricts input typing to certain characters.</li>
<li>The CHECK(FE), CHECK(MF), and CHECK(ME) keywords, if specified, restrict
input typing.</li>
</ol>
</li>
<li>Either of the following order: <ol type="a"><li>If CHECK(AB) is specified, data management passes the input data to the
program (blanks for a character field and zeros for a numeric field). No further
validity checking is done.</li>
<li>If CHECK(AB) is not specified, data management performs the following
validity checking functions before passing the data to the program: CHECK(VN),
CHECK(VNE), CHECK(M10), CHECK(M10F), CHECK(M11), CHECK(M11F), COMP(. . .),
RANGE(. . .), VALUES(. . .).</li>
</ol>
</li>
</ol>
<p>You cannot specify the CHECK(AB) keyword on a floating-point field
(F in position 35).</p>
<p>Option indicators are not valid for this keyword.</p>
</dd>
<dt class="dlterm">ME</dt>
<dd>Mandatory enter <p>This code specifies that at least 1 character of data
(a blank is valid) must be typed into the field. Note that when no field currently
on the display has been changed, the display station does not enforce mandatory
enter. To enforce mandatory enter, specify DSPATR(MDT) for at least one field
in each record on the display. For all other fields in the record, CHECK(ME)
is then enforced. However, because the device cannot determine if the user
has typed data to a field with both DSPATR(MDT) and CHECK(ME), you should
also specify DSPATR(ND) so that this field is not displayed.</p>
<p>Option
indicators are valid for this keyword.</p>
</dd>
<dt class="dlterm">MF</dt>
<dd>Mandatory fill <p>This code specifies that if any part of the field is
altered, each position in the field must have a character entered in it. Blanks
are considered valid characters.</p>
<p>This code cannot be specified with
keyboard control codes (RB or RZ) or with the WRDWRAP keyword.</p>
<p>Option
indicators are not valid for this keyword.</p>
</dd>
<dt class="dlterm">M10/M10F or M11/M11F (IBM<sup>®</sup> Modulus 10 or Modulus 11 Algorithm)</dt>
<dd>IBM Modulus
10 self-check algorithm <p>This code specifies that data typed into the field
must satisfy the IBM Modulus 10 (M10 or M10F) or Modulus 11 (M11 or M11F)
self-check algorithm. When you specify CHECK(M10) or CHECK(M11), the self-check
verifies that the field has a valid Modulus 10 or Modulus 11 number when you
press the Enter key or a function key. When you specify CHECK(M10F) or CHECK(M11F),
the self-check verifies that the field has a valid Modulus 10 or Modulus 11
number as the user types the data into the field. You cannot specify both
the Modulus 10 and the Modulus 11 self-check algorithms for the same field
or both formats of the same algorithm for the same field.</p>
<p>A self-check
field is composed of two parts: the base number and one check digit. The check
digit is the farthest right digit in the field. The base number and the check
digit together make up a field in your database (for example, an account number).
The following figure is an example of an 8-digit self-check field.</p>
<br /><img src="rsll637.gif" alt="In the figure, a 7-digit number&#xA;(6371257) is followed by a check digit of 1." /><br /><div class="p">See the <a href="../books/sc415715.pdf" target="_blank">Application Display
Programming book</a><img src="wbpdf.gif" alt="Link to PDF" /> for information about how to use CHECK(M10), CHECK(M10F), CHECK(M11),
and CHECK(M11F). <div class="note"><span class="notetitle">Notes:</span> <ol><li>The <span class="keyword">i5/OS</span> operating
system supports a maximum length of 31 digits for numeric fields.</li>
<li>You cannot specify the CHECK(M10), CHECK(M10F), CHECK(M11), and CHECK(M11F)
keywords with the COMP(EQ) keyword.</li>
<li>You cannot specify the CHECK(M10), CHECK(M10F), CHECK(M11), and CHECK(M11F)
keywords on a floating-point field (F in position 35).</li>
<li>You cannot specify the CHECK(M10F) or the CHECK(M11F) keyword in a file
containing the USRDSPMGT keyword.</li>
<li>You cannot specify the CHECK(M10F) or the CHECK(M11F) keyword on a field
containing the CHKMSGID or WRDWRAP keyword.</li>
</ol>
</div>
</div>
<p>For each position in the base number, there is a Modulus
10 weight factor and a Modulus 11 weight factor. Positions are counted from
the farthest right digit (not including the check digit).</p>
<p>The
Modulus 10 weight factor is 2 for positions 1, 3, 5, …, 31. It is 1 for positions
2, 4, 6, …, 30. The Modulus 11 weight factors are 2, 3, 4, 5, 6, 7, 2, 3,
4, 5, 6, 7,…, 2, 3, 4, 5, 6, 7, 2 for positions 1, 2,…, 31.</p>
<p>To calculate
the Modulus 10 self-check digit, do the following tasks:</p>
<ol><li>Multiply the units position and every alternate position of the base number
by 2.</li>
<li>Add the digits in the products to the digits in the base number that were
not multiplied.</li>
<li>Subtract the sum from the next higher number ending in zero.</li>
</ol>
<p>The difference is the self-check digit.</p>
<p>For
example:</p>
<pre>Base number: 6 1 2 4 8
Units position and every alternate position: 6 2 8
Multiply by the weight factor, 2: x2 x2 x2
Products: 12 4 16
Digits not multiplied: 1 4
Add the digits of the products and the digits
from the base number that were not used for
multiplication: ( 1 + 2 ) + 4 + ( 1 + 6 ) + 1 + 4 = 19
Next higher number ending in 0: 20
Subtract: -19
Self-check digit: 1</pre>
<p>To
calculate the Modulus 11 self-check digit, do the following tasks:</p>
<ol><li>Assign a weight factor to each digit position of the base number. These
factors are: 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, . . . starting with
the units position of the number and progressing toward the high-order digit.
For example, the base number 991246351 can be assigned the weight factors
as follows: <pre>Base number 9 9 1 2 4 6 3 5 1
Weight factors 4 3 2 7 6 5 4 3 2</pre>
</li>
<li>Multiply each digit by its weight factor.</li>
<li>Add the products.</li>
<li>Divide this sum by 11.</li>
<li>Subtract the remainder from 11.</li>
</ol>
<p>The difference is the self-check digit.</p>
<div class="p">For example: <dl><dt class="dlterm">Base number</dt>
<dd>1 3 7 3 9</dd>
<dt class="dlterm">Weight factors</dt>
<dd>x6 x5 x4 x3 x2</dd>
<dt class="dlterm">Multiply each digit by its weight factor</dt>
<dd>6 15 28 9 18</dd>
<dt class="dlterm">Add the products</dt>
<dd>6 + 15 + 28 + 9 + 18 = 76</dd>
<dt class="dlterm">Divide the sum by 11</dt>
<dd>76/11 = 6 plus a remainder of 10</dd>
<dt class="dlterm">Subtract the remainder from 11</dt>
<dd>11 - 10 = 1</dd>
<dt class="dlterm">Self-check digit</dt>
<dd>1</dd>
</dl>
<div class="note"><span class="notetitle">Note:</span> If the remainder in step 4 is 0, the self-check digit
is 0. If the remainder is 1, the base number has no self-check digit; you
must make sure that such base numbers are not used in the fields you define
as self-check fields.</div>
</div>
<p>Option indicators are not valid for CHECK(M10),
CHECK(M10F), CHECK(M11), or CHECK(M11F).</p>
</dd>
<dt class="dlterm">VN</dt>
<dd>Validate name <p>Use this code to specify that the data typed into the
field must be a valid simple name. The first character must be $, #, @, or
A through Z. The remaining characters must be alphanumeric ($, #, @, A through
Z, 0 through 9, or underscore (_), and must not contain embedded blanks.</p>
<p>When
the CHECK(VN) keyword is specified on a field, the field must be character
(keyboard shift of A, N, X, W, or I), and must be input-capable (usage of
I or B).</p>
<p>CHECK(VN) cannot be specified with any of the following keywords:</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" width="90%" frame="void" border="0" rules="none"><tbody><tr><td valign="top" width="50%"><p>CHECK(M10)<br />
CHECK(M10F)<br />
CHECK(M11)<br />
CHECK(M11F)</p>
</td>
<td valign="top" width="50%"><p>CHECK(VNE)<br />
COMP<br />
RANGE<br />
VALUES</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>Option indicators are not valid for this keyword.</p>
</dd>
<dt class="dlterm">VNE</dt>
<dd>Validate name extended <p>Use this code to specify that the data typed
into the field must be a valid extended name.</p>
<p>When the CHECK(VNE) keyword
is specified on a field, the field must be character (keyboard shift of A,
N, X, W, or I), input-capable (usage of I or B), and have a maximum length
of 255 characters.</p>
<div class="p">If the name is not delimited by double quotation
marks: <ul><li>The first character must be A through Z, a through z, #, $, or @.</li>
<li>The remaining characters must be A through Z, a through z, #, $, _, or
a period.</li>
<li>Lowercase letters will be converted to uppercase.</li>
</ul>
</div>
<div class="p">If the name is delimited by double quotation marks: <ul><li>Any character is allowed except: <dl><dt class="dlterm">Hex 00 through Hex 3F</dt>
<dd>(device control)</dd>
<dt class="dlterm">Hex FF</dt>
<dd>(device control)</dd>
<dt class="dlterm">Hex 40</dt>
<dd>(blank)</dd>
<dt class="dlterm">Hex 5C</dt>
<dd>(*)</dd>
<dt class="dlterm">Hex 6F</dt>
<dd>(?)</dd>
<dt class="dlterm">Hex 7D</dt>
<dd>(')</dd>
<dt class="dlterm">Hex 7F</dt>
<dd>(")</dd>
</dl>
</li>
<li>Lowercase letters remain lowercase.</li>
<li>The system removes quotation marks when they are not needed (if the syntax
of the name meets the requirements of an unquoted name, and all letters are
uppercase).</li>
</ul>
</div>
<p>CHECK(VNE) cannot be specified with any of the following keywords:</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" width="90%" frame="void" border="0" rules="none"><tbody><tr><td valign="top" width="50%"><p>CHECK(M10)<br />
CHECK(M10F)<br />
CHECK(M11)<br />
CHECK(M11F)</p>
</td>
<td valign="top" width="50%"><p>CHECK(VN)<br />
COMP<br />
RANGE<br />
VALUES</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>Option indicators are not valid for this keyword.</p>
</dd>
</dl>
</div>
<div class="section"><h4 class="sectiontitle">Keyboard control</h4><p>When
the CHECK keyword is used with a keyboard control code, it controls certain
data-entry aspects. The valid keyboard control codes are:</p>
<dl><dt><strong>Keyboard control code</strong></dt>
<dd><strong>Meaning</strong></dd>
<dt class="dlterm">ER</dt>
<dd>End of record; equivalent to AUTO(RA) <p>Use this code so that the workstation
user does not need to press the Enter key. Whenever the workstation user keys
a character (including a blank) into the last position of the field, the record
is sent from the device just the same as if the Enter key had been pressed.
If you also specify DSPATR(SP) for the field, the record is sent from the
device as soon as the workstation user selects the field. If you use this
function, it should be on the last field typed in by the user for this record.</p>
<p>Option
indicators are valid for this keyword.</p>
</dd>
<dt class="dlterm">FE</dt>
<dd>Field exit check <p>This code specifies that the workstation user cannot
advance to the next input field without pressing one of the field exit keys.
The cursor remains under the low-order character position of the field until
a valid field exit key has been pressed, even though that character has been
typed in. If the user presses any other key, an error results.</p>
<p>If you
want to specify CHECK(FE) for all the input-capable fields in a record format,
specify CHGINPDFT(FE) at the record level. If you want to specify CHECK(FE)
for all the input-capable fields in a file, specify CHGINPDFT(FE) at the file
level.</p>
<p>Field exit keys include the Field Exit, Field+, Field-, and cursor
movement keys. Which keys are valid field exit keys depends on the keyboard
style being used.</p>
<p>This code applies only to input fields into which
the workstation user can type.</p>
<p>Option indicators are not valid for this
keyword.</p>
</dd>
<dt class="dlterm">LC</dt>
<dd>Lowercase; equivalent to LOWER <p>Use CHECK(LC) for input-only or input/output
fields to permit the workstation user to type lowercase a through z. The way
the workstation user keys in the characters (uppercase or lowercase) is the
way the characters appear on the display and are returned to your program.</p>
<p>If
you want to specify CHECK(LC) for all the character input-capable fields in
a record format, specify CHGINPDFT(LC) at the record level. If you want to
specify CHECK(LC) for all the character input-capable fields in a file, specify
CHGINPDFT(LC) at the file level.</p>
<p>Your program can display a field that
contains both uppercase and lowercase characters.</p>
<p>If you specify this
keyword, lowercase a through z remain lowercase. If you do not specify this
keyword, lowercase a through z are changed to uppercase.</p>
<p>The CHECK(LC)
keyword has no effect on data-entry keyboards. Data-entry keyboards do not
support lowercase characters a through z.</p>
<p>Option indicators are not
valid for this keyword.</p>
<p><a href="#rzakcmstdfcheck__exchlc">Figure 1</a> shows
how to specify the CHECK(LC) keyword.</p>
<div class="fignone" id="rzakcmstdfcheck__exchlc"><a name="rzakcmstdfcheck__exchlc"><!-- --></a><span class="figcap">Figure 1. Specify the
CHECK(LC) keyword</span><pre>|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00100A NAME 30 I 3 2CHECK(LC)
A</pre>
</div>
</dd>
<dt class="dlterm">RB</dt>
<dd>Right-aligned with blank fill; equivalent to AUTO(RAB) <p>This code shifts
data typed into the field to the farthest right positions and fills the remaining
positions with blanks.</p>
<p>For signed numeric fields, you do not need to
specify CHECK(RB). right-aligned with blank fill is the default. When the
value of a signed numeric field is zero, it appears as all blanks on the display.</p>
<p>The <span class="keyword">i5/OS</span> program converts blanks to
zeros when returning numeric fields to your program.</p>
<p>Option indicators
are not valid for this keyword.</p>
</dd>
<dt class="dlterm">RZ</dt>
<dd>Right-aligned with zero fill; equivalent to AUTO(RAZ) <p>This code shifts
data typed into the field to the farthest right positions and fills the remaining
positions with zeros.</p>
<p>For signed numeric fields, if you do not specify
CHECK(RZ), CHECK(RB) is the default.</p>
</dd>
</dl>
<p>Option indicators are not valid with this keyword.</p>
<p>The following list shows programming considerations for
CHECK(RB) and CHECK(RZ):</p>
<ul><li>You activate right-alignment only by pressing the Field
Exit, the Field+, or the Field- key. If you use the cursor movement keys to
exit from a right-aligned field, the field is not right-aligned; it is left
as is.</li>
<li>right-aligned fields longer than 15 character positions slow keyboard
entries.</li>
<li>The Dup key fills a right-aligned field from the cursor location to the
end of the field with the duplication character, but the field is not right-aligned.</li>
<li>You cannot specify the CHECK(RB) or CHECK(RZ) keyword on a field containing
the WRDWRAP keyword.</li>
</ul>
</div>
<div class="example"><h4 class="sectiontitle">Example 1</h4><p>The following example shows how to specify
the CHECK keyword for right-aligned with blank fill (RB) and for right-aligned
with zero fill (RZ).</p>
<pre>|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A R RECORD1
00020A* Numeric only
00030A DATA1 7Y OI 2 2TEXT('No right-adjust')
00040A DATA2 7Y OI 3 2CHECK(RZ)
00050A* Signed numeric
00060A DATA3 7S OI 4 2TEXT('CHECK(RB) is the default')
00070A DATA4 7S OI 5 2CHECK(RZ)
00080A* Character
00090A DATA5 7 I 6 2TEXT('No right-adjust')
00100A DATA6 7 I 7 2CHECK(RB)
A</pre>
</div>
<div class="section"><p>When you specify the CHECK keyword for right-aligned
with zero or blank fill, fill the following displays:</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" width="100%" frame="void" border="0" rules="none"><thead align="left"><tr><th align="left" valign="bottom" width="18.181818181818183%" id="d0e515">Field name</th>
<th align="left" valign="bottom" width="25.5050505050505%" id="d0e517">Data typed in</th>
<th align="left" valign="bottom" width="18.434343434343432%" id="d0e519">Key pressed</th>
<th align="left" valign="bottom" width="37.878787878787875%" id="d0e521">Result on display</th>
</tr>
</thead>
<tbody><tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 "><em>Numeric only</em></td>
<td valign="top" width="25.5050505050505%" headers="d0e517 ">&nbsp;</td>
<td valign="top" width="18.434343434343432%" headers="d0e519 ">&nbsp;</td>
<td valign="top" width="37.878787878787875%" headers="d0e521 ">&nbsp;</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 ">DATA1</td>
<td align="left" valign="top" width="25.5050505050505%" headers="d0e517 "><ol><li>1 2 3 _ _ _ _</li>
<li>1 2 3 _ _ _</li>
<li>0 _ _ _ _ _ _</li>
<li>_ _ _ _ _ _ _</li>
</ol>
</td>
<td align="left" valign="top" width="18.434343434343432%" headers="d0e519 "><ul><li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
</ul>
</td>
<td align="left" valign="top" width="37.878787878787875%" headers="d0e521 "><ul><li>1 2 3 _ _ _ _</li>
<li>1 2 3 _ _ _</li>
<li>0 _ _ _ _ _ _ _ See note.</li>
<li>_ _ _ _ _ _ See note.</li>
</ul>
</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 ">DATA2</td>
<td align="left" valign="top" width="25.5050505050505%" headers="d0e517 "><ol><li>1 2 3 _ _ _ _</li>
<li>1 2 3 _ _ _</li>
<li>0 _ _ _ _ _ _</li>
<li>_ _ _ _ _ _ _</li>
</ol>
</td>
<td align="left" valign="top" width="18.434343434343432%" headers="d0e519 "><ul><li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
</ul>
</td>
<td align="left" valign="top" width="37.878787878787875%" headers="d0e521 "><ul><li>0 0 0 0 1 2 3</li>
<li>0 0 0 1 2 3 </li>
<li>0 0 0 0 0 0 0</li>
<li>0 0 0 0 0 0 0</li>
</ul>
</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 "><em>Signed Numeric</em></td>
<td align="left" valign="top" width="25.5050505050505%" headers="d0e517 ">&nbsp;</td>
<td valign="top" width="18.434343434343432%" headers="d0e519 ">&nbsp;</td>
<td valign="top" width="37.878787878787875%" headers="d0e521 ">&nbsp;</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 ">DATA3</td>
<td align="left" valign="top" width="25.5050505050505%" headers="d0e517 "><ol><li>1 2 3 _ _ _ _ _</li>
<li>1 2 3 _ _ _ _ _</li>
<li>0 _ _ _ _ _ _ _</li>
<li>_ _ _ _ _ _ _ _</li>
</ol>
</td>
<td align="left" valign="top" width="18.434343434343432%" headers="d0e519 "><ul><li>Field Exit</li>
<li>Field-</li>
<li>Field Exit</li>
<li>Field Exit</li>
</ul>
</td>
<td align="left" valign="top" width="37.878787878787875%" headers="d0e521 "><ul><li>_ _ _ _ 1 2 3 _</li>
<li>_ _ _ _ 1 2 3 </li>
<li>_ _ _ _ _ _ 0 _ See note.</li>
<li>_ _ _ _ _ _ _ _ See note.</li>
</ul>
</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 ">DATA4</td>
<td align="left" valign="top" width="25.5050505050505%" headers="d0e517 "><ol><li>1 2 3 _ _ _ _ _</li>
<li>1 2 3 _ _ _ _ _</li>
<li>0 _ _ _ _ _ _ _</li>
<li>_ _ _ _ _ _ _ _</li>
</ol>
</td>
<td align="left" valign="top" width="18.434343434343432%" headers="d0e519 "><ul><li>Field Exit</li>
<li>Field-</li>
<li>Field Exit</li>
<li>Field Exit</li>
</ul>
</td>
<td align="left" valign="top" width="37.878787878787875%" headers="d0e521 "><ul><li>0 0 0 0 1 2 3 _</li>
<li>0 0 0 0 1 2 3 </li>
<li>0 0 0 0 0 0 0 _</li>
<li>0 0 0 0 0 0 0 _</li>
</ul>
</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 ">&nbsp;</td>
<td colspan="3" align="left" valign="top" headers="d0e517 d0e519 d0e521 "><div class="note"><span class="notetitle">Note:</span> The <span class="keyword">i5/OS</span> operating system converts
blanks to zeros when returning numeric fields to your program. Therefore,
this field is returned to your program as all zeros.</div>
</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 "><em>Character</em></td>
<td valign="top" width="25.5050505050505%" headers="d0e517 ">&nbsp;</td>
<td valign="top" width="18.434343434343432%" headers="d0e519 ">&nbsp;</td>
<td valign="top" width="37.878787878787875%" headers="d0e521 ">&nbsp;</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 ">DATA5</td>
<td align="left" valign="top" width="25.5050505050505%" headers="d0e517 "><ol><li>1 2 3 _ _ _ _</li>
<li>1 2 3 _ _ _</li>
<li>0 _ _ _ _ _ _</li>
<li>_ _ _ _ _ _ _</li>
<li>A B C _ _ _ _</li>
</ol>
</td>
<td align="left" valign="top" width="18.434343434343432%" headers="d0e519 "><ul><li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
</ul>
</td>
<td align="left" valign="top" width="37.878787878787875%" headers="d0e521 "><ul><li>1 2 3 _ _ _ _</li>
<li>1 2 3 _ _ _</li>
<li> 0_ _ _ _ _ _</li>
<li>_ _ _ _ _ _ _</li>
<li>A B C _ _ _ _</li>
</ul>
</td>
</tr>
<tr><td align="left" valign="top" width="18.181818181818183%" headers="d0e515 ">DATA6</td>
<td align="left" valign="top" width="25.5050505050505%" headers="d0e517 "><ol><li>1 2 3 _ _ _ _</li>
<li>1 2 3 _ _ _</li>
<li>0 _ _ _ _ _ _</li>
<li>_ _ _ _ _ _ _</li>
<li>A B C _ _ _ _</li>
</ol>
</td>
<td align="left" valign="top" width="18.434343434343432%" headers="d0e519 "><ul><li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
<li>Field Exit</li>
</ul>
</td>
<td align="left" valign="top" width="37.878787878787875%" headers="d0e521 "><ul><li>_ _ _ _ 1 2 3</li>
<li>__ _ 1 2 3 </li>
<li>_ _ _ _ _ _ 0</li>
<li>_ _ _ _ _ _ _</li>
<li>__ _ _ A B C</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Cursor control</h4><p>When
the CHECK keyword is used with a cursor control code, it specifies that the
cursor is to move from right to left. This feature is designed for languages
where information is read right to left.</p>
<p>the <span class="keyword">i5/OS</span> operating
system does not ensure that right-to-left files are opened only for display
stations capable of right-to-left cursor movement. Therefore, all workstations
in the same system should be configured with the same language capability
and with the same right-to-left capability.</p>
<p>The valid cursor control
codes that can be specified for cursor control are:</p>
<dl><dt><strong>Cursor control code</strong></dt>
<dd><strong>Meaning</strong></dd>
<dt class="dlterm">RL</dt>
<dd>Right-to-left cursor movement within fields <p>Use the CHECK(RL) keyword
at the file, record, or field level to specify that the cursor should move
from right to left within input-capable character fields. At the file level,
specifying CHECK(RL) makes the cursor move from right to left in all input-capable
character fields in the file. At the record level, specifying CHECK(RL) makes
the cursor move from right to left in all input-capable character fields in
the record. At the field level, specifying CHECK(RL) makes the cursor move
from right to left in only the field with which it is associated.</p>
<p><strong>Example
2:</strong></p>
<p>The following example shows how to specify the CHECK(RL) keyword
at the file level.</p>
<pre>|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A CHECK(RL)
00020A R DSPLY
A</pre>
<p><strong>Example 3:</strong></p>
<p>The following example shows how
to specify the RL cursor control with edit check.</p>
<pre>|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A :
A :
A R RECORD1 CHECK(RL AB)
A :
A :
A R RECORD2
A INPFLD 4 I 4 10CHECK(RL MF)
A :
A :
A</pre>
<div class="note"><span class="notetitle">Note:</span> If you want to specify the RL cursor control code
with an edit/check code, you can do so only if the edit/check code is valid
at the level you specify. In the example above, CHECK(RL AB) is specified
at the record level because AB is valid at that level. CHECK(RL MF) is specified
at the field level because MF is valid only at that level.</div>
</dd>
<dt class="dlterm">RLTB</dt>
<dd>Right-to-left, top-to-bottom cursor movement from field to field <div class="p">Use
the CHECK(RLTB) keyword only at the file level. It specifies the direction
the cursor is to advance from input-capable field to input-capable field.
CHECK(RLTB) specifies that on exiting from a field, the cursor advances by
moving from right to left and from top to bottom of the display until it reaches
the next input-capable field. You can specify the RLTB cursor control code
with only the edit/check code AB, as the others are not valid at the file
level. <div class="note"><span class="notetitle">Note:</span> Specifying CHECK(RLTB) does not change which input-capable field
the cursor is positioned in when the display initially appears.</div>
</div>
<p><strong>Example
4:</strong></p>
<p>The following example shows how to specify the CHECK(RLTB) keyword.</p>
<pre>|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A CHECK(RLTB)
00020A R PROMPT
A</pre>
</dd>
</dl>
</div>
<div class="section"><h4 class="sectiontitle">Right-to-left capability restrictions</h4><p>The right-to-left
capability includes the following restrictions:</p>
<ul><li>The check digit for modulus checking is the farthest right byte in the
field.</li>
<li>Katakana cannot be used with right-to-left support.</li>
<li>CHECK(RL) and CHECK(RLTB) cannot be specified with user-defined records
(having the USRDFN keyword).</li>
<li>CHECK(RL) applies only to character fields.</li>
<li>You cannot specify the CHECK(RB) or CHECK(RZ) keyword on a field containing
the WRDWRAP keyword.</li>
</ul>
<p>A warning message appears for the following conditions:</p>
<ul><li>A right-to-left field that also allows magnetic card reader operator identification
data (DSPATR(OID) keyword)</li>
<li>A right-to-left field that spans more than one line</li>
<li>A right-to-left field that is also a self-check field (CHECK(M10) or CHECK(M11)
keyword)</li>
<li>A right-to-left field for which CHECK(RZ) or CHECK(RB) is specified</li>
</ul>
<p>Option indicators are not valid with cursor control codes.</p>
</div>
<div class="example"><h4 class="sectiontitle">Example 5</h4><p>The following example shows how to specify
the validity-checking CHECK keywords.</p>
<pre>|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00060A R RECORD1 CHECK(AB)
00070A FIELD11 10 B 1 2TEXT('CHECK(AB) not propagated to +
00080A this field')
00090A FIELD21 10 B 1 22CHECK(VN)
00100A TEXT('CHECK(AB) is propagated to +
00110A this field')
00120A FIELD31 10 B 1 42CHECK(VNE)
00130A TEXT('CHECK(AB) is propagated to +
00140A this field')
00150A*
00160A R RECORD2
00170A FIELD12 10 B 2 2CHECK(VN) CHECK(AB)
00180A FIELD22 10 B 2 22CHECK(VN AB)
00190A FIELD32 1 B 2 42CHECK(AB) VALUES('A' 'B' 'C')
00200A FIELD42 10 B 2 62CHECK(VN)
00210A FIELD52 10 B 3 2CHECK(VNE)
00220A FIELD62 10 B 3 22CHECK(VNE AB)
00230A FIELD72 10 B 4 1CHECK(ME MF)
00240A FIELD82 8 OB 4 22CHECK(M10)
00250A FIELD92 10 OB 4 42CHECK(M11)
A</pre>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzakcmstkeyent.htm" title="You type the keyword entries that define display files in positions 45 through 80 (functions).">DDS keyword entries for display files (positions 45 through 80)</a></div>
</div>
<div class="relref"><strong>Related reference</strong><br />
<div><a href="rzakcmstdfauto.htm" title="Under some circumstances, the AUTO keyword is equivalent to the CHECK keyword.">AUTO (Auto) keyword for display files</a></div>
<div><a href="rzakcmstdflower.htm" title="The LOWER keyword is equivalent to the CHECK(LC) keyword.">LOWER (Lower) keyword for display files</a></div>
</div>
</div>
</body>
</html>