Problem solve Get help with specific problems with your technologies, process and projects.

Centering text in a file field

Learn how to center text in a file field for printing or displaying purposes. end.

Many times I have had the occasion to center text in file field for printing or displaying purposes. I now use...

the following RPG IV code to achieve this end.

  * Declares
D Centered        S                   Like(Field) Inz
D X               S              3P 0 Inz
  * Center field
C                   Eval      X = (%Len(Field)-%Len(%Trim(Field)))/2+1
C                   Eval      %Subst(Centered:X) = Field
C                   Eval      Field              = Centered 

In an ILE environment this can be made into a prototype in the following. This works for any size text up to a max of 1000 bytes. In the below example text is centered in a 50 byte field.

  ** The following prototype describes a procedure that centers text within 
a character field
  ** with a size of 1000 bytes or less.
  * Centering procedure
D Center          PR          1000A
D   AnyText                   1000A   Const
D   AnyTextLen                   5U 0 Value
  * Sample text to center
D  Text           S             50A   Inz('Center this text')
  * Use of prototype to center text
C                   Eval      Text        = Center(Text:%Len(Text))
  * Return program
C                   Return
  ** Centering prototype
P Center          B                   Export
D Center          PI                  Like(Centered)
D Field                       1000A   Const
D FldLength                      5U 0 Value
  * Procedure variables
D Centered        S                   Like(Field)
D ReturnCent      S                   Like(Field)
D X               S              5U 0 Inz
  * Calculate start position for centered text
C                   Eval      X = (FldLength-
C                               %Len(%Trim(%Subst(Field:1:FldLength))))/2+1
  * Place the text into position
C                   Eval      %Subst(Centered:X) =
C                             %Trim(%Subst(Field:1:FldLength))
  * Populate and return variable
C                   Eval      ReturnCent         = Centered
C                   Return    ReturnCent
P Center          E 

This was last published in November 2001

Dig Deeper on iSeries CL programming

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.