VS 2013 Hana的Crystal Report

2020-09-03 18:19发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我对水晶报告的报告有疑问。

Crystal Reports Engine版本:

我们有一个使用报告来打印报告的加载项。 尝试打印表单(UDO)时,出现此错误:

"数据库登录失败。" 在这一行:reportDoc.PrintToPrinter(1,false,0,0);

有我们使用的代码:

 ReportDocument reportDoc = null;
 尝试
 {
 reportDoc = new ReportDocument();
 }
 捕获(CrystalDecisions.CrystalReports.Engine.EngineException EE)
 {
//抛出异常
 }
 字符串sPath = null;
 sPath = System.Windows.Forms.Application.StartupPath;
 reportDoc.Load(sPath +" \\ report.rpt");
 TableLogOnInfo logOnInfo;

 ConnectionInfo crConnectionInfo =新的ConnectionInfo();
 crConnectionInfo.ServerName =" xxx.xxx.xxx.xxx:30015";
 crConnectionInfo.DatabaseName =" SBO_TEST";
 crConnectionInfo.UserID =" SYSTEM";
 crConnectionInfo.Password ="密码";

 foreach(reportDoc.Database.Tables中的表tbCurrent)
 {
 logOnInfo = tbCurrent.LogOnInfo;
 logOnInfo.ConnectionInfo = crConnectionInfo;
 tbCurrent.ApplyLogOnInfo(logOnInfo);
 }
 ParameterDiscreteValue参数=新的ParameterDiscreteValue();
 ParameterValues paramValue = new ParameterValues();
 param.Value = int.Parse(oEdit.Value.ToString());
 paramValue = reportDoc.DataDefinition.ParameterFields [0] .CurrentValues;
 paramValue.Add(param);
 reportDoc.DataDefinition.ParameterFields [0] .ApplyCurrentValues(paramValue);
 System.Windows.Forms.PrintDialog printDialog =新的System.Windows.Forms.PrintDialog();

 IntPtr Ihwnd = cIniFile.IniGetWindow(); //新的WindowWrapper(Ihwnd)
 System.Windows.Forms.DialogResult结果= printDialog.ShowDialog(新WindowWrapper(Ihwnd));
 如果(结果== System.Windows.Forms.DialogResult.OK)
 {
 reportDoc.PrintOptions.PrinterName = printDialog.PrinterSettings.PrinterName;
 reportDoc.PrintToPrinter(1,false,0,0);
 SBO_Application.SetStatusBarMessage(" Impressionterminée!",SAPbouiCOM.BoMessageTime.bmt_Short,false);
 }
 

我们如何才能在此报告中传递良好的凭据? 我们如何解决此错误?

感谢您的帮助。

最诚挚的问候,

迈克尔

(14.1 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我对水晶报告的报告有疑问。

Crystal Reports Engine版本:

我们有一个使用报告来打印报告的加载项。 尝试打印表单(UDO)时,出现此错误:

"数据库登录失败。" 在这一行:reportDoc.PrintToPrinter(1,false,0,0);

有我们使用的代码:

 ReportDocument reportDoc = null;
 尝试
 {
 reportDoc = new ReportDocument();
 }
 捕获(CrystalDecisions.CrystalReports.Engine.EngineException EE)
 {
//抛出异常
 }
 字符串sPath = null;
 sPath = System.Windows.Forms.Application.StartupPath;
 reportDoc.Load(sPath +" \\ report.rpt");
 TableLogOnInfo logOnInfo;

 ConnectionInfo crConnectionInfo =新的ConnectionInfo();
 crConnectionInfo.ServerName =" xxx.xxx.xxx.xxx:30015";
 crConnectionInfo.DatabaseName =" SBO_TEST";
 crConnectionInfo.UserID =" SYSTEM";
 crConnectionInfo.Password ="密码";

 foreach(reportDoc.Database.Tables中的表tbCurrent)
 {
 logOnInfo = tbCurrent.LogOnInfo;
 logOnInfo.ConnectionInfo = crConnectionInfo;
 tbCurrent.ApplyLogOnInfo(logOnInfo);
 }
 ParameterDiscreteValue参数=新的ParameterDiscreteValue();
 ParameterValues paramValue = new ParameterValues();
 param.Value = int.Parse(oEdit.Value.ToString());
 paramValue = reportDoc.DataDefinition.ParameterFields [0] .CurrentValues;
 paramValue.Add(param);
 reportDoc.DataDefinition.ParameterFields [0] .ApplyCurrentValues(paramValue);
 System.Windows.Forms.PrintDialog printDialog =新的System.Windows.Forms.PrintDialog();

 IntPtr Ihwnd = cIniFile.IniGetWindow(); //新的WindowWrapper(Ihwnd)
 System.Windows.Forms.DialogResult结果= printDialog.ShowDialog(新WindowWrapper(Ihwnd));
 如果(结果== System.Windows.Forms.DialogResult.OK)
 {
 reportDoc.PrintOptions.PrinterName = printDialog.PrinterSettings.PrinterName;
 reportDoc.PrintToPrinter(1,false,0,0);
 SBO_Application.SetStatusBarMessage(" Impressionterminée!",SAPbouiCOM.BoMessageTime.bmt_Short,false);
 }
 

我们如何才能在此报告中传递良好的凭据? 我们如何解决此错误?

感谢您的帮助。

最诚挚的问候,

迈克尔

(14.1 kB)
付费偷看设置
发送
1条回答
悠然的二货
1楼 · 2020-09-03 18:59.采纳回答

您的代码对我来说不错,但我可能遗漏了一些东西。 有关如何设置凭据和参数的良好示例,请参见 Don Williams 博客,网址为:https://blogs.sap.com/2016/ 02/17/how-to-parameters-in-crystal-reports-for-visual-studio-net/

其中包含有关如何设置数据库凭据的示例。

-戴尔

一周热门 更多>