删除 Crystal Report 的登录要求

问题描述 投票:0回答:1

我们正在使用 Crystal Report 来显示客户使用的报告。 他们可以通过我们使用 .rpt 文件的 C# 应用程序查看它们,该文件使用 .xsd 文件中的表。 我必须向报告添加一些新字段,这些字段将采用 .xsd 文件中表格的形式。 我可以在自己的电脑上查看报告,但其他电脑需要登录数据库。 .rpt 文件和 .xsd 文件是我唯一更改的文件,但没有更改其他文件。然而,.xsd 文件是不同分支中的旧版本,同时新文件应该是旧版本的副本,但带有新表。

正如我所见,我们不在任何地方使用“登录”方法,所以不应该是这样。

我知道的一件事是,当我查看数据库专家时,旧连接“属性”窗口顶部显示“数据库 DLL crdb-adoplus.dll”,而新连接显示“数据库类型 ADO.NET (XML)”,否则应该是一模一样的。

我尝试过:删除所有连接,然后添加已添加新表的旧 .xsd 文件,尝试从头开始重做 .rpt 文件,在 Crystal Reports 论坛中查找答案,尝试找到可以的任何字段保留任何信息。

我没有找到解决问题的方法,并且我一直在其他电脑上看到登录窗口,但在我自己的电脑上却没有。其他电脑仍然可以使用旧的、未经编辑的模板,而无需获得登录窗口。

编辑:

好的,所以当我删除新表并选择将 .xsd 文件设置为数据库文件而不是 ADO.NET 时,它就可以工作了。我会尝试用不同的方式创建一个新表,看看是否可以解决问题。

编辑2:

看来是因为新桌子的缘故。如果我尝试包含它,则会弹出登录窗口,但如果模板未尝试包含它,则不会弹出登录窗口。

c# xsd crystal-reports
1个回答
0
投票

好吧,所以我猜我的问题是我无法添加表作为数据源(在报告中),然后不通过我的 C# 应用程序提供它。

我们的程序目前仅提供包含新数据源的选项(无论用户是否希望将新字段作为子报告,我们都有一个复选框)。我可能可以通过以下任一方式解决这个问题:

A.始终将表发送到数据源,即使它是空的。

B.在分期付款中包含 .xsd 文件。看起来 Crystal Report 足够聪明,如果它知道 .xsd 文件在哪里,那么它可以理解当数据源中未包含所有数据表时如何处理。我通过重命名 .xsd 文件进行了测试,当我不包含可选表时,我自己的计算机也会获得登录窗口。

TL;DR:始终提供数据源中的所有表(即使为空),或者在计算机上提供可用的 .xsd 文件。

© www.soinside.com 2019 - 2024. All rights reserved.