Мне было предложено пару раз изменить имя файла динамически в SSRS 2008. Пример: ReportName_201101.RDL. 201101 представляет собой дату исполнения. Можно ли это сделать в SSRS 2008?Динамическое создание имени файла в SSRS 2008
ответ
К сожалению, нет, это невозможно. Это еще одна из тех функций, которые отсутствуют в SSRS, о которых разработчики просили.
Если вы имеете в виду имя файла при экспорте отчета, а также вытаскиваете его из ASP.NET ReportViewer, вы можете установить его имя через свойство DisplayName.
ReportViewerControl.ServerReport.DisplayName = "ReportName_201101";
или (если ProcessingMode
является локальным):
ReportViewerControl.LocalReport.DisplayName = "ReportName_201101";
Для почти всех других случаях, Alison прав.
Для этого есть MS Connect item. У этого есть только несколько голосов, так что отправляйтесь туда и повышайте его ...
Другая работа вокруг - переименование отчета до его запуска автоматически. Это алмаз в грубой форме. Это может работать только для отчетов, которые являются подписками, а не теми, к которым обращаются пользователи. Создайте таблицу в базе данных ReportServer, которая содержит список всех отчетов, которые вы хотите переименовать до их выполнения. Таблица Report_Rename_Listing RenameID INT ItemID UniqueIdentifier OriginalReportName NVARCHAR (350) DateType NVARCHAR (75) формат INT DatePlusMinus реальное Создание хранимой процедуры на том же сервере, который выходит и изменяет все отчеты в приведенной выше таблице.
Create Procedure [dbo].[RenameReports]
AS
SET NOCOUNT OFF ;
Update dbo.Catalog
Set Name = ISNULL((Select OriginalReportName + '_' +
dbo.func_SetupRenameOfReports(DateType, Format, DatePlusMinus)
From dbo.DDC_Report_Rename r
Where r.ItemID = c.ItemID), Name)
From dbo.Catalog c
return (0)
Создайте скалярную функцию на том же сервере, который определяет, как вы хотите переименовать отчет.
Create Function [dbo].[func_SetupRenameOfReports]
(@DateType nvarchar(75), @Format int, @PlusMinus real )
RETURNS nvarchar(75)
AS
BEGIN
Declare @FirstMonth datetime, @LastMonth datetime
Declare @OutputFormat nvarchar(75)
Set @FirstMonth = CONVERT(datetime, Convert(varchar(2), DateAdd(mm, @PlusMinus, GetDate()), 103) + '/1/' + CONVERT(varchar(4), DateAdd(mm, @PlusMinus, GetDate()), 102))
Set @LastMonth = DATEADD(dd, -1, DateAdd(mm, 1, @FirstMonth))
Set @OutputFormat =
Case When @DateType = 'CurrentDate' Then Convert(varchar(75), DateAdd(dd, @PlusMinus, GetDate()), @Format)
When @DateType = 'CurrentDayName' Then CONVERT(varchar(75), DateName(dw, DateAdd(dd, @PlusMinus, GetDate())))
When @DateType = 'CurrentMonthName' Then CONVERT(varchar(75), DateName(mm, DateAdd(mm, @PlusMinus, GetDate())))
When @DateType = 'CurrentYear' Then CONVERT(varchar(75), DateAdd(yy, @PlusMinus, GetDate()))
When @DateType = 'CurrentBeginEndMonth' Then CONVERT(varchar(10), @FirstMonth, @Format) + '-' + CONVERT(varchar(10), @LastMonth, @Format)
End
If @OutputFormat IS null
Begin
Set @OutputFormat = ''
End
Return @OutputFormat
END
Затем настройте это, чтобы хранимая процедура автоматически запускалась ежедневно на вашем сервере. У меня он работает сразу после полуночи каждый день.
Вот исправление к вышеописанной хранимой процедуре, чтобы она работала.
ALTER PROCEDURE [dbo].[ddc_RenameReports]
AS
SET NOCOUNT OFF ;
Update dbo.Catalog
Set Name = ISNULL((Select OriginalReportName + '_' +
dbo.func_SetupRenameOfReports(DateType, Format, DatePlusMinus)
From dbo.DDC_Report_Rename r
Where r.ItemID = c.ItemID And r.Active = 1), Name)
From dbo.Catalog c
Update c
Set c.Path = ISNULL((Select c2.Path + '/' + OriginalReportName + '_' +
dbo.func_SetupRenameOfReports(DateType, Format, DatePlusMinus)
From dbo.DDC_Report_Rename r2
Where r2.ItemID = c.ItemID AND r2.Active = 1), c.Path)
From dbo.Catalog c
inner join dbo.Catalog c2 on c2.ItemID = c.ParentID
return (0)
- 1. Динамическое изменение имени отчета SSRS
- 2. Динамическое форматирование фона в SSRS 2008
- 3. SSRS 2008 и динамическое позиционирование текстовых полей
- 4. Создание SSRS 2008 с EDM
- 5. Динамическое получение имени файла
- 6. Tablix в SSRS 2008
- 7. Динамическое создание имени таблицы в программе JDBC
- 8. Динамическое создание имени тега XML в xslt
- 9. Динамическое определение столбцов SSRS
- 10. Динамическое позиционирование вертикальной линии StripLine в SSRS 2008
- 11. Установка разрывов SSRS 2008 и SSRS 2012 SSRS 2008
- 12. JSP EL: динамическое создание имени свойства
- 13. Этикетки в SSRS 2008
- 14. SSRS 2008 против SSRS 2012
- 15. Динамическое захват измененного имени столбца в SQL Server 2008
- 16. Преобразование шаблонов SSRS 2008 в SSRS 2005
- 17. Динамическое создание класса из файла в Python
- 18. Динамическое имя поля в SSRS
- 19. Динамическое слияние ячеек в SSRS
- 20. Динамическое изменение имени файла - ComboBox Excel Печать
- 21. Создание пользовательского расширения файла в VB 2008
- 22. создание пользователей ssrs
- 23. Селектор календарей SSRS 2008
- 24. SSRS 2008 - Textbox RTF
- 25. Вопрос рендеринга SSRS 2008
- 26. SSRS 2008, Сила HTML3.2
- 27. SSRS 2008 ИНТЕРАКТИВНЫЙ СОРТ
- 28. SSRS 2008 Видимость столбцов
- 29. Ускорение тиража SSRS 2008
- 30. Категория SSRS 2008 Группировка
Это то, что я ищу, спасибо за это. – user2705620