使用XML文件作为数据源时登录失败

2020-09-19 11:20发布

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

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


亲爱的

我正在使用一个XML文件,该报告的所有可用数据都命名为data.xml。
然后在设计报告时,我使用 ADO.NEt (XML)。 在设计报告时,它可以在设计和预览模式下正常工作。

然后,在部署报表时,我尝试直接从C#和WPF应用程序运行报表。

然后在报表呈现之前,我一直都有登录对话框出现登录ID失败的错误。

为什么我直接使用XML文件作为数据源时为什么得到那些登录信息,而我没有指定任何登录名,因为它不是数据库,而是一个简单的文件?

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

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


亲爱的

我正在使用一个XML文件,该报告的所有可用数据都命名为data.xml。
然后在设计报告时,我使用 ADO.NEt (XML)。 在设计报告时,它可以在设计和预览模式下正常工作。

然后,在部署报表时,我尝试直接从C#和WPF应用程序运行报表。

然后在报表呈现之前,我一直都有登录对话框出现登录ID失败的错误。

为什么我直接使用XML文件作为数据源时为什么得到那些登录信息,而我没有指定任何登录名,因为它不是数据库,而是一个简单的文件?

付费偷看设置
发送
7条回答
土豆飞人
1楼-- · 2020-09-19 12:05

CR找不到用于连接报表源的XML驱动程序。 否则CR找不到或无法访问XML文件。

hongfeng1314
2楼-- · 2020-09-19 11:46

Ho Don,

感谢您的答复。
下面的更多信息旨在澄清这种情况。
我们的应用程序是使用VS2015的WPF应用程序构建,在该应用程序上,我们使用了Crystal Report将dat导出为PDF。
对于 我们有一个报告模板名称myReport,它使用了一个名为data.XML

的数据源。

为了构建默认模板并将其正确映射到XML文件条目,我们在字段内部使用默认值生成它并提供XSD文件。
然后,我们在crystal XML本机数据源内部使用以生成并形成模板。

一旦我们生成了模板,就可以从我们的应用程序中使用它。 该报告将在同一位置查找其数据源。

关键是在发布报告时,我们的应用程序数据的值正在更改。 因此,我们在导出报告之前,在与新数据相同的位置创建一个新的data.xml文件。

我们遇到的问题:

1-导出报告时,它会显示最初为其创建报​​告的所有时间数据,并且不考虑来自新给定dta.xml文件的新数据值

2-如果尝试使用ReportDocument对象从c#代码运行VerifyDatabase,则会出现"登录失败"的异常

任何想法每次我以datsource提交新的Data.xml文件时如何更新报告中的数据并避免登录错误?

以下是有关如何使用reportdocument的示例源代码:

 _crReportDocument.Load(UserReportTemplate);
      //_crReportDocument.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat,_mainUIInstallPath +" \\ crystalTemplate" +" \\" + Ctx.ToString()+" .PDF");
      //TODO:检查波纹管
       ExportOptions CrExportOptions;
       DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
       PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
       CrDiskFileDestinationOptions.DiskFileName = UserExportPDFFolder +" \\" + _prtCtx.ToString()+" .PDF";
       CrExportOptions = _crReportDocument.ExportOptions;
       {
        CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
        CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
        CrExportOptions.FormatOptions = CrFormatTypeOptions;
       
       }
       DataSourceConnections src= _crReportDocument.DataSourceConnections;
       _crReportDocument.VerifyDatabase();
       _crReportDocument.Export();

 
落灬小鱼
3楼-- · 2020-09-19 11:51

Ho Don,

感谢您的答复。
下面的更多信息旨在澄清这种情况。
我们的应用程序是使用VS2015的WPF应用程序构建,在该应用程序上,我们使用了Crystal Report将dat导出为PDF。
对于 我们有一个报告模板名称myReport,它使用了一个名为data.XML

的数据源。

为了构建默认模板并将其正确映射到XML文件条目,我们在字段内部使用默认值生成它并提供XSD文件。
然后,我们在crystal XML本机数据源内部使用以生成并形成模板。

一旦我们生成了模板,就可以从我们的应用程序中使用它。 该报告将在同一位置查找其数据源。

关键是在发布报告时,我们的应用程序数据的值正在更改。 因此,我们在导出报告之前,在与新数据相同的位置创建一个新的data.xml文件。

我们遇到的问题:

1-导出报告时,它会显示最初为其创建报​​告的所有时间数据,并且不考虑来自新给定dta.xml文件的新数据值

2-如果尝试使用ReportDocument对象从c#代码运行VerifyDatabase,则会出现"登录失败"的异常

任何想法每次我以datsource提交新的Data.xml文件时如何更新报告中的数据并避免登录错误?

以下是有关如何使用reportdocument的示例源代码:

 _crReportDocument.Load(UserReportTemplate);
      //_crReportDocument.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat,_mainUIInstallPath +" \\ crystalTemplate" +" \\" + Ctx.ToString()+" .PDF");
      //TODO:检查波纹管
       ExportOptions CrExportOptions;
       DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
       PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
       CrDiskFileDestinationOptions.DiskFileName = UserExportPDFFolder +" \\" + _prtCtx.ToString()+" .PDF";
       CrExportOptions = _crReportDocument.ExportOptions;
       {
        CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
        CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
        CrExportOptions.FormatOptions = CrFormatTypeOptions;
       
       }
       DataSourceConnections src= _crReportDocument.DataSourceConnections;
       _crReportDocument.VerifyDatabase();
       _crReportDocument.Export();
 

感谢帮助

渐行渐远_HoldOn
4楼-- · 2020-09-19 11:54

嗨,

"将第一行移至最后一行"是什么意思?

Nir深蓝
5楼-- · 2020-09-19 11:57

您正在使用什么SP? 在SP 15之前不支持VS 2015:

https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

在设置所有vlauess之前,您正在使用磁盘,因此它将使用旧的数据源。

将第一行移到最后一行。

Don

N-Moskvin
6楼-- · 2020-09-19 11:47

传统XML与 ADO.NET XML的格式不同,因此 验证将需要完成。

您将需要使用ReplaceConnection()API来更新报告。 验证将自动删除无法映射的字段。

尝试先在CR Designer中转换一个,然后看看会发生什么。

Don

一周热门 更多>