如何实现crystal 10 web 客户端打印?

liyuhu 2006-10-18 10:23:40
请教各位大侠.我是初学crystal者.
请问:如何实现crystal 10 web 客户端打印?
在线等;谢谢
...全文
398 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
forgot 2007-04-25
  • 打赏
  • 举报
回复
使用 ActiveX 控制項列印

在 Crystal Reports 的更新版本中,您可以使用新的 CrystalReportViewer.PrintMode 屬性來指定列印模式。其中包含兩個列舉型別:ActiveX 和 PDF。

當屬性設定為 PrintMode.PDF 時,報表會在 Web 伺服器上匯出為 PDF,然後以資料流傳送到瀏覽器。使用者可以利用選項,直接列印至印表機。這個選項是跨平台相容的。
當屬性設定為 PrintMode.ActiveX 時,ActiveX 列印控制項允許使用者將報表直接列印至本機印表機。
注意 在 Crystal Reports for Visual Studio 2005 中,為符合 Microsoft 安全性需求起見,並沒有將 ActiveX 列印控制項安裝在本機電腦上。而是必須製成 .cab 檔案,讓人從外部 URL 來存取。PrintControl.cab 檔案可以從 Business Objects 技術支援網站下載取得,這時就可以將 cab 檔案放在 Web 伺服器虛擬目錄中,以供 URL 存取之用。
若要在 Crystal Reports for Visual Studio 2005 網站顯示 cab 檔案,請將下列 xml 加入網站的 web.config 檔案:
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<printControl>
<add key="url" value="http://myserver/PrintControl.cab" />
</printControl>
</crystalReports>
</businessObjects>
注意 只有 Internet Explorer 才會支援 ActiveX 控制項。若從非 Internet Explorer 的用戶端 (FireFox、Safari、Mozilla 等) 列印,將會回復到 PDF 匯出對話方塊。
=====================================

经过我的测试,是IE升级了补丁,对摸态窗的安全加强了,所以就算你将文件放到本地服务器估计也安装失败,除非你自已写代码连续弹出两次摸态窗,才会提示安装,不过这样给用户是不可能的。

我测试过,将代码写入摸态窗,打开页面就自动弹出执行会出错,除非你设个定时器,过30秒或一分钟后再弹出是正常的。

所以完全可以将他的CAB下载回来放到本地服务器,然后写下面代码放到一个单独的页面放用户先安好。

先下载http://support.businessobjects.com/CRforVS2005/PrintControl.cab,放到自已的服务器上。

<object id="CrystalPrintControl" classid="CLSID:BAEE131D-290A-4541-A50A-8936F159563A" codebase="http://127.0.0.1/rpt/PrintControl.cab" #Version="10,2,0,1078" viewastext></object>

#Version是版本号,如果你是其他的版本将版本号修改一下即可。
wanghu24 2007-04-24
  • 打赏
  • 举报
回复
修改ReoporterViwer的PrintMode="ActiveX"
然后第一次运行的时候安装这个acitvex,以后就可以直接打印了
chaoming 2007-04-19
  • 打赏
  • 举报
回复
有一个属性忘了,默认值是pdf,将它改为Actrive就行了
alextoby 2007-04-16
  • 打赏
  • 举报
回复
同意vfp_system(菜鸟一个)

crystal 10已经实现自己调用pdf打印
代码打印只能保存在服务器端
nwgogogo 2006-11-02
  • 打赏
  • 举报
回复
如果用的是VS.NET2005的话,实现起来会更简单。
在VS.NET2003中可以使用以下代码实现打印:
// 指定打印机名称,这里是网络工作站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);
nwgogogo 2006-11-02
  • 打赏
  • 举报
回复
可以通过代码实现报表打印。
vfp_system 2006-10-27
  • 打赏
  • 举报
回复
唯一的办法就是导出为其他格式的文档再打印,
别无他法!

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