Подтвердить что ты не робот

Как нарисовать линию после каждой группы в службах отчетов SQL Server?

Ниже представлен отчет, который я создал. Я хотел бы нарисовать линию после каждой группы, изображенной красной линией на изображении.
Пробовал вмешательство с помощью свойств текстового поля > выражение стиля границы. Но это не остановится, когда я закрою и снова открою его. Если я установил границу для всей группы, строка будет повторяться для каждой строки в группе, которую я не хочу.

Любая помощь?

enter image description here

4b9b3361

Ответ 1

Для ProductionCountry выберите всю строку группы стран.

В свойствах введите нижеследующее выражение для верхней границы

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

Измените значение набора данных выше, чтобы соответствовать имени набора данных вашего отчета.

Разъяснения:

If ( current row belongs to the same group as the previous row  OR current group row is the first of the dataset, set border to none, set border to solid)

Ответ 2

Выберите всю строку подробностей и добавьте это выражение в свойство 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")

Ответ 3

Чтобы улучшить ответ @niktrs, я бы предложил:

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


Это имеет преимущество, заключающееся в том, что вы не добавляете строку в начальную строку группы, даже если первая группа не является первой группой в наборе данных, например, когда сортировка или фильтрация на месте.

Ответ 4

То, что я нашел очень простым, - это определить верхнюю границу для группы. Таким образом, каждая новая группа добавляет границу между последней строкой предыдущей группы и первой из новой группы. Он также добавляет границу после заголовков.

Это решение не рисует границу в конце последней строки. Если вам нужна эта граница, вы можете определить нижнюю границу для табуляции, содержащей группы.

Ответ 5

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

также измените значение по умолчанию, ни один из них не останется сплошным правым сплошным дном, но верхнее выражение выше. и к свойствам прямоугольника изменяют порядок загрузки.

Я пробовал это для верхней границы, и он отлично работал...

Ответ 6

В моем случае у меня есть агрегированное значение, поэтому я не могу использовать предыдущую функцию, поэтому я жестко закодировал первое значение из группы, которое, как я знал, станет первым значением в этой группе. Затем в Border Style Я использовал это выражение

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

Также в Border Color используется это выражение

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