|
Mark, "p_plan" contains the address of the variable called "plan", and "plan" is local to your subprocedure. When the subprocedure ends, "plan" is destroyed, so the address of "plan" isn't very useful to the main procedure. :) The fix is to either allocate the space for "plan" in your main procedure, and pass it in as a parameter, or define it as static in your subprocedure. Good luck! On Fri, 26 Apr 2002 MWalter@hanoverwire.com wrote: > Arrrrggghhh, > > The procedure which I used a work around for the previous problem is now > giving me fits!!!. Here is the code AGAIN: > > /* significant code from the Main procedure */ > dgetPlanedSales PR * > D 15a CONST > D 4p 0 CONST > D 3p 0 CONST > > DitemIsSku PR N > D item 15a CONST > > Dsales s 11p 3 DIM(12) based(p_sales) > dp_sales S * INZ > > c eval p_sales = > c getPlanedSales(itnbr:fiscalYr:seq#) > > /* Subprocedure */ > > H NoMain > fSls600wfl if e k Disk usropn > > d DS > DdsPlan 1 120 3 DIM(12) > D fcstum1 1 10 3 INZ > D fcstum2 11 20 3 INZ > D fcstum3 21 30 3 INZ > D fcstum4 31 40 3 INZ > D fcstum5 41 50 3 INZ > D fcstum6 51 60 3 INZ > D fcstum7 61 70 3 INZ > D fcstum8 71 80 3 INZ > D fcstum9 81 90 3 INZ > D fcstum10 91 100 3 INZ > D fcstum11 101 110 3 INZ > D fcstum12 111 120 3 INZ > > DgetPlanedSales PR * > D itnbr 15a CONST > D year 4p 0 CONST > D seq 3p 0 CONST > > PgetPlanedSales b export > DgetPlanedSales PI * > D itnbr 15a CONST > D year 4p 0 CONST > D seq 3p 0 CONST > > dplan S 11p 3 DIM(12) > dp_plan s * INZ(%addr(plan)) > dx s 2 0 > DseqKey S 2 0 > Dlen S 10i 0 > > c if not %open(Sls600wfl) > c open sls600wfl > c endif > > C key klist > c kfld year > c kfld seqKey > c kfld itnbr > > c reset plan > c eval seqKey = seq > > c key setll Sls600wfl > c dou %eof(Sls600wfl) > c key reade Sls600wfl > c if %eof(Sls600wfl) > c leave > c endif > > c for x = 1 to 12 > c eval plan(x) = plan(x) + dsPlan(x) > c endfor > > c enddo > > > c return p_plan > > P E > > If I look at the plan array in the subprocedure in debug, it shows valid > data. the pointer address is returned to the main procedure, but if I look > at the sales array in the main procedure, I get garbage, ie Decimal Data > Error. I need a beer!! > > Thanks, > > Mark
As an Amazon Associate we earn from qualifying purchases.
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.