SSRS报告Dynamics CRM的当前记录ID用作参数



hi for Dynamics CRM中的SSR报告我要求,当报告按照某个记录运行时,记录通过记录ID,以便仅显示相关结果。

这怎么可能?提供的步骤也很棒

使用SQL。

创建报告

反对活动实体

SSRS报告的CRM报告具有特殊参数,可以为您启用这一点。要通过选定的记录(或您已打开的当前记录)过滤,您可以使用一个名为" CRM_FILTERED [entity]的隐藏参数",其中实体是您将报告链接到的相关实体。

在您的情况下,即对于广告系列实体,此隐藏的参数将称为CRM_FILTEREDCAMPAIGN。对于SQL报告,这将是文本参数,并将设置为类似的内容(由CRM设置在运行报告时)

select campaign0.* from FilteredCampaign as "campaign0"

我没有一个报告可以准确检查SQL所包含的内容,因此可能不确定。但是你明白了。有几种方法可以将其嵌入您的报告中,但是您可以在数据集中以这种基本方式这样做:

 declare @sql as nVarchar(max)
 set @sql = 'SELECT c.campaignid FROM (' + @CRM_FilteredCampaign + ') as c'
 exec(@sql)

扩展此处,即,您可以通过基于文本的数据集/参数组合来简化主数据集中的文本SQL,而是可以简化用法。实际上,将SQL文本转换为值列表。

因此,将上述SQL添加到其自己的数据集中(对于此示例称为DS_FilteredCampaign)。

创建DS_FilteredCampaign后,请确保单击Refresh Fields按钮。输入以下而不是<null>以获取参数值:

select c.* from FilteredCampaign as c

返回后,单击确定以保存数据集。

接下来,创建另一个隐藏的文本参数(例如Int_FilteredCampaign),并告诉其从数据集中获取其默认值(不是其可用值,默认值)。将值指向DS_FilteredCampaign,您应该能够选择campaignid作为其值字段。这实际上使参数成为您可以在主数据集中引用的ID数组

现在,它更可用,因为您可以在主数据集中的SQL中引用它:

select c.*
from FilteredCampaign c
inner join ActivityPointer ap on ...
inner join FilteredAccount a on ...
where c.campaignid in (@Int_FilteredCampaign)

重要的作品是 where c.campaignid in (@Int_FilteredCampaign)

摘要步骤:

  • 您有一个主数据集,称为DSMAIN
  • 创建一个名为CRM_FILTETEDCAMPAIGN的新参数
  • 创建一个数据集(DS_FILTEREDCAMPAIGN),该数据集执行SQL传递到CRM_FILTEREDCAMPAIGN
  • 刷新数据集中以获取ApaignId字段
  • 创建一个文本参数(INT_FILTEREDCAMPAIGN),该参数使用新数据集(DS_FILTEREDCAMPAIGH)检索其默认值
  • 在您的dsmain数据集中引用此新参数

相关内容

  • 没有找到相关文章

最新更新