簡體   English   中英

SSRS 2017 通過單擊報告字段打開具有多個電子郵件地址的 Outlook 電子郵件

[英]SSRS 2017 Open Outlook email with multiple email addresses by clicking on a report field

我無法在 Outlook 電子郵件中獲取多個電子郵件地址。 我在報告中設置了操作“轉到 URL”文本框屬性字段,如下所示:-

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

根據主表中的參數過濾數據集。 我嘗試了多種方法將多個電子郵件地址放入電子郵件窗口,但每次我只得到列表中的第一個,正如函數所說的第一個那樣有意義! 我從 MSDN 上的另一篇文章中選擇了 javascript 建議,該用戶聲稱使用此解決方案他們能夠從過濾后的數據集中獲取所有地址。 這個想法是,一旦報告被過濾,用戶可以單擊用“轉到 URL”表達式指定的字段,Outlook 電子郵件窗口將打開,其中包含“收件人”框中過濾列表中的所有電子郵件地址。 如果有人有任何建議,我將不勝感激。

根據您擁有的電子郵件地址數量,您可能會遇到限制。 有關更多詳細信息,請參閱此答案....

使用 html Mailto 向多個收件人發送電子郵件:不起作用

但是,假設您的數據集非常小,您可以這樣做....

創建一個新參數(例如pEmail )並使其具有多值。 稍后我們將隱藏此參數...

接下來,將參數的可用值和默認值添加到主數據集,並使用SUPP_EMAIL字段作為值。

在您的 URL 表達式中使用以下內容

="javascript:void(window.open('mailto:" 
  + JOIN(Parameters!pEmail.Value, ";")
  + "'))"

一旦它工作,您可以將參數設置為隱藏。

我用過; 作為您所說的用於 Outlook 的分隔符,請注意 Outlook 在這方面幾乎是獨一無二的,並且大多數郵件客戶端使用逗號而不是分號。

說了這么多,這在 SQL 中更容易做到,並構建一個單行結果集,其中包含構建准備在您的報告中使用的 URL。

您可以連接報告源中的值。

示例 SQL:

WITH
la_service_provider_service
AS
(
   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];

結果:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM