Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Fixing frx2word bug in report variable initial value
Message
From
06/11/2001 15:57:26
 
 
To
05/11/2001 17:13:21
General information
Forum:
Visual FoxPro
Category:
Reports & Report designer
Miscellaneous
Thread ID:
00574226
Message ID:
00578204
Views:
42
.InitVars() works OK without saving/restoring view.

I discovered next bug in frx2word: during outputting a last page footer, report main alias is at end of file positon. However, in VFP report writer, report main alias in at last record.
To fix this, I added a two bold lines to the .reportform() method.
Is it OK to add them ?

if eof()
SKIP -1 IN (m.calias) && Added
.placecolftr()

.placepgftr()
if (.voffsetpts+.sumbandheightpts > .maxvpospts) or ;
(.columns > 1)
f2w_owdoc.sections.add
.pageno=.pageno+1
.voffsetpts=0

endif
.placesummary()
exit && added
endif

>Here's a thought: Try the old CREATE VIEW and SET VIEW commands to create .vue files as blocks to InitVar()...this way, everything gets restored. Yes, it's a cheezy idea, but it would work.
>
>
>>Yes and No. Some of my simpler reports are running after this fix.
>>
>>However, complex reports are still causing errors. I'm using a udf-s in
>>report expressions.
>>I have found that some of my tables related to report main alias are at eof() position if using frx2word.
>>
>>If VFP report writer, they are at correct position. It seems that frx2word
>>will not restore current alias and record after evaluating my expression
>>
>>
>>>Does it work now?
>>>
>>>>I have found the following bug in frx2word utility:
>>>>
>>>>if report variable initial value uses a previous report variable initial value,
>>>>an error occurs in .initvars() method.
>>>>
>>>>I fixed it by adding two lines to initvars method.
>>>>
>>>>
>>>>
>>>>		this.vardata[m.i,4]		= rpt.totaltype
>>>>		this.vardata[m.i,5]		= 0
>>>>		this.vardata[m.i,6]		= 0
>>>>
>>>>* The next line produses error if initial value use other var initial value
>>>>		this.vardata[m.i,7]		= eval(allt(rpt.tag))
>>>>
>>>>		this.vardata[m.i,8]		= vartype(eval(allt(rpt.tag)))
>>>>		this.vardata[m.i,9]		= this.vardata[m.i,7]
>>>>
>>>>* Those linses are added to fix this error
>>>>PRIVATE (ALLTRIM(rpt.name))
>>>>STORE eval(allt(rpt.tag)) TO (alltrim(rpt.name))
>>>>
>>>>
Andrus
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform