JGauffin,
Как и Ли, мне любопытно, почему вы загружаете набор данных с данными хранимой процедуры, а не просто передаете учетные данные в Crystal Report.
Фактически, кодвы показываете, даже не загружает набор данных напрямую в любом случае.Я предлагаю вам получить данные отчета непосредственно с сервера данных, используя вашу хранимую процедуру.Это просто требует, чтобы вы установили учетные данные для доступа к серверу.
Если вы удалите весь этот код ...
Dim c As ConnectionInfo = New ConnectionInfo()
c.ServerName = "####"
c.DatabaseName = "####"
c.Password = "####"
c.UserID = "####"
c.Type = ConnectionInfoType.SQL
c.IntegratedSecurity = False
For i As Integer = 0 To theCrystalReportViewer.LogOnInfo.Count - 1
theCrystalReportViewer.LogOnInfo(i).ConnectionInfo = c
Next
..., вы можете снова ввести этот удобный метод:
// this line needs you to replace these arguments with the valid values
oReport.SetDatabaseLogon("your", "valid", "settings", "here");
Тогда, если вы видите проблемы только с подкачкой, печатью и экспортом, вам следует убедиться, что вы продолжаете возвращать ReportSource обратно в представление.
if (!IsPostBack)
{
// all your existing code should go in here
// this includes the SetDatabaseLogon etc.
// at the right moment, save your oReport in session
Session["myReportDocument"] = oReport;
theCrystalReportViewer.ReportSource = oReport;
}
else // we are posting back, so make sure the viewer still has the report object
{
theCrystalReportViewer.ReportSource = (ReportDocument)Session["myReportDocument"];
}
Надеюсь, это поможет вам правильнопуть.