Я попробовал это с и без кода аутентификации базы данных ниже.
При аутентификации не удается войти в систему ... мы обычно используем ODBC, но я не вижу, как связать его с подключением ODBC.
Без аутентификации он выводит мне пустой отчет (реальный отчет, как будто не было возвращено ни одной записи).
Кроме того, как мне сказать, печатать весь отчет, если я не знаю, сколько оно страниц, поскольку для него требуется параметр от и до страницы в функции печати.
Отчеты были созданы в Crystal Reports XI v11.5
Заранее спасибо за любую помощь.
Вот что у меня есть:
printReport()
{
ReportDocument cryRpt = new ReportDocument();
cryRpt.RefreshReport += reportLoaded;
cryRpt.Load(myReport);
TableLogOnInfo crTableLogonInfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables crTables;
crConnectionInfo.ServerName = "myServer";
crConnectionInfo.DatabaseName = "myDatabase";
crConnectionInfo.UserID = "myUser";
crConnectionInfo.Password = "myPass";
crTables = cryRpt.Database.Tables;
foreach (Table table in crTables)
{
crTableLogonInfo = table.LogOnInfo;
crTableLogonInfo.ConnectionInfo = crConnectionInfo;
table.ApplyLogOnInfo(crTableLogonInfo);
}
cryRpt.SetParameterValue("@report_type", type);
cryRpt.Refresh();
}
reportLoaded(object sender, EventArgs e)
{
PrintDialog print = new PrintDialog();
DialogResult dr = print.ShowDialog();
if (dr == DialogResult.OK)
{
ReportDocument cryRpt = (ReportDocument)sender;
cryRpt.PrintOptions.PrinterName = print.PrinterSettings.PrinterName;
cryRpt.PrintToPrinter(print.PrinterSettings.Copies, print.PrinterSettings.Collate, print.PrinterSettings.FromPage, print.PrinterSettings.ToPage);
}
}