日期:2014-05-19  浏览次数:20479 次

如何直接打印水晶报表?
我用asp.net(c#)调用了一个水晶报表
方法是在一个页面输入一个单据号,然后跳到另外一个页面,在这个页面用推模式绑定数据源,产生一个报表,并在该页面显示出报表
经编译,可以看到生成的报表页,也可以使用水晶报表自带的打印按纽进行打印预览并打印,保存等操作.
但是当我在另外一台机器上进行访问时,因为没有我机器上的环境,我在点击打印按纽的时候,只出现了保存,取消两个菜单,没有我的机器上出现的 "打开 "菜单了,本来我机器上一点 "打开 ",就出现打开一个PDF格式的文档,然后就可以打印了
其实这样就等于是预览了两次了,请问高手我能不能在点水晶报表上那个打印按纽的时候不要再次预览就可以直接打印了,要不客户机上就不好打印了
是不是不能用PDF,但是我改成ActiveX,点打印却没反映,不知道是怎么回事
还有个小问题就是我的有个报表在网页上显示却往右边偏移了100Px左右,我的报表是没有偏移的,这样去看的时候还得用手拖,这个是什么造成的,这么解决?
问题比较多,但是忠心希望朋友们来教教我,分不够可以再加

------解决方案--------------------
private void btnPrint_Click(object sender, System.EventArgs e)
{
// 指定打印机名称,这里是网络工作站Gigi上的打印机Hp Jet 6
string strPrinterName;
strPrinterName = @ "Canon Bubble-Jet BJC-210SP ";
// 设置打印页边距
PageMargins margins;
margins = ReportDoc.PrintOptions.PageMargins;
margins.bottomMargin = 250;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 450;
ReportDoc.PrintOptions.ApplyPageMargins(margins);
//应用打印机名称
ReportDoc.PrintOptions.PrinterName = strPrinterName;
// 打印 // 打印报表。将 startPageN 和 endPageN
// 参数设置为 0 表示打印所有页。
ReportDoc.PrintToPrinter(1, false,0,0);

}
------解决方案--------------------
你用的是vs2003带的水晶报表还是vs2005的水晶报表?
------解决方案--------------------
ActiveX需要你装插件,查看你的IE设置,在安全里,查看允许activex安装
------解决方案--------------------
但是我改成ActiveX,点打印却没反映

-----------------------------------------
确保你的机器可以上网,多等待一会,大概1,2分钟(视网速而定),会请求安装activex插件,安装了以后就可以打印了。注意IE的安全设置
------解决方案--------------------
只要你部署的服务器在内网就可以了