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

SSRS - Как продолжить данные в следующий столбец?

Мне нужно сообщить "Имя сотрудника" и "Возраст", но мне не нужно продолжать имена на следующей странице; Мне нужно продолжить его до следующего столбца.

Он должен выглядеть так:

_________________________________________________
| Employee Name | Age | Employee Name | Age     |
|_______________|_____|_______________|_________|

Может ли кто-нибудь отправить отчет, который управляет этим? Я использую службу отчетов Microsoft.

4b9b3361

Ответ 1

Вам нужен отчет из нескольких столбцов по его звуку.

На вкладке "Макет" щелкните правой кнопкой мыши где-нибудь, где нет объектов отчета, и выберите "Свойства". Перейдите на вкладку "Макет" и установите количество столбцов на количество столбцов, которые вы хотите на странице - в вашем примере это будет 2. Это даст вам столбец для размещения объектов отчета слева и серых столбцов на справа, где будет повторяться ваша колонка слева.

Однако здесь есть несколько трюков:

  • Ваши столбцы должны помещаться на странице, иначе вы не получите никаких столбцов. Например, если ваши параметры макета по умолчанию имеют интервал 1 см и левый и правый поля 2,5 см, то ваша колонка должна быть меньше 7,5 см на странице формата А4 (шириной 21 см). В противном случае вы получите только один столбец, так как два столбца не помещаются на странице.
  • Средство рендеринга отчетов в вашем дизайнере не поддерживает несколько столбцов, поэтому вы увидите только один столбец в дизайнере. Средство визуализации HTML также не поддерживает несколько столбцов, и вы увидите только один столбец для отчета при его развертывании на сервере служб отчетов и отображаемом в виде веб-страницы. Вам нужно вывести свой отчет в средство рендеринга, которое поддерживает несколько столбцов, таких как PDF или принтер, чтобы фактически видеть столбцы в отчете с несколькими столбцами.

Обновление - фальсификация отчета с несколькими столбцами с использованием таблиц

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

Чтобы реализовать этот хак, создайте две таблицы бок о бок, которые указывают на ваш набор данных. В строке Detail первой таблицы для свойства Visibility-Hidden используйте следующую формулу:

=iif((RowNumber(Nothing) Mod 2) = 1, False, True)

В строке Detail второй таблицы для свойства Visibility-Hidden используйте противоположную формулу:

=iif((RowNumber(Nothing) Mod 2) = 1, True, False)

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

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

Вы можете адаптировать этот метод для выполнения истинного многостолбца, выработав количество строк, которые вы можете поместить на странице, из свойства InteractiveSize-Height и отображая, что много столбцов в левой таблице, а затем остальные в правой таблице и так на протяжении всего отчета, но это может быть хрупким в зависимости от средства визуализации и изменения параметров макета страницы, таких как поля. Вышеуказанный метод прост и эффективен.

Ответ 2

Я пытаюсь сделать EmployeeName и EmployeeTitle. Я попытался реализовать решение Криса выше. Я бы получил ожидаемые значения в каждой таблице, но они были бы дублированы.

Я сделал немного больше исследований, и в итоге у меня появилось следующее для видимости строк.

Для четных строк я использовал:

=iif(RunningValue(Fields!jobtitle.Value, CountDistinct, "EmployeesDataSet") Mod 2 = 0, True, False)

В случае нечетных строк я использовал:

=iif(RunningValue(Fields!jobtitle.Value, CountDistinct, "EmployeesDataSet") Mod 2 = 1, True, False)

Группа rowgroup находилась на jobtitle.

Источник: RowNumber для группы в SSRS 2005