第一次用水晶报表,捕捉打印函数的异常中,发现了好象叫“登陆失败”这样的提示。(程序我放在公司了,有些代码是借用别人以前的,所以不太说的清楚)。我确定自己的电脑是联有默认打印机的,而且我是为报表设置了打印机的。
我做了数据集,在数据集里填充了数据之后,设置为水晶报表的数据源。打印用了Crystal Report 类的一个接口,具体忘记了叫什么了,好象是Print...(1,true,1,-1)这样的在执行这个函数时,抓到exception。就是好象叫“登陆失败”你们谁碰到这个错误啊???
谢谢了
我做了数据集,在数据集里填充了数据之后,设置为水晶报表的数据源。打印用了Crystal Report 类的一个接口,具体忘记了叫什么了,好象是Print...(1,true,1,-1)这样的在执行这个函数时,抓到exception。就是好象叫“登陆失败”你们谁碰到这个错误啊???
谢谢了
---------------------------------------------------------------
在报表的cs文件中,加上数据库连接。
---------------------------------------------------------------
1.TableLogonInfo
.使用TableLogonInfo
Dim ReportDoc As New ReportDocument()
Dim logonInfo As New TableLogonInfo
Dim table As table
ReportDoc.Load("C:\Rpts\publish.rpt")
For Each table IN ReportDoc.DataBase.Tables
logonInfo= table.LogonInfo
with logonInfo.connectioninfo
.serverName= "Localhost"
.Databasename= "pubs"
.UserID= "sa"
.Password=""
End With
table.applyLogonInfo(logonInfo)
next table
Crviewer.reportsource= reportDoc
2.如果是多個相關表格生成的報表,最好以存儲過程為數據源建立報表
如果是的话当然有问题,这个接口只在winform里适用。
SqlConnection myconn=new SqlConnection(Conn);
string sql="select * from PartNumber";
DataSet ds=new DataSet();
SqlDataAdapter SDA=new SqlDataAdapter(sql,myconn);
try
{
SDA.Fill(ds,"PartNumber");//将表写入DataSet
}
catch
{
Response.Write("<script>history.back();alert('查询数据过多或数据问题!');</script>");
Response.End(); }
if (ds.Tables[0].Rows.Count>0)
{
rptyi.SetDataSource(ds.Tables[0]);
// 声明变量并获取导出选项。
ExportOptions exportOpts = new ExportOptions();
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
exportOpts = rptyi.ExportOptions;
// 设置导出格式。
exportOpts.ExportFormatType = ExportFormatType.PortableDocFormat;
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile; // 设置磁盘文件选项。
string pdfname="cha"+DateTime.Now.ToShortDateString()+"_"+DateTime.Now.ToLongTimeString().Replace(":","-")+"_"+DateTime.Now.Millisecond.ToString()+".pdf";
diskOpts.DiskFileName = Server.MapPath("PDF/"+pdfname);
exportOpts.DestinationOptions = diskOpts;
rptyi.Export();
rptyi.Dispose();
Response.Write("<script>window.open('pdf/"+pdfname+"');history.go(-1);</script>");
}
else
{
Response.Write("<script>history.back();alert('没有满足您查询条件的数据,请重新输入查询条件!');</script>");
Response.End();
}