Lots of options stylistically.
Personally, I dislike underscores so I tend to lean towards cnYES or cnNO. I don't use "cn" on my standard True/False.
Whatever floats your boat. Consistency is of higher importance to me anyway.
We had a contractor recently who, in 3 IF statements in the course of about 15 lines, managed to case it 3 different ways - drove me NUTS.
IF
If
if
THAT.... did not float my boat.
Roger Harman
COMMON Certified Application Developer – ILE RPG on IBM i on Power
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Joe Pluta
Sent: Thursday, January 24, 2019 8:55 PM
To: rpg400-l@xxxxxxxxxxxxxxxxxx
Subject: Re: Free format question on D specs
Thomas, others have addressed the syntactical part of your question, but
I have a stylistic suggestion. Rather than using variables x_yes and
x_no, I prefer to use constants:
dcl-c C_YES 'Y';
dcl-c C_NO 'N';
My own preference is to uppercase literals and precede them with C_;
that makes it very clear when I use a literal. Then I can write the
following:
if xzstas <> C_YES and xsstas <> C_NO;
The code in the if will be executed if xzstas is anything other than 'Y'
or 'N'.
On 1/24/2019 7:17 PM, Thomas Burrows wrote:
I have the following.
Dcl-s x_yes char(01);
Dcl-s x_no char(01);
How do I get x_yes set to 'Y' and x_no set to 'N';
Then I have the following if statement.
if xzstas <> x_yes or x_no;
xzstas is an alpha A1.
I am getting a RNF7421.
What is wrong with my operation? I am supposing the "<>" is not correct.
Thomas