Select * from myTable where Something into cursor myCursor >>_CRReport("myCursor","c:\myCR_RPT_Files\", "myTest.RPT", "myTable") >> >>Function _CRReport >> Lparameters tcCursorName, tcPath, tcRPTName, tcTableName >> >> lcAlias = alias() >> Select (tcCursorName) >> lcTemp = sys(2015) >> Copy to (tcPath+lcTemp) type fox2x >> oCrystal=CreateObject("Crystal.CRPE.Application") >> #Define WS_MAXIMIZE 29949952 >> Declare integer GetForegroundWindow in WIN32API >> Declare short IsWindow in WIN32API integer >> >> >> oRpt = oCrystal.OpenReport(tcRPTName) >> With oRpt >> With .Database.Tables(tcTableName) >> .Location = tcPath+lcTemp+".dbf" >> Endwith >> With .PrintWindowOptions >> .CanDrillDown = .t. >> .HasCancelButton = .t. >> .HasCloseButton = .t. >> .HasExportButton = .t. >> .HasGroupTree = .t. >> .HasNavigationControls = .t. >> .HasPrintButton = .t. >> .HasPrintSetupButton =.t. >> .HasProgressControls =.t. >> .HasRefreshButton =.f. >> .HasSearchButton =.t. >> .HasZoomControl =.t. >> Endwith >> .preview ("Report Preview ",,,,,WS_MAXIMIZE,0) >> Endwith >> lnHwndActiveX = GetForegroundWindow() && Save window handle >> Do while IsWindow(lnHwndActiveX) # 0 && Wait while Activex Alive >> Enddo >> Clear dlls >> >> Erase (tcPath+lcTemp+".*") >> If !empty(lcAlias) and used(lcAlias) >> Select (lcAlias) >> Endif >>Cetin