2012-08-17 8 views
6

Tôi có nhiều mẫu báo cáo SSRS 2008 có chứa hình ảnh được nhúng và chúng hiện được hiển thị như mong đợi trong bất kỳ bản xem trước trình quản lý báo cáo nào (sử dụng tiện ích mở rộng kết xuất HTML 4.0). Tuy nhiên, tôi cần các báo cáo này được gửi dưới dạng e-mail HTML.Làm cách nào để đưa hình ảnh nội tuyến (không được liên kết) vào báo cáo e-mail SSRS?

Tôi tin rằng kỹ thuật cơ bản/dễ nhất ở đây là đính kèm hình ảnh dưới dạng chuỗi base64 nội tuyến vào thẻ hình ảnh trong HTML. Có cách nào để thực hiện điều này tự động trong SSRS hay cách khác là cách tốt nhất để đạt được kết quả tương tự này (tức là hình ảnh dưới dạng tệp đính kèm dẫn đến MHTML không tương thích thay vì HTML thuần túy)?

E-mail phải được hiển thị dưới dạng mà không cần kết nối với bất kỳ bộ nhớ ngoài nào (tức là không thể lưu trữ hình ảnh của người gửi). Ngoài ra, chúng tôi sẽ không sử dụng chính SSRS để gửi kết quả HTML/e-mail vì vậy bất kỳ hạn chế nào về bản chất như vậy không phải là mối quan tâm.

Ví dụ về base64 inline Tôi đã suy nghĩ:

<img src="data:image/png;base64,xxxxxxxx==" alt="Some Image"> 
+0

Tôi có hiểu chính xác rằng bạn đang tạo dịch vụ .NET của riêng bạn gửi thư định kỳ và muốn sử dụng báo cáo kết xuất html cho nội dung không? – Jeroen

+0

Có, nội dung của báo cáo sẽ được cung cấp dưới dạng mảng byte cho một số thành phần của bên thứ 3 thực sự sẽ gửi thư. Các thành phần hiện một số công cụ ưa thích có nghĩa là các chức năng e-mail SSRS không được sử dụng. – allu

Trả lời

2

Dường như cách dễ nhất để đạt được điều này là để sửa đổi hoặc kéo dài thời hạn vẽ chỉ là một chút nhỏ bé như mô tả trong MSDN documentation:

Viết tuỳ chỉnh Rendering Extensions

Trước khi bạn quyết định tạo tiện ích hiển thị tùy chỉnh, y ou nên đánh giá các lựa chọn thay thế đơn giản hơn. Bạn có thể:

  1. Tạo phiên bản sửa đổi của tiện ích hiển thị hiện có.
  2. Tùy chỉnh đầu ra được hiển thị bằng cách chỉ định cài đặt thông tin thiết bị cho các tiện ích mở rộng hiện tại.
  3. Thêm định dạng và bản trình bày tùy chỉnh các tính năng bằng cách kết hợp các phép biến đổi XSL (XSLT) với đầu ra là định dạng hiển thị XML.

Viết một phần mở rộng hiển thị tùy chỉnh là khó khăn để làm cũng như để học hỏi .. Một phần mở rộng vẽ phải thường hỗ trợ tất cả kết hợp có thể có của các yếu tố báo cáo. Mô hình đối tượng báo cáo mở rộng (các lớp, giao diện, phương thức, và các thuộc tính mà bạn phải thực hiện số trong hàng trăm) và tài liệu và mẫu chưa ở mức có thể hỗ trợ bạn thông qua một dự án phát triển đầy thử thách .

Nếu bạn phải làm một báo cáo trong một định dạng mà không được bao gồm với dịch vụ báo cáo, bạn có thể viết riêng mã số quản lý thực hiện của bạn của một phần mở rộng rendering. Mã tiện ích hiển thị phải triển khai giao diện IRenderingExtension, được yêu cầu bởi máy chủ báo cáo . Mỗi tiện ích mở rộng hiển thị do Microsoft và vận chuyển được cung cấp cùng với Dịch vụ báo cáo sử dụng một bộ giao diện chung. Điều này đảm bảo rằng mỗi tiện ích mở rộng thực hiện chức năng tương đương và làm giảm độ phức tạp của mã hiển thị trong lõi của máy chủ báo cáo .

+1

bạn có thể làm việc này không? –

+0

không trực tiếp. cách tiếp cận dễ nhất ở đây là sửa đổi HTML sau khi chuyển đổi đã diễn ra (có nghĩa là các hình ảnh đó không hiển thị trong bản xem trước báo cáo) hoặc chỉ viết tiện ích hiển thị tùy chỉnh thực chất giống nhau. – allu