Мы разрабатываем многоязычное приложение Winforms, используя Visual Studio 2008. Я пытаюсь выяснить, как я могу создавать многоязычные отчеты, используя Crystal Reports.
Есть ли что-то похожее на файлы ресурсов .net в мире отчетов Crystal?
Мне очень жаль, что я отнимаю у вас значок пропалывания, но я не думаю, что Crystal поддерживает несколько языков, аналогично .NET. Я думаю, что ваш единственный вариант - иметь отдельный отчет для каждого языка и передавать данные в отчет на языке, который вы хотите отобразить.
Вот ссылка на аналогичный ответ. http://www.dbforums.com/crystal-reports/991737-crystal-report-multillingual-support.html
Это был бы ручной способ сделать это:
Создайте отчет для каждого языка, который вы хотите, и поместите в соответствующую структуру папок. все японские отчеты будут помещаться в папку rpt_ja /.
Используйте файл ресурсов .Net, чтобы указать имя ресурса отчета и полное имя ресурса для каждого языка:
resource.resx
RPT_SAMPLE -> report01.rpt
RPT_SAMPLE_FULL -> MyCompany.NameSpace.Reports.Report01.rpt
resource.ja.resx
RPT_SAMPLE -> rpt_ja \ report01.ja.rpt
RPT_SAMPLE_FULL -> MyCompany.NameSpace.Reports.Report01.ja.rpt
Затем используйте это значение в файле кода отчета: откройте файл отчета .cs и измените:
public override string ResourceName { get { // Change this to HttpContext.GetGlobalResourceObject("Resource", "RPT_SAMPLE").ToString(); return "report01.rpt"; } set { // Do nothing }
}
public override string FullResourceName { get { // Change this to HttpContext.GetGlobalResourceObject("Resource", "RPT_SAMPLE_FULL").ToString(); return "rpt_ja\report01.ja.rpt"; } set { // Do nothing } }
РЕДАКТИРОВАТЬ: HttpContext для веб-приложения ASP.Net. В winform вы можете попробовать Properties.Resources.ResourceManager.GetString (), чтобы получить строку из ресурсов
Клиент попросит меня решить эту проблему. Я разработал решение на основе ключевого слова Crystal Reports contentLocale и пользовательских функций. Смотрите мой пост: http://www.cogniza.com/blog/?p=55.