web-dev-qa-db-ja.com

SQL Server Reporting Servicesのすべてのグループの後に線を引く方法は?

以下は私が作成したレポートです。画像の赤い線で描かれているように、すべてのグループの後に線を引きたいのですが。
テキストボックスのプロパティ>ボーダースタイル式を使用して干渉を試みました。しかし、いったん閉じて再び開くと、それは残りません。
グループ全体に境界線を設定すると、グループ内の不要な行ごとに線が繰り返されます。

何か助けは?

enter image description here

22
Null Head
  1. Microsoft SQL Serverレポートビルダーの[View]タブをクリックします。
  2. Propertiesチェックボックスがオンになっていることを確認して、[プロパティ]ウィンドウを表示します。
  3. ProductionCountryには、グループ行全体を選択します。行のプロパティが表示されます。
  4. プロパティでBorder-> BorderStyle-> Topまで掘り下げます。値はおそらく空白です。
  5. Topフィールドに、上部の境界線について以下の式を入力します。

トップフィールド値:

=IIF(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR Fields!ProductionCountry.Value = First(Fields!ProductionCountry.Value, "mydataset"),"None","Solid")

上記のmydatasetの値を、レポートのデータセット名と一致するように変更します。

注:

現在の行が前の行と同じグループに属している場合OR現在のグループ行はデータセットの最初であり、境界線をなしに設定し、境界線を実線に設定します。

34
niktrs

詳細行全体を選択し、この式をBorderStyle-Topプロパティに追加します。

=IIF((Previous(Fields!ProductionCountry.Value) <> Fields!ProductionCountry.Value) 
    OR (Previous(Fields!IndustryName.Value) <> Fields!IndustryName.Value) 
    OR (Previous(Fields!ProductGroup.Value) <> Fields!ProductGroup.Value), 
    "Solid",
    "None")
5
Chris Latta

@niktrsの答えを改善するために、私は次のことを提案します。

=Iif(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR IsNothing(Previous(Fields!ProductionCountry.Value)),"None","Solid")


これには、最初のグループ行に行を追加しないという利点があります。たとえば、並べ替えやフィルタリングが行われている場合など、表示される最初のグループがデータセットの最初のグループではない場合でもです。

1
Gary Pendlebury

私が本当に簡単だと思ったのは、グループの上枠を定義することです。このようにして、新しいグループごとに、前のグループの最後の行と新しいグループの最初の行の間に境界線が追加されます。また、ヘッダーの後に境界線を追加します。

このソリューションは、最後の行の終わりに境界線を描画しません。その境界線も必要な場合は、グループを含むTablixの下の境界線を定義できます。

1
Edgar Hernandez
=Iif(Fields!ProductionCountry.Value ="","None","Solid")

また、境界線のデフォルトを変更します上記の式の上、左、左、右、右、下、上、なし。長方形のプロパティを変更して、ブート順を変更します。

私は上枠にこのようにしてみましたが、うまくいきました...

0
Lijo

私の場合、集約値があるため、前の関数を使用できません。そのため、グループの最初の値がそのグループの最初の値になることがわかっているグループの最初の値をハードコーディングしました。次にBorder Styleこの表現を使った

Top =iif(Fields!Group_Name.Value="Hard Corded(first value)","Solid","None")

ボーダーカラーでもこの表現を使用しました

=iif(Fields!Group_Name.Value="Hard Corded(first value)",,"Black","LightGrey")
0
Pvishal