DEFINE CLASS _XFRXHACK AS CUSTOM
oEWriter=.NULL.
oEDoc=.NULL.
nPageno=0
nReportno=0
cTarget=""
nVersion=0
lXLS=.F.
PROCEDURE GetReportName(m.tnReportNo)
RETURN IIF(This.nReportNo=1,"First Report",IIF(This.nReportNo=2,"Second Report",;
IIF(This.nReportNo=3,"Third Report","Fourth Report")))
ENDPROC
ROCEDURE Init(m.loSession)
m.loSession=IIF(TYPE("m.loSession.oxfSession")="O",m.loSession.oxfSession,m.loSession)
This.nVersion=VAL(CHRTRAN(m.loSession.GetVersion(),;
CHRTRAN(m.loSession.GetVersion(),"0123456789",""),""))
This.cTarget=m.loSession.cTarget
This.lXLS=This.cTarget=="XLS" OR This.cTarget=="XLSPLAIN"
=BINDEVENT(m.loSession.oDocumentWriter,"NewPage",This,"NewPage",0)
=BINDEVENT(m.loSession.oDocumentWriter,"NewReport",;
This,"NewReport",IIF(This.cTarget=="XLS" OR This.cTarget=="XLSPLAIN",0,1))
This.oEWriter=m.loSession.oDocumentWriter
This.oEDoc=m.loSession.oDocument
ENDPROC
PROCEDURE newReport(m.tnReportNo, m.tcCodePage, m.toReport)
This.nPageno=0
This.nReportno=m.tnReportNo
IF This.lXLS
This.oEWriter.cNextSheetName=This.GetReportName(This.nReportNo)
ELSE
This.oEDoc.cNextSheetName=This.GetReportName(This.nReportNo)
IF This.nVersion<1560000
IF TYPE("This.oEWriter.oOXML")="O"
This.oEWriter.oOXML.lAddPageNumberToSheetDisplyName=.F.
ELSE
IF TYPE("This.oEWriter.oOO")="O"
This.oEWriter.oOO.lAddPageNumberToSheetDisplyName=.F.
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
PROCEDURE newPage(m.tnHeight, m.tnWidth, m.tnPageNo, m.tnOri)
This.nPageno=This.nPageno+1
IF This.lXLS
This.oEWriter.cNextSheetName=This.GetReportName(This.nReportNo)+ ;
IIF(This.nPageno=1,""," "+LTRIM(STR(This.nPageno)))
ELSE
This.oEDoc.cNextSheetName=This.GetReportName(This.nReportNo)+ ;
IIF(This.nPageno=1,""," "+LTRIM(STR(This.nPageno)))
ENDIF
ENDPROC
ENDDEFINE