CREATE CURSOR x (onefield l) CREATE report simplenodata from x SELECT x REPORT FORM simplenodata OBJECT ; (NEWOBJECT("reportListenerEvenIfNoData")) ; PREVIEW DEFINE CLASS reportListenerEvenIfNoData ; AS ReportListener drivingAlias = "" tempAlias = "" PROCEDURE LoadReport() IF THIS.CommandClauses.Preview THIS.ListenerType = 1 ELSE * you decide what you want for * various clauses... * you could also do this by * creating the object reference before * the REPORT FORM command of course ENDIF THIS.drivingAlias = ALIAS() IF RECCOUNT() = 0 WAIT WINDOW ; "Report proxy cursor..." NOWAIT THIS.tempAlias = "A" + SYS(2015) SELECT * FROM (THIS.drivingAlias) ; INTO CURSOR (THIS.tempAlias) READWRITE SELECT (THIS.tempAlias) APPEND BLANK ENDIF ENDPROC PROCEDURE UnloadReport() IF NOT ALIAS() == THIS.drivingAlias SELECT (THIS.drivingAlias) USE IN (THIS.tempAlias) ENDIF ENDPROC ENDDEFINE