Andrus, you can do anything you like to the class, that's why I upload the source code. Use and abuse at will.
In fact, if anyone comes up with a bugfix or enhancement, they can email it to me and I'll include the credit in the docs and on the description page here on the UT after I have tested and uploaded the addition.
>.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))
>>>>>
>>>>>
------------------------------------------------
John Koziol, ex-MVP, ex-MS, ex-FoxTeam. Just call me "X"
"When the going gets weird, the weird turn pro" - Hunter Thompson (Gonzo) RIP 2/19/05