3

出版物-文字列内から著者名を太字にする方法は?1つの値が返された場合、次のようになりますが、文字列です(= iif(Fields!Author.Value = Parameters!5aAuthor.Value、 "Bold"、 "Normal")。例:著者+年+タイトル+ジャーナル+PMCID。作成者=Mitre、MH、Owens、R、Thompsonなど…パラメータ値に一致する作成者のみを太字にします。文字列を分解し、作成者を見つけて太字にし、他の文字列はデフォルトのままにする必要があります。 。配列のように…。

問題:

著者は特定の順序で表示される必要があります。つまり、作成者は1番目、3番目、5番目などに表示される場合があります。以下は必要なものです。

これをビューとして作成することはできますが、作成者を太字にするという同じ問題があります。

例-Mitre、MH、Owens、R.、Thompson、P.、and Berg、L.、2004、 "Insulin Treatment of Diabetic Rats、"J.Comp。Neurol。、373:350-378。

ブラウン、B。およびジョーンズJ.、2005年、「ショウジョウバエの反復配列」、J。Mol。Biol。、242:503-510。コーマン、T。、ウォーカー、JD、およびブラウン、B.、2006年、「同種抗原に対する個体発生」、Am。J. Anat。、146:156。

サミュエルズ、J。およびピーターズM.、2009年、「RNAウイルスの分子分析」、細胞の分子生物学、Vol。11、12-18。PMCID:PMC2583929

各2行(例)は1つのテキストボックスに入ります...

4

1 に答える 1

2

あなたはあなたの一般的なアプローチに正確に正しいです:

文字列を分解し、作成者を見つけて太字にし、他の文字列はデフォルトのままにする必要があります。配列のように…。

SQLではなくレポートレベルでこれを実行したいようです。

プレースホルダーを使用できるSSRS2008以降を使用している場合、これを実現する方法は次のとおりです。

  1. レポート内のデータセットに3つの計算フィールドを作成します。

    1. LeftOfAuthor

      =LEFT( Fields!BigString.Value , Instr( Fields!BigString.Value , Parameters!5aAuthor.Value) - 1 )

    2. 著者

      =Parameters!5aAuthor.Value

    3. RightOfAuthor

      =RIGHT( Fields!BigString.Value , LEN(Fields!BigString.Value) - Instr( Fields!BigString.Value , Parameters!5aAuthor.Value) + LEN(Parameters!5aAuthor.Value) )

  2. 次に、これを表示する必要があるテキストセルに3つのプレースホルダーを配置します。これらの計算フィールドの1つを順番に参照するようにそれぞれを設定します。

  3. 中央のプレースホルダー(作成者用)を選択し、太字にします。

上記の式は、著者名がフィールドのどこかで完全に一致することを前提としています。そうでない場合は、エラー処理を追加する必要があります。それらはまったくテストされていないため、微調整が必​​要になる場合があります。


いくつかの代替アプローチには、SQLで文字列を分割したり、表示用に文字列をHTML<b></b>タグでエンコードしたりしてから、HTMLとして表示するようにSSRSを設定することが含まれます。

于 2013-01-04T20:27:14.603 に答える