Это зависит от того, какую версию Crystal Reports вы используете, но я сделал это на VB.net с Crystal Reports 2008, используя элемент управления таймером и следующий код;
Me.Cursor = Cursors.WaitCursor
crvActive.ReuseParameterValuesOnRefresh = True ' Do not ask for new parameters
crxReport.Refresh()
crvActive.RefreshReport()
With crvActive ' Get the number of pages after the refresh
.ShowLastPage()
NumPages = .GetCurrentPageNumber
.ShowFirstPage()
End With
Me.Cursor = Cursors.Default
crvActive - это элемент управления Viewer в форме, crxReport - объект ReportDocument. Я надеюсь, что вы можете перевести это на C # и привязать его к событию Timer.
Удачи.