Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crystal reports Crystal Reports中强制加入选项的好处是什么?_Crystal Reports - Fatal编程技术网

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

Crystal reports Crystal Reports中强制加入选项的好处是什么?,crystal-reports,Crystal Reports,“链接”对话框中的“使SAP Crystal reports强制连接”默认选项为“未强制”有什么好处 这是性能问题吗?因为我注意到,如果不从联接表中选择字段,它将生成只包含选定表字段的select查询,而不包含任何联接 以下是有关强制联接选项的一些信息: 未强制执行:选择此选项时,链接 您创建的仅在以下情况下使用: Select 陈述这是默认设置 选项您的用户可以创建报告 基于选定的表,不带 限制(即没有限制) 根据其他表格执行) 强制自:选择此选项时 选项,如果 链接被使用,链接被强制。 例

“链接”对话框中的“使SAP Crystal reports强制连接”默认选项为“未强制”有什么好处

这是性能问题吗?因为我注意到,如果不从联接表中选择字段,它将生成只包含选定表字段的select查询,而不包含任何联接

以下是有关强制联接选项的一些信息:

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

  • 强制自:选择此选项时 选项,如果 链接被使用,链接被强制。 例如,如果您创建一个链接 使用强制执行从表A到表B 从中选择,并仅从中选择一个字段 在表B中,将显示Select语句 仍然包括表A的联接 因为它是强制执行的。相反地 仅从具有 相同的联接条件不会导致 要强制执行的表B的联接

  • 强制执行到:选择此选项时 选项,如果 链接被使用,链接被强制。 例如,如果您创建一个链接 使用强制执行从表A到表B 只从表中选择一个字段 A、 表B的联接将被删除 强制的,以及Select语句 生成的将包括这两个方面 桌子

  • 强制执行这两种操作:选择此选项时 选项,如果“从”表或 使用此链接的“收件人”表, 链接被强制执行

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

废话,你就是这么说的

我的理解是:

如果您有两个表(tbl_A、tbl_B)和一个可链接字段,并且您不使用第二个表中的任何字段,则可以将其从select中删除,并且联接的“常规”效果可能会消失

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, 

换句话说,你可能会给你的整个客户群设置催款信,而不仅仅是拖欠的账户。(我想这就是为什么我们在实现报告之前先测试它们)。

有趣的想法,多年来我一直想知道“强制”是什么意思(我总是忽略它)。那么,Crystal为什么还要费心将其编码为一个选项呢?根据您的描述,这听起来像是一个不必要的选项,它偶尔会保护糟糕的SQL编写器不受其自身错误的影响,有时还会使用聪明的代码为优秀的SQL编写器创建错误。。。。请记住,CR已经存在了几十年了(?),他们对“特性”的较少思考仍然存在。只是一个想法。顺便说一句,那个人以前咬过我。哦另一个非常痛苦的问题是:如果你有自己的公式链接,CR将通过在子报告中添加链接来“帮助”你。这真的很伤人。是的,考虑到非强制链接可能出错,似乎有必要养成立即将所有链接更改为“强制两者”的习惯。至少我是这么做的。我不认为非强制联接有什么用处,除了以打开一个全新的潜在错误类别为代价的懒惰。