SSRS 2017 通过单击报告字段打开具有多个电子邮件地址的 Outlook 电子邮件

我在将多个电子邮件地址添加到 Outlook 电子邮件中时遇到问题。我已在报告中设置操作“转到 URL”文本框属性字段,如下所示:-

="javascript:void(window.open('mailto:" + First(Fields!SUPP_EMAIL.Value, "SUPP_Email")+"'))"

数据集根据主表中的参数进行过滤。我尝试了多种方法将多个电子邮件地址放入电子邮件窗口,但每次我只得到列表中的第一个,这有点像函数所说的“首先”!我从一位用户在 MSDN 上的另一篇文章中选择了 javascript 建议,该用户声称通过此解决方案,他们能够从过滤后的数据集中获取所有地址。这个想法是,一旦过滤了报告,用户就可以单击用“转到 URL”表达式指定的字段,然后将打开一个 Outlook 电子邮件窗口,其中包含“收件人”框中过滤列表中的所有电子邮件地址。如果有人有任何建议,我将不胜感激。


慕森卡
浏览 79回答 2
2回答

呼如林

您可以连接报告源中的值。SQL 示例:WITHla_service_provider_serviceAS(   SELECT tbl.* FROM (VALUES    ( 1, '1@gmail.com')   , ( 1, '2@gmail.com')   , ( 1, '3@gmail.com')   , ( 2, '4@gmail.com')   , ( 2, '5@gmail.com')   , ( 2, '6@gmail.com')   , ( 2, '7@gmail.com')   ) tbl ([LA_SERVICE_PROVIDER_ID], [PROVIDER_EMAIL]) )SELECT     [lasps].[LA_SERVICE_PROVIDER_ID]   , [lasps].[PROVIDER_EMAIL]   , [ALL_PROVIDER_EMAILS] =      STUFF( (SELECT '; '+ [PROVIDER_EMAIL]            FROM [la_service_provider_service] AS [lasps2]           WHERE [lasps2].[LA_SERVICE_PROVIDER_ID] = [lasps].[LA_SERVICE_PROVIDER_ID]           FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(2000)')        ,1,2,'')FROM    [la_service_provider_service] AS [lasps];结果:

阿波罗的战车

根据您拥有的电子邮件地址数量,您可能会达到限制。但是,假设您的数据集非常小,您可以这样做......创建一个新参数(例如pEmail)并使其成为多值。稍后我们将隐藏此参数...接下来,将参数的可用值和默认值添加到主数据集,并使用该SUPP_EMAIL字段作为值。在您的 URL 表达式中使用以下内容="javascript:void(window.open('mailto:"    + JOIN(Parameters!pEmail.Value, ";")   + "'))"一旦它起作用,您可以将参数设置为隐藏。正如您所说,我已将;其用作 Outlook 的分隔符,请注意,Outlook 在这方面几乎是唯一的,并且大多数邮件客户端使用逗号而不是分号。话虽如此,这在 SQL 中会更容易完成,并构建一个单行结果集,其中包含可供在报告中使用的 URL。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript