Sergey Berezniker was able to make Cathy's idea work great for me even in my quite complicated report case. I believe, he should create a FAQ on this one, but here is a brief description:
1) Add a field in GroupFooter as Cathy described.
2) Create 2 report variables: BlankPage (.f. .f., reset at the end of the group) and BlankPageExpected (.f. .f. reset at the end of page).
3) In GroupFooter on Entry
_VFP.SetVar('BlankPageExpected', MOD(_PAGENO, 2) = 1)
4) In PageFooter on Exit
_VFP.SetVar('BlankPage', BlankPageExpected)
Put Print Where condition for all your objects
not BlankPage
That's it. The Blank page is generated.
There was another little problem (In my report I put County/City at the top (header) and repeat in footer). This was not printed correctly, however, it's also solved by setting variable county_city in Report's DE as public (release in Report's DE Destroy) and put
NVL(_VFP.SetVar('county_city', alltrim(county15)+" / "+city), '') + iif(vartype(llHidePrinting)="L",HidePrinting(),'')
in the PageHeader OnEntry.
I would not be able to do it without Cathy's and Sergey's help.
=========================================================
BTW, on the side note I think, my own first idea should work in one pass as well (as long as you don't do Report Preview).
>I'll try but I'm not optimistic.
>
>>The field can call a UDF with EJECT command. Unfortunately, I tried this idea two years ago, and it didn't work. May be it's printer specific, so you may still try it. I would be interested in result.
>>
>>>That's something that I tried, except typeing "Eject" in a report field attempts to print the value of the "Eject" variable, which doesn't exist.
>>>
>>>Aloha,
>>>
>>>James
>>>
>>>>how about an EJECT command in the same spot with a "print when" as appropriate
If it's not broken, fix it until it is.
My Blog