TAA Tools
EDTVAR3         EDIT VARIABLE 3                        TAARPGY

The Edit Variable  3 tool provides  a similar function as  EDTVAR2, but
allows up to  30 digits (EDTVAR2 allows up to  15).  Both tools provide
edited  values  by using  an Edit  Code such  as specified  in RPG.   A
testing command (DMOEDTVAR3) is provided.

EDTVAR3 is intended to be used as:

      - A sub program that can be called
      - A subroutine within an RPG program

A typical use of the program would be the following RPG code:

     C                     MOVE decval    DECINP           Input field
     C                     MOVE '1'       ZEEDTC           Edit code
     C                     MOVE '2'       ZEDECP           Dec pos
     C                     CALL 'TAARPGYR'                 Entry
     C                     PARM           DECINP 300       Input field
     C                     PARM           EDTDS            Ext descrbed
     C                     MOVELZEOUT     EDTVAL 44        Edited field

The DECINP parameter must  be a packed decimal  field of 30 digits  and
must have  0 decimals.   The DECPOS  parameter describes the  number of
decimal positions that should exist in the return value.

The  return value  must be  specified as character  field of  44 bytes.
The  edited  value  is  returned  left  adjusted  by  default.    Other
parameters allow you to specify the editing symbols.

An additional  edit code  of W  is supported  to allow  for editing  of
time fields (such as 10:15:00).

When a  date or time field  is used as the  DECINP value, the DATTIMLEN
parameter must describe  a length between  3 and 9 digits.   If  excess
non-zero data exists, an error message is sent.

The EDTVAR3  function cannot  be used in  a CL  program as  CL programs
only provide for up to 15 digits (RPG allows up to 30).

A  sample use  to call  the function  as a  sub  program exists  in the
TAACLQMR4  RPG member in  the TAA Archive.   You may  access the source
by first  using CPYTAA.   The  typical solution  would be  to copy  the
source to  QATTRPG in TAATOOL  where it could  then be copied  into any

TAACLQMR4  is a working  program, but has  no function other  than as a
test vehicle.   If you  call the  program, a display  will appear  with
the edited value.  Use F3 to end the program.

Differences with other editing tools

  **   The  EDTVAR tool  provides a  command  interface for  use in  CL

  **   The EDTVAR2  tool provides the same function  as EDTVAR3, but is
       limited to 15 digit field sizes.

  **   EDTVAR3 is  not a  command because  CL only  supports  up to  15
       digit decimal fields.

  **   The ZEDIT tool is  documentation only and includes the  RPG code
       to be used  as a subroutine to strip off  the leading zeros of a

Demonstration command

A  demonstration  command is  available  to allow  you  to see  how the
functions will perform on various parameters.


A display file will  appear and you can  enter various values.  The  F6
command may be used to access DSPEDTCDE.

TAARPGYP Externally described data structure

The  following fields  exist  in  the data  structure  (all fields  are

     Field name    Length    if blank     Description
     ----------    ------    --------     -----------

      ZEOUT         44                    Edited return value
      ZEEDTC         1          Z         Edit code
      ZEDECP         1          0         Decimal positions
      ZEDTLN         1          6         Date/time length
      ZEADJR         1          b         Right adjust (b or R)
      ZEDECS         1          .         Decimal symbol
      ZESEPS         1          ,         Decimal separator
      ZEDATS         1          /         Date separator symbol
      ZETIMS         1          :         Time separator symbol
      ZESTLR         8          *ON       Set LR
      ZERSVD        40                    Reserved

Using the EDTVAR3 function as an RPG subroutine

The  intent of the EDTVAR3 function as  a subroutine is if your program
needs to edit  thousands of times and  the Call to  the sub program  is
too inefficient.

Calling a  sub program is not  significant overhead if you  return with
LR  off.  You  do not need  to consider the  subroutine approach unless
you are doing a large amount of editing.

The TAARPGYR3 source in the TAA Archive  can be copied out to a  member
using CPYTAA  such as to  file QATTRPG  in TAATOOL.   You may then  use
the  SEU  browse/copy  function  to  access the  TAARPGYR3  source  and
follow the instructions which are marked as C*++ comments.

You should only copy in the code and not the C*++ comments.

Only  a few comments appear in the  subroutine in order to minimize the
amount of source  to be included.   For a  better understanding of  how
the logic  of the  subroutine works, see  the TAARPGYR source  which is
the processing function for the EDTVAR3 command.

TAARPGYR3  is a working  program, but has  no function other  than as a
test vehicle.   If you  call the  program, a display  will appear  with
the edited value.  Use F3 to end the program.

Command parameters                               *CMD

The DMOEDTVAR3 command has no parameters.

The  intended  use of  EDTVAR3  is  either  as  a subroutine  or  as  a


There  are minor  differences with  the  Y edit  code handling  of very
short or long fields.


The following TAA Tools must be on your system:

     DSPEDTCDE       Display edit code
     SNDESCMSG       Send escape message


None, the tool is ready to use.

Objects used by the tool

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

   DMOEDTVAR3    *CMD                   TAARPGY2      QATTCMD
   TAARPGYR      *PGM       RPG         TAARPGYR      QATTRPG
   TAARPGYR2     *PGM       RPG         TAARPGYR2     QATTRPG
   TAARPGYR3     *PGM       RPG         TAARPGYR3     QATTRPG
   TAARPGYR4     *PGM       RPG         TAARPGYR4     QATTRPG
   TAARPGYP      *FILE      PF          TAARPGYP      QATTDDS

The TAARPGYR3  program is  the source  to  be copied  if you  want  the
EDTVAR3 function as  a subroutine.  The  program can be called,  but is
only used for testing.

The  TAARPGYR4  source  is  a  sample  of  how  to  call  the  TAARPGYR
processing  program as a sub  program.  The program  can be called, but
is only used for testing.


EDTVAR3 as a program (no command or CL program exists)

   TAARPGYR2   CL pgm
       TAARPGYD    Display file

Added to TAA Productivity tools May 1, 1997

Home Page Up to Top