2013-04-17 7 views
2

Я использую SQL Server 2008 R2.Есть ли решение для локализации «параметров/подсказок» в SSRS 2008 R2 или 2012?

Мой сайт показывает отчет точно так, как он есть, включая контейнер, в котором отображаются параметры (клиент предпочитает его таким образом).

Однако мое решение на сайте включает локализацию (португальский, английский, испанский).

Я попытался перевести параметры, создав один параметр для каждого языка, а затем покажу их в соответствии с выбранным. Он не работал в SSRS 2008. Поскольку я не знаю, как найти свойства видимости подсказки.

Кто-нибудь знает решение ... Или если SQL Server 2012 имеет решения для перевода приглашения параметра или условной видимости?

Спасибо.

ответ

0

Единственным решением, которое я нашел до сих пор (SSRS 2008, 2008R2, 2010, 2012), является нарушение команд DRY и дублирование отчетов с языковыми кодами как часть имени отчета (например, MyReport_sp.rdl, MyReport_de .rdl и т. д.), а затем поместите веб-службу между запросом клиента и экземпляром SSRS. Затем веб-служба должна отправить запрос на правильный отчет на основе параметра «Культура», переданного с запросом клиента.

Это НЕ хорошее решение, хотя по крайней мере параметр Culture используется для локализации остальной части отчета. Мы по-прежнему надеемся, что в какой-то будущий момент MS добавит оперативную локализуемость, и мы сможем переименовать отчет в MyReport.rdl и просто все на самом деле локализовано. Hmm, что за концепция ...

0

Нет ни одного ...
Как и на connect.microsoft.com, эта функция была запрошена после выпуска SSRS 2005, и пока она находится в списке TODO Microsoft, время программиста для этого никогда не выделялось, и, следовательно, в 2012 году SSRS все еще не в состоянии это сделать.

Хотя можно (с большим усилием) перевести все остальное, перевести приглашение параметров невозможно.

НЕТ условной видимости, зафиксирована видимость параметров.

Кроме того, SSRS не использует используемый язык, а не тот, который задан в настройках языка браузера.

Единственное, что вы можете сделать, это написать программу на C#, которая загружает ваш XML-файл, получить имя параметра отчета (и, возможно, имя отчета), просматривать их в базе данных и автоматически создавать N отчетов для русских языков.

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

Другим способом является использование элемента управления ReportViewer и повторная реализация выбора параметров.
Я думаю, что CrissCross пытается это сделать, но он провалился во всех, кроме 2 отчетов, которые я тестировал.

Злая хак будет:

parametername: babla_language1/blabla_language2/blabla_language3/blabla_language4 

, а затем использовать JQuery, чтобы получить эту строку. делать String.split ('/') [index_of_language]
, а затем добычу, что/никогда в "blabla_languageXY"

Edit:
Я на самом деле сделал это. Вы должны использовать setInterval для этого, потому что нет способа обнаружить изменения при выборе параметра.

0

Другим обходным решением было бы просто поместить число в приглашение для параметра, а затем префикс метки каждого параметра с помощью локализованной версии, либо используя «получить значения из запроса», либо используя конструктор выражений с оператором switch в выражение метки.

Для значений получить от варианта запроса вы бы набор данных что-то вроде этого, если у вас есть переведенные версии в запросе:

SELECT ParamLabel, ParamValue 
FROM MyLocalisedParameters 
WHERE UserLanguage = @Language 

Или как это, если нет:

SELECT 
    CASE @Language 
     WHEN 'pt-PT' THEN 'Selecione Departamento: ' + ParamLabel 
     WHEN 'es-ES' THEN 'Seleccionar Departamento: ' + ParamLabel 
     ELSE 'Select Department: ' + ParamLabel 
    END AS ParamLabel 
    , ParamValue 
FROM MyParametersTable 

в оба случая создают и присваивают Globals! Language параметру, называемому @Language.

Или, если используется построитель выражений для закодированного набора значений, это будет выглядеть примерно так:

enter image description here

в любом случае конечный результат будет выглядеть примерно так:

enter image description here

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