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

How to preselect a multiselect parameter using prefiltering in SSRS with fetchxml in Dynamics CRM 2016

我在 fetchxml 中有一个 SSRS 报告查询。为报告获取数据的主数据集 "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,它可以是多个,所以我当然检查了 "Allow multiple"。参数的数据是从另一个数据集 "DS_PNID" 中获取的,这与上面的 fetchXML 查询几乎相似,只获取 'name' 和 'promissorynoteid' 属性,没有过滤条件。

我希望能够 select 实体页面上显示的本票网格中的多条记录,并 运行 报告 select 编辑的记录。它应该显示报告数据并在多 select 下拉过滤器中标记 selected PromissoryNoteIds 以便我可以修改 selection 并从报告页面本身查看更新的报告。

我试过像这样在主数据集上应用预过滤"DS_PromissoryNotes"

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

完成此操作后,我将其添加为新报告。当我 运行 报告时,它给了我相同的结果,即我必须手动 select 来自过滤器下拉列表的 PromissoryIDs。属于这些记录的承诺 ID 未预先select编辑。

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

请帮忙。

好的所以我第二天就弄明白了。没时间 post 所以 post 现在就开始。

我基本上做的是,

  • 从主数据集中删除了预过滤。也删除了参数 这是由于预过滤而创建的。
  • 创建了另一个数据集 "DS_PrefilteredPNID" 与 "DS_PNID"(为我的银行获取本票 ID 的数据集 参数)并对新创建的数据集应用预过滤。
  • 确保新创建的参数位于旧参数之上 顺序。
  • 现在,编辑旧参数。在默认部分,选择“来自 查询”。然后 select 新创建的数据集和值。

砰!这完美无缺。