× 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.


  • Subject: Re: edit mask - Floating bracket sign (instead of $)
  • From: "Rick Baird" <Rbbaird@xxxxxxxxxxx>
  • Date: Mon, 13 Apr 1998 17:27:19 -0500
  • Organization: Premium Systems, Inc.

>My colleague wants to code a program to generate nagative values in
>brackets and not with a minus sign nor with a CR sign. Problem is that
>she wants the leading bracket to float like the $ sign.
>Eg.
>        (89.00)
>   (2,341.00)


I use this method to output and retrieve numerics from html entry fields.
It's a little cludgy, but it works and might be just what you need:  

The screen field is alpha, so you may need to do a little extra editing if it 
is input capable to keep them from entering anything
other than 0-9, ( ) , . and $.  the sub-procedure "str2flt is a standard "C" 
routine that converts an alpha string to a floating
point decimal.

to output to screen:

DDS:

A           EDITFLD    12A  B  2  2

........

RPG4:

To output to screen:

 * if negative, append parenteses before and after edited numeric.

C                   IF        NUMFLD < 0
C                   EVAL      EDITFLD = '(' + %trim(%editc(NUMFLD:'1')) + ')'
C                   ELSE
C                   EVAL      EDITFLD = %trim(%editc(NUMFLD:'1'))
C                   END

If you need to read from screen:

D Str2Flt         Pr             8F   ExtProc('cvtefnd')      
D  Str                            *   Value                   
D  StrLen                       10U 0 Value                   
D  Mask                          3    Const

D FltResult       S              8F

....

 * check if field is numeric.
                                                                 ==
C    '('            CHECK     EDITFLD         POS                10

 *  replace parentheses with zeroes.

C    '()':'00'      XLATE     EDITFLD         EDITFLD

 * convert alpha string to floating point, then to numeric 

C                   Eval      FltResult = Str2Flt( %Addr(EDITFLD) :       
C                                                  %Len(%trimr(EDITFLD)) :
C                                                  '$,.' )               

C                   Eval      NUMFLD = FltResult                         
C                   END                                                  

 * if value had parentheses, make negative.

C                   IF        *IN10 = *on
C                   Z-SUB     NUMFLD       NUMFLD
C                   END



You will need to compile this program with parameter "BNDDIR(QC2LE)".

Hope this helps a little,

Rick
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


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.