2

レポートの作成にasp.netWebアプリケーションとMicrosoftVisualStudio ReportViewerコントロールおよびrdlcを使用しています(SQLサーバーレポートを使用していません)。Productテーブルを使用して結果を表示しました。5つのフィールドがあり、レポートのすべての項目を表示します。1つのフィールドは説明で、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をレンダリングするにはどうすればよいですか。解決策を教えてください。

4

2 に答える 2

2

SQL Server 2008 での Reporting Services テキスト ボックスでの HTML のレンダリングを参照してください。

私は試していませんし、rdlc などには当てはまらないかもしれないので、YMMV

于 2010-01-31T15:57:31.477 に答える
2

GBN が彼のリンクで述べたように、親愛なるマスード、デフォルトでは、SSRS は HTML コード ブロックから HTMl をレンダリングするためのソリューションを提供しません。ただし、これらのソリューションの 1 つを使用して、SSRS レポートで HTML をレンダリングできます。

  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 に表示することもできます。
于 2010-02-02T14:53:03.357 に答える