Рендеринг HTML-кода в отчете клиента сервера sql (rdlc) - PullRequest
2 голосов
/ 31 января 2010

Я использую веб-приложение asp.net и элемент управления ReportViewer для Microsoft Visual Studio и rdlc для создания отчета (без использования отчетов SQL Server). Я использовал таблицу Product для просмотра результата. В нем пять полей, и я отображаю все элементы отчета. Одно поле - Описание, и в нем хранится HTML-код в качестве значения (например:

<div><ul><li>a</li><li>b</li></ul><b>aaaa</b></div>

). Я хочу отобразить вывод этого HTML-кода в поле описания моего отчета. Но в моем отчете показано значение HTML, которое я сохранил в своей таблице (:

<div><ul><li>a</li><li>b</li></ul><b>aaaa</b></div>

). Как я могу сделать HTML в моем отчете. Пожалуйста, дайте мне решение.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2010

Уважаемый Масуд, как упоминал GBN в своей ссылке, по умолчанию SSRS не предоставляет никакого решения для визуализации HTMl из блока HTML Code. но вы можете использовать одно из этих решений для отображения HTML в отчетах SSRS.

  1. Используйте из SQLCLR для создания рендеринга HTML PNG и отправки своих отчетов
  2. использовать HTMLDecoder для декодирования HTML-блока кода в визуализированный HTML. этот скрипт можно найти по адресу:
  3. Вы можете использовать приведенный ниже блок кода для преобразования простого HTML-кода в визуализированный HTML

    Public Shared Function ConvertRtfToText(ByVal input As String) As String
         Dim returnValue As String = String.Empty
            Using converter As New System.Windows.Forms.RichTextBox()
                  converter.Rtf = input
                  returnValue = converter.Text
            End Using
         Return returnValue
    End Function
    

Вы также можете использовать этот блок кода

 Function RtfToText(ByVal value As String) As String
   If value.Contains("rtf1") Then
       Return System.Text.RegularExpressions.Regex.Replace(System.Text.RegularExpressions.Regex.Replace(System.Text.RegularExpressions.Regex.Replace(System.Text.RegularExpressions.Regex.Replace(value,"[\n\r\f]", ""), "({\\)(.+?)(})|(\\)(.+?)(\b)", ""), "{", ""), "}", "").Trim()
   End If
   Return value
   End Function

наконец вы можете вызвать этот код в текстовом поле с помощью

  =Code.RtfToText(Fields!HTMLCode.Value)
  1. Вы также можете использовать некоторые утилиты, такие как http://pebblereports.com/reportingservicesutilities/ для отображения визуализированного HTML в SSRS
2 голосов
/ 31 января 2010

См. Отображение HTML в текстовых полях служб отчетов в SQL Server 2008

Я не пробовал и может не относиться к rdlc и т. Д., Поэтому YMMV

...