代码之家  ›  专栏  ›  技术社区  ›  masoud ramezani

在SQL Server客户端报告(RDLC)中呈现HTML代码

  •  2
  • masoud ramezani  · 技术社区  · 15 年前

    我正在使用ASP.NET Web应用程序和Microsoft Visual Studio ReportViewer控件和RDLC创建报表(不使用SQL Server报表)。我使用产品表查看结果。它有五个字段,我显示报告中的所有项。一个字段是描述,它将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 回复  |  直到 15 年前
        1
  •  2
  •   gbn    15 年前

    Rendering HTML in Reporting Services Text Boxes in SQL Server 2008

    我没有尝试过,可能不适用于RDLC等,所以YMMV

        2
  •  2
  •   Nasser Hadjloo    15 年前

    亲爱的Masoud,正如GBN在他的链接中提到的,在默认情况下,SSRS不提供任何从HTML代码块呈现HTML的解决方案。但您可以使用这些解决方案之一来呈现SSRS报告中的HTML。

    1. 从sqlcr创建呈现的HTML PNG并将其发送到报表
    2. 使用HTML解码器将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/ 在SSR中显示呈现的HTML
    推荐文章