【问题标题】:Crystal Reports Header Subreport Data vanishes when new field is added to DataTable将新字段添加到 DataTable 时,Crystal Reports 标题子报表数据消失
【发布时间】:2017-04-01 02:25:22
【问题描述】:

如果我的例子有点含糊,我深表歉意;不幸的是,我不能在我的示例中使用相同的字段名称而不泄露公司名称和数据的用途。

鉴于以下情况:

由数据集填充并绑定到 XSD 架构文件的 Crystal Report;

一个 .Net 1.1 程序,用于填充数据集并将其绑定到报表;

数据表 Foo 和 Bar;

XSD 架构:

----Foo----
Stuff (pk)
Things
Gunk

----Bar----
Stuff (fk)
Details
Widget

关系:一个 Foo 可以有 1 个或多个 Bars,Inner Join on Stuff。

此报告已经有效。有人要求在报告中添加一个新的“代码”字段,以指示与合同相关的某个值。有一个代码列表,以及一个具有特定代码的部件列表。这意味着,在数据库端,添加一个带有“Widget”和“CodeID”的表作为链接表,指示哪个代码与哪个小部件一起使用,以及一个带有“CodeID”和“CodeDescr”的表来保存代码及其定义.我可以通过修改架构文件以将“CodeDescr”添加到 Bar 并使用基于“Widget”中该行的值的简单查询来填充该字段。这也有效。

问题在于构成标题的子报表。它使用相同的 XSD 文件,但如果将 CodeDescr 字段添加到构成报告正文的子报告中,则标题中的所有值都将消失。其中一些值是文字(即“Stuff”的值来标识项目),而其他值是公式(例如使用 Gunk 的值来确定是显示字符串还是数字标识符)。我已经把头敲在桌子上 3 天了,试图弄清楚为什么它停止了填充,以便我可以修复它。救命!

【问题讨论】:

    标签: xsd crystal-reports dataset .net-1.1 visual-studio-2003


    【解决方案1】:

    好吧,我想我已经解决了你的变量名的难题,也许可以开始提供帮助了 :)

    您能否在 Excel 中制定一个目标,以帮助确保我们朝着正确的方向前进?

    为了确认,这是你的数据库,加入颜色:

    一些旨在帮助的随机想法:

    • 不一定重要,但您是否也在其标题中构建子报表?还是在它的细节中?我通常会尝试匹配它们,但只要你的抑制是正确的就没有关系。

    • 右键单击您的子报表(在设计选项卡上),选择“更改子报表链接”是否存在预期的链接?

    • 检查链接后,进入子报表并检查其记录选择。更改链接会为此处的每个链接添加一个新行。逻辑正确吗?关于这一点,您能否将您的父报表和子报表的记录选择转换为您的示例中使用的变量,以便我们在此处查看?

    我会在时间允许的情况下回到这里,当你有更新时告诉我们。

    【讨论】:

    • 你得到了完美的关联。所有子报表都使用详细信息部分,因此匹配。然而,我忘了提一下,我唯一可以使用的编辑器是 Visual Studio 2003 中内置的那个可怕的编辑器。我确实检查了链接,它们与预期的一样。在这些问题出现后,我尝试使用左外连接,但没有比内连接更成功。这也意味着我没有传统的“记录选择”,整个数据集都是在 VB.Net 中组装的。所有的改变只有一个方法可以获取调用表的 SQL 语句的结果。
    • 明白。公平地说,这可能是我的知识下降的地方。虽然我们经常擦肩而过,但我和 VB.NET 的关系并不密切。我的建议是,因为这听起来不像是一个过于复杂的报表,您可以尝试在 Crystal Reports 的 GUI 中绘制它,看看是否还有问题。话虽如此,具有 VB.NET 专业知识的人可能能够帮助您获得更合理/理想的解决方案。祝你好运,我会留意你的问题,以防它飘回我的区域
    【解决方案2】:

    最终解决了这个问题,而不是在 XSD 文件中创建新表,而是调整 XSD 文件调用的查询以将新值作为现有表的一部分提取出来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多