读书人

C# 打印输出的 异常 求大牛们解决

发布时间: 2012-10-29 10:03:53 作者: rapoo

C# 打印输出的 错误 求大牛们解决!!!!
这是一个打印输出的 主要操作 函数 我不理解 new SvfrClient(strHost) 实例化的这个函数
还有他随后的 .VrInit() 等一系列方法 原理到底是什么 有用过这个方法打印输出账单的 解决下 谢谢啦!!!
protected void Output_Report(string strSpoolFile)
{

int code = 0;

try
{

svf = new SvfrClient(strHost);


code = svf.VrInit();
if ( code < 0 )
{
StringBuilder StbLogMsg = new StringBuilder();
StbLogMsg.Append(Util.GetLogMessage(httSession,"\r\nErrorMessage : "));
StbLogMsg.Append("\r\nErrorMethod : Output_Report");
log.Error(StbLogMsg.ToString());


string strMessage = Util.GetMessage(messageManager, strWorkName,
MessageId_Report.EREP0001);
throw new ReportException(strMessage);
}


code = svf.VrSetPrinter("EMF","EMF");
if ( code < 0 )
{

StringBuilder StbLogMsg = new StringBuilder();
StbLogMsg.Append(Util.GetLogMessage(httSession,"\r\nErrorMessage :"));
StbLogMsg.Append("\r\nErrorMethod : Output_Report");
log.Error(StbLogMsg.ToString());


string strMessage = Util.GetMessage(messageManager, strWorkName,
MessageId_Report.EREP0002);
throw new ReportException(strMessage);
}


code = svf.VrSetSpoolFileName2(strPdfPath + strSpoolFile + ".wdp");
if (code < 0)
{

StringBuilder StbLogMsg = new StringBuilder();
StbLogMsg.Append(Util.GetLogMessage(httSession,
"\r\nErrorMessage : "));
StbLogMsg.Append("\r\nErrorMethod : Output_Report");
log.Error(StbLogMsg.ToString());


string strMessage = Util.GetMessage(messageManager,strWorkName,
MessageId_Report.EREP0003);
throw new ReportException(strMessage);
}


code = svf.VrComout("/{SPLM 3}/");
if (code < 0)
{

StringBuilder StbLogMsg = new StringBuilder();
StbLogMsg.Append(Util.GetLogMessage(httSession,
"\r\nErrorMessage : "));
StbLogMsg.Append("\r\nErrorMethod : Output_Report");
log.Error(StbLogMsg.ToString());


string strMessage = Util.GetMessage(messageManager, strWorkName,
MessageId_Report.EREP0004);
throw new ReportException(strMessage);
}


PrintFormData();


code = svf.VrPrint();
if (code < 0)
{

StringBuilder StbLogMsg = new StringBuilder();
StbLogMsg.Append(Util.GetLogMessage(httSession,"\r\nErrorMessage : "));
StbLogMsg.Append("\r\nErrorMethod : Output_Report");
log.Error(StbLogMsg.ToString());


string strMessage = Util.GetMessage(messageManager, strWorkName,
MessageId_Report.EREP0005);
throw new ReportException(strMessage);
}


code = svf.VrQuit();//出错的地方,直接抛异常!!
if (code < 0)
{

StringBuilder StbLogMsg = new StringBuilder();
StbLogMsg.Append(Util.GetLogMessage(httSession,
"\r\nErrorMessage : "));
StbLogMsg.Append("\r\nErrorMethod : Output_Report");
log.Error(StbLogMsg.ToString());


string strMessage = Util.GetMessage(messageManager, strWorkName,
MessageId_Report.EREP0006);
throw new ReportException(strMessage);
}
}
catch(DException)
{
throw;
}
catch(Exception ex)
{

StringBuilder StbLogMsg = new StringBuilder();


StbLogMsg.Append(Util.GetLogMessage(httSession,"\r\nErrorMessage : " + ex.ToString()));
StbLogMsg.Append("\r\nErrorMethod : Output_Report");
StbLogMsg.Append("\r\n ");
log.Error(StbLogMsg.ToString());


string strMessage = Util.GetMessage(messageManager, strWorkName,
MessageId_Report.EREP0007);
throw new ReportException(strMessage, ex);
}
finally
{
svf.Close();
}
}

[解决办法]
提示什么错误?
[解决办法]
代码这么多 咋看啊 还是发错误信息吧
[解决办法]
自己去看 SvfrClient代码,调试
[解决办法]
看你的代码应该没有什么问题,
可能出现问题的地方有三个。
1. svf = new SvfrClient(strHost);中定义的strHost定义错了?
2. code = svf.VrSetPrinter("EMF","EMF"); 环境变量里面是不是没有EMF?
改成code = svf.VrSetPrinter("",@""+"EMF");最好,即使没有也不会出错。另外确认下是否跟本地打印机的名字一致的。
3. PrintFormData();里面的打印要素是否齐全?

[解决办法]
new SvfrClient(strHost); 里面的 strHost一般写成localhost或者是IP地址

你多看看帮助文档。

读书人网 >asp.net

热点推荐