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



Uh, I think you forgot to change the '0' to *Zeros. I just tried fixed format with *Zeros; the compiler barfed there, too.

        * Jerry C. Adams
*IBM System i5/iSeries Programmer/Analyst
B&W Wholesale Distributors, Inc.* *
voice
        615.995.7024
fax
        615.995.1201
email
        jerry@xxxxxxxxxxxxxxx <mailto:jerry@xxxxxxxxxxxxxxx>



Holden Tommy wrote:
That is kinda freaky though....i got the same compile error, etc. seems
that free format is a little finicky about *ZERO in this form.  Using
fixed format for the same code compiles fine:
c eval w#ladj = 0-dlsqty*dlstks Maybe you found a bug...

Thanks,
Tommy Holden


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Holden Tommy
Sent: Monday, January 22, 2007 2:25 PM
To: RPG programming on the AS400 / iSeries
Subject: RE: *Zeros

Not really the answer but...

Why w#ladj = *Zeros - dlsqty * dlstks;
Seems you want to make the resulting number a negative?

FWIW I would just do this:
W#ladj = (dlsqty * dlstks) * -1;

Thanks,
Tommy Holden


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jerry Adams
Sent: Monday, January 22, 2007 2:20 PM
To: RPG Midrange
Subject: *Zeros

Got a "strange" compile error message a few minutes ago:

RNF7421 30 1 Operands are not compatible with the type of operator.

The line in error read: w#ladj = *Zeros - dlsqty * dlstks;

When I changed *Zeros to simply 0, the program compiled without a
murmur.

So I pulled out the trusty (dusty) ILE RPG Reference manual. Page 126
says:

"*ZERO/*ZEROS Character/numeric fields: All zeros. The value is '0' or X'F0'. For numeric float fields: The value is '0 E0'."

So I'm thinking (always dangerous), "Oh, *Zeros is a character field."

But, then, I remembered another line in this same program (and similar lines in tons of other programs:

w#ladj = *Zeros;

I scanned some old, fixed-format code and found things like: *Zeros ADD X Y.
Which means (to me, anyway) that *Zeros is a numeric field.

So, why did I get the compile error?

Thanks.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.