× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I wrote a service program to do this for me

Setsign Prototype:
    D SetSign         PR
    D  InputNum                     12S 2
    D  SignLoc                       1A
D OutString 12A
SetSign:
     *=================================================================*
     * SetSign - Set the sign for a numeric to character conversion
     *=================================================================*
    H
     *=================================================================*
     * Parameters
     * 1. Input: numeric value
     * 2. Output: signed numeric string
     *=================================================================*
    D/copy qsrvsrc,setsignpr
     *-----------------------------------------------------------------*
     * Main entry parameters
     * 1. Input: numeric value
     * 2. Output: signed numeric string
     *-----------------------------------------------------------------*
    D SetSign         PI
    D  InputNum                     12S 2
    D  SignLoc                       1A
    D  OutString                    12A
    D

     *-----------------------------------------------------------------*
     * Other fields used by the program
     *-----------------------------------------------------------------*
    D                 DS
    D work1                         11s 2
    D work2                         11a   overlay(work1)

    D Pos             c                   ' '
    D Neg             c                   '-'
    D Left            c                   'L'
    D Right           c                   'R'

     /free
      work1 = %abs(InputNum);

      // for Negative numbers
      if InputNum < *zero;
        // Sign on the Right
        if SignLoc = Right;
          OutString = work2 + Neg;
        endif;
        // Sign on the Left
        if SignLoc = Left;
          OutString = Neg + work2;
        endif;

      // Positive numbers
      else;
        // Sign on the Right
        if SignLoc = Right;
          OutString = work2 + Pos;
        endif;
        // Sign on the Left
        if SignLoc = Left;
          OutString = Pos + work2;
        endif;
      endif;

      Return;
     /end-free


Here is an example:
     // Service Program SETSIGN must be specified at program creation time

     // Prototype for SETSIGN service program
    d/copy qrpglesrc,setsignpr

     // Needed field    Set to R for right, L for left
    d signloc         s              1a   inz('R')

     // Additional example fields
    d  NumberIn       s             12s 2
    D  StringOut      S             12A

      // RPG Free source
     /FREE

        SetSign(NumberIn: signloc: StringOut);

     /END-FREE

     * ILE RPG source
    c                   eval      SETSIGN(NumberIn: signloc: StringOut)


Just another way to do it. Hope this helps. This code may not be formatted properly in the post, I copied it directly from my source.

Gene Burns
Programmer Analyst
Haulers Insurance Company




BSchwar@xxxxxxxx wrote:
Hello, I need to format a 7,2 numeric field (vlcontamt) to 7 alpha with
leading zeros and a left hand minus sign.
I've searched the archives and found references to the 'N' edit code, but
that suppresses leading zeros.

eval      wrk11a     = %editc(vlcontamt:'P')

Results when running program is in debug mode:

positive amount   WRK11A = '    61.10  '
negative amount         WRK11A = '    -8.6710  '

I thought the "P" edit code was supposed to provide leading zeors?


Thank You and happy 4th of July!

Bob Schwartz
Southeast Georgia Health System, Brunswick Campus
email    bschwar@xxxxxxxx


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.