Crystal Reports 中的强制加入选项有什么好处?

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

使 SAP Crystal reports Enforce Join 在链接对话框中的默认选项为“不强制”有什么好处?

是性能问题吗?因为我注意到,如果您不从连接表中选择字段,它将生成仅包含所选表的字段的 SELECT 查询,而无需任何连接。

以下是有关强制加入选项的一些信息:

  • 不强制:当您选择此选项时,链接 您创建的内容仅在以下情况下才会使用 Select 明确要求 陈述。这是默认设置 选项。您的用户可以创建报告 基于选定的表,没有 限制(即没有 根据其他表格执行)。

  • 强制执行:当您选择此选项时 选项,如果“to”表为 使用链接时,将强制执行链接。 例如,如果您创建一个链接 使用 Enforce 从表 A 到表 B 从 并仅选择一个字段 表 B,Select 语句将 仍然包括与表 A 的连接 因为它是强制执行的。反过来, 仅从表 A 中选择 相同的连接条件不会导致 强制连接到表 B。

  • 强制:当您选择此选项时 选项,如果“from”表为 使用链接时,将强制执行链接。 例如,如果您创建一个链接 使用 Enforce 从表 A 到表 B 仅从表中选择一个字段 A、表 B 的连接将是 强制执行,并且 Select 语句 生成的将包括两者 桌子。

  • 强制两者:选择此选项时 选项,如果“来自”表或 使用此链接的“to”表, 该链接已强制执行。

crystal-reports
2个回答
9
投票

“强制”部分用于强制包含包含报告/选择条件中未使用的字段的表。

废话,这就是你说的。

我的理解:

如果您有两个带有可链接字段的表(tbl_A,tbl_B),并且您不使用第二个表中的任何字段,则可以从选择中删除它,并且连接的“常规”效果可能会消失。

Select 
   'You're account is in default!' as Message,
   tbl_A.full_name, tbl_A.street_address, tbl_A.city, tbl_A.blah_blah
From
   all_customers tbl_A, 
   delinquent_accounts tbl_B
Where
   tbl_A.account_no = tbl_B.account_no

如果没有强制连接,可能会变成

Select 
   'You're account is in default!' as Message,
   tbl_A.full_name, tbl_A.street_address, tbl_A.city, tbl_A.blah_blah
From
   all_customers tbl_A, 

换句话说,您最终可能会向整个客户群发出催款信,而不仅仅是拖欠账户。 (我猜这就是我们在实施报告之前测试报告的原因)。


0
投票

让事情变得简单

如果您使用“Enforce From As if Table 1”,则无论您是否实际使用表 1。

如果您使用“Enforce To As if Table 2”,则无论您是否实际使用表 2。

如果您使用“Enforce Both As if Both Table 1 and 2 are use”,无论是否使用其中一个或两个

如果您使用 NOT ENFORCE,则只有在使用表时才会建立链接的强制执行

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