CREATE CURSOR test (cdata char(20)) APPEND blank *Modeled after sample code at http://fox.wikis.com/wc.dll?Wiki~ReportListener~VFP *... *Code to instantiate the listener object and run the report. #INCLUDE reportlisteners.h Set Classlib To Home()+"\ffc\_reportlistener.vcx" additive #DEFINE DebugListener -2 #DEFINE PrintListener 0 #DEFINE PreviewListener 1 #DEFINE XMLListener 4 #DEFINE HTMLListener 5 #DEFINE PreviewMode '1' #DEFINE PrintMode '2' **Custom Listener Local oListener as object oListener = NEWOBJECT("ltListener") oListener.ListenerType = PreviewListener ***Run Report REPORT FORM "test.frx" TO PRINTER PROMPT OBJECT olistener RETURN *+------------------------------------------------------ *| Custom Listener Class named: "ltListener" *+------------------------------------------------------ DEFINE CLASS ltListener AS utilityreportlistener ************* Instance Specific Properties *+--------------------------------------------------------- *| *** Parent Method Customizations *** *+--------------------------------------------------------- *+--------------------------------------------------------- *| Error() **Inherited Method *| Triggered when an Error occurs while running the report. *+--------------------------------------------------------- Procedure Error(nError, cMethod, nLine) DoDefault(nError, cMethod, nLine) Set Step On ENDPROC *+--------------------------------------------------------- *| OnPreviewClose() **Inherited Method *| Triggered when an Error occurs while running the report. *+--------------------------------------------------------- Procedure OnPreviewClose(lPrint) IF lPrint && User clicked Print button! *** Set variable flag here, or whatever WAIT WINDOW "It's rollin', baby!" ENDIF DoDefault(lPrint) ENDPROC ENDDEFINE