TAA Tools

The Build Check Amount  tool is designed to print words  for the amount
on a check  such as 'Four hundred dollars and 03  cents'.  A program is
supplied  to  convert  a  decimal  value  to  a  string  of  text.   An
externally  described data  structure  is  used  to  pass  the  amount,
return  the  string  of text,  and  provide  for  various options.    A
demonstration of the function and options exists.

To see the demonstration, enter:


The  display allows you to enter a  value, try various options, and see
the result.

The return value may have  a maximum of 100  bytes.  You may specify  a
smaller  length maximum  return  value  (the default  is  80).   It  is
possible  to generate  a string  of text that  will exceed  the maximum
size provided.   By default, if  an overflow occurs,  numbers are  used
for the  whole dollars  and a  value such  as '888,888  dollars and  00
cents' is returned.

If  any errors  occur, the string  of text  will contain  all asterisks
and  a  return  code  and  error text  are  provided.    See  the later
discussion on Maximum Length and Overflow.

The program  that performs  the translation  from numbers  to words  is

To  see how to  interface to  the TAARPHCR  program, a  working program
(TAARPHCR3)  is provided.  Instructions are  included in the source for
TAARPHCR3 for how to use the  function.  The program prints one  amount
to the QPRINT printer file.  You may try the program with:

            CALL  PGM(TAARPHCR3)

A simple spooled file is created.

To understand the TAARPHCR3 interface program, use CPYTAA:


This copies the  source to member TAARPHCR3 in file  QATTRPG in library
TAATOOL.   You may then browse or copy the  code to your own member and
modify it according to the instructions within the source.

Fields in the TAARPHCP Externally described DS

    Field     Length     Description
    -----     ------     -----------

    CKLR         4       Set LR. *NO is the default to allow a fast
                           re-execution.  Use *YES when ending

    CKINP       11       Input amount.  A character field is used with
                           2 decimal positions assumed. The value
                           should be right adjusted in the field
                           (such as MOVE op code).

    CKRTNV     100       The returned string of text.  All asterisks
                           will exist if an error has occurred.
                           The value is always returned as 100 bytes.
                           The value is left or right adjusted
                           according to the CKADJ field.

    CKALW0       4       Whether to allow a zero amount.  *NO is
                           the default.  If *YES is specified and
                           a zero amount exists, a value such as
                           'Zero dollars and 00 cents' will be

    CKCNTO       6       The 'cent option' to be used.  *TEXT is the
                           default and causes 'cents' or 'cent'
                           to be used such as 'One dollar and
                           15 cents'.  If you have different text,
                           see the CKCEN and CKCENT fields.

                           *100 may be specified to cause a value
                           such as 'One and 15/100 dollars'.

                           *NONE may be specified if you have a
                           currency that does not use cents.
                           You must add two zeros to your
                           input amount before moving the
                           value to the CKINP field.

    CKADJ        4       Adjust the answer.  The default is *LFT for
                           a left adjusted value.  *RGT may be
                           specified for a right adjusted value.

    CKASTP       4       Asterisk protection.  The default is *NO
                           meaning the string of text does not
                           include protecting asterisks.
                           *YES may be specified to cause asterisks
                           in the remaining spaces of the return value.

    CKDOLS      15       The word for 'dollars'. The default is
                           'dollars'.  Left adjust the value.

    CKDOL       15       The word for 'dollar'. The default is
                           'dollar'.  Left adjust the value.

    CKCENS      15       The word for 'cents'. The default is
                           'cents'.  Left adjust the value.

    CKCENT      15       The word for 'cent'. The default is
                           'cent'.  Left adjust the value.

    CKOFLW       4       Allow for numbers on overflow.  The default
                           is *YES to return numbers if the words
                           exceed the maximum length (CKMAXL field).
                           *NO causes an error if overflow occurs.
                           See the section on maximum length and

    CKMAXL       3       Maximum length of answer.  The maximum
                           string that will be returned.  The
                           default is 80.  The value must be
                           between 35 and 100.

    CKRTNL       3       Return length.  A return field which will
                           contain the actual length of the string
                           of words without considering asterisk

    CKRTNO       1       Return overflow.  A 'Y' is returned if
                           the string of text overflowed and
                           CKOFLW = *YES was used to return
                           numbers for the dollar amount.
                           If overflow did not occur, the field
                           will be blank.

    CKERRC       3       Return error code.  If an error has
                           occurred, the return value will be all
                           asterisks and the error code will identify
                           the specific error.  The CKERRT field
                           will contain the text of the error.  If
                           no error occurred, the field will be blank.

    CKERRT      70       Return error text.  The text description
                           of the error code.  If no error occurred,
                           the field will be blank.

    CKRSVD      50       Reserved space.

