*!* dFromDate = THISFORM.txtFromDate.Value *!* dToDate = THISFORM.txtToDate.Value SELECT dMyDate, COUNT(*) AS nNumberOfRecords, SUM(Amount) AS nTotalAmount ; FROM MyTable ; INTO CURSOR ReportCursor ; WHERE BETWEEN(dMyDate, dFromDate, dToDate) ; GROUP BY dMyDate REPORT FORM MyReport TO PRINTER NOCONSOLE USE IN ReportCursor && Close cursor if you're not using it again.Now, save ReportCursor on your hard drive while you get the layout of your report finished. Don't put anything in the data environment. Refer to the data in the report controls as MyField, not MyCursor.MyField. When your app is running, if you run the report right after the cursor is created, the cursor will be the current work area.