Лесно локализирана алтернатива на SQL Server Reporting Services?

Сблъскваме се с добре документираните проблеми с локализирането на нашите SSRS отчети.

Може ли някой да препоръча алтернатива? Предполагайте равнопоставеност (или почти такава) с функционалността на SSRS, въпреки че много от нашите отчети ще бъдат прости мрежи или графики, с някакъв текст в горния/долния колонтитул. Искаме средство, чрез което можем лесно да идентифицираме локализируеми низове, да ги съхраняваме в база данни, да ги превеждаме и след това да генерираме локализираната „дефиниция на отчета“ по време на внедряване. Испанците виждат испански доклади, италианците виждат италиански доклади и т.н.

Благодаря на всички.


person TomK    schedule 09.05.2011    source източник


Отговори (2)


Има книга, наречена „Рецепти за услуги за отчитане на Microsoft SQL Server“, която има няколко страници, посветени на това как да локализирате SSRS отчети. Единственото ограничение е, че подканващият текст на параметъра все още може да показва само един език (тъй като не позволява изрази); ако имате достъп до отчети чрез клиент, тогава това няма да е проблем.

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

След това заменяте OnInit на отчета в персонализиран код, за да инициализирате диспечера на ресурсите за персонализирано сглобяване с името на отчета (така че той знае кой набор от низове да търси, предполагам), и след това вместо да използвате текста „Име:“ във вашия отчет, можете да използвате =Code.my_localizer.GetLocalText("Име")

person Cody Konior    schedule 02.06.2011
comment
бихте ли разяснили как да локализирате текст на параметър в .rdl, който се използва от ASP.NET ReportViewer. ReportViewer се нуждае от локализация. - person Pingpong; 22.06.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 (вградени полета), за да получите език (локализация)

person Tihomir Budic    schedule 10.05.2011
comment
Мисля, че описвате как да изтеглите локализирани данни от базата данни. Не това е проблемът. Имам предвид свободностоящия текст, използван в оформлението на отчета. Нямам изображение, към което да направя връзка, но... представете си отчет, в който са изброени продажбите на човек. В горната част на етикет може да пише Име: и по време на изпълнение името на лицето се вмъква динамично от базата данни. Но как да локализирам фразата Име:? Или в долната част на отчета, ако пише Страница 1 от 5 в долния колонтитул, как да локализирам Страница и от? Или на първоначалния ми въпрос, има ли алтернатива, която да го улесни от SSRS? - person TomK; 11.05.2011
comment
Наистина искам да ми помогнете, че броят на страниците е правилен, ето примерен израз за поставяне на текстово поле в долния колонтитул: =Страна & Globals!PageNumber & од & Globals!TotalPages english: =Page & Globals!PageNumber & of & Globals! Общо страници - person Tihomir Budic; 12.05.2011
comment
сега проучвам малко едно възможно решение е: поставете скрит параметър в отчета и дайте стойност по подразбиране: [&Език], след това и след това направете локализирани две различни таблици и показвайте, позволявайки видимостта на Tablix със скрит израз: = IIF (Параметри! ReportParameter1.Value = en-Latn-BA, true, false) и второто време за видимост на Tablix: = IIF (Parameters! ReportParameter1.Value = en-Latn-BA, false, true) - person Tihomir Budic; 12.05.2011