1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
ReportDocument _Report = new ReportDocument();
_Report.Load("mon rapport.rpt");
ConnectionInfo _ConnectionInfo = new ConnectionInfo();
_ConnectionInfo.IntegratedSecurity = false;
_ConnectionInfo.DatabaseName = "nom de la db";
_ConnectionInfo.ServerName = "nom du serveur";
_ConnectionInfo.UserID = "utilisateur";
_ConnectionInfo.Password = "mot de passe";
LogonReport(_Report, _ConnectionInfo);
crystalReportViewer1.ReportSource = _Report;
...
private void LogonReport(ReportDocument report, ConnectionInfo conInfo)
{
TableLogOnInfo logonInfo = new TableLogOnInfo();
foreach (Table crtable in report.Database.Tables)
{
logonInfo = crtable.LogOnInfo;
logonInfo.ConnectionInfo = conInfo;
crtable.ApplyLogOnInfo(logonInfo);
}
foreach (Section crSection in report.ReportDefinition.Sections)
{
foreach (ReportObject reportObject in crSection.ReportObjects)
{
if (reportObject.Kind == ReportObjectKind.SubreportObject)
{
SubreportObject subreportObject = (SubreportObject)reportObject;
LogonReport(report.OpenSubreport(subreportObject.SubreportName), conInfo);
//-- via mes recherches par Google, j'ai lu que certaines personnes ouvre le sous-rapport à partir du sous-rapport à la place du rapport.
//-- Pas très logique et cela ne marche pas non plus.
}
}
}
} |
Partager