水晶报表发布以后,不能打印
操作系统:windows server 2003 standard edition sp2.开发平台:vs 2008 专业版sp1.(没装自带的水晶报表10的版本)
安装的水晶报表: crystal reports 2008 cr开发人员版,版本12.0.0.683 产品类型:完整版。
在vs里面,打印的时候,一点问题都没有(PrintMode="ActiveX"),repDoc.PrintToPrinter(1, false, 0, 0) 。等我把程序发布到了iis里面以后(本机调试的),页面数据能显示,但是我按了打印按钮以后,确一点反映都没有啊。报表打印不出来。
请大家赐教。 --------------------编程问答-------------------- 你现在发布后,有没有看到那些功能图标呢。如果能看到,你再装一下PDF试试。
如果没有看到,你还要装水晶报表的几个组件和PDF --------------------编程问答-------------------- 我用的页面没有显示自带的工具条的,再说了,报表的PrintMode都改成了ActiveX,应该和pdf没有关系了吧.我本机的系统,也是有pdf的,什么都是全的 --------------------编程问答-------------------- repDoc.PrintToPrinter(1, false, 0, 0)
你本机的默认打印机是什么?是共享了别的机器上的打印机么? --------------------编程问答-------------------- 老外的东西果然不好搞啊············
诶······
顺便问下,你发布后是希望只使用某台固定打印机来打印么?
如果是这样···我可以把握的代码copy给你~~!! --------------------编程问答-------------------- 不可能是固定的某台打印机了啊,都是本机的默认打印机,不是共享的网络打印机。才开始学习用水晶报表,方法都是从网上摘录的。
//获取本地默认打印机
System.Drawing.Printing.PrintDocument prtDocument = new System.Drawing.Printing.PrintDocument();
string strPrinterName;
strPrinterName = prtDocument.PrinterSettings.PrinterName;
Microsoft.Win32.RegistryKey rk;
rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Print\\Printers\\" + strPrinterName + "\\DsDriver");
string[] 易做图s = (string[])(rk.GetValue("printMediaSupported"));
int 易做图Index=-1;
for (int i = 0; i < 易做图s.Length; i++)
{
if (易做图s[i] == "测试纸张")
{
易做图Index = i;
}
}
int[] sizes = PaperSizeGetter.Get_PaperSizes(strPrinterName);(方法省略,网上找的自定义纸张的方法。)
int 易做图Sizeid = sizes[易做图Index];
repDoc.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)(易做图Sizeid);
repDoc.PrintOptions.PrinterName = strPrinterName;
repDoc.PrintToPrinter(1, false, 0, 0); //直接打印
这个唯一的问题,就是在vs里面都是可以打印的,但是发布了以后,可以看到数据,按了打印按钮就没有反映了啊。我还从网上看到了,可能是ActiveX控件客户端不能下载的问题,要在配置文件里面加东西,但是我加了printControl好像还是没有反映. --------------------编程问答-------------------- 还是打印不了,点了打印按钮,窗口始终是出于等待状态啊。一点反映都是没有的。我晕了,谁能帮帮我的啊 --------------------编程问答-------------------- 问一下,我用的水晶报表是开发版,不会是因为这个所以才导致发布了以后不能打印的吗?
但是我用pdf格式的话,发布了以后都是可以用的啊。打印机是本地的默认打印机 --------------------编程问答-------------------- repDoc.PrintOptions.PrinterName = strPrinterName;
发布后看看strPrinterName的值是什么
补充:.NET技术 , 图表区