如何使用C#控制台应用程序的ODBC连接打印RPT文件
本文关键字:连接 打印 RPT 文件 ODBC 何使用 控制台 应用程序 | 更新日期: 2023-09-27 17:58:17
我尝试了使用和不使用下面的数据库身份验证代码。
通过身份验证,它无法登录…我们通常使用ODBC,但我不知道如何将其链接到ODBC连接。
在没有身份验证的情况下,它会打印一个空报告(真实的报告,就好像没有返回任何记录一样)。
此外,如果我不知道报告有多少页,我该怎么说打印整个报告,因为它需要打印函数中的from和to页面参数。
在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);
}
}
对于到ODBC的连接,您应该能够使用ConnectionInfo对象的ServerName属性来指定连接字符串/dsn。请参阅以下问题的答案以获取一些示例。
如何更改Crystal报表';运行时的ODBC数据库连接?
对于问题的第二部分,您应该能够对PrintToPrinter方法的两个页码参数都使用0来打印所有页面。
希望这能有所帮助。