Я использую средство просмотра отчетов WPF Crystal Report Viewer и вполне им доволен.
Однако у меня проблема с подотчетами.
Моя первая попытка связать подотчеты сделала что-то вроде этого:
ReportDocument.Load(Response.ReportsPath + "\\myReport.rpt");
ConnectionInfo.DatabaseName = "myDatabase.mdb";
SetDBLogonForReport(ConnectionInfo, ReportDocument);
ReportDocument.Database.Tables[0].Location = "Table0";
ReportDocument.Database.Tables[1].Location = "Table1";
foreach (var document in ReportDocument.Subreports.OfType<ReportDocument>())
{
SetDBLogonForReport(ConnectionInfo, document);
document.Database.Tables[0].Location = "CommonSubreportTable";
}
К сожалению, это не работает.
Я пробовал несколько различных решений. Один блоггер предложил установить подотчеты перед основным отчетом.
Итак, я попробовал это:
ReportDocument.Load(Response.ReportsPath + "\\myReport.rpt");
foreach (var document in ReportDocument.Subreports.OfType<ReportDocument>())
{
SetDBLogonForReport(ConnectionInfo, document);
document.Database.Tables[0].Location = "CommonSubreportTable";
}
ConnectionInfo.DatabaseName = "myDatabase.mdb";
SetDBLogonForReport(ConnectionInfo, ReportDocument);
ReportDocument.Database.Tables[0].Location = "Table0";
ReportDocument.Database.Tables[1].Location = "Table1";
Все еще не работает. Другой блогер предположил, что лучше всего использовать наборы данных.
Итак, я сделал это.
ConnectionInfo.DatabaseName = "MyDatabase.mdb";
foreach (ReportDocument document in ReportDocument.Subreports)
{
document.SetDataSource(response.Dst);
}
ReportDocument.Database.Tables[0].SetDataSource(response.Dsx.Tables[0]);
ReportDocument.Database.Tables[1].SetDataSource(response.Dsc.Tables[0]);
У меня все еще запрашиваются значения параметров!!! Я был в этом для ЧАСОВ!!! Это НЕ должно быть ТЯЖЕЛО!!! У кого-нибудь есть другие идеи??? Есть ли исправление или что-то, что я пропустил?