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
With oRpt With .Database.Tables(tcTableName) .Location = tcPath+lcTemp+".dbf" EndwithLines then should set location for each tcTableName in report. IOW if in crystal you create a report based on a table 'c:\mypath\mydata\mytable.dbf' you could use the same report with a copy of table in :