PUBLIC ReportDefault && app attribute or reportlistener attribute ox = CREATEOBJECT("reportlistener") ox.ListenerType = 3 IF .T. && if my app wants PROMPT LOCAL lcVFPReport lcVFPReport = SET("PRINT",3) IF EMPTY(ReportDefault) SET PRINTER TO NAME (GETPRINTER()) ReportDefault = SET("PRINT",3) ELSE SET PRINTER TO NAME (ReportDefault) ENDIF ENDIF REPORT FORM ? OBJECT ox ox.PrintCachedPages() SET PRINTER TO NAME (lcVFPReport) ? SET("PRINT",3) * default VFP printer is the same, * which you seem to want, * but you still have your ReportDefault information, * for use next time... ? ReportDefault RETURN