SSRS 2005 Установить SimplePageHeaders на отчет вместо сервера? - PullRequest
8 голосов
/ 15 июня 2010

У меня есть один отчет, который не экспортируется в Excel дружественный к Excel из 2005 года. Я знаю, что могу использовать


<Render>
    <Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering">
        <Configuration>
            <DeviceInfo>
                <SimplePageHeaders>True</SimplePageHeaders>
            </DeviceInfo>
        </Configuration>
    </Extension>
</Render>

в rsreportserver.config, но я не единственный, кто имеет отчеты на этом компьютере,Я также обнаружил, что вы можете передать

&rc:SimplePageHeaders=True
в URL для программного экспорта отчета.

Я пытался добавить &rc:SimplePageHeaders=True в конец URL при переходе к диспетчеру отчетов, но когда я выбираю Excelиз раскрывающегося списка и нажмите кнопку экспорта, заголовки все еще экспортируются.Я даже безуспешно пытался установить rc:Command=Render и rc:Format=EXCEL в URL.

Есть ли способ сделать то, что я пытаюсь сделать?

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

1 Ответ

28 голосов
/ 17 июня 2010

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

  • Вы должны дать этому средству визуализации имя, отличающееся от текущего средства визуализации Excel, которое имеет Name="EXCEL" в моей системе, в противном случае вы увидите только одно средство визуализации Excel
  • Отображаемое имя средства визуализации не будет тем именем, которое вы назвали выше, а просто будет Excel, поскольку это отображаемое имя предоставлено средством визуализации, поэтому вы увидите две опции, называемые Excel, и вы выиграли.Не знаю, какой из них без заголовков страниц.
  • Следовательно, вы должны переопределить имя
  • Когда вы переопределяете имя, вы должны указать язык, для которого вы переопределяете его.Заданное вами значение языка должно быть действительным для компьютера сервера отчетов.Например, если сервер отчетов работает во французской операционной системе, в качестве значения атрибута следует указать "fr-FR".Я использую "en-AU", поскольку я австралиец, вы бы использовали "en-US", если вы находитесь в США.

Таким образом, при текущего рендерера EXCEL (незамените существующий) в разделе <Render> файла rsreportserver.config, вы должны вставить что-то вроде:

<Extension Name="EXCEL (No Header)" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering">
    <OverrideNames>
        <Name Language="en-AU">Excel (No Header)</Name>
    </OverrideNames>
    <Configuration> 
        <DeviceInfo>
            <SimplePageHeaders>True</SimplePageHeaders> 
        </DeviceInfo> 
    </Configuration> 
</Extension>

Это даст вам две опции Excel в меню экспорта служб Reporting Services: Excel и Excel (без заголовка)

Не забудьте изменить языковой атрибут в <OverrideNames> на язык на сервере отчетов, иначе обе опции будут просто называться Excel

...