RDL报告作为带有SQL电子邮件发送的电子邮件附件

时间:2015-03-29 14:34:34

标签: sql ssrs-2008-r2 rdl

我需要向订阅用户发送定期报告。 我使用this example发送电子邮件。

发送电子邮件的SQL,

 DECLARE
@out_desc VARCHAR(1000),
@out_mesg VARCHAR(10)

DECLARE @name VARCHAR(20),
@birthdate datetime,
@email NVARCHAR(50)

DECLARE @body NVARCHAR(1000)

DECLARE C1 CURSOR READ_ONLY
FOR
SELECT [name], [birthdate], [email]
FROM Customers

OPEN C1
FETCH NEXT FROM C1 INTO
@name, @birthdate, @email
WHILE @@FETCH_STATUS = 0
BEGIN
      IF DATEPART(DAY,@birthdate) = DATEPART(DAY,GETDATE())
      AND DATEPART(MONTH,@birthdate) = DATEPART(MONTH,GETDATE())
      BEGIN
            SET @body = '<b>Happy Birthday ' + @name +
            '</b><br />Many happy returns of the day'
            + '<br /><br />Customer Relationship Department'
            EXEC sp_send_mail   --THIS IS THE SP WHICH SEND EMAILS
            sender@abc.com',
            'xxxxxxx',
            @email,
            'Birthday Wishes',
            @body,
            'htmlbody',
            @output_mesg = @out_mesg output,
            @output_desc = @out_desc output

            PRINT @out_mesg
            PRINT @out_desc
      END
      FETCH NEXT FROM C1 INTO
      @name, @birthdate, @email
END
CLOSE C1
DEALLOCATE C1

我需要使用RDL报告生成电子邮件的附件。我在报表服务器中有一个“BirthdayAlert.rdl”。如何将此报告发送到附件?

1 个答案:

答案 0 :(得分:0)

以下是针对您的问题采取措施的解决方案。

1)在服务器上部署此报告。 2)按计划间隔订阅此报告以自动执行。 3)将创建工作。 4)为此作业编写sql过程以按您的间隔执行。这个sql应该做以下事情。        a)执行报告工作        b)将在您指定的位置的服务器上生成pdf / docx文件。        c)在senddbmail的帮助下,附加此文件并将其发送给用户。

希望你能得到你的疑问的答案。