Thank you for your e-mail, Barbara, and yes, I verified in debug session that DS_HRESD01.D1CHGAMT has a negative value right before eval-corr and the correspondent field has positive value right after eval-corr:
ds_hresD01 = f_in210txt;
// DS_HRESD01.D1CHGAMT = -793.49 <---- from Debug session
eval-corr ds_detD01 = ds_hresD01;
// D1CHGAMT OF DS_DETD01 = 0000000793.49 <---- from Debug session
Is it possible to be some PTF's missing here? We are in V6.1
Florin Todor
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Barbara Morris
Sent: Thursday, May 09, 2013 5:46 PM
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: Eval-corr
On 5/9/2013 11:58 AM, Florin Todor wrote:
Did you have a chance to look at my code to see what am I doing wrong here?
I forgot to add the DDS Description for the field, though; here it is:
D1CHGAMT 12P 2 COLHDG(' ' ' ' 'Charge')
It works fine for me. Here's my version of your program in debug:
1 D ds_detD01 e ds extname(testf:*output)
2=D D1CHGAMT 12P 2
3 D ds_hresD01 ds qualified inz
4 D D1CHGAMT 12 2
5 /free
6 DS_HRESD01.D1CHGAMT = -793.49;
7 eval-corr ds_detD01 = ds_hresD01;
8 return;
EVAL ds_detD01
D1CHGAMT OF DS_DETD01 = -0000000793.49
In your code, you are setting DS_HRESD01 by copying text to the data
structure.
ds_hresD01 = f_in210txt;
Have you verified in debug that DS_HRESD01.D1CHGAMT is -793.49 just
before the eval-corr?
If I had to guess, I'd guess that f_in210txt just has '000000079349',
but if the subfield is supposed to be negative, it should have the value
'00000007934R', ending in 'R', x'D9'. The x'D' in the last digit makes
the zoned value negative.
In my debug session:
EVAL ds_hresd01:c
DS_HRESD01:C = '00000007934R'
I'm guessing, maybe wrong, that yours would show
EVAL ds_hresd01:c
DS_HRESD01:C = '000000079349'
As an Amazon Associate we earn from qualifying purchases.