【发布时间】:2014-12-16 12:23:50
【问题描述】:
我们正在使用 Visual Studio 2008 开发多语言 Winforms 应用程序。我正在尝试弄清楚如何使用 Crystal Reports 创建多语言报告。
Crystal 报表世界中是否有类似 .net 资源文件的东西?
【问题讨论】:
标签: winforms crystal-reports localization multilingual
我们正在使用 Visual Studio 2008 开发多语言 Winforms 应用程序。我正在尝试弄清楚如何使用 Crystal Reports 创建多语言报告。
Crystal 报表世界中是否有类似 .net 资源文件的东西?
【问题讨论】:
标签: winforms crystal-reports localization multilingual
很抱歉,我抢走了你的风滚草徽章,但我认为 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 Web 应用程序。在winform中可以尝试Properties.Resources.ResourceManager.GetString()从资源中获取字符串
【讨论】:
一位客户要求我解决此问题。我开发了一个基于 Crystal Reports contentLocale 关键字和自定义函数的解决方案。请参阅我的帖子:http://www.cogniza.com/blog/?p=55。
【讨论】: