Ответ 1
Как @huttelihut указал, теперь это возможно с SQL Server 2008 R2 - Подробнее здесь
До 2008 R2 это не представляется возможным, но MSDN Social предлагает некоторые предлагаемые способы обхода.
В настоящее время я создаю отчет MS Reporting Services, который получает визуализацию. Я пытаюсь выяснить, как настроить отчет, чтобы он создавал несколько рабочих листов (вкладок) данных в отчете. Я понимаю, что ввод разрыва страницы в отчете дает вам новый лист, однако есть ли способ назвать каждую вкладку вместо нее по умолчанию (рабочий лист 1, рабочий лист 2) и т.д.
Кто-нибудь знает, как это делается?
Спасибо заранее!
Как @huttelihut указал, теперь это возможно с SQL Server 2008 R2 - Подробнее здесь
До 2008 R2 это не представляется возможным, но MSDN Social предлагает некоторые предлагаемые способы обхода.
В последнее время для исходного вопросника, но с SQL Server 2008 R2 это возможно:
Задайте свойство "Pagebreak" в таблице или таблице или другом элементе, чтобы принудительно добавить новую вкладку, а затем установите свойство "Pagename" на обоих элементах до разрыва страницы и элемента после разрыва страницы. Эти имена появятся на вкладках, когда отчет будет экспортирован в Excel.
Читайте об этом здесь: http://technet.microsoft.com/en-us/library/dd255278.aspx
Вот скриншоты для SQL Server 2008 R2, используя конструктор отчетов SSRS в Visual Studio 2010.
Я сделал скриншоты, так как некоторые из диалогов найти нелегко.
1: добавьте группу
2: укажите поле, которое хотите группировать
3: Теперь нажмите на группу в селекторе "Группы строк", прямо под конструктором отчетов
4: F4 для выбора панели свойств; разверните "Группа" и установите Group > PageBreak > BreakLocation = "Между", затем введите выражение, которое вы хотите для Group > PageName
5: Вот пример выражения
Вот результат отчета, экспортированного в Excel, с вкладками, названными в соответствии с выражением PageName
Решение от Эдварда работало для меня.
Если вы хотите, чтобы весь tablix на одном листе с постоянным именем, укажите имя_папки в свойствах tablix. Если вы устанавливаете PageName в свойствах tablix, вы не можете использовать данные из набора данных tablix в своем выражении.
Если вы хотите, чтобы строки из таблицы были сгруппированы по листам (или вам нужен один лист с именем на основе данных), укажите имя_папки в заголовке группы.
Я нашел простой способ обойти это в 2005 году. Вот мои шаги:
=IIF(Parameters!PageBreaks.Value="Y",Fields!DISP_PROJECT.Value,"")
Примечание. Если параметр = Y, вы получите несколько листов для каждого другого значения.
В противном случае поле будет иметь значение NULL для каждой групповой записи (которая вызывает только один разрыв страницы в конце).Поместите имя вкладки в заголовок страницы или группу TableRow1 в свой отчет, чтобы он отображался в позиции "A1" на каждом листе Excel. Затем запустите этот макрос в книге Excel.
Sub SelectSheet()
For i = 1 To ThisWorkbook.Sheets.Count
mysheet = "Sheet" & i
On Error GoTo 10
Sheets(mysheet).Select
Set Target = Range("A1")
If Target = "" Then Exit Sub
On Error GoTo Badname
ActiveSheet.Name = Left(Target, 31)
GoTo 10
Badname:
MsgBox "Please revise the entry in A1." & Chr(13) _
& "It appears to contain one or more " & Chr(13) _
& "illegal characters." & Chr(13)
Range("A1").Activate
10
Next i
End Sub
Группируйте данные своего отчета в зависимости от категории, на которой вы хотите, чтобы ваши листы основывались. Укажите, что вы хотите, чтобы эта группа начала новую страницу для каждой новой категории. Каждая страница становится новой рабочей таблицей в книге Excel.
Примечание. Я использую SQL Server 2003 и Excel 2003.
В группе нажмите F4 и найдите имя страницы, свойства и имя вашей страницы, это должно решить вашу проблему.