以编程方式更改参数会断开数据库连接

2020-08-19 09:48发布

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

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


当我通过C#代码更改报表的参数时,这里似乎出现了一个奇怪的问题,出现了"无法打开连接"错误。 如果我通过" verify database"传递了报表最近在设计器中运行过的参数,那么它将运行良好。 但是,当我仅更改1个参数BatchNumber时,就会出现错误。 它可以在设计器窗口中正常运行并进行打印预览。 但是同样,当我从以前运行"验证数据库"的方式更改参数方式时,此代码将无法工作。

我已将代码精简为仅此,以验证是否是导致此错误的参数更改。

 var activeReport = new ReportDocument();
 activeReport.Load(this.CRFullFilePath);
 activeReport.SetDatabaseLogon(" XXXXXXX"," XXXXXXXXX");
 activeReport.SetParameterValue(" BatchNumber",this.BatchNum);
 activeReport.SetParameterValue(" BusinessUnit",this.BusinessUnit);

 varexportedFolderPath = this.AttachmentPDFDestinationPath + this.BatchNum;

//创建子文件夹(如果尚不存在)
 如果(Directory.Exists(exportedFolderPath)==否)
 {
     Directory.CreateDirectory(exportedFolderPath);
 }

 varexportedFileName = $ @" {exportedFolderPath + this.CRFullFilePath.GetFileNameFromFullFilePath()}-Exported.pdf";

 activeReport.ExportToDisk(ExportFormatType.PortableDocFormat,exportedFileName);
 

如果很重要,则参数是查询参数。 为什么更改参数以查看CR查看器/打印预览是有效的,但是我在上面的代码中却做不到?

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

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


当我通过C#代码更改报表的参数时,这里似乎出现了一个奇怪的问题,出现了"无法打开连接"错误。 如果我通过" verify database"传递了报表最近在设计器中运行过的参数,那么它将运行良好。 但是,当我仅更改1个参数BatchNumber时,就会出现错误。 它可以在设计器窗口中正常运行并进行打印预览。 但是同样,当我从以前运行"验证数据库"的方式更改参数方式时,此代码将无法工作。

我已将代码精简为仅此,以验证是否是导致此错误的参数更改。

 var activeReport = new ReportDocument();
 activeReport.Load(this.CRFullFilePath);
 activeReport.SetDatabaseLogon(" XXXXXXX"," XXXXXXXXX");
 activeReport.SetParameterValue(" BatchNumber",this.BatchNum);
 activeReport.SetParameterValue(" BusinessUnit",this.BusinessUnit);

 varexportedFolderPath = this.AttachmentPDFDestinationPath + this.BatchNum;

//创建子文件夹(如果尚不存在)
 如果(Directory.Exists(exportedFolderPath)==否)
 {
     Directory.CreateDirectory(exportedFolderPath);
 }

 varexportedFileName = $ @" {exportedFolderPath + this.CRFullFilePath.GetFileNameFromFullFilePath()}-Exported.pdf";

 activeReport.ExportToDisk(ExportFormatType.PortableDocFormat,exportedFileName);
 

如果很重要,则参数是查询参数。 为什么更改参数以查看CR查看器/打印预览是有效的,但是我在上面的代码中却做不到?

付费偷看设置
发送
5条回答
粗暴的香蕉
1楼 · 2020-08-19 10:33.采纳回答

对于其他有此问题的人,这是我设置环境变量的方式:

 var envVariables = Environment.GetEnvironmentVariable(" PATH");
 var path = envVariables.Split(new char [1] {Path.PathSeparator});
 foreach(路径中的var路径)
 {
     如果(path.ToLower()。包含(@" \ oracle \")&&
         File.Exists(路径+ @" \ tnsping.exe"))
     {
         var oraclePath = path.Substring(0,path.LastIndexOf(@" \"));;
         Environment.SetEnvironmentVariable(" ORACLE_HOME",oraclePath);
     }
 } 
SKY徐
2楼-- · 2020-08-19 10:27

您使用的是哪个版本的SDK? "查询参数"是指您在报表中使用命令吗?

-Dell

Doze时光
3楼-- · 2020-08-19 10:53

CR读取该属性,以便它可以找到客户端安装文件夹,我们通常从PATH语句获取它。

槿木_熙
4楼-- · 2020-08-19 10:45

我正在使用CR v.13 SP26。是的,我在报告中使用的命令包含两个参数。

sap-cr-screenshot.jpg

sap-cr-screenshot2.jpg

野沐沐
5楼-- · 2020-08-19 10:38

它想通了。 原来这是TSN甲骨文的问题。 我必须先定义" ORACLE_HOME"环境变量,然后才能开始检索数据并解决了我的问题。 不确定为什么从设计环境更改为代码/运行时环境,但是确实如此。

一周热门 更多>