Легко локализованная альтернатива службам отчетов SQL Server? - PullRequest
2 голосов
/ 10 мая 2011

Мы сталкиваемся с хорошо задокументированными проблемами с локализацией наших отчетов SSRS.

Кто-нибудь может порекомендовать альтернативу?Предположите паритет (или почти так) с функциональностью SSRS, хотя многие наши отчеты будут простыми сетками или графиками с некоторым текстом верхнего / нижнего колонтитула.Нам нужен способ, с помощью которого мы можем легко идентифицировать локализуемые строки, сохранять их в базе данных, переводить их, а затем генерировать локализованное «определение отчета» во время развертывания.Испанцы видят испанские отчеты, итальянцы видят итальянские отчеты и т. Д.

Спасибо всем.

Ответы [ 2 ]

1 голос
/ 02 июня 2011

Существует книга под названием «Рецепты служб отчетов Microsoft SQL Server», в которой есть несколько страниц, посвященных тому, как локализовать отчеты SSRS.Единственным ограничением является то, что в тексте приглашения к параметру все еще может отображаться только один язык (так как он не допускает выражения);если вы обращаетесь к отчетам через клиента, тогда это не будет проблемой.

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

Затем вы переопределяете OnInit отчета в пользовательском коде, чтобы инициализировать менеджер ресурсов пользовательской сборки с именем отчета (чтобы он знал, какой набор строк искать(Я полагаю), а затем вместо использования текста «Имя:» в вашем отчете вы можете использовать = Code.my_localizer.GetLocalText («Имя»)

0 голосов
/ 10 мая 2011

попробуйте указать какой-нибудь параметр в ssrs и создать такую ​​процедуру:

--TEST
--DECLARE @language int
--SET @language = 2 --1 Italian  --2 Spain

--passing language parameter from ssrs report
IF (@language = 1)
    SELECT englishNameField1 as italianFieldName1, englishNameField2 as italianFieldName2, englishNameField3 as italianFieldName3
    FROM tableName
ELSE
    SELECT englishNameField1 as spanishNameField1, englishNameField2 as spanishNameField2, englishNameField3 as spanishNameField3
    FROM tableName  
WHERE parameterFromSSRS = @language 

в отчете введите параметр @language с некоторым выражением для UserID (встроенные поля), чтобы получить язык (локализация)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...