Страница 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;
Спасибо.