Maximum Length and Overflow

The CKINP field to hold  the amount is 11  bytes in length and  assumes
2 decimal positions.  This allows for a value of xxx,xxx,xxx.00.

The default for CKOFLW is  *YES which means that if the  string of text
exceeds the  specified maximum length, the dollar  amount is changed to

A  value such  as '1,888,888.00'  requires 96  bytes when printed  as a
string of text.   If  your maximum length  is less  than 96, either  an
error  will be returned  or you  may request  that numbers  be returned
for the whole amount.

If  the default is  used and the  string of text  exceeds the specified
maximum  length,  the  dollar  amount   is  changed  to  numbers   with
appropriate  editing.     For  example,  the  return   value  would  be
'1,888,888 dollars and 00 cents'.

If  CKOFLW  = *NO  and  an overflow  occurs,  the return  value  is all
asterisks and a specific error code is returned.

For the  following  comments, the  CKCNTX  = *CENTS  option  was  used.
CKCNTX = *100 causes 2 bytes less in the answer.

  **   The  largest XX,XXX,XXX.00  value  (77,777,777.00) requires  105
       bytes  and cannot be  printed as words.   However, a  value such
       as 35,205,345.00 will fit in a length of 100 bytes.

  **   All X,XXX,XXX.00 values fit in 98 bytes.

  **   All XXX,XXX.00 values fit in 84 bytes.

  **   All XX,XXX.00 values fit in 70 bytes.

Changing the constants such as 'one' to 'uno'

The  words used such  as 'thousands', 'seventy', are  all placed in the
WRK array at the end of  the TAARPHCR program.  Each word may be  up to
15  characters in  length.   You  may  change the  words for  different
languages.   You may also change  the defaults for 'dollars', 'dollar',
'cents', and 'cent' instead of  specifying them in the data  structure.

Using a currency that does not have cents

If you  have a  currency that  does not  have cents,  you must add  two
digits  to your input  amount before moving  the data to  CKINP (or you
concatenate two  zeros on  the end  when  you move  your data).    Then
specify CKCNTO(*NONE).   This will  cause the 'and'  and cents text  to
be dropped.

DMOCHKAMT command                                     *CMD

No parameters exist.


See the previous discussion on maximum length and overflow.


The following TAA Tools must be on your system:

     EDTVAR2         Edit variable 2
     RTVSYSVAL3      Retrieve system value 3


None,  the tool  is ready  to  use, but  you must  supply  an interface
program as described previously.

Objects used by the tool

   Object        Type    Attribute      Src member    Src file
   ------        ----    ---------      ----------    ----------

   DMOCHKAMT     *CMD                   TAARPHC2      QATTCMD
   TAARPHCR      *PGM       RPG         TAARPHCR      QATTRPG
   TAARPHCR2     *PGM       RPG         TAARPHCR2     QATTRPG
   TAARPHCR3     *PGM       RPG         TAARPHCR3     QATTRPG
   TAARPHCP      *FILE      PF          TAARPHCP      QATTDDS


     TAARPHCD   Display file

TAARPHCR   Build check amount program

TAARPHCR3   Sample interface program

Added to TAA Productivity tools October 1, 1997

Home Page Up to Top