如何使用Dynamics CRM 2016中的fetchxml在SSRS中使用预过滤预选多选参数

时间:2016-11-17 11:22:20

标签: reporting-services crm dynamics-crm-2016 fetchxml

我有一个SSRS报告查询,其中包含fetchxml。获取报告数据的主数据集“DS_PromissoryNotes”具有非常基本的查询。

<?xml version="1.0" encoding=""?>
<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0" >
    <entity name="promissorynote">
        <attribute name="promissorynoteid" />
        <attribute name="totalamount" />
        <attribute name="name" />
        <attribute name="duedate" />
        <attribute name="pn_customer" />
        <attribute name="pn_distributor" />
        <attribute name="dateofissue" />
        <order descending="false" attribute="name" />
        <filter type="and" >
            <condition attribute="promissorynoteid" value="@PromissoryNoteId" operator="in" />
        </filter>
    </entity>
</fetch>

你可以注意到fetchXML查询带有一个参数@PromissoryNoteId,它可以是多个,所以我当然要检查“允许多个”。该参数的数据来自另一个数据集“DS_PNID”,该数据集与上述fetchXML查询几乎相似,仅提取“name”和“promissorynoteid”属性且没有过滤条件。

我希望能够从实体页面上显示的Promissory Notes网格中选择多个记录,并运行所选记录的报告。它应显示报告数据,并在多选下拉过滤器中标记选定的PromissoryNoteIds,以便我可以修改选择并从报告页面本身查看更新的报告。

我尝试在主数据集“DS_PromissoryNotes”上应用预过滤,就像这样

<entity name="core_promissorynote" enableprefiltering="true" prefilterparametername="CRM_promissorynoteid">

执行此操作后,我将其添加为新报告。当我运行报告时,它给出了相同的结果,即我必须从过滤器下拉列表中手动选择PromissoryID。属于这些记录的承诺ID不会被预选。

P.S。当我删除参数并仅使用预过滤器时,它工作正常。但是我希望有这个下拉列表,因为报告也会出现在运行报告的报告区域而不选择记录,而下拉列表是选择PromissoryIds的唯一方法。我也不想做两份单独的报告。

请帮忙。

1 个答案:

答案 0 :(得分:0)

好的,所以我第二天就知道了。没有时间发帖,所以现在发布。

我基本上做的是,

  • 从主数据集中删除了预过滤。还删除了参数 这是由于预过滤而产生的。
  • 创建了另一个数据集&#34; DS_PrefilteredPNID&#34;与...相同 &#34; DS_PNID&#34; (为我的数据提取承兑票据ID的数据集 参数)并对新创建的数据集应用预过滤。
  • 确保新创建的参数位于旧参数的上方 序列
  • 现在,编辑旧参数。在默认部分中,选择&#34; from 查询&#34 ;.然后选择新创建的数据集和值。

BOOM!这完美无缺。