我们正在使用 Visual Studio 2008 开发多语言 Winforms 应用程序。我正在尝试弄清楚如何使用 Crystal Reports 创建多语言报告。
Crystal 报表世界中是否有任何类似于 .net 资源文件的东西?
我们正在使用 Visual Studio 2008 开发多语言 Winforms 应用程序。我正在尝试弄清楚如何使用 Crystal Reports 创建多语言报告。
Crystal 报表世界中是否有任何类似于 .net 资源文件的东西?
很抱歉我抢了你的风滚草徽章,但我不认为 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
资源.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 。