Страница 1 из 1

Локализация отчета

Добавлено: 14 мар 2011, 01:53
res562
в отчете в globzlization strings храню два языка русский и английский.
Язык в программе меняю:

Thread.CurrentThread.CurrentCulture = _currentCulture;
Thread.CurrentThread.CurrentUICulture = _currentCulture;

При просмотре отчета из файла .mrt язык меняется, при просмотре сомпилированного в сборку отчета - язык не меняется.
Как поменять язык в скомпилированном отчете?

Локализация отчета

Добавлено: 14 мар 2011, 08:42
Aleksey
Здравствуйте,

Globzlization strings применяются до компиляции, поэтому для шаблона отчета (.mrt) это работает, а для скомпилированного в сборку отчета нет.
Как вариант, для скомпилированных отчетов, вы можете сохранить 2 варианта с использованием разных языков.

Спасибо.

Локализация отчета

Добавлено: 22 мар 2011, 15:59
res562
Как скомпилировать отчеты для всех языков, заданных в шаблоне, если заранее не известно их количество. Сейчас использую метод Compile, но у него нельзя задать культуру.

Локализация отчета

Добавлено: 23 мар 2011, 10:31
Aleksey
Здравствуйте,

Посмотрите пример проекта в приложенном файле.

Сообщите, если понадобится дополнительная помощь.
Спасибо.

Локализация отчета

Добавлено: 23 мар 2011, 15:58
res562
Вопрос в том, как скомпилировать несколько сборок с разными языками из одного шаблона отчета.

Какой надо вызвать метод, чтобы обновить язык?

Код ниже выводит все на одном языке:

Код: Выделить всё

for (int i = 0; i < _report.GlobalizationStrings.Count; i++)
                {
                    _report.GlobalizationStrings.LocalizeReport(_report.GlobalizationStrings[i].CultureName);
                    _report.Show();
                }

Код: Выделить всё

for (int i = 0; i < _report.GlobalizationStrings.Count; i++)
                {
                      Thread.CurrentThread.CurrentCulture = new CultureInfo(_report.GlobalizationStrings[i].CultureName);
                      Thread.CurrentThread.CurrentUICulture = new CultureInfo(_report.GlobalizationStrings[i].CultureName);
                    _report.Show();
                }

Локализация отчета

Добавлено: 25 мар 2011, 08:56
Aleksey
Здравствуйте,

Вы можете использовать следующий код для смены языка:

Код: Выделить всё

StiReport report = new StiReport();
report.Load(...);
string cultureName = "en-Gb";
//string cultureName = "ru-Ru";
//string cultureName = "ar-SA";
CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName, false);
report.Compile();
report.Render();
report.Show();

System.Threading.Thread.CurrentThread.CurrentCulture = ci;
Спасибо.