首页 > 解决方案 > 如何将 FetchXml (ssrs) 中的同一实体与不同的 prefilterparametername 链接?

问题描述

我正在为 Dynamics CRM 构建一个 SSRS 报告,所以我必须使用 FetchXml。例如,我有 10 个帐户,我必须从第二个查询中减去 5 个帐户。

我准备了 2 个 fetchxml 报告参数:

10 个帐户的 CRM_FilteredAccount

CRM_FilteredAccountNeg 我必须减去的帐户

我有如下所示的数据集。

到目前为止的数据集:

<fetch distinct="false" useraworderby="false" no-lock="false" mapping="logical" >
  <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount" >
    <attribute name="name" alias="name" />
  </entity>
</fetch>

(不工作)具有不同参数的链接实体的数据集:

<fetch distinct="false" useraworderby="false" no-lock="false" mapping="logical" >
  <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount" >
    <attribute name="name" alias="name" />
    <link-entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccountNeg" from="accountid" to="accountid" link-type="outer" alias="neg" >
      <filter>
        <condition entityname="neg" attribute="accountid" operator="null" />
      </filter>
    </link-entity>

  </entity>
</fetch>

我预计第一个过滤器参数会给出 10 个帐户的结果。然后使用带有第二个过滤器参数的链接实体给出仅剩下 5 个帐户的结果。

标签: reporting-servicesvisual-studio-2015fetchxmlxrm

解决方案


好吧,让我们执行如下操作: 第一个数据集让我们称其为“Negative” 对于此数据集,使用 fetchxml 检索帐户,其中帐户 ID 不为空。该数据集将为我们提供 5 条记录。现在对于这个数据集,我们将让 accountid 字段使用这个字段作为参数并且调用是“NegativeAccounID”,即它将包含必须从我们的 Next fetchxml 中排除的所有帐户的 Guid

现在第二个数据集,我们称之为“结果”对于这个数据集,使用 fetchxml 检索我们定义的 accountid 不等于 eq NegativeAccountId(参数)的所有帐户。

这会给你准确的结果。

您将不得不不希望参数的工作方式。


推荐阅读